Khách hàng Việt Nam không vào website của bạn để đặt câu hỏi. Họ nhắn Zalo OA, họ comment rồi inbox trên Facebook, và chỉ thỉnh thoảng mới dùng widget chat trên cửa hàng của bạn. Xây ba con bot riêng cho ba kênh nghĩa là chi phí bảo trì gấp ba và câu trả lời chắc chắn sẽ lệch nhau. Kiến trúc đúng là một bộ não chăm sóc duy nhất — một dịch vụ LLM duy nhất — đằng sau các adapter kênh mỏng, để cùng một kho kiến thức, cùng một bộ chính sách và cùng một logic chuyển tiếp phục vụ mọi kênh.
Kiến trúc gói gọn trong một sơ đồ bằng chữ
- Adapter kênh — mỗi nền tảng một adapter (webchat, webhook Zalo OA, webhook Messenger). Mỗi adapter làm đúng ba việc: chuẩn hóa tin nhắn đến về một định dạng chung, thực thi các ràng buộc chính sách của nền tảng đó, và kết xuất câu trả lời theo các loại tin nhắn của nền tảng đó. Không có gì khác nằm ở đây.
- Bộ não — một dịch vụ duy nhất giữ trạng thái hội thoại, truy xuất tài liệu nền, gọi công cụ (tra cứu đơn hàng, bảng cước vận chuyển), sinh câu trả lời, và quyết định khi nào cần chuyển tiếp.
- Tầng kiến thức — danh mục sản phẩm, bảng cước vận chuyển, chính sách đổi trả và FAQ của bạn, được lập chỉ mục để truy xuất. Thông tin sản phẩm lấy từ chính các bảng dữ kiện có cấu trúc đang vận hành các trang sản phẩm do AI tạo của bạn, nên chat và trang sản phẩm không bao giờ có thể mâu thuẫn nhau.
- Tầng công cụ — tra cứu trực tiếp: trạng thái đơn hàng từ Shopify, trạng thái vận đơn từ hãng vận chuyển (được cấp dữ liệu bởi các webhook mô tả trong hướng dẫn tự động hóa ViettelPost của chúng tôi), mức tồn kho.
- Hàng đợi chuyển tiếp — một hộp thư cho người thật, nhận toàn bộ nội dung hội thoại, các tài liệu mà bot đã truy xuất, và lý do chuyển tiếp.
Grounding: khác biệt giữa một con bot và một khoản nợ tiềm ẩn
Một LLM không được neo vào dữ liệu sẽ trả lời câu "sau 30 ngày em có đổi trả được không?" bằng bất cứ thứ gì nghe có vẻ hợp lý. Đôi khi nó tự bịa ra một chính sách hào phóng mà bạn chưa bao giờ đưa ra. Một lời hứa hoàn tiền do bot bịa không phải là một ticket lỗi — đó là tiền thật, và có thể là một bài đăng công khai trên Facebook về việc shop của bạn nuốt lời.
Câu hỏi về trạng thái đơn hàng tuân theo cùng nguyên tắc, nhưng với công cụ thay vì tài liệu: bot không bao giờ nêu một ngày giao hàng mà nó không vừa tra cứu xong. "Đơn của anh/chị vừa rời hub Đà Nẵng sáng nay" đến từ dữ liệu webhook của hãng vận chuyển, hoặc không được nói ra chút nào.
Xưng hô: chi tiết quyết định thành bại của chăm sóc khách hàng tiếng Việt
Tiếng Việt không có đại từ "you" trung tính. Bot phải chọn một cách xưng hô — em/anh, em/chị, mình/bạn — và chọn sai sẽ nghe hoặc thô lỗ hoặc lố bịch. Mặc định khả thi: mở đầu bằng cách xưng hô lịch sự, hơi khiêm nhường kiểu shop (em cho shop, anh/chị cho khách), suy ra sở thích của khách từ cách họ gọi bot, và giữ nhất quán trong suốt phần còn lại của hội thoại. Đây là vấn đề của system prompt và trạng thái hội thoại, không phải thứ để hy vọng mô hình tự đoán đúng từng tin nhắn. Hãy kiểm thử với người Việt bản xứ; đó là điều đầu tiên khách hàng nhận ra và điều cuối cùng một lập trình viên nói tiếng Anh nghĩ tới.
Chính sách nền tảng chính là yêu cầu kiến trúc
Zalo OA: cửa sổ 48 giờ và mẫu tin đã duyệt
Zalo Official Account có thể trả lời tự do trong cửa sổ chăm sóc (48 giờ kể từ tin nhắn cuối của người dùng). Ngoài cửa sổ đó, bạn chỉ được gửi mẫu tin đã được duyệt trước (ZNS) — và mẫu tin cần thời gian chờ duyệt. Adapter phải theo dõi cửa sổ theo từng hội thoại, và khi cửa sổ đóng, hoặc dùng một mẫu đã duyệt hoặc xếp tin nhắn vào hàng đợi cho đến khi khách nhắn lại. Hãy thiết kế các thông báo chủ động (xác nhận đơn, cập nhật vận đơn) dưới dạng mẫu ZNS ngay từ ngày đầu.
Messenger: chính sách 24 giờ
Cửa sổ nhắn tin tiêu chuẩn của Facebook Messenger là 24 giờ kể từ tin nhắn cuối của người dùng, với các ngoại lệ gắn thẻ cho một số trường hợp cụ thể như cập nhật sau mua hàng. Cùng mô hình adapter, khác đồng hồ. Bộ não không bao giờ cần biết về cả hai cửa sổ — nó chỉ phát ra một ý định ("thông báo cho khách rằng đã giao hàng"), và mỗi adapter tự quyết định đó là tin nhắn tự do, một mẫu tin, hay một mục xếp hàng đợi.
Ghi log mọi thứ
Mọi hội thoại — tin nhắn của khách, các đoạn trích đã truy xuất, các lệnh gọi công cụ, câu trả lời được sinh ra, các lượt chuyển tiếp — đều được ghi vào kho lưu trữ kiểm toán. Đó là bằng chứng khi có tranh chấp, là dữ liệu huấn luyện để cải thiện truy xuất, và trong trường hợp xấu nhất là bằng chứng chính xác về việc bot đã hứa gì và tại sao.
Đo lường xem nó có thực sự hiệu quả không
Chỉ số hàng đầu là tỷ lệ tự xử lý (deflection rate): tỷ lệ hội thoại được giải quyết mà không cần người thật. Nhưng con số deflection thô sẽ nói dối — một con bot cứ chặn họng khách sẽ "tự xử lý" đẹp mắt. Hãy ghép nó với những chỉ số trung thực đi kèm:
- Tự xử lý có xác nhận giải quyết — tin nhắn cuối của khách cho thấy câu trả lời hiệu quả, hoặc đơn giản là họ hoàn tất mua hàng.
- Chất lượng chuyển tiếp — khi người thật tiếp quản, họ có đủ mọi thứ cần thiết không, hay phải hỏi lại khách từ đầu?
- Tỷ lệ mâu thuẫn — lấy mẫu hàng tuần: những câu trả lời xung đột với văn bản chính sách. Mục tiêu: bằng không, vì grounding biến điều đó thành thuộc tính cấu trúc.
Một con bot được neo dữ liệu tốt trên ba kênh này thường xử lý được phần lớn câu hỏi lặp đi lặp lại — "phí ship về Cần Thơ?", "đơn em tới đâu rồi?", bảng size, các bước đổi trả — và chỉ chuyển cho người thật những hội thoại thực sự cần phán đoán. Đó chính là mục tiêu: không thay thế nhân viên chăm sóc của bạn, mà đảm bảo sự tập trung của họ dồn vào nơi quan trọng, đúng như cách phần còn lại của hệ thống tự động hóa trọn gói làm cho giao vận và hóa đơn.