Bỏ qua menu, vào nội dung chính

Zalo chatbot: làm chatbot cho Zalo OA qua API, kiến trúc, dữ liệu và bàn giao cho người thật

Chatbot trên Zalo giúp trả lời câu hỏi lặp lại, tra đơn hàng, đặt lịch ngay trong khung chat. Bài viết giải thích chatbot Zalo hoạt động thế nào qua API của Zalo OA, chọn chatbot theo kịch bản hay chatbot AI, kiến trúc kỹ thuật với webhook, cách chuyển cho nhân viên đúng lúc, vì sao không nên làm chatbot trên Zalo cá nhân, và cách đo hiệu quả.

12 phút đọc

Khi OA đã có lượng tin nhắn đều đặn, nhân viên trực sẽ nhận ra phần lớn câu hỏi lặp lại: giờ mở cửa, còn hàng không, đơn của tôi tới đâu rồi, đổi lịch hẹn thế nào. Chatbot sinh ra để gánh phần đó. Bài này dành cho chủ doanh nghiệp muốn hiểu chatbot Zalo làm được gì trước khi thuê làm, và cho người làm kỹ thuật cần một khung kiến trúc để bắt đầu.

Chatbot Zalo làm được gì

  • Trả lời câu hỏi thường gặp: giờ làm việc, địa chỉ, chính sách đổi trả, cách thanh toán.
  • Tra dữ liệu thật: khách nhập mã đơn hoặc số điện thoại, bot trả trạng thái đơn hàng từ phần mềm bán hàng.
  • Đặt và đổi lịch hẹn: bot đưa ra khung giờ trống từ hệ thống lịch, khách chọn, bot xác nhận.
  • Thu thập thông tin trước khi chuyển nhân viên: nhu cầu, ngân sách, khu vực, để nhân viên vào cuộc là tư vấn được ngay.
  • Trực ngoài giờ: ghi nhận yêu cầu, hẹn giờ phản hồi, tạo phiếu việc cho sáng hôm sau.

Việc chatbot không nên làm: đàm phán giá, xử lý khiếu nại gay gắt, tư vấn những việc có hậu quả pháp lý hay sức khoẻ. Những việc này cần người thật, và bot nên nhận ra để chuyển sớm.

Chatbot theo kịch bản hay chatbot AI

Chatbot theo kịch bản

Bot đi theo cây lựa chọn và từ khoá do người thiết kế: khách bấm nút hoặc gõ đúng từ khoá, bot trả lời tương ứng. Ưu điểm là dễ kiểm soát, không nói sai điều chưa được duyệt, chi phí vận hành thấp. Nhược điểm là cứng nhắc: khách hỏi theo cách không có trong kịch bản thì bot không hiểu.

Chatbot AI

Bot dùng mô hình ngôn ngữ lớn để hiểu câu hỏi tự do và trả lời dựa trên tài liệu của doanh nghiệp (chính sách, danh mục sản phẩm, câu hỏi thường gặp). Ưu điểm là tự nhiên, hiểu nhiều cách hỏi. Rủi ro là có thể trả lời tự tin một điều sai, nên phải giới hạn phạm vi, trả lời chỉ từ tài liệu được cung cấp, và không cho AI tự hứa giá hay khuyến mãi.

Kết hợp là cách thực tế nhất

Các việc có quy trình rõ (tra đơn, đặt lịch) đi theo kịch bản và gọi dữ liệu thật. Câu hỏi tự do đi qua AI với phạm vi hẹp. Mọi thứ ngoài phạm vi chuyển cho người thật. Cách chia này giữ được độ chính xác ở chỗ cần chính xác và độ linh hoạt ở chỗ cần linh hoạt.

Chatbot Zalo hoạt động thế nào về kỹ thuật

Luồng cơ bản khi dùng API chính thức của Zalo OA:

  1. Doanh nghiệp tạo một ứng dụng trên trang dành cho nhà phát triển của Zalo, liên kết ứng dụng với OA và được OA cấp quyền.
  2. Ứng dụng nhận mã truy cập (access token) để gọi API thay mặt OA. Mã này có thời hạn và phải được làm mới định kỳ bằng mã làm mới (refresh token).
  3. Doanh nghiệp khai báo một địa chỉ webhook: mỗi khi có sự kiện (khách gửi tin, khách quan tâm OA, khách bấm nút), nền tảng gửi một yêu cầu tới địa chỉ này.
  4. Máy chủ của doanh nghiệp nhận sự kiện, kiểm tra chữ ký để chắc chắn sự kiện thật sự từ nền tảng, rồi xử lý: tra dữ liệu, gọi AI, quyết định chuyển người.
  5. Máy chủ gọi API gửi tin để trả lời khách trong khung chat.

Tên API, định dạng dữ liệu, loại tin được phép gửi và hạn mức nằm trong tài liệu chính thức cho nhà phát triển và thay đổi theo phiên bản. Khung dưới đây là mã giả minh hoạ logic, không phải mã chạy được với API thật.

