TikTok Shop Khóa Tin Nhắn DM Trong Seller Center — Nhóm 3 Người Nhận Chúng Qua Webhook Như Thế Nào — UnifyPort
Nhóm này — ba người bán mỹ phẩm qua TikTok Shop ở TP.HCM — đã bán hết một SKU trong vòng 11 phút ngay trong buổi livestream đầu tiên. Lúc cao điểm có 400 người xem cùng lúc, phần bình luận chạy nhanh hơn tốc độ đọc, đơn hàng vào liên tục trong thời gian thực. Khi buổi phát kết thúc và mở Seller Center ra kiểm tra, 140 tin nhắn DM đang chờ. Đồng hồ đếm ngược 12 giờ của hầu hết trong số đó đã chạy được hai tiếng.
Vấn đề không nằm ở nhân sự — ba người là đủ cho lượng hỗ trợ thông thường. Vấn đề là “kết nối”. Tất cả DM đều bị giữ trong TikTok Seller Center — nền tảng được thiết kế để quản lý hộp thư đến thủ công, không có cách nào để đẩy những tin nhắn đó vào công cụ hỗ trợ mà nhóm đang dùng cho WhatsApp và Zalo. Phải có người theo dõi hai màn hình, sao chép tin nhắn thủ công, rồi trả lời từ bên trong Seller Center. Với 140 DM sau một buổi livestream, cách làm đó không còn khả thi.
Câu hỏi rất rõ ràng: có cách nào nhận DM TikTok theo chương trình qua webhook không — giống cách họ đang nhận tin nhắn WhatsApp? Họ dành cả buổi chiều để xem xét mọi lựa chọn có thể tìm được. Có ba con đường.
Con đường 1: Hộp thư Seller Center thủ công
TikTok Seller Center có tab nhắn tin tích hợp sẵn. Mọi DM từ người mua đều hiển thị ở đó — đọc được, trả lời được, hoàn toàn trong giao diện TikTok. Không có API, không có webhook, không có chức năng xuất dữ liệu. Một người theo dõi tab đó, sao chép tin nhắn vào CRM hoặc bảng tính, rồi trả lời từ Seller Center.
Ở lượng nhỏ — chẳng hạn mỗi ngày chục tin nhắn đều đặn — cách này tạm được. Nhưng làn sóng tin nhắn sau livestream thì không chịu được: đang đọc tin đầu tiên thì hàng đợi đã có thêm hai mươi cái mới. Và nó đòi hỏi có người chuyên trực một ứng dụng riêng biệt, hoàn toàn tách rời khỏi công cụ mà cả nhóm đang dùng.
Kết luận: chịu được lượng thấp; sụp đổ khi livestream tạo ra sóng tin nhắn.
Con đường 2: API chính thức của TikTok dành cho developer hoặc Shop Partner API
Họ xem qua TikTok for Developers console. Không có endpoint nào cho DM. API chính thức của TikTok được xây dựng để đăng nội dung — đăng video, đọc số liệu phân tích công khai, quản lý tài sản sáng tạo. Tin nhắn riêng tư rõ ràng nằm ngoài phạm vi; TikTok công khai nói rằng vì lý do quyền riêng tư, dữ liệu DM không được mở cho tích hợp bên thứ ba.
Có một lối đi hẹp hơn: TikTok Shop Partner API, cho phép các đối tác được phê duyệt truy cập một số tính năng nhắn tin trong ngữ cảnh Shop. Nhưng cần phải là đối tác hoặc người bán TikTok Shop đã được phê duyệt ở thị trường đủ điều kiện, qua quy trình xem xét của TikTok. Tài khoản của nhóm — một shop Việt Nam mở theo quy trình đăng ký người bán TikTok Shop thông thường — không đáp ứng tiêu chí. Riêng quy trình xem xét đã mất vài tuần, không đảm bảo được phê duyệt.
Kết luận: API developer phổ thông không có quyền truy cập DM; lộ trình Shop Partner có rào cản, hầu hết tài khoản không đủ điều kiện.
Con đường 3: Giao diện nhận tin nhắn đến không chính thức
Con đường thứ ba tiếp cận TikTok DM từ góc độ hoàn toàn khác. Thay vì dùng API developer — vốn không được thiết kế để mở tin nhắn riêng tư — một giao diện nhận tin đến không chính thức kết nối với TikTok theo cách ứng dụng làm, ở cấp độ tài khoản, và chuyển mỗi DM đến thành một HTTP event đẩy về webhook server bạn đăng ký. Không cần phê duyệt đối tác, không có yêu cầu về thị trường, không cần cấu hình developer console. Dùng tài khoản đang có là xong.
| Con đường 1: Seller Center | Con đường 2: API chính thức | Con đường 3: Giao diện nhận không chính thức | |
|---|---|---|---|
| Thời gian thiết lập | Ngay lập tức | Vài tuần (xét duyệt), không đảm bảo | Dưới 1 ngày |
| Truy cập DM qua API | Không (chỉ thủ công) | Không có cho tài khoản phổ thông | Webhook đầy đủ |
| Có thể tự động hóa | Không | Không | Có |
| Chịu được sóng livestream | Không | — | Có |
| Dùng được cho mọi tài khoản | Có | Không | Có |
Bảng so sánh làm mọi thứ rõ ràng. Con đường 2 đóng cửa. Con đường 1 không chịu được tải. Con đường 3 là lối đi duy nhất thực sự hoạt động.
Con đường 3 trông như thế nào trong thực tế
Nhóm kết nối tài khoản TikTok của mình qua UnifyPort, đăng ký một webhook endpoint, và cấu hình signing_secret. Từ đó trở đi, mỗi TikTok DM đến được gửi về backend dưới dạng event message.received đã chuẩn hóa:
{
"event": "message.received",
"account_id": "acct_tk_9Zp2",
"provider": "tiktok",
"from": "user_c14f8b",
"text": "Chào shop, em mua bộ hoa hồng hôm qua trong live, khi nào shop giao ạ?",
"timestamp": 1750060800,
"message_id": "tt_msg_c14f8b"
}
Backend xác minh mỗi lần gửi bằng HMAC-SHA256 đối chiếu với signing_secret được cấu hình trên webhook endpoint, rồi đưa tin nhắn vào cùng hàng đợi hỗ trợ mà nhóm đã dùng cho WhatsApp và Zalo:
app.post("/webhook", (req, res) => {
if (!verifySignature(req)) return res.sendStatus(401);
const evt = req.body;
if (evt.event === "message.received") {
supportQueue.add({
channel: evt.provider, // "tiktok", "whatsapp", "zalo", v.v.
customer: evt.from,
text: evt.text,
messageId: evt.message_id,
});
}
res.sendStatus(200);
});
Trường provider cho logic định tuyến biết tin nhắn đến từ kênh nào. Logic hàng đợi, ghi vào CRM, giao diện nhân viên — không có gì thay đổi, vì message.received từ TikTok có cùng cấu trúc với từ WhatsApp hay Zalo. Nhóm không cần xây một hàng đợi riêng cho TikTok. Họ chỉ thêm TikTok vào hàng đợi đã có.
Thay đổi gì, không đổi gì
Ở buổi livestream tiếp theo, TikTok DM cùng với tin nhắn WhatsApp và Zalo cùng vào hàng đợi. Nhân viên làm việc từ một danh sách duy nhất. Chỉ số trả lời trong 12 giờ — chỉ số sức khỏe cửa hàng chính thức của TikTok ảnh hưởng đến khả năng hiển thị — không còn là nỗi lo, vì tin nhắn vào hệ thống trong vài giây sau khi được gửi, thay vì chờ ai đó ghi tay.
Một điều nhóm nhận ra: TikTok DM sau livestream thường ngắn và dày đặc — hỏi giao hàng, tồn kho, đơn hàng. Vì mỗi tin nhắn đến dưới dạng event có cấu trúc với ID người gửi, nội dung và timestamp đã được phân tích sẵn, nhân viên không cần nhìn vào app TikTok để sao chép. Tin nhắn đã ở đúng định dạng mà phần còn lại của quy trình hỗ trợ cần.
Không thêm công cụ mới vào stack của nhóm. Không tuyển thêm người. Một webhook endpoint, một signing secret — và TikTok DM chạy như mọi kênh khác. Với người bán vận hành đồng thời TikTok cùng WhatsApp hay Zalo, cùng một event message.received nghĩa là một handler duy nhất xử lý được tất cả — vì giao diện nhận không chính thức đã chuẩn hóa sự khác biệt giữa các kênh trước khi chúng chạm tới code của bạn.