Làm chatbot Zalo OA trong 30 phút: không cần code (có mẫu & checklist)
Học AI
1 tags
Bạn muốn khách nhắn Zalo lúc 11 giờ đêm vẫn được trả lời lịch mở cửa, phí ship, tra cứu đơn…? Làm chatbot cho Zalo OA đi, nhanh hơn ăn mì gói, mà không cần thành lập team dev.
Lợi ích & bức tranh nhanh
Zalo OA là kênh “chính chủ” để doanh nghiệp nhắn tin, phát nội dung, CSKH; có API/Webhook để bot tự động xử lý tin nhắn. Nhiều nền tảng hỗ trợ “kéo-thả” kết nối thẳng với Zalo.
Vì sao chọn Zalo OA cho CSKH?
Người dùng Việt dùng Zalo hằng ngày; OA cho phép nhắn tư vấn, broadcast, ZNS (thông báo có kiểm duyệt mẫu).
Tạo bot nhanh: có sẵn hướng dẫn tích hợp Zalo trên các nền tảng chatbot Việt.
Chuẩn bị trước khi làm bot (5–10 phút)
Mục tiêu: Có OA “sạch sẽ”, quyền truy cập đầy đủ, và vài nội dung mẫu để test.
Kiểm tra (hoặc tạo) Zalo OA
Vào oa.zalo.me → đăng nhập → “Tạo Official Account” (nếu chưa có). Chọn loại Doanh nghiệp, điền tên OA/ảnh đại diện/mô tả.
Nếu chưa xác thực OA: chuẩn bị giấy tờ doanh nghiệp, nộp hồ sơ trong mục Xác thực. Thời gian duyệt thường 2–3 ngày làm việc (có thể lâu hơn).
Bật tài khoản Developer & tạo “Ứng dụng” (App)
Vào developers.zalo.me → tạo ứng dụng mới (App ID). Đây là “cầu nối” giữa OA và nền tảng chatbot.
Liên kết Ứng dụng với OA & lấy OA Access Token
Trong trang Developer, chọn Công cụ & hỗ trợ → API Explorer → loại token OA Access Token → chọn OA → Lấy token. Lưu token ở nơi an toàn. (Một số nền tảng sẽ yêu cầu OA Secret Key nữa.)
Soạn sẵn 10 câu FAQ để test
Ví dụ: “Giờ mở cửa?”, “Phí ship?”, “Địa chỉ chi nhánh?”, “Đổi trả thế nào?”, “Số hotline?”.
Tin Tư vấn: Zalo cho miễn phí 8 tin/48 giờ kể từ lần tương tác cuối của người dùng; ngoài phạm vi này có thể tính phí hoặc cần gói dịch vụ. (Bạn chỉ cần nắm để gửi hợp lý — phần broadcast/ZNS làm sau.) ([Zalo Official Account][6])
Cách 1 — Không cần code (dành cho SME)
Mục tiêu: Dùng nền tảng chatbot (kéo–thả) để kết nối OA và chạy kịch bản cơ bản.
Bạn có thể chọn FPT.AI hoặc Yellow.ai (đều có hướng dẫn Zalo). Bên dưới là luồng thao tác “mẫu chung”; màn hình có thể khác chút, nhưng tên mục gần như vậy.
A. Kết nối kênh Zalo
Đăng ký & tạo bot
Đăng ký tài khoản trên nền tảng → Create bot/New bot → đặt tên bot (VD: “CSKH Cửa hàng A”).
Vào Channels/Integrations → chọn Zalo.
Cấp quyền Zalo & nhập thông tin bắt buộc
Nền tảng sẽ hỏi: App ID, OA Access Token (và có thể OA Secret Key).
Dán OA Access Token bạn vừa lấy bằng API Explorer. Nếu được yêu cầu OA Secret Key, bạn lấy trong trang Developer của App tương ứng.
Thiết lập Webhook (nếu nền tảng yêu cầu)
Nền tảng cung cấp Webhook URL (địa chỉ nhận sự kiện).
Vào developers.zalo.me → [App] → Official Account/Webhook → dán Webhook URL → lưu. (Zalo sẽ gửi POST về URL này khi có người nhắn OA).
Một số sự kiện/ứng dụng hiển thị thêm X-ZEvent-Signature (chữ ký SHA-256). Nền tảng chuẩn sẽ tự xử lý; bạn chỉ cần dán Webhook URL đúng chỗ.
Mẹo: Nếu màn hình Developer yêu cầu “liên kết OA với Ứng dụng”, hãy vào mục Official Account trong App và bấm Liên kết với OA của bạn.
B. Dựng kịch bản “xương sống” (10–15 phút)
Thêm Lời chào & Menu trong OA (để “điểm chạm” rõ ràng)
Trên oa.zalo.me: Quản lý → Thiết lập tài khoản → Lời chào (bật và viết lời chào ngắn kèm menu gợi ý).
Quản lý → Thiết lập tương tác → Thanh menu: tạo 2–3 nút (VD: “Giờ mở cửa”, “Tra cứu đơn”, “Gặp người thật”).
Nạp mẫu FAQ và đào tạo nhanh
Trong nền tảng: vào Build/Flow/Intents → chọn Template FAQ (nếu có) → dán 10 câu–trả lời đã soạn.
Với mỗi câu, thêm 2–3 “biến thể” người dùng dễ hỏi sai chính tả/ngắt câu. (Ví dụ: “phi ship / phí ship / ship bao nhiêu”.)
Tạo 1 flow “Tra cứu đơn (demo)”
Flow hỏi số điện thoại → trả câu trả lời mẫu (VD: “Đơn #123 đang giao — dự kiến hôm nay”).
Để kết nối hệ thống thật sau, bạn chỉ cần thay bước trả lời mẫu bằng “Gọi API” (nền tảng có node tích hợp).
Bật “Chuyển người thật” (handover)
Trong phần Settings/Failover/Handover: đặt từ khóa “gặp người thật” hoặc tự động chuyển sau 2 lần bot không hiểu.
Phân công 1–2 tài khoản CSKH trực ca nhận hộp thư “handover”.
C. Kiểm thử & xuất bản
Test nội bộ
Nhờ 3 đồng nghiệp bấm “Quan tâm” OA rồi nhắn 10 câu khác nhau.
Ghi lại: câu nào bot xử lý được/không, tốc độ trả lời, trường hợp cần người thật.
Soát chính sách gửi tin
Tin Tư vấn: tuân thủ giới hạn 8 tin/48 giờ/người kể từ lần tương tác gần nhất (ngoài khung này có thể cần gói dịch vụ hoặc ZNS — phần này làm sau).
Mở bot cho khách
Bật kênh Zalo ở trạng thái Live/Published trong nền tảng.
Trên OA: ghim bài “Hướng dẫn hỏi bot” + menu; thiết lập Trả lời tự động khi ngoài giờ (đưa khách sang “gặp người thật” nếu cần).
Checklist 3 phút (trước khi chạy thật)
[ ] OA đã xác thực; App đã liên kết OA.
[ ] Dán Webhook URL đúng; trạng thái Active.
[ ] Có OA Access Token hợp lệ; lưu ở nơi an toàn.
[ ] Đã bật Lời chào & Thanh menu trên OA.
[ ] Flow FAQ + Tra cứu đơn (demo) chạy ổn; handover hoạt động.
Cách 2 — Low-code (developer “tay ngang”)
Bạn muốn chủ động, vẫn gọn nhẹ.
Webhook nhận tin: Zalo gửi POST JSON tới Webhook khi có người nhắn; có header X-ZEvent-Signature để xác thực. (Zalo For Developers)
Xác minh chữ ký: tính mac theo hướng dẫn của Zalo (SHA-256 với tham số app).
Gọi AI: gửi câu hỏi lên mô hình (OpenAI/Vertex v.v.) → nhận câu trả lời.
Phản hồi người dùng: dùng Official Account OpenAPI để gửi tin nhắn.
Mẫu code Node.js “xương sống” (rút gọn, minh hoạ)
import express from "express";
import crypto from "crypto";
import fetch from "node-fetch";
const app = express();
app.use(express.json());
// ENV: ZALO_APP_ID, ZALO_OA_TOKEN, ZALO_SECRET
function verifySignature(req) {
const signature = req.headers["x-zevent-signature"];
const { appId } = req.body; // hoặc lấy từ ENV tuỳ cấu hình
const raw = `${appId}${JSON.stringify(req.body)}${process.env.ZALO_SECRET}`;
const mac = crypto.createHash("sha256").update(raw).digest("hex");
return signature === mac;
}
app.post("/zalo/webhook", async (req, res) => {
if (!verifySignature(req)) return res.status(401).end();
const event = req.body?.event_name;
if (event === "user_send_text") {
const text = req.body?.message?.text;
// 1) Gọi AI tạo câu trả lời (giả lập):
const reply = `Bạn hỏi: "${text}". Đây là câu trả lời mẫu từ bot.`;
// 2) Gửi trả lời qua OA OpenAPI:
await fetch("https://business.openapi.zalo.me/message/text", {
method: "POST",
headers: {
"Content-Type": "application/json",
access_token: process.env.ZALO_OA_TOKEN
},
body: JSON.stringify({
recipient: { user_id: req.body.user_id_by_app },
message: { text: reply }
})
});
}
res.status(200).end();
});
app.listen(3000, () => console.log("Webhook running on 3000"));
Lưu ý: cách tính X-ZEvent-Signature và tham số có thể thay đổi theo phiên bản API; luôn đối chiếu tài liệu Webhook/Events của Zalo trước khi lên production.
Mini-case 15 phút test bot
Bối cảnh: Tiệm cà phê 2 chi nhánh, OA đã xác thực.
5 phút: thêm intent “tra cứu đơn” → nếu người dùng nhập số điện thoại, bot trả status demo (chuẩn bị nối thật sau).
3 phút: cấu hình handover cho keyword “gặp người thật”.
2 phút: mời 3 bạn nhân viên nhắn thử 10 câu → ghi log lỗi & chỉnh sửa.
KPI tuần 1: 60% câu hỏi thường gặp được bot tự xử lý; thời gian phản hồi < 5 giây.
Checklist an toàn & pháp lý
[ ] Xác thực OA & App trước khi bật bot (giảm rủi ro khoá tính năng).
[ ] Tuân thủ 8 tin/48 giờ cho tin tư vấn; broadcast theo hạn mức gói (ví dụ OA xác thực có quy định 400 tin/tháng — xem mục Hỏi đáp của OA).
[ ] Gửi ZNS chỉ bằng template đã được duyệt.
[ ] Thông báo & xin đồng thuận xử lý dữ liệu cá nhân; hiện áp dụng Nghị định 13/2023, và Luật Bảo vệ dữ liệu cá nhân 2025 có hiệu lực từ 01/01/2026. Chuẩn bị sẵn quy trình xử lý yêu cầu xoá/sửa dữ liệu. (VanBan Chinh Phu, Chính phủ)
[ ] Lưu audit log cho quyết định tự động; bật “chuyển người thật” cho tình huống nhạy cảm.
Hãy bắt đầu từ 1 kịch bản nhỏ
Bạn không cần “xây lâu đài” ngay. Bắt đầu bằng 1 kịch bản: trả lời giờ mở cửa + phí ship + tra đơn demo. Khi đã trơn tru, thêm dần: thu thập lead, nhắc lại giỏ hàng, ZNS hậu mãi… AI làm phần lặp lại; bạn quyết nội dung, giới hạn và trải nghiệm.
Ghi chép họp kiểu mới: AI lo tất Bạn đã bao lần rơi vào cảnh đang xử lý việc gấp thì bị kéo vào cuộc họp đột xuất? Vừa ngồi họp, đầu vừa nghĩ tới một...
Bạn có thể không chạy ads, nhưng ảnh sản phẩm thì không thể xấu hoặc trông thiếu tự nhiên. Ảnh rõ, màu đúng, bóng đổ tự nhiên người mua tin hơn, bấm...
Meta siết vòng kim cô cho chatbot: chặn tán tỉnh với teen, khóa bớt nhân vật AI. Vì sao chuyện này đáng để bạn quan tâm ngay? Tin mới: Meta vừa tuyên...
Làm ít mà được nhiều: bí quyết không nằm ở app Bạn không cần cài thêm app. Bạn cần một quy trình gọn, chọn đúng chế độ làm việc với AI, và biết dừng...