ts// Ma gia: xu ly mot su kien tin nhan tu webhook
async function xuLySuKien(req) {
  if (!chuKyHopLe(req)) return tuChoi();        // chi nhan su kien tu nen tang
  const ev = req.body;
  if (daXuLy(ev.id)) return ok();              // chong xu ly trung khi nen tang gui lai
  ghiNhan(ev.id);
  traLoiNgay();                                  // tra 200 nhanh, xu ly nang de sau

  const khach = await timKhach(ev.nguoiGui);     // noi voi CRM / phan mem ban hang
  if (dangGapNhanVien(khach)) return chuyenChoNhanVien(ev);

  const y = phanLoai(ev.noiDung);                // tu khoa, nut bam, hoac AI
  if (y === "tra-don")   return guiTin(khach, await trangThaiDon(khach));
  if (y === "dat-lich")  return guiTin(khach, await khungGioTrong());
  if (y === "hoi-dap")   return guiTin(khach, await traLoiTuTaiLieu(ev.noiDung));
  return chuyenChoNhanVien(ev, "ngoai pham vi");
}

Những điểm kỹ thuật hay bị bỏ sót

  • Làm mới mã truy cập tự động và cảnh báo khi làm mới thất bại. Mã hết hạn là bot im lặng mà không ai biết.
  • Trả lời webhook nhanh rồi mới xử lý phần nặng (gọi AI, tra dữ liệu) ở hàng đợi phía sau, tránh nền tảng coi là lỗi và gửi lại.
  • Chống xử lý trùng: cùng một sự kiện có thể tới hai lần, bot không được trả lời hai lần hay tạo hai lịch hẹn.
  • Ghi nhật ký mọi hội thoại và mọi quyết định của bot để xem lại khi khách phàn nàn.
  • Máy chủ nhận webhook phải chạy liên tục và được giám sát. Webhook đặt trên một máy tính văn phòng tắt lúc tối là bot chỉ làm giờ hành chính.

Kinh nghiệm hạ tầng khi chạy webhook

Ở Alodev, các ứng dụng nhận sự kiện từ bên ngoài chạy trong container trên cụm máy chủ nhiều node do chúng tôi tự vận hành, và nhận lưu lượng qua đường hầm của mạng phân phối thay vì mở cổng trực tiếp trên máy chủ. Với chatbot, cách bố trí này cho vài lợi ích thực tế: địa chỉ webhook ổn định dù ứng dụng chuyển giữa các node, máy chủ không lộ địa chỉ ra ngoài, và có một lớp lọc trước khi yêu cầu vào tới ứng dụng.

Bài học quan trọng hơn cả là giám sát bằng hành vi, không bằng trạng thái. Một dịch vụ báo "đang chạy" chưa chắc đang trả lời được khách: mã truy cập có thể đã hết hạn, hàng đợi có thể đang kẹt. Cách kiểm tra đáng tin là định kỳ gửi một tin thử qua đúng đường khách dùng và đo xem có câu trả lời không, bao lâu thì có.

Chuyển cho người thật: phần quyết định trải nghiệm

Khách không ghét chatbot, khách ghét bị mắc kẹt với chatbot. Thiết kế phần chuyển giao cẩn thận:

  • Luôn có lựa chọn "gặp nhân viên" trong menu và nhận diện các câu như "cho tôi nói chuyện với người".
  • Chuyển tự động khi bot không hiểu hai lần liên tiếp, khi khách dùng từ ngữ bức xúc, hoặc khi câu hỏi thuộc nhóm nhạy cảm.
  • Khi chuyển, bot tóm tắt những gì khách đã nói để nhân viên không hỏi lại.
  • Trong lúc nhân viên đang trò chuyện, bot im lặng. Bot chen vào giữa cuộc trò chuyện của người thật là lỗi rất khó chịu.
  • Ngoài giờ, bot nói thật: ghi nhận yêu cầu và báo khi nào nhân viên sẽ phản hồi.

Vì sao không nên làm chatbot trên Zalo cá nhân

Từ khoá chatbot Zalo cá nhân vẫn được tìm, và trên mạng có nhiều công cụ hứa tự động trả lời, tự kết bạn, tự gửi tin từ tài khoản cá nhân. Những công cụ này thường hoạt động bằng cách giả lập thao tác người dùng hoặc dùng kênh không chính thức, không phải API được nền tảng cung cấp cho mục đích này. Rủi ro gồm tài khoản bị hạn chế hoặc khoá, mất toàn bộ danh bạ khách, và việc trao mật khẩu tài khoản cho một công cụ bên ngoài. Doanh nghiệp muốn tự động hoá trên Zalo nên đi đường chính thức qua OA.

