OpsOne AI · Chatbot & Zalo OA
Hướng dẫn vận hành · 12 phần

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:

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.

Lợi ích đo lường được: 50–70% câu khách hỏi được AI trả tự động (deflection rate), giảm tải tổng đài; phản hồi 24/7; ghi log đầy đủ để training và cải tiến.
1
💬
Khách nhắn
2
🤖
AI đọc + gọi tool
3
📚
Tra Knowledge Base
4
✍️
AI trả lời
5
👤
NV xen vào khi cần

2. Thuật ngữ

Chatbot LLM
Mô hình ngôn ngữ Google Gemini do OpsOne AI orchestrate. Chatbot đọc tin nhắn của khách, suy luận, gọi tool nếu cần, rồi sinh câu trả lời tự nhiên bằng tiếng Việt.
Ví dụ: khách hỏi "Đơn 1234 đến đâu rồi?" → bot gọi tool lookup_order → lấy trạng thái → trả lời "Đơn 1234 đang giao, dự kiến đến chiều mai".
Tool (Function Call) TOOL
Hàm có cấu trúc mà AI được phép gọi để lấy dữ liệu thật từ hệ thống. AI không tự bịa — chỉ nói khi tool trả về dữ liệu hợp lệ.
Bộ tool sẵn có: lookup_order, lookup_customer, check_warranty, check_stock, get_invoice, list_promotions...
Anti-hallucination
Bộ rule ngăn AI "bịa" thông tin. Nếu tool trả 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.
Khách hỏi đơn không có thật → AI trả "Em chưa thấy đơn này trong hệ thống, anh/chị check lại mã giúp em ạ" thay vì bịa trạng thái.
Knowledge Base KB
Kho tài liệu nội bộ (PDF, DOCX, MD) cho AI tra cứu — chính sách bảo hành, FAQ, giá, quy trình. AI sẽ trả lời dựa trên KB nếu câu hỏi vượt scope tool.
Industry Pack
Bộ cấu hình theo ngành (Trading/Hospitality/Education/Retail/F&B/Spa/Manufacturing/Services/Real Estate). Mỗi pack cài sẵn system prompt + bộ tool phù hợp ngành đó.
Conversation
Một chuỗi tin nhắn giữa một khách + một kênh + (tuỳ chọn) một customer trong CRM. Mỗi conversation có ID riêng, có lịch sử đầy đủ, gắn được nhãn/trạng thái/người phụ trách.
Auto-link
Cơ chế tự gán conversation về đúng customer trong CRM, dựa trên số điện thoại đã chuẩn hoá hoặc zalo_user_id đã từng mapping.
Khách Zalo nhắn → bot khớp 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.
Zalo OA OFFICIAL ACCOUNT
Tài khoản chính thức Zalo cho doanh nghiệp. OpsOne AI tích hợp full: nhắn 1-1, đồng bộ follower, broadcast khuyến mãi, gắn AI Agent.
Broadcast
Gửi cùng 1 nội dung tới nhiều follower. Zalo OA không có public API broadcast — OpsOne AI lách bằng cách loop qua endpoint /message/promotion từng follower.
Follower
Người dùng Zalo đã follow OA. Chỉ có follower mới nhận được tin nhắn từ OA — chưa follow thì không gửi được.
OAuth v4 PKCE
Cơ chế cấp quyền của Zalo phiên bản 4 — sinh 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":

🤖
AI Trợ lý
Sidebar · cấu hình chatbot, KB, tools, kết nối Zalo/Messenger

Đâ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.

💬
Nhắn tin
Sidebar · inbox hợp nhất Zalo + Messenger + Website + In-app

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.

  1. 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.
  2. 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ừ.
  3. 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.
  4. 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ủ.
  5. Test sandbox. Khung chat ngay trong trang config, gửi vài câu test trước khi go-live.
  6. 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.
Mẹo system prompt: Dòng đầu nói rõ "không bịa, không đoán giá, không cam kết bảo hành ngoài quy định". Dòng cuối nói "nếu không chắc thì nói 'em sẽ chuyển anh nhân viên hỗ trợ'". Hai câu này giảm 80% rủi ro AI nói linh tinh.

Phong cách trả lời

Tham sốÝ nghĩaKhuyến nghị
toneGiọng vănLịch sự, ngắn, xưng "em" — gọi "anh/chị"
max_lengthĐộ dài tối đa câu trả lời200–300 ký tự (Zalo/Messenger), 600 (website)
emojiCó dùng emoji khôngBật cho B2C, tắt cho B2B
handoff_phraseCâ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

  1. Vào AI Trợ lý → Knowledge Base.
  2. Bấm "Upload tài liệu". Hỗ trợ PDF, DOCX, MD, TXT. Kích thước khuyến nghị ≤ 10 MB/file.
  3. Đặ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".
  4. Gắn nhãn (tag). bao-hanh, gia, chinh-sach — để AI ưu tiên tra đúng nhóm.
  5. 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.

