Dọn nội dung hay xóa cuộc trò chuyện WhatsApp: đồng bộ webhook đúng cách
Dọn nội dung cuộc trò chuyện WhatsApp sẽ xóa lịch sử cục bộ nhưng vẫn giữ cuộc trò chuyện. Xóa cuộc trò chuyện là một thao tác khác trên danh sách chat. Trong UnifyPort, conversation.cleared và conversation.deleted thông báo các thay đổi này ở tài khoản nhắn tin đã kết nối. Cả hai đều không có nghĩa là tin nhắn đã bị xóa với tất cả mọi người. Hộp thư dùng chung cần tách khả năng hiển thị lịch sử khỏi khả năng hiển thị cuộc trò chuyện, rồi áp dụng chính sách rõ ràng cho các bản sao tự lưu.
Điểm chính
- Đây là thông báo thay đổi cục bộ của tài khoản, không phải lệnh xóa tin nhắn của khách hàng.
data.conversation.idxác định cuộc trò chuyện;idở cấp ngoài cùng xác định sự kiện.delete_mediamô tả việc xóa phương tiện cục bộ, không xác nhận việc dọn kho lưu trữ hay CRM của bạn.- Ngăn lịch sử cũ xuất hiện lại không đồng nghĩa với từ chối vĩnh viễn tin nhắn mới.
Phân biệt dọn nội dung, xóa cuộc trò chuyện và thu hồi tin nhắn
Hướng dẫn dọn nội dung của WhatsApp nêu rằng thao tác này không loại cuộc trò chuyện khỏi danh sách và không làm bạn rời nhóm. Hướng dẫn xóa cuộc trò chuyện mô tả thao tác riêng, đồng thời yêu cầu rời nhóm trước khi xóa cuộc trò chuyện nhóm. Đừng chuyển một trong hai thao tác thành lệnh xóa toàn bộ dữ liệu của mọi hệ thống nghiệp vụ.
| Sự kiện quan sát được | Phạm vi trong tài liệu | Cách xử lý hộp thư đề xuất |
|---|---|---|
conversation.cleared | Tài khoản kết nối đã dọn lịch sử cục bộ; cuộc trò chuyện phía bên kia và tư cách thành viên nhóm không đổi | Giữ mục cuộc trò chuyện, ẩn phần lịch sử liên quan theo chính sách |
conversation.deleted | Tài khoản đã xóa cuộc trò chuyện cục bộ | Bỏ khỏi danh sách phản chiếu thông thường; chỉ giữ siêu dữ liệu đối soát được phép |
message.deleted | Một tin nhắn bị xóa hoặc thu hồi | Xác định tin nhắn cụ thể, không xử lý cả cuộc trò chuyện |
conversation.updated | Một thiết lập chat cục bộ thay đổi | Cập nhật thiết lập được cung cấp, không suy ra lịch sử đã bị xóa |
Cột cuối là đề xuất thiết kế ứng dụng, không phải hành vi tự động của UnifyPort. Nếu mục tiêu là thu hồi tin đã gửi, hãy đọc sửa, thu hồi hay ẩn tin nhắn cục bộ. Sự kiện xóa cuộc trò chuyện không phải xác nhận cho yêu cầu thu hồi.
Đọc đúng cấu trúc sự kiện cuộc trò chuyện
Tài liệu conversation.cleared và conversation.deleted cung cấp đối tượng cuộc trò chuyện và delete_media. Chúng không cung cấp danh sách ID tin nhắn bị ảnh hưởng hay một mốc cắt lịch sử chính xác.
Ví dụ sau dùng trường đã được tài liệu hóa và định danh giả định, không phải lưu lượng thu thập thực tế:
{
"id": "evt_c4d0b7a2e5",
"type": "conversation.cleared",
"provider": "whatsapp",
"account_id": "acc_8c21d0",
"occurred_at": "2026-10-29T08:15:00Z",
"data": {
"conversation": {
"id": "8600000000000@s.whatsapp.net",
"type": "user"
},
"delete_media": true,
"event": { "kind": "conversation_cleared" }
}
}
Tra cứu cục bộ bằng tổ hợp workspace, nhà cung cấp, account_id và data.conversation.id. Giữ nguyên định danh nhận được; không tự dựng từ số điện thoại hoặc gộp các chat có cùng tên. Nhánh xử lý này không được yêu cầu data.message.id, vì đây là sự kiện cuộc trò chuyện.
Ma trận sự kiện theo nhà cung cấp hiện ánh xạ hai sự kiện này cho whatsapp, không phải nhà cung cấp riêng whatsapp-protocol hay mọi kênh khác. Nếu cùng xử lý WhatsApp và Zalo, đừng suy ra hai kênh có cùng khả năng chỉ vì chung cấu trúc webhook. Ma trận mô tả khả năng của bộ phân tích, không bảo đảm mọi tài khoản hay môi trường phía nền tảng đều phát sự kiện.
Tách ba loại trạng thái trong ứng dụng
Hãy quyết định sản phẩm cam kết điều gì trước khi triển khai dọn dữ liệu. Hộp thư phản chiếu có thể ẩn lịch sử theo tài khoản, trong khi hồ sơ vụ việc được quản lý riêng có thể chịu quy định lưu trữ khác. Giải thích điều này cho nhân viên thay vì âm thầm coi thao tác dọn chat là “không có gì xảy ra” hoặc “xóa mọi hồ sơ nghiệp vụ”.
Lưu riêng các khái niệm sau:
- Hiển thị trong danh sách: cuộc trò chuyện có xuất hiện trong giao diện phản chiếu hay không.
- Hiển thị lịch sử và tiến độ dọn: nội dung cũ nào bị ẩn, bản sao thuộc quyền quản lý của bạn nào còn cần xử lý.
- Tiếp nhận tin nhắn tương lai: khi nào hoạt động mới được mở lại cuộc trò chuyện mà không khôi phục lịch sử cũ.
Đây là khái niệm lưu trữ cục bộ được đề xuất, không phải trường webhook mới. Giữ một dấu mốc tối thiểu theo đúng phạm vi và quyết định dọn dữ liệu, thay vì xóa mọi thông tin định danh cuộc trò chuyện. Nếu không, lô lịch sử đến muộn có thể tạo lại các bản ghi hiển thị.
Với cả hai loại sự kiện, tuân thủ hợp đồng phân phối webhook: cấu hình signing_secret, kiểm tra HMAC-SHA256 trên X-Device-Timestamp, dấu chấm và phần thân yêu cầu nguyên gốc; đồng thời kiểm tra độ mới của timestamp. Trong một giao dịch cục bộ, chống trùng sự kiện thông thường, ghi thay đổi hiển thị và đưa công việc dọn vào hàng đợi. Trả 2xx sau khi lưu bền vững, không cần chờ mọi hệ thống ngoài hoàn tất.
Đừng để tải lịch sử hủy quyết định đã áp dụng
Thứ tự phân phối không được bảo đảm. occurred_at ghi thời điểm sự kiện, nhưng hợp đồng dọn/xóa không định nghĩa nó là ranh giới chính xác cho mọi tin nhắn bị ảnh hưởng. Thời điểm HTTP đến cũng không chứng minh nội dung là mới.
| Dữ liệu đến sau | Xử lý đề xuất khi quy tắc ẩn còn hiệu lực |
|---|---|
| Gửi lại cùng sự kiện dọn hoặc xóa | Giữ quyết định, tiếp tục phần dọn còn dang dở |
| Lô lịch sử chứa nội dung đã ẩn | Không tự động hiển thị lại |
| Sự kiện trực tiếp chứa ID tin nhắn đã ẩn | Tiếp tục ẩn |
| Tin nhắn có vẻ mới nhưng quan hệ với lần dọn chưa rõ | Tạm giữ khỏi trả lời tự động và kiểm tra phạm vi |
| Hoạt động mới đã được xác nhận | Mở lại theo chính sách đã công bố, không khôi phục lịch sử cũ |
ID đã biết giúp bảo vệ nội dung đã lưu, nhưng không nhận diện được tin nhắn cũ chưa từng đến hệ thống. Khi thiếu ranh giới đáng tin cậy, hãy chọn kiểm tra rõ ràng hoặc ẩn thận trọng, không tuyên bố có thể dựng lại trình tự thời gian hoàn hảo. ID sự kiện mới không tự chứng minh nội dung tin nhắn mới.
Nếu hộp thư hỗ trợ tải lịch sử, đưa chính sách này vào luồng hợp nhất trong hướng dẫn tải lịch sử WhatsApp theo yêu cầu. Cần hợp nhất theo từng tin nhắn con; chống trùng chỉ bằng ID sự kiện ngoài cùng có thể bỏ mất phần dữ liệu hợp lệ. Tải lịch sử không được ngầm đặt lại quyết định dọn.
Dọn phương tiện và kiểm thử nghiệm thu
delete_media=true có nghĩa phương tiện cục bộ cũng đã được dọn hoặc xóa. Nó không xác nhận xóa tệp bạn tải xuống, chỉ mục tìm kiếm, ngữ cảnh AI hay bản chuyển tiếp. Ngược lại, false cũng không cho phép lưu mọi thứ vô thời hạn. Áp dụng chính sách lưu giữ và truy cập đã công bố; theo dõi việc dọn riêng với xác nhận webhook.
Kiểm thử bằng tài khoản bạn kiểm soát:
- Sau khi dọn, mục cuộc trò chuyện còn nhưng nội dung bị ẩn không xuất hiện trong tìm kiếm.
- Sau khi xóa, danh sách phản chiếu bỏ cuộc trò chuyện mà không chặn liên hệ hay yêu cầu rời nhóm.
- Lô lịch sử cũ hoặc sự kiện lặp không âm thầm khôi phục nội dung.
- Hoạt động mới được xác nhận có thể mở lại chat nhưng không mang theo lịch sử cũ.
- Lỗi dọn phương tiện được hiển thị là chưa hoàn tất, không phải đã xóa sạch.
Đây là các bài kiểm thử đề xuất, không phải kết quả đã đạt được. UnifyPort là giao diện không chính thức, không bảo đảm phát lại sự kiện bị lỡ và không có REST API đọc trả về lịch sử tin nhắn. Không nhận được sự kiện không chứng minh rằng không có thay đổi cục bộ.
Câu hỏi thường gặp
conversation.deleted có xóa tin nhắn phía người kia không?
Không. Tài liệu định nghĩa việc xóa cuộc trò chuyện cục bộ ở tài khoản kết nối, không phải xóa với mọi người.
conversation.cleared có nghĩa tài khoản đã rời nhóm không?
Không. Tài liệu nói rõ tư cách thành viên nhóm không thay đổi.
Có thể suy ra API cho nút dọn chat từ các sự kiện này không?
Không. Chúng mô tả kết quả quan sát, không phải thao tác gửi yêu cầu dọn hoặc xóa. Đừng tạo endpoint từ tên sự kiện.
Bước tiếp theo và nguồn
Đọc tài liệu conversation.cleared, xác định quy tắc hiển thị, lưu giữ và mở lại trước khi kết nối với thao tác xóa dữ liệu.
Nguồn được kiểm tra ngày 2026-10-29:
Biến tích hợp nhắn tin thành một pipeline sản phẩm ổn định.
Bắt đầu bằng cách gửi qua một API, rồi đưa mọi tin nhắn inbound trở lại hệ thống kinh doanh bằng sự kiện chuẩn.