Dữ liệu và quyền riêng tư

  • Chỉ hỏi thông tin cần cho việc đang làm. Tra đơn thì cần mã đơn, không cần hỏi ngày sinh.
  • Khi gửi nội dung hội thoại cho dịch vụ AI bên ngoài, lọc bớt thông tin cá nhân không cần thiết và kiểm tra điều khoản xử lý dữ liệu của dịch vụ đó.
  • Lưu hội thoại có thời hạn, phân quyền ai được xem.
  • Tuân thủ quy định về bảo vệ dữ liệu cá nhân hiện hành và chính sách của nền tảng về tin nhắn.

Đo hiệu quả chatbot

  1. Tỷ lệ hội thoại bot tự giải quyết được mà không cần chuyển người.
  2. Tỷ lệ khách chủ động đòi gặp người sau khi nói chuyện với bot: cao là dấu hiệu bot đang cản trở.
  3. Thời gian phản hồi đầu tiên, trước và sau khi có bot, đặc biệt ngoài giờ.
  4. Các câu bot không hiểu, gom theo tuần để bổ sung kịch bản hoặc tài liệu.

Bắt đầu nhỏ: làm năm câu hỏi phổ biến nhất và một luồng tra dữ liệu, đo một tháng, rồi mở rộng theo số liệu. Nếu doanh nghiệp chưa biết câu hỏi nào phổ biến nhất, hãy đếm từ lịch sử tin nhắn của OA trước khi thiết kế bất cứ thứ gì.

Câu hỏi thường gặp

Zalo chatbot là gì?

Là chương trình tự động trả lời tin nhắn trên Zalo, chạy chính thức qua Zalo OA: nền tảng gửi tin nhắn của khách tới máy chủ của doanh nghiệp, máy chủ xử lý và gửi câu trả lời qua API.

Có làm chatbot cho Zalo cá nhân được không?

Có công cụ làm được nhưng thường dùng kênh không chính thức, có nguy cơ bị khoá tài khoản và mất danh bạ khách. Doanh nghiệp nên làm chatbot trên OA.

Chatbot Zalo có cần AI không?

Không bắt buộc. Kịch bản cộng với tra dữ liệu thật đã giải quyết phần lớn câu hỏi lặp lại. AI hữu ích cho câu hỏi tự do, nhưng cần giới hạn phạm vi và chỉ trả lời từ tài liệu đã duyệt.

Chatbot Zalo cần những gì về kỹ thuật?

Một OA đã xác thực, ứng dụng đăng ký trên trang nhà phát triển của Zalo và được OA cấp quyền, máy chủ chạy liên tục để nhận webhook, cơ chế làm mới mã truy cập, và kết nối tới dữ liệu cần tra như đơn hàng, lịch hẹn.

Làm sao để chatbot không làm phiền khách?

Luôn có đường gặp người thật, chuyển tự động khi bot không hiểu, bot im lặng khi nhân viên đang trò chuyện, và không dùng bot để gửi quảng cáo dồn dập.

Tích hợp hệ sinh thái số Việt Nam12 phút đọc

Cách tạo Zalo OA cho doanh nghiệp: thiết lập hồ sơ, logo, ảnh bìa, phân quyền và đăng bài

Hướng dẫn tạo Zalo OA cho doanh nghiệp theo đúng thứ tự: chuẩn bị giấy tờ và tài khoản, đăng ký, xác thực, làm logo và ảnh bìa, phân quyền quản trị, thiết lập tin chào và menu, đăng bài viết đầu tiên, rồi đưa OA tới khách hàng. Kèm các lỗi thiết lập làm doanh nghiệp mất quyền quản lý OA về sau.

Tích hợp hệ sinh thái số Việt Nam11 phút đọc

Zalo OA có mất phí không: các khoản chi phí doanh nghiệp cần tính trước khi triển khai

Mở Zalo OA có thể bắt đầu miễn phí, nhưng vận hành OA cho bán hàng và chăm sóc khách có nhiều khoản chi mà doanh nghiệp hay bỏ sót. Bài viết phân tích cấu trúc chi phí của Zalo OA: gói dịch vụ, tin nhắn và thông báo, quảng cáo, tích hợp phần mềm, chatbot và chi phí con người, cùng cách lập ngân sách và cách tránh trả tiền cho thứ không dùng.

Tích hợp hệ sinh thái số Việt Nam11 phút đọc

Zalo OA là gì: khác Zalo cá nhân thế nào và khi nào doanh nghiệp cần tài khoản chính thức

Zalo OA là tài khoản chính thức của doanh nghiệp trên Zalo, dùng để nhắn tin chăm sóc khách, đăng nội dung và gửi thông báo. Bài viết giải thích Zalo OA là gì, khác gì Zalo cá nhân dùng bán hàng, các tính năng chính, giới hạn cần biết, khi nào nên mở và cách đo xem OA có thật sự mang lại việc cho doanh nghiệp không.

Nhận bài mới

Để lại email để nhận bài mới của series Tích hợp hệ sinh thái số Việt Nam, hoặc theo dõi bằng RSS.

RSS Tích hợp hệ sinh thái số Việt Nam

Email chỉ dùng để gửi bài mới, xem Chính sách bảo mật.

Trao đổi về dự án

Cần tư vấn?