Chatbot AI & Zalo OA
Anh/chị dựng một "nhân viên AI" duy nhất, trả lời khách hàng tự động trên website, Facebook Messenger, Zalo OA và app nội bộ — đồng thời quản lý toàn bộ hộp thoại Zalo (inbox, follower, broadcast) trong cùng một màn hình OpsOne AI.
1. Giới thiệu
OpsOne AI tích hợp một chatbot AI dùng chung cho cả 4 kênh tiếp xúc khách hàng:
- Website widget — nhúng vào landing/blog của khách, bot trả lời ngay khi visitor mở chat.
- Facebook Messenger — webhook gắn vào Fanpage, bot trả thay nhân viên ngoài giờ và lúc cao tải.
- Zalo OA — tích hợp đầy đủ OAuth v4 PKCE, đồng bộ follower, gửi/nhận tin nhắn, broadcast khuyến mãi.
- In-app — chatbot bên trong app OpsOne AI để nhân viên hỏi nhanh quy trình, tra cứu khách hàng, công nợ, tồn kho.
Cùng một system prompt + cùng một bộ tool + cùng một Knowledge Base → trả lời nhất quán mọi kênh. Khi nhân viên cần can thiệp, AI nhường lại cho người và để lại nguyên ngữ cảnh hội thoại.
2. Thuật ngữ
lookup_order → lấy trạng thái → trả lời "Đơn 1234 đang giao, dự kiến đến chiều mai".lookup_order, lookup_customer, check_warranty, check_stock, get_invoice, list_promotions...null/lỗi → AI bắt buộc nói "không tìm thấy" thay vì sáng tác số liệu.zalo_user_id đã từng mapping.zalo_user_id với customer "Anh Tâm — TBBV-2204" → conversation tự gán, lịch sử mua hàng hiện sẵn cho nhân viên./message/promotion từng follower.code_verifier + code_challenge để xác thực không cần lộ secret. App nhận access_token (sống 1h) + refresh_token (sống 90 ngày).3. Truy cập module
OpsOne AI tách rõ "nơi cấu hình" và "nơi vận hành":
Đây là "phòng điều khiển" của AI: chỉnh system prompt, bật/tắt từng tool, upload Knowledge Base, kết nối tài khoản Zalo OA, Facebook Page, test sandbox trước khi go-live.
Nơi nhân viên vào trả lời khách hàng. Tất cả conversation đổ về cùng một inbox, có filter theo kênh, theo trạng thái (chờ phản hồi/đã xử lý/đang theo), gán nhân viên, gắn customer trong CRM.
4. Chatbot — cấu hình cơ bản
Vào AI Trợ lý → tab Chatbot. Mỗi tenant có một bot config riêng.
- Chọn Industry Pack. Pack đã preset sẵn system prompt + tool phù hợp ngành. Sau khi chọn, anh/chị chỉ cần tinh chỉnh thay vì viết từ đầu.
- System prompt. Mô tả "danh tính" bot: "Bạn là trợ lý của TBBV, chuyên cân điện tử công nghiệp, trả lời ngắn, lịch sự, xưng em gọi anh/chị". Ngắn gọn — dưới 500 từ.
- Bật tool. Checkbox từng tool:
lookup_order,lookup_customer,check_warranty,check_stock,get_invoice... Tắt tool nào không muốn AI gọi. - Giới hạn scope. Khai báo "đề tài ngoài scope" để AI từ chối lịch sự: chính trị, tư vấn pháp lý, so sánh đối thủ.
- Test sandbox. Khung chat ngay trong trang config, gửi vài câu test trước khi go-live.
- Bật/tắt theo kênh. Có thể bật AI cho Website + Messenger nhưng tắt cho Zalo (để NV trả tay), hoặc ngược lại.
Phong cách trả lời
| Tham số | Ý nghĩa | Khuyến nghị |
|---|---|---|
tone | Giọng văn | Lịch sự, ngắn, xưng "em" — gọi "anh/chị" |
max_length | Độ dài tối đa câu trả lời | 200–300 ký tự (Zalo/Messenger), 600 (website) |
emoji | Có dùng emoji không | Bật cho B2C, tắt cho B2B |
handoff_phrase | Câu chuyển NV | "Em chuyển sang nhân viên hỗ trợ giúp anh/chị nhé" |
5. Knowledge Base
Khi câu hỏi của khách không nằm trong scope của bất kỳ tool nào (vd: "Chính sách bảo hành 2 năm là gì?", "Giao hàng miễn phí từ bao nhiêu?"), AI sẽ tra Knowledge Base để trả lời.
Upload tài liệu
- Vào AI Trợ lý → Knowledge Base.
- Bấm "Upload tài liệu". Hỗ trợ PDF, DOCX, MD, TXT. Kích thước khuyến nghị ≤ 10 MB/file.
- Đặt tiêu đề rõ ràng. Vd: "Chính sách bảo hành 2026", "Bảng giá cân công nghiệp Q2".
- Gắn nhãn (tag).
bao-hanh,gia,chinh-sach— để AI ưu tiên tra đúng nhóm. - Bấm "Index". Hệ thống chia nhỏ tài liệu, vector hoá, push vào index — trong vài giây bot biết ngay.
Cập nhật KB
Sửa policy, cập nhật bảng giá → upload bản mới, xoá bản cũ. Bot dùng KB mới ngay từ tin nhắn kế tiếp, không cần restart, không cần redeploy.
##, bảng và bullet — y như viết cho người mới vào việc.
Giới hạn
- Mỗi tenant ≤ 200 file, tổng dung lượng ≤ 500 MB (gói Pro). Gói Enterprise nâng lên 2 GB.
- File PDF scan ảnh: AI không OCR — phải convert sang text trước.
- File quá dài (>100 trang): nên tách thành nhiều file theo chương.
6. Anti-hallucination — chống AI bịa
"Hallucination" là khi AI tự sáng tác dữ liệu không có thật — số đơn, ngày giao, giá tiền. OpsOne AI ép AI không bịa bằng 4 lớp:
- Tool-first. AI bắt buộc gọi tool trước khi nói số liệu. Không có tool result → không được nói con số nào.
- Null fallback. Tool trả
null→ AI bắt buộc nói "em chưa tìm thấy" thay vì đoán. - KB grounding. Trả lời chính sách → bắt buộc trích từ KB, không chế.
- QA test scenario. Module "AI Trợ lý → QA" có sẵn 20+ kịch bản test: đơn không tồn tại, số ĐT sai format, tồn kho âm — chạy 1 phát trước go-live.
7. Zalo OA — Setup OAuth
Để OpsOne AI gửi/nhận tin nhắn thay anh/chị trên Zalo OA, cần cấp quyền qua OAuth v4 PKCE.
Chuẩn bị
- Vào developers.zalo.me. Tạo app loại "Official Account".
- Lấy
app_idvàapp_secret. Lưu chỗ kín. - Đăng ký Redirect URI. Thêm
https://app.opsoneai.com/api/zalo/callbackvào danh sách callback URL được phép. - Verify OA. Đảm bảo OA đã được Zalo verify (tích xanh) — OA chưa verify bị giới hạn nhiều tính năng.
Kết nối trong OpsOne AI
- Vào Cài đặt → Tích hợp → Zalo OA.
- Nhập
app_id+app_secret. Lưu. - Bấm "Kết nối Zalo OA". App sinh
code_verifier, redirect sang Zalo, anh/chị đăng nhập admin OA và chấp nhận quyền. - Zalo gọi callback về OpsOne AI. App đổi
code→access_token+refresh_token, lưu vào DB tenant. - Bot bắt đầu nhận tin nhắn. Webhook Zalo đã trỏ về
/api/zalo/webhook, mọi tin khách nhắn OA sẽ đổ về inbox OpsOne AI.
access_token sống 1 giờ, refresh_token sống 90 ngày. OpsOne AI tự refresh trước khi hết hạn — anh/chị không cần lo. Chỉ khi refresh_token hết 90 ngày (vd OA bị tạm khoá) mới phải kết nối lại.
8. Zalo Inbox — trả lời khách
Mọi tin Zalo đổ về Sidebar → Nhắn tin → tab Zalo. Nhân viên thấy danh sách conversation theo thời gian thực, mở từng cuộc, gõ trả lời như Zalo gốc.
AI gợi ý reply
Khi nhân viên mở conversation, OpsOne AI hiển thị 3 câu trả lời gợi ý ngay dưới ô gõ:
- Câu ngắn (xác nhận đã nhận tin).
- Câu giải đáp (dựa trên tool + KB).
- Câu chuyển NV chuyên môn (nếu phức tạp).
Nhân viên chỉ cần bấm 1 cú, hoặc tự gõ. Tốc độ phản hồi tăng 3–5 lần.
Auto-link conversation về customer
Khi tin Zalo đầu tiên về, OpsOne AI thực hiện 2 bước:
- Khớp
zalo_user_id. Nếu khách đã từng nhắn trước (đã mapping với customer ID nào đó) → auto-link. - Khớp số điện thoại đã chuẩn hoá. Nếu khách share phone (qua sticker hoặc Zalo Profile API) → normalize (+84/0/84 → cùng định dạng), so với
customers.phonetrong CRM → auto-link.
Khớp xong, conversation hiện luôn panel customer bên phải: tên, công ty, công nợ, đơn gần nhất — nhân viên trả lời có ngữ cảnh.
Khi auto-link sai
9. Zalo Broadcast — gửi tin khuyến mãi
Zalo OA không có public API broadcast. OpsOne AI lách bằng cách loop qua endpoint /message/promotion và gửi cho từng follower một.
Cách dùng
- Vào Nhắn tin → Zalo → Broadcast.
- Soạn nội dung. Tin promotion có format riêng (header + body + CTA + ảnh).
- Chọn segment. Toàn bộ follower, hoặc lọc theo nhãn (đã mua, chưa mua, VIP, theo tỉnh thành).
- Preview. Xem thử cách hiển thị trên điện thoại.
- Lên lịch hoặc gửi ngay. Hệ thống chia batch, gửi đều, tránh spike rate-limit.
Rate limit
| Mức gửi | Giới hạn | Hậu quả nếu vượt |
|---|---|---|
| An toàn | ≤ 200 msg/giờ | Không có cảnh báo |
| Cảnh báo | 200–500 msg/giờ | Một số tin bị throttle, có thể trễ |
| Nguy hiểm | > 500 msg/giờ | OA bị Zalo flag, follower có thể không nhận |
10. Facebook Messenger
Tương tự Zalo OA nhưng đơn giản hơn vì Messenger có Graph API đầy đủ.
Kết nối
- Vào Cài đặt → Tích hợp → Facebook Messenger.
- Bấm "Kết nối Facebook". Đăng nhập tài khoản FB là admin của Page.
- Chọn Page. Cấp quyền
pages_messaging,pages_manage_metadata. - OpsOne AI lưu Page Access Token và đăng ký webhook.
- Test. Nhắn cho Page từ Facebook cá nhân khác → tin về inbox OpsOne AI.
Vận hành
Giống Zalo: AI trả lời tự động theo cùng bộ tool + KB, nhân viên xen vào khi cần. Auto-link customer qua messenger_psid (Page-Scoped ID) hoặc số điện thoại nếu khách share.
11. Website widget
Embed cho website của khách — bot trả lời visitor 24/7.
Cách nhúng
- Vào AI Trợ lý → Website widget.
- Copy snippet. Dạng:
<script src="https://app.opsoneai.com/widget.js?id=YOUR_TENANT_ID" async></script> - Paste vào trang web ngay trước
</body>. - Save + reload — bong bóng chat xuất hiện góc phải dưới.
Tuỳ chỉnh
- Đổi màu bong bóng, vị trí (phải/trái), text chào.
- Hiện/ẩn theo URL: chỉ hiện ở trang sản phẩm, ẩn ở blog.
- Trigger proactive: sau 30 giây mở chat tự động hỏi "Em hỗ trợ gì cho anh/chị ạ?"
12. Báo cáo & KPI
Vào AI Trợ lý → Báo cáo. Các chỉ số chính theo dõi mỗi ngày:
| Chỉ số | Ý nghĩa | Mức tốt |
|---|---|---|
| Conversation/ngày | Tổng số cuộc hội thoại mới mỗi kênh | Tuỳ traffic |
| Deflection rate | % câu AI tự trả không cần NV | ≥ 50% |
| Avg response time | Thời gian phản hồi trung bình | < 60 giây |
| Tool call success | % lần AI gọi tool thành công | ≥ 95% |
| Top KB-miss | Top câu hỏi AI không có KB trả lời | Để bổ sung KB |
| Handoff rate | % chuyển NV | 10–30% là lành mạnh |
Top KB-miss là báo cáo quan trọng nhất: nó cho biết khách hay hỏi gì mà bot chưa biết → upload KB bổ sung → tuần sau deflection rate tự tăng.
3 tình huống thực tế
Tình huống 1 — Shop nhỏ chỉ dùng Zalo + AI trả tự động
Bối cảnh: Shop bán mỹ phẩm, 1 chủ + 1 cộng tác viên thời vụ. 80% khách inbox qua Zalo OA hỏi giá, tồn kho, ship.
Setup:
- Industry Pack: Retail. Bật tools
check_stock,list_promotions,get_shipping_fee. - Upload KB: bảng giá, chính sách đổi trả, hướng dẫn sử dụng.
- AI bật 24/7 trên Zalo, tắt Messenger + Website (chưa cần).
- Chủ shop chỉ vào inbox khi có notification "AI không tự xử lý được".
Kết quả: Deflection rate 72%, chủ shop chỉ phải trả khoảng 30 conversation/ngày thay vì 100+.
Tình huống 2 — Shop trung dùng full 4 kênh + NV xen kẽ
Bối cảnh: Shop thiết bị công nghiệp 5 nhân viên. Khách inbox Zalo, Messenger, website chat, và NV nội bộ hay hỏi bot tra cứu công nợ trong app.
Setup:
- Industry Pack: Trading. Bật full tool set.
- KB: 30 file (datasheet sản phẩm, chính sách bảo hành, bảng giá NCC).
- 4 kênh đều bật AI, nhưng đặt rule "câu hỏi báo giá lô lớn > 50tr → chuyển NV".
- NV trực inbox theo ca, gán bằng round-robin.
Kết quả: AI deflect 55% câu lặt vặt (tra đơn, tồn kho, giờ giao hàng), NV tập trung vào câu khó và chốt đơn.
Tình huống 3 — Khi auto-link sai → KH bị gán nhầm customer
Bối cảnh: Anh Tâm (TBBV-2204) chia sẻ số điện thoại công ty với em họ. Em họ chat Zalo với OA → AI tự khớp số → conversation gán về Anh Tâm.
Hậu quả nếu không phát hiện: Lịch sử mua hàng của Anh Tâm bị "trộn" với cuộc hội thoại của em họ; có thể nhân viên gửi quote nhầm; báo cáo CRM sai.
Cách xử lý:
- NV mở conversation, thấy nội dung không khớp với khách cũ (ngữ điệu khác, hỏi sản phẩm chưa từng mua) → nghi ngờ.
- Bấm "Tách khỏi customer" trong panel bên phải.
- Tạo customer mới hoặc gán đúng người trong CRM.
- Update label
zalo_user_idmapping → lần sau AI khớp đúng.
zalo_user_id, hệ thống flag conversation để NV review trước, không tự gán.
FAQ
Chatbot trả lời sai — fix ở đâu?
Quy trình 4 bước:
- Vào Báo cáo → mở conversation đó → xem AI đã gọi tool nào, kết quả ra sao.
- Nếu tool trả sai dữ liệu → bug ở backend, báo team kỹ thuật.
- Nếu tool trả đúng nhưng AI diễn giải sai → chỉnh system prompt, thêm ví dụ.
- Nếu AI trả lời ngoài scope tool → upload KB bổ sung hoặc thêm rule "ngoài scope thì nói không biết".
Knowledge Base có giới hạn dung lượng?
Gói Pro: 200 file, tổng 500 MB. Gói Enterprise: 2 GB, không giới hạn số file. PDF scan ảnh phải OCR trước (AI không tự đọc ảnh trong PDF). File > 100 trang nên tách nhỏ theo chương.
Zalo OA token hết hạn — bot có tự refresh không?
Có. access_token hết 1 giờ → OpsOne AI tự refresh bằng refresh_token (sống 90 ngày). Anh/chị không cần làm gì. Chỉ khi refresh_token hết 90 ngày (rất hiếm, thường do OA bị Zalo tạm khoá hoặc admin OA đổi) → cần vào Tích hợp → Zalo OA → bấm "Kết nối lại".
Broadcast Zalo bị block — phải làm sao?
Nguyên nhân thường gặp: gửi quá nhiều (> 500 msg/giờ), nội dung bị follower report spam, gửi cho người chưa follow. Cách khắc phục: tạm dừng broadcast 7 ngày, review nội dung gần nhất xem có quá thương mại không, giảm tần suất xuống ≤ 1 broadcast/tuần/segment. Nếu OA bị Zalo cảnh cáo 3 lần liên tiếp, có thể bị suspend — phải liên hệ Zalo Support.
AI gọi tool nhưng dữ liệu không đúng?
Mở conversation → xem chi tiết tool call (input + output). 3 trường hợp:
- Input sai: AI extract sai mã đơn từ tin nhắn → chỉnh system prompt yêu cầu "hỏi lại nếu mã không rõ".
- Tool ra sai data: bug logic backend → báo dev.
- Dữ liệu DB thật sự sai: sửa trên app, AI sẽ trả đúng lần sau.
Cross-tenant có dùng chung chatbot không?
Không. Mỗi tenant có config bot, KB, tool config, Zalo OA token riêng — cô lập hoàn toàn. Super admin (tenant_id=1 + role admin) có thể xem cấu hình của tenant khác nhưng không share conversation hay KB. Đây là yêu cầu bảo mật bắt buộc.
Tắt AI để nhân viên trả 100% — làm được không?
Được. Vào AI Trợ lý → Chatbot → tắt switch "AI auto-reply" theo từng kênh. AI vẫn gợi ý câu trả lời cho NV (nếu anh/chị muốn), nhưng không tự gửi. Phù hợp với ngành cần con người hoàn toàn (luật, y tế chuyên sâu, B2B đàm phán giá phức tạp).
Mỗi kênh có dùng prompt khác nhau được không?
Được. Vào tab Chatbot → mục "Per-channel override" → set system prompt riêng cho Zalo / Messenger / Website / In-app. Vd: Zalo dùng prompt thân mật, Website B2B dùng prompt formal hơn.
Sẵn sàng bật AI cho khách hàng?
Cấu hình 30 phút, bot trả lời 24/7 trên cả 4 kênh.
Vào AI Trợ lý Xem hướng dẫn khác