Nguyên tắc viết KB tốt cho AI: ngắn, có cấu trúc heading rõ, một mục một ý. Tránh paragraph dài 2 trang. AI đọc tốt nhất khi tài liệu có ##, bảng và bullet — y như viết cho người mới vào việc.

Giới hạn

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:

  1. 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.
  2. Null fallback. Tool trả null → AI bắt buộc nói "em chưa tìm thấy" thay vì đoán.
  3. KB grounding. Trả lời chính sách → bắt buộc trích từ KB, không chế.
  4. 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.
Cảnh báo: Nếu anh/chị tắt hết tool nhưng vẫn để AI trả lời số liệu → AI sẽ bịa. Tool là "nguồn chân lý" — phải có ít nhất 1 tool đang bật cho mỗi loại câu hỏi định lượng.

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ị

  1. Vào developers.zalo.me. Tạo app loại "Official Account".
  2. Lấy app_id và app_secret. Lưu chỗ kín.
  3. Đăng ký Redirect URI. Thêm https://app.opsoneai.com/api/zalo/callback vào danh sách callback URL được phép.
  4. 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

  1. Vào Cài đặt → Tích hợp → Zalo OA.
  2. Nhập app_id + app_secret. Lưu.
  3. 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.
  4. Zalo gọi callback về OpsOne AI. App đổi code → access_token + refresh_token, lưu vào DB tenant.
  5. 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.
Token lifecycle: 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õ:

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:

  1. Khớp zalo_user_id. Nếu khách đã từng nhắn trước (đã mapping với customer ID nào đó) → auto-link.
  2. 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.phone trong 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

Tình huống cẩn thận: 2 người trong cùng công ty chia sẻ 1 số điện thoại, hoặc khách cũ đổi Zalo nhưng giữ số → AI có thể gán nhầm conversation về sai customer. Lúc đó nhân viên bấm "Tách khỏi customer" trong panel bên phải, rồi gán thủ công đúng người.

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

  1. Vào Nhắn tin → Zalo → Broadcast.
  2. Soạn nội dung. Tin promotion có format riêng (header + body + CTA + ảnh).
  3. Chọn segment. Toàn bộ follower, hoặc lọc theo nhãn (đã mua, chưa mua, VIP, theo tỉnh thành).
  4. Preview. Xem thử cách hiển thị trên điện thoại.
  5. 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ửiGiới hạnHậu quả nếu vượt
An toàn≤ 200 msg/giờKhông có cảnh báo
Cảnh báo200–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
Broadcast Zalo cẩn thận — gửi quá nhiều bị Zalo flag → mất follower. Nguyên tắc: tối đa 1 broadcast/tuần cho cùng segment, nội dung có giá trị thật (không spam khuyến mãi liên tục), luôn có nút "không nhận tin nữa" để giảm khiếu nại.

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

  1. Vào Cài đặt → Tích hợp → Facebook Messenger.
  2. Bấm "Kết nối Facebook". Đăng nhập tài khoản FB là admin của Page.
  3. Chọn Page. Cấp quyền pages_messaging, pages_manage_metadata.
  4. OpsOne AI lưu Page Access Token và đăng ký webhook.
  5. 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

  1. Vào AI Trợ lý → Website widget.
  2. Copy snippet. Dạng: <script src="https://app.opsoneai.com/widget.js?id=YOUR_TENANT_ID" async></script>
  3. Paste vào trang web ngay trước </body>.
  4. Save + reload — bong bóng chat xuất hiện góc phải dưới.

Tuỳ chỉnh

Cross-origin OK: Widget chạy độc lập với SPA của khách, không xung đột React/Vue/jQuery. Đã được test trên Shopify, WordPress, Webflow, plain HTML.

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ĩaMức tốt
Conversation/ngàyTổng số cuộc hội thoại mới mỗi kênhTuỳ traffic
Deflection rate% câu AI tự trả không cần NV≥ 50%
Avg response timeThờ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-missTop câu hỏi AI không có KB trả lờiĐể bổ sung KB
Handoff rate% chuyển NV10–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:

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:

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ý:

  1. 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ờ.
  2. Bấm "Tách khỏi customer" trong panel bên phải.
  3. Tạo customer mới hoặc gán đúng người trong CRM.
  4. Update label zalo_user_id mapping → lần sau AI khớp đúng.
Phòng tránh: Bật cảnh báo "auto-link confidence thấp" trong Cài đặt — khi AI chỉ khớp số ĐT mà chưa từng map 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:

  1. Vào Báo cáo → mở conversation đó → xem AI đã gọi tool nào, kết quả ra sao.
  2. Nếu tool trả sai dữ liệu → bug ở backend, báo team kỹ thuật.
  3. Nếu tool trả đúng nhưng AI diễn giải sai → chỉnh system prompt, thêm ví dụ.
  4. 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
Dùng OpsOne trên điện thoại
Quét mã bằng camera, chấm công GPS kèm ảnh, mở khoá bằng vân tay.
App Store Google Play