Thực hành n8n đa kênh · Bài 9

Bám đuổi khách đúng chính sách: Messenger, Zalo, SMS, email

Nhắc lại khách đúng lúc giúp chốt đơn; nhắc sai khung, sai giờ, sai người thì Trang bị hạn chế, OA bị chặn gửi và doanh nghiệp vi phạm quy định. Bài viết gom luật từng kênh vào một bảng, rồi dựng "cổng kiểm tra" trong n8n trước mỗi tin. Đối chiếu tài liệu ngày 20–21/10/2026, n8n 2.44.4.

Cập nhật 21/10/2026⏱ 10 phút đọcChecklistTrung cấp

Nhắc khách nhiều hơn chưa chắc bán được nhiều hơn

Một shop thời trang cài workflow tự nhắc mọi khách đã hỏi giá: sau 1 ngày, 3 ngày, 7 ngày, trên cả Messenger, Zalo OA và email. Tuần đầu số tin gửi đi tăng mạnh. Tuần sau, Trang báo lỗi gửi tin, vài khách phàn nàn bị làm phiền, và không ai trả lời được câu "khách này đã đồng ý nhận tin lúc nào?". (Tình huống minh hoạ.)

Bài này là danh sách kiểm tra để bám đuổi khách đúng chính sách: mỗi kênh được gửi khi nào, cần sự đồng ý ra sao, và cách dựng trong n8n để mỗi tin đều qua một cổng kiểm tra. Nhắc theo mốc ngày đã có ở Nhắc lịch và chăm sóc khách theo mốc; bài này lo phần "được gửi hay không".

Bám đuổi khách đúng chính sách là gì?

Bám đuổi khách đúng chính sách là nhắc lại khách tiềm năng chỉ khi kênh còn cho phép, khách đã đồng ý và chưa từ chối, đúng giờ và đúng tần suất; tin nào không qua đủ điều kiện thì dừng hoặc chuyển cho người thật.

Bảng khung gửi tin bám đuổi theo từng kênh: Messenger khung 24 giờ, tới 7 ngày nếu khách đến từ quảng cáo Click-to-Messenger, ngoài khung chỉ dùng thẻ đúng mục đích và không quảng cáo; Zalo OA tin Tư vấn miễn phí trong 48 giờ, 48 giờ đến 7 ngày tính phí, quá 7 ngày OpenAPI không gửi được; SMS quảng cáo 7:00 đến 22:00, tối đa 3 tin mỗi 24 giờ, nhãn QC; email quảng cáo tối đa 3 thư mỗi 24 giờ, nhãn QC đầu tiêu đề, có phần từ chối
Hình: Khung gửi tin từng kênh khi bám đuổi khách (minh hoạ)

Bảng tổng hợp: mỗi kênh được gửi khi nào?

KênhGửi tự do khiNgoài khungGhi chú cho workflow
Messenger24 giờ sau hành động của khách; tới 7 ngày nếu tin đầu tiên đến từ quảng cáo Click-to-Messenger. Tin trong khung được chứa quảng cáo.Chỉ thẻ tin nhắn đúng mục đích, không quảng cáo; HUMAN_AGENT 7 ngày cho nhân viên trả lời thủ côngKhi luật hiện hành yêu cầu, phải cho khách biết đang trò chuyện với dịch vụ tự động
Zalo OATin Tư vấn miễn phí trong 48 giờ kể từ tương tác cuối (từ 1/1/2026)48 giờ đến 7 ngày: 55 đ/tin (10/2026, có thể thay đổi) hoặc trừ hạn mức gói; quá 7 ngày: OpenAPI không gửi đượcQuan tâm OA chỉ cho gửi lời chào; Zalo tự hạn chế luồng gửi có dấu hiệu làm phiền
TelegramChỉ sau khi khách nhắn bot hoặc thêm bot vào nhómBot không tự mở cuộc trò chuyệnDùng cho báo nội bộ, duyệt tin hơn là bám đuổi khách
SMS quảng cáoKhách đã đồng ý trước; 07:00–22:00; tối đa 3 tin mỗi số trong 24 giờKhông gửiNhãn [QC] hoặc [AD] ở đầu; cách từ chối ở cuối; dùng tên định danh
Email quảng cáoKhách đã đồng ý trước; tối đa 3 email mỗi địa chỉ trong 24 giờKhông gửiNhãn [QC] hoặc [AD] đầu tiêu đề; thông tin người gửi; phần từ chối ở cuối thư. Nghị định không đặt khung giờ cho email; gửi trong 07:00–22:00 chỉ là khuyến nghị nên làm

