Workflow từ lead mới đến routing người Sale tư vấn và follow-up có consent
Tình huống thật khi webhook được gửi lại
Trong một buổi webinar, form đăng ký đẩy sự kiện vào CRM nhưng mạng chậm khiến webhook retry ba lần. Cùng lúc, Zalo OA gửi callback trạng thái muộn và Google Sheets của đội nhận thêm một dòng import. Kết quả là một lead DEMO xuất hiện ở ba hàng đợi, hai nhân viên cùng được tạo task và SLA bắt đầu từ ba mốc khác nhau. Vấn đề nằm ở orchestration, không nằm ở cách viết tin.
Workflow AI cho Nhân viên Sale trong bài này bao phủ tiếp nhận sự kiện, chống trùng, phân loại theo rule, routing cho đúng nhân viên, bàn giao phiên tư vấn và tạo task follow-up theo consent. Agent chỉ chuẩn hóa metadata, áp rule đã duyệt và tạo phiếu DRAFT có nguồn. Nó không tự suy diễn nhu cầu, không tư vấn khách, không viết cam kết và không gửi. Nhân viên Sale đọc hồ sơ nguồn, trực tiếp tư vấn, ghi kết quả rồi quyết định có follow-up hay không.
Việc giao cho AI và điểm bàn giao cho người Sale
AI có thể kiểm schema sự kiện, chuẩn hóa kênh, giữ source_event_id, phát hiện trường thiếu và đề xuất nhóm routing từ rule có nguồn; nhãn này dùng để chuyển việc, không phải điểm khả năng mua. Agent chuẩn bị phiếu bàn giao gồm owner đề xuất, due_at, consent_ref, source_refs, câu hỏi còn thiếu và status DRAFT. Với hàng lỗi, AI nhóm error_code và tạo checklist phục hồi cho người vận hành.
AI không tự gộp lead nghi trùng, không tự thay owner, không đổi SLA, không xác nhận consent và không đưa lời khuyên tư vấn. Quản lý Sale duyệt taxonomy, routing rule cùng SLA; nhân viên được giao xác nhận ngữ cảnh, thực hiện tư vấn và ghi outcome. Task follow-up chỉ được tạo khi outcome có người xác nhận và consent còn phù hợp; mọi action WRITE hoặc SEND cần người có quyền cùng adapter có idempotency key.
Dữ liệu cần chuẩn bị và state machine
Mỗi event có source_event_id, channel, occurred_at, received_at, payload_version, lead_ref DEMO, consent_ref và trace_id. Bản ghi lead có canonical_lead_id sau khi người phụ trách xác nhận; các candidate duplicate chỉ liên kết ở bảng REVIEW. Phiếu tư vấn cần owner, mục đích, dữ kiện đã xác nhận, câu hỏi còn mở, kênh consent và SLA; task follow-up thêm outcome_ref, lý do liên hệ, due_at cùng source_refs.
State machine tối thiểu gồm QUARANTINE, NORMALIZED, DEDUPE_REVIEW, ROUTING_REVIEW, CONSULTATION_DUE, CONSULTATION_COMPLETE, FOLLOWUP_REVIEW, FOLLOWUP_DUE, CLOSED và ERROR. STOP_CONTACT chặn mọi transition tạo task liên hệ. Mỗi transition lưu rule_version, actor, consent_ref và outcome_ref nếu có. Dữ liệu từ MISA AMIS, Zalo, Messenger hoặc fanpage chỉ được dùng theo quyền; Google Sheets phù hợp cho staging DEMO, không phải nguồn trạng thái duy nhất khi chạy nhiều worker.
Workflow sáu bước từ tiếp nhận đến follow-up có consent
Bước 1 — Tiếp nhận và chống lặp: kiểm schema, quyền, source_event_id rồi tra event key; lỗi chuyển QUARANTINE, sự kiện đã xử lý trả record cũ. Bước 2 — Dedupe review: tạo candidate pair từ khóa kỹ thuật; người Sale quyết định gộp hoặc giữ riêng.
Bước 3 — Phân loại và routing: áp taxonomy cùng rule đã duyệt để đề xuất owner, mục đích tư vấn và SLA; thiếu căn cứ chuyển ROUTING_REVIEW. Bước 4 — Người Sale tư vấn: hệ thống tạo CONSULTATION_DUE có nguồn và consent; nhân viên xác nhận ngữ cảnh, trực tiếp trao đổi rồi ghi outcome, không để AI tư vấn thay.
Bước 5 — Follow-up có consent: từ outcome đã xác nhận, hệ thống tạo FOLLOWUP_REVIEW hoặc FOLLOWUP_DUE; người Sale chọn nội dung, duyệt kênh và chủ động gửi. STOP_CONTACT, consent lệch mục đích hoặc outcome thiếu đều chặn task. Bước 6 — Đóng vòng và phục hồi lỗi: lưu kết quả, cập nhật state, schedule mốc đã duyệt và ghi log; timeout phải tra target proof trước retry, lỗi một phần chuyển ERROR_PARTIAL.

