DEV Community

KazKN
KazKN

Posted on

Cách xuất danh bạ Zalo ra Excel để làm sạch dữ liệu CRM

Danh bạ Zalo hữu ích khi bạn đang ở trong ứng dụng. Nhưng khi cần kiểm tra bản
ghi trùng, chuẩn hóa tên, lưu một snapshot hoặc chuẩn bị dữ liệu cho CRM, bạn
cần một bảng có cột rõ ràng — không phải hàng trăm màn hình hồ sơ mở thủ công.

Bài này hướng dẫn cách xuất danh bạ và hồ sơ mà tài khoản Zalo của bạn nhìn
thấy
thành CSV, Excel hoặc JSON, rồi làm sạch dữ liệu mà không biến trường
trống thành thông tin tưởng tượng.

Minh bạch: Tôi là nhà phát triển của Zalo Data Exporter. Nếu bạn đăng ký
hoặc chạy Actor qua liên kết trong bài, tôi có thể nhận doanh thu từ Apify mà
bạn không phải trả thêm.

Danh bạ trong ứng dụng chưa phải là dữ liệu CRM

CRM cần các bản ghi ổn định, có nguồn và có thể cập nhật. Một bảng xuất Zalo hữu
ích nên giữ:

  • ID người dùng Zalo;
  • tên hiển thị và tên Zalo khi có;
  • avatar URL khi hiển thị;
  • trạng thái quan hệ hoặc nguồn bản ghi;
  • recordKey để nhận biết bản ghi giữa các lần chạy.

Điều quan trọng là chấp nhận trường trống. Nếu Zalo không hiển thị số điện
thoại, email hoặc tên thật, bản xuất không nên tự đoán.

Chọn đúng workflow

Zalo Data Exporter có bốn preset. Với danh bạ, hãy chọn 👤 Contacts &
profiles
. Không cần bật lịch sử chat hoặc danh sách nhóm nếu bạn chỉ muốn một
snapshot liên hệ.

Mở preset Contacts & profiles

Hướng dẫn từng bước

1. Cấu hình lần chạy đầu tiên

Input tối thiểu:

{
  "exportMode": "contactsAndProfiles",
  "accountAlias": "main"
}
Enter fullscreen mode Exit fullscreen mode

Preset quyết định loại dữ liệu. accountAlias là tên phiên đăng nhập được mã
hóa. Nếu bạn kết nối một tài khoản Zalo khác, hãy dùng alias khác.

2. Kết nối bằng QR tạm thời

Bấm Start, mở Output, quét QR trong ứng dụng Zalo và phê duyệt. QR sẽ bị
xóa sau khi thành công, bị từ chối hoặc hết hạn. Những lần chạy sau có thể kết
nối lại tự động bằng phiên đã lưu.

3. Mở đúng Dataset view

Chọn Contacts and profiles. View này tập trung các trường hữu ích cho bảng
tính; Dataset thống nhất vẫn dùng recordType: "profile" để API có thể lọc.

4. Tải file

  • Chọn Excel nếu người xử lý tiếp theo làm việc trong bảng tính.
  • Chọn CSV cho import CRM hoặc xử lý hàng loạt.
  • Chọn JSON để giữ kiểu dữ liệu cho code và API.

Làm sạch bảng trước khi nhập CRM

Giữ khóa, không chỉ giữ tên

Hai người có thể có cùng tên hiển thị. Dùng userId hoặc recordKey làm khóa
chính; dùng tên để hiển thị.

Ghi nguồn của snapshot

Thêm các cột nội bộ như source = Zalo, exportedAt, và accountAlias. Khi dữ
liệu thay đổi, bạn sẽ biết lần xuất nào tạo ra bản ghi.

Không điền giả trường thiếu

Nếu số điện thoại không xuất hiện, giữ trống. Một CRM sạch với trường thiếu tốt
hơn một CRM đầy dữ liệu không kiểm chứng.

Xử lý người xuất hiện ở nhiều nguồn

Một người có thể nằm trong danh bạ và trong nhiều nhóm. Nếu bạn kết hợp preset
Contacts với Group roster, hãy tách bảng quan hệ nhóm khỏi bảng hồ sơ thay vì
xóa mọi dòng “trùng tên”.

Tự động hóa snapshot bằng Python

Sau lần xác thực QR đầu tiên:

import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_API_TOKEN"])
run = client.actor("kazkn/zalo-member-profile-exporter").call(run_input={
    "exportMode": "contactsAndProfiles",
    "accountAlias": "main",
})

rows = client.dataset(run["defaultDatasetId"]).list_items().items
profiles = [row for row in rows if row.get("recordType") == "profile"]
print(f"Snapshot contains {len(profiles)} visible profiles")
Enter fullscreen mode Exit fullscreen mode

Bạn có thể chạy định kỳ trên Apify, gửi Dataset qua webhook hoặc tải CSV vào
quy trình hiện có. Hãy đặt giới hạn và lịch chạy phù hợp thay vì thu thập lại
liên tục mà không có mục tiêu.

Khi nào nên dùng Complete snapshot?

Chỉ dùng 📦 Complete visible-account snapshot nếu bạn thật sự cần danh bạ,
hồ sơ, nhóm, thành viên, cuộc trò chuyện và tin nhắn trong cùng một run. Nó tạo
nhiều loại bản ghi hơn, chạy lâu hơn và có thể tốn nhiều hơn.

Đối với một dự án CRM chỉ cần danh bạ, preset chuyên biệt đơn giản và dễ kiểm
tra hơn.

Giới hạn và quyền riêng tư

Actor chỉ đọc dữ liệu hiển thị cho tài khoản đã kết nối. Nó không tìm hồ sơ ẩn,
nhóm chưa tham gia, cơ sở dữ liệu số điện thoại hay tin nhắn đã xóa. Nó cũng
không gửi tin nhắn, kết bạn hoặc thay đổi nhóm.

Áp dụng thời hạn lưu trữ phù hợp, hạn chế quyền truy cập file xuất và chỉ giữ
những trường cần thiết cho mục tiêu của bạn.

FAQ

Có thể xuất danh bạ Zalo ra CSV không?

Có. Chọn Contacts & profiles, kết nối QR lần đầu, rồi tải view tương ứng dưới
dạng CSV.

File có luôn chứa số điện thoại không?

Không. Trường chỉ có giá trị khi Zalo hiển thị cho tài khoản. Công cụ không suy
đoán hoặc mua dữ liệu số điện thoại.

Có thể dùng file trong CRM không?

Có, sau khi bạn chọn khóa ổn định, chuẩn hóa cột và giữ trường thiếu ở trạng
thái trống. CSV là định dạng import phổ biến; JSON phù hợp hơn cho API.

Tạo snapshot danh bạ đầu tiên

👉 Xuất danh bạ Zalo hiển thị ra CSV, Excel hoặc JSON


Liên kết Apify trong bài hỗ trợ nhà phát triển của Actor. Kết quả phụ thuộc vào
dữ liệu tài khoản đã kết nối có thể nhìn thấy.

Top comments (0)