Hai dòng SMS và email theo Nghị định 91/2020/NĐ-CP (Điều 11, 13, 14–20); "trừ khi có thoả thuận khác" với khách như nghị định ghi. Nghị định này điều chỉnh tin nhắn SMS, MMS, USSD, thư điện tử và cuộc gọi; tin qua Zalo, Messenger, Telegram theo chính sách nền tảng cùng Luật Bảo vệ dữ liệu cá nhân.

Nguồn: Meta – Messenger Policy · Zalo – Điều kiện gửi tin Tư vấn · Zalo OA – Tổng quan loại tin · Zalo – Bảng giá OA · Telegram – Bots · Nghị định 91/2020/NĐ-CP

Checklist Messenger

Dựng chatbot và Send API từng bước: Chatbot Facebook Messenger bằng n8n.

Nguồn: Meta – Send API · Meta – Messenger Policy · Meta – Human Agent

Checklist Zalo OA và cảnh báo Zalo cá nhân

Không tự động hoá tài khoản Zalo cá nhân. Điều khoản Zalo mục 4.7 cấm đăng nhập bằng phần mềm bên thứ ba không được Zalo cấp quyền; trang trợ giúp Zalo nêu "Tài khoản tự động (Bot)" là lý do tài khoản bị tạm vô hiệu hoá. Node cộng đồng cho Zalo cá nhân là dự án cộng đồng, chạy toàn quyền trên máy chủ n8n: rủi ro khoá tài khoản và lộ dữ liệu.

Kết nối OA, token và webhook: Kết nối Zalo OA với n8n.

Nguồn: Zalo – Điều kiện gửi tin Tư vấn · Zalo OA – Tin Tư vấn · Zalo – Điều khoản sử dụng · Zalo – Tài khoản bị tạm vô hiệu hoá

Checklist SMS và email quảng cáo

Bài này không hướng dẫn node SMS riêng; cách thường dùng là gọi API của nhà cung cấp SMS bằng HTTP Request, khoá API để trong Credentials. Cấu hình email và giới hạn gửi của Gmail: Gửi email tự động bằng n8n.

Nguồn: Nghị định 91/2020/NĐ-CP · Google – Sender guidelines

Sự đồng ý theo Luật Bảo vệ dữ liệu cá nhân 91/2025/QH15

Đang cập nhật: Bộ Công an đã lấy ý kiến dự thảo nghị định mới về chống tin nhắn rác, thư điện tử rác, cuộc gọi rác; Nghị định 330/2026/NĐ-CP về xử phạt trong lĩnh vực an ninh mạng và bảo vệ dữ liệu cá nhân đã có bài giới thiệu. Aduca đang cập nhật, chưa đối chiếu toàn văn hai văn bản này. Thông tin pháp lý trong bài là kiến thức chung, không phải tư vấn pháp lý; hãy hỏi luật sư cho trường hợp của bạn.

Nguồn: Bộ Công an – Luật 91/2025/QH15 · Bộ Công an – hiệu lực từ 01/01/2026 · Chính phủ – Dự thảo tiêu chí tin nhắn rác · Chính phủ – Nghị định 330/2026/NĐ-CP

Dựng cổng kiểm tra trong n8n

Thiết kế dưới đây ghép từ các quy định ở trên, không phải mẫu chính thức của n8n (ví dụ minh hoạ). Ý chính: mọi nhánh gửi đi đều qua cùng một cổng.

  1. Bảng khách: dùng Data tables của n8n hoặc Google Sheets, mỗi khách một dòng với các cột dưới. Data tables có thao tác Upsert, If Row Exists để cập nhật trạng thái.
  2. Schedule Trigger chạy mỗi giờ trong ngày, đọc khách đến mốc nhắc. Đặt múi giờ workflow là Asia/Ho_Chi_Minh (hoặc biến GENERIC_TIMEZONE khi tự cài); mặc định n8n là America/New York.
  3. If làm cổng: còn trong khung kênh, đã đồng ý, chưa từ chối, đúng giờ, chưa vượt tần suất. Mẫu biểu thức cho Messenger ở dưới; mỗi kênh một ngưỡng riêng.
  4. Nhánh đạt: Switch theo kênh, gửi, rồi cập nhật da_gui_24h.
  5. Nhánh không đạt nhưng khách đáng chăm sóc: gửi cho nhân viên qua Telegram Send and Wait for Response (nút Approve, Decline) để người quyết định.
  6. Workflow nhận tin đến: khách nhắn "dừng", "hủy", "đừng nhắn nữa" thì ghi tu_choi_luc ngay.