Năm prompt mẫu cho người thiết kế workflow
Prompt 1 kiểm envelope event. Prompt 2 đặc tả khóa idempotency. Prompt 3 kiểm phân loại cùng routing theo rule. Prompt 4 tạo phiếu bàn giao tư vấn có consent. Prompt 5 lập task follow-up và nhánh phục hồi lỗi. Bộ prompt chỉ tạo đặc tả cùng task DRAFT; không đọc vị khách, không tư vấn, không chọn tone và không soạn tin gửi.
Các prompt chỉ sinh JSON đặc tả, phiếu bàn giao hoặc task DRAFT; không chạy lệnh. Bộ DEMO phải có duplicate, routing xung đột, owner vắng, consent lệch kênh, STOP_CONTACT, timeout và outcome chưa xác nhận. IT duyệt idempotency cùng retry; quản lý Sale duyệt rule và SLA; nhân viên Sale xác nhận duplicate, thực hiện tư vấn và quyết định follow-up.
Công cụ phù hợp và kiến trúc kết nối
Form, landing page, Zalo OA, Messenger và fanpage phát event; orchestration layer tiếp nhận; CRM/MISA AMIS giữ record; Base.vn có thể nhận task; Google Sheets chỉ dùng cho staging và reconciliation. Event bus hoặc queue giúp tách ingest khỏi xử lý. Mỗi adapter trả target_id và proof.
Tài khoản dịch vụ có quyền tối thiểu, secret trong kho, timeout, retry budget và circuit breaker. Idempotency store lưu event key cùng target_id. Dead-letter queue giữ mã lỗi, trace_id và owner, không nhân bản nội dung nhạy cảm. Dashboard tách duplicate, routing, SLA và connector error.