Cổng kiểm tra trước mỗi tin bám đuổi trong n8n: Schedule Trigger đọc bảng khách, node If kiểm tra bốn điều kiện còn trong khung kênh, có đồng ý, chưa từ chối, đúng giờ và tần suất; đạt thì Switch theo kênh và gửi; không đạt thì chuyển nhân viên duyệt qua Telegram Send and Wait hoặc dừng hẳn
Hình: Mọi tin bám đuổi đi qua cùng một cổng kiểm tra (minh hoạ)
Cột bảng khách tối thiểuTạo các cột này trong Data table hoặc Google Sheets; thay phần trong <…>
ma_khach        <mã nội bộ, không dùng số điện thoại làm mã>
kenh            messenger | zalo_oa | sms | email | telegram
tuong_tac_cuoi  <thời điểm ISO, vd 2026-10-21T09:15:00+07:00>
dong_y          true | false
dong_y_noi_dung <khách đồng ý nhận gì, qua đâu, lúc nào>
tu_choi_luc     <để trống nếu chưa từ chối>
da_gui_24h      <số tin quảng cáo đã gửi trong 24 giờ qua>
Biểu thức cho node If (Messenger, 24 giờ)Copy rồi dán vào ô điều kiện của node If; đổi số giờ theo kênh
{{ !$json.tu_choi_luc
   && $json.dong_y === true
   && $now.diff(DateTime.fromISO($json.tuong_tac_cuoi), 'hours').toObject().hours < 24
   && $now.hour >= 7 && $now.hour < 22 }}

Điều kiện giờ 7–22 trong biểu thức là quy ước tự đặt để không nhắn khách ban đêm, không phải quy định của Meta. Cột dong_y nên là kiểu boolean trong Data table; nếu dùng Google Sheets, giá trị đọc về có thể là chuỗi, hãy xem panel OUTPUT của node đọc bảng rồi sửa phép so cho khớp (ví dụ === 'true').

Lưu ý: node Wait luôn dùng giờ máy chủ n8n, bỏ qua múi giờ của workflow. Muốn chặn giờ gửi, kiểm tra giờ bằng biểu thức ngay trước node gửi thay vì chỉ dựa vào thời gian chờ.

Nguồn: Data tables · Data Table node · Schedule Trigger · Wait node · Workflow settings – Timezone · Ngày giờ với Luxon · Telegram node

Kiểm tra đã chạy đúng

Tạo 6 khách thử (ví dụ minh hoạ), chạy workflow bằng tay và đối chiếu:

Khách thửKết quả mong đợi
Messenger, tin cuối 3 giờ trước, đã đồng ýĐược gửi, da_gui_24h tăng 1
Messenger, tin cuối 30 giờ trướcKhông gửi tự động, chuyển nhân viên duyệt
Zalo OA, tương tác cuối 9 ngày trướcKhông gửi
Email, đã có tu_choi_lucKhông gửi, kể cả có mốc nhắc
SMS, chạy thử lúc 22:30Không gửi, chờ khung 07:00–22:00
Email, đã gửi 3 thư trong 24 giờKhông gửi thư thứ tư

Lỗi thường gặp

Hiện tượngNguyên nhân thường gặpCách xử lý
Tin gửi lúc nửa đêmMúi giờ mặc định America/New YorkĐặt múi giờ workflow hoặc GENERIC_TIMEZONE
Meta trả mã lỗi 100 khi gửi ngoài khungDùng thẻ đã bị bỏ hoặc tham số saiBỏ nhánh gửi bằng thẻ, chuyển người
Meta trả mã lỗi 613Vượt giới hạn tốc độGiãn nhịp gửi, chia lô bằng Loop Over Items và Wait
Khách đã từ chối vẫn nhận emailTừ chối ghi ở kênh khác, bảng không gộp theo kháchMột cột từ chối dùng cho mọi kênh
Không chứng minh được khách đồng ýChỉ lưu "true", không lưu nội dung và thời điểmLưu cách thu, thời điểm, nội dung đã đồng ý

Nguồn: Meta – mã lỗi Send API · n8n – múi giờ

An toàn & chính sách

Nguồn: Meta – thông báo trải nghiệm tự động · Báo Đại biểu Nhân dân – Điều 11 Luật Trí tuệ nhân tạo

Cách Aduca làm (mức nguyên tắc)

Aduca đang vận hành trên n8n luồng tự chăm sóc khách theo mốc, nhắc lịch khai giảng và báo Sale khách nóng qua Telegram, cùng chatbot tư vấn trên Zalo OA, Messenger và website đọc kịch bản trong Second Brain. Bài viết chỉ kể ở mức nguyên tắc, không nêu dữ liệu khách hay cấu hình nội bộ; checklist trên là kiến thức chung để bạn tự đối chiếu với hệ thống của mình.

Bắt đầu từ đâu?

  1. Hôm nay: thêm cột đồng ý, từ chối, tương tác cuối vào bảng khách hiện có.
  2. Tuần này: dựng node If làm cổng cho một kênh, chạy 6 khách thử ở trên.
  3. Sau đó: mở rộng từng kênh, giữ người duyệt cho mọi tin ngoài khung; theo dõi lỗi bằng error workflow (Giám sát lỗi, sao lưu, phiên bản).

Đọc tiếp: AI Agent đọc Second Brain →

Câu hỏi thường gặp

Hết 24 giờ trên Messenger, bot có gửi tin nhắc khách được không?

Bot không nên gửi. Ngoài khung tiêu chuẩn, Meta chỉ cho dùng thẻ tin nhắn đúng mục đích và không mang tính quảng cáo; ba thẻ CONFIRMED_EVENT_UPDATE, ACCOUNT_UPDATE, POST_PURCHASE_UPDATE đã bị bỏ từ 27/04/2026. Thẻ HUMAN_AGENT chỉ dành cho nhân viên trả lời thủ công. Cách an toàn là chuyển việc cho người thật hoặc dùng sản phẩm Meta dành cho việc đó.

Zalo OA gửi tin Tư vấn cho khách cũ được không?

Qua OpenAPI, chỉ gửi được cho người có tương tác với OA trong 7 ngày. Trong 48 giờ kể từ tương tác cuối, tin Tư vấn miễn phí; từ 48 giờ đến 7 ngày, tin tính phí hoặc trừ hạn mức của gói. Quá 7 ngày, workflow n8n không gửi được tin Tư vấn.

Khách im lặng, không trả lời tin xin phép thì có coi là đồng ý không?

Không. Điều 9 Luật Bảo vệ dữ liệu cá nhân 91/2025/QH15 ghi rõ: "Sự im lặng hoặc không phản hồi không được coi là sự đồng ý." Workflow chỉ được coi khách đã đồng ý khi có bản ghi rõ ràng: khách bấm, điền hoặc trả lời đồng ý.

Nghị định 91/2020 có áp dụng cho tin Zalo, Messenger không?

Phạm vi Nghị định 91/2020 là quảng cáo qua tin nhắn SMS, MMS, USSD, thư điện tử và cuộc gọi. Với Zalo, Messenger, Telegram, bạn theo chính sách của từng nền tảng và Luật Bảo vệ dữ liệu cá nhân. Bài viết không phải tư vấn pháp lý.

Khách nhắn "đừng nhắn nữa" thì workflow phải làm gì?

Ghi ngay trạng thái từ chối và thời điểm vào bảng khách, dừng mọi nhánh nhắc lại trên mọi kênh, chỉ gửi một tin xác nhận không quảng cáo nếu kênh đó yêu cầu. Lưu bản ghi đồng ý và từ chối để đối chiếu khi cần.

Tài liệu liên quan

Xem tất cả tài liệu hướng dẫn →

Bước tiếp theo

Đăng ký tư vấn 1:1

Chuyên gia Aduca cùng bạn xem quy trình hiện tại, chọn việc nên giao cho AI Agent trước và cách kiểm soát rủi ro.

Về AducaChuỗi bài do đội ngũ Aduca biên soạn từ kinh nghiệm đào tạo và triển khai AI Agent cho Marketing – Sales. Aduca Academy do Nguyễn Đức – Chủ tịch Aduca Group sáng lập; ông kinh doanh thương mại điện tử từ 2012, chạy quảng cáo Facebook từ 2014 và đào tạo từ 2016. Phần thực hành từng bước nằm trong các thư mục OpenClaw, Hermes Agent, Claude, ChatGPT và n8n, Second Brain.

Nguồn tham khảo

Lịch sử cập nhật

Miễn trừ trách nhiệm

Bài viết thuộc chuỗi kiến thức của Công ty Cổ phần Giáo dục Aduca, chia sẻ miễn phí cho mục đích học tập. Thông tin kỹ thuật đối chiếu với tài liệu chính thức của các dự án và nền tảng tại ngày cập nhật (có ghi nguồn); phần nhận định là quan điểm của Aduca. OpenClaw, Hermes Agent, Claude (thương hiệu của Anthropic), ChatGPT (thương hiệu của OpenAI), n8n (thương hiệu của n8n GmbH), các phần mềm chạy model và các model AI mở (Ollama, LM Studio, Qwen, Gemma, gpt-oss…), Obsidian, Notion, phương pháp Building a Second Brain (Tiago Forte) cùng các phần mềm, dịch vụ nêu trong bài thuộc về chủ sở hữu tương ứng, không thuộc Aduca; Aduca không phải đối tác chính thức của các công ty này. Tính năng, gói và giá có thể thay đổi bất cứ lúc nào – hãy kiểm tra trang chính thức trước khi mua. Kết quả áp dụng phụ thuộc quy trình, dữ liệu và con người của từng doanh nghiệp; bài viết không cam kết doanh thu hay hiệu quả cụ thể. © 2026 Aduca — được trích dẫn khi ghi rõ nguồn aduca.vn.