AI làm gì và người duyệt làm gì
AI kiểm metadata, áp rule được cung cấp, tạo candidate duplicate, đề xuất nhóm routing và chuẩn bị phiếu tư vấn hoặc task follow-up DRAFT. Agent không sở hữu canonical record, consent, nội dung tư vấn hay SLA policy. Khi nguồn mâu thuẫn hoặc outcome chưa xác nhận, nó ghi REVIEW thay vì tự chọn.
Nhân viên Sale xác nhận duplicate, nhận routing, trực tiếp tư vấn, ghi outcome và quyết định follow-up; quản lý Sale sở hữu taxonomy, routing rule cùng SLA. IT sở hữu state machine, adapter và retry; chủ dữ liệu xác nhận retention; tuân thủ xác nhận consent. Người phụ trách duyệt mọi nội dung và chủ động thực hiện hành động với khách.
Sai lầm và nhánh lỗi cần tránh
Dùng số điện thoại làm khóa duy nhất dễ gộp nhầm. Dùng thời điểm nhận thay thời điểm xảy ra làm SLA lệch. Retry ngay khi timeout có thể tạo task kép. Cho nhiều worker lấy cùng record mà không lock gây hai owner. Mỗi lỗi cần state và proof riêng.
OUT_OF_ORDER xảy ra khi callback cũ đến sau state mới. ERROR_PARTIAL xảy ra khi CRM đã ghi nhưng task chưa tạo. SLA_BREACH chỉ cảnh báo owner, không tự gửi. Khi connector lỗi, circuit breaker dừng gọi và đưa event vào hàng lỗi. Trước replay, người vận hành tra idempotency store và hệ thống đích.
Triển khai cá nhân, đội và doanh nghiệp
Cá nhân mô phỏng 20 event với Sheet, chưa ghi CRM. Đội nhỏ thêm một adapter, tạo phiếu CONSULTATION_DUE cùng task FOLLOWUP_REVIEW và để người Sale ghi outcome DEMO. Test duplicate, routing xung đột, owner vắng, consent block, STOP_CONTACT, timeout và task quá hạn trước đường thuận.
Doanh nghiệp quản lý schema, rule, state và prompt theo version. Theo dõi duplicate bị chặn, record REVIEW, SLA breach, retry bị ngăn, task kép và ERROR_PARTIAL. Không dùng dashboard để dự báo mua hàng. Chỉ mở worker song song khi lock, idempotency và replay đã được nghiệm thu.
Kết quả đầu ra mẫu và câu hỏi thường gặp
Kết quả minh họa: EVT-SALE-DEMO-208 dùng event key WEBINAR-208; duplicate đã được ROLE-SALE-OPS xác nhận; routing giao ROLE-SALE-07 một phiếu CONSULTATION_DUE có consent Messenger. Sau outcome_ref OUT-DEMO-08, task FOLLOWUP_REVIEW được tạo; AI không tạo lời tư vấn hoặc message, người Sale duyệt trước mọi liên hệ.
Duplicate có được tự gộp không?
Không. Hệ thống chỉ đưa candidate cùng bằng chứng để người phụ trách xác nhận.
AI có tự tư vấn khi lead được routing không?
Không. Routing chỉ tạo phiếu có nguồn; nhân viên Sale xác nhận ngữ cảnh, trực tiếp tư vấn và chịu trách nhiệm nội dung.
Timeout có được retry ngay không?
Không. Phải tra idempotency key và target proof trước.
FOLLOWUP_DUE có tự gửi tin không?
Không. Trạng thái chỉ tạo task theo outcome và consent; người Sale chọn nội dung, duyệt kênh rồi chủ động gửi.
Để rà state machine và idempotency, hãy liên hệ NganAds tại trang tư vấn hoặc số 0983543063.
Ma trận kiểm thử orchestration trước khi mở worker: nhóm cần ít nhất tám ca. Ca một nhận event hợp lệ đúng một lần. Ca hai nhận cùng source_event_id ba lần. Ca ba có hai lead_ref giống metadata nhưng source khác. Ca bốn callback đến sai thứ tự. Ca năm owner rule trả hai kết quả. Ca sáu phiếu tư vấn chưa có consent đúng mục đích. Ca bảy STOP_CONTACT xuất hiện sau outcome nhưng trước follow-up. Ca tám CRM ghi thành công còn Base.vn tạo task thất bại. Với mỗi ca, ghi state mong đợi, proof cần tra, hành động bị cấm, owner và cách đóng lỗi. AI chỉ giúp so checklist; người vận hành chạy test và xác nhận kết quả.
Quan sát vận hành: log cần nối trace_id từ event tới canonical record, task và target proof. Metric tối thiểu gồm duplicate prevented, time in routing review, consultation handoff latency, follow-up consent block, SLA breach, retry blocked, error age và manual recovery count. Cảnh báo phải trỏ tới runbook, không chỉ gửi một mã lỗi qua Zalo. Khi replay, owner ghi lý do, phiên bản rule và kết quả tra hệ thống đích. Dữ liệu quan sát giúp sửa schema hoặc adapter; nó không được dùng để suy đoán ý định mua. Sau mỗi lần thay state machine, đội chạy lại toàn bộ ma trận trên dữ liệu DEMO trước khi triển khai.
Điều kiện nghiệm thu trước khi nối kênh thật: cùng một event phải luôn quy về một kết quả dù được gửi lại; callback cũ không được hạ state mới; STOP_CONTACT phải chặn task liên hệ ở mọi nhánh; phiếu tư vấn phải có owner và consent_ref; follow-up phải có outcome_ref do người Sale xác nhận; timeout không tạo bản ghi hoặc task thứ hai; hàng ERROR_PARTIAL phải có owner, proof và hạn xử lý. Đội lưu ảnh chụp test, trace DEMO và quyết định duyệt theo từng adapter. Chỉ khi toàn bộ điều kiện đạt, quản lý mới cấp quyền WRITE giới hạn. Quyền SEND vẫn nằm ngoài workflow này để nội dung và consent được kiểm tra ở quy trình riêng.