n8n kết nối Zalo OA gửi tin tự động cho khách hàng

Zalo OA chưa có node n8n chính thức nên phải nối bằng HTTP Request. Bài này chỉ luồng lấy token, gọi API gửi tin, và cách nuôi token khỏi hết hạn giữa chừng.

Zalo OA không có mặt trong danh sách app tích hợp sẵn của n8n. Muốn n8n kết nối Zalo OA để tự động gửi tin cho khách, cách duy nhất là gọi thẳng Zalo Official Account API bằng node HTTP Request, tự tay xử lý phần xác thực mà các app có node riêng đã lo sẵn.

Minh hoạ cho bài n8n kết nối Zalo OA gửi tin tự động cho khách hàng

n8n kết nối Zalo OA bằng cách nào khi không có node riêng

n8n kết nối Zalo OA qua node HTTP Request, gọi trực tiếp endpoint REST của Zalo Official Account API. Không có node chuyên dụng nghĩa là mọi thứ node riêng làm giúp: format request, refresh token tự động, xử lý lỗi trả về, bạn phải dựng lại bằng tay trong workflow.

Luồng cơ bản gồm 3 khối: một node lấy hoặc làm mới access token, một node HTTP Request gọi API gửi tin, và một node kiểm tra response để bắt lỗi. Ba khối này lặp lại ở hầu hết workflow liên quan tới Zalo, nên dựng đúng một lần rồi tách thành sub-workflow dùng lại được cho nhiều luồng khác.

Lấy access token Zalo OA cần qua bước nào

Access token Zalo OA lấy qua luồng OAuth 2.0: đăng ký app trên Zalo Developers, xin quyền cho Official Account, rồi đổi authorization code lấy access token và refresh token. Bước này làm một lần thủ công qua trình duyệt, không tự động hoá được trong n8n.

Sau khi có refresh token, quy trình lấy access token mới lặp lại bằng API mà node HTTP Request gọi được. Điền đúng ba tham số: app_id, secret_key lấy từ trang quản trị app, và refresh_token lưu lại từ lần cấp đầu. Theo tài liệu Zalo Developers, endpoint refresh trả về access token mới kèm thời hạn hiệu lực tính bằng giây.

Lưu access token ở đâu trong n8n

Access token không lưu trong node HTTP Request dạng credential thường, vì nó hết hạn liên tục và cần ghi đè. Cách phổ biến là lưu vào một node Set hoặc một bảng nhỏ trong PostgreSQL đi kèm VPS n8n, đọc ra trước mỗi lần gọi API.

Refresh token khác access token thế nào

Refresh token sống lâu hơn nhiều, dùng để xin access token mới khi token cũ hết hạn. Mất refresh token thì phải cấp quyền lại từ đầu qua trình duyệt, nên lưu nó ở nơi tách biệt, không chung chỗ với access token hay đổi.

Access token Zalo OA hết hạn theo giờ, xử lý ra sao

Access token Zalo OA chỉ sống khoảng 1 giờ trước khi hết hạn, ngắn hơn hẳn token của nhiều nền tảng khác. Workflow gửi tin chạy đều đặn cả ngày mà không tự làm mới token thì sớm muộn cũng gặp request bị từ chối vì token đã chết.

Cách xử lý là chèn một nhánh kiểm tra tuổi token trước mỗi lần gửi tin, không đợi tới khi API trả lỗi mới refresh. Node Code so sánh thời điểm token được cấp với giờ hiện tại. Dưới 55 phút thì dùng token cũ. Quá mốc đó, gọi API refresh trước rồi mới gửi. Chừa 5 phút đệm, tránh trường hợp token hết hạn đúng lúc request đang bay.

Một cách khác chắc ăn hơn là đặt lịch cron riêng, chạy mỗi 45 phút chỉ để làm mới token và ghi đè vào nơi lưu trữ, tách hẳn khỏi workflow gửi tin. Workflow gửi tin lúc đó chỉ đọc token mới nhất, không cần tự kiểm tra tuổi token nữa. Cách này thêm một workflow phụ nhưng giảm rủi ro sai logic trong workflow chính, phần đông đội kỹ thuật chọn hướng này khi tần suất gửi tin cao.

Dựng workflow Zalo OA không phải tự mò từ máy trắng

BizMaC triển khai workflow n8n theo đúng nghiệp vụ, từ khảo sát quy trình gửi tin thật tới bàn giao chạy ổn định trên hạ tầng riêng.

Xem dịch vụ AI Workflow

Gọi API gửi tin Zalo OA cần những tham số gì

API gửi tin Zalo OA cần header chứa access token, cùng phần thân request khai báo người nhận qua user_id và nội dung tin nhắn theo định dạng Zalo quy định. Node HTTP Request trong n8n cấu hình method POST, Content-Type JSON, và map các trường này từ dữ liệu workflow phía trước đổ vào.

Người nhận phải từng tương tác với Official Account trong một khung thời gian nhất định thì tin nhắn tư vấn (Consultation Message) mới gửi được. Ngoài mốc đó, kênh còn lại là ZNS, hình thức gửi tin có trả phí theo từng tin, dùng cho thông báo giao dịch như xác nhận đơn hàng hay nhắc lịch hẹn.

Tiêu chíConsultation MessageZNS
Điều kiện gửiKhách từng nhắn hoặc tương tác OA gần đâyKhông cần khách tương tác trước
Chi phí mỗi tinMiễn phí trong khung thời gian cho phépTính phí theo tin, theo bảng giá Zalo công bố
Dùng cho việc gìTrả lời, chăm sóc, tư vấn theo hội thoạiXác nhận đơn hàng, nhắc lịch, thông báo giao dịch
Cách gọi trong n8nNode HTTP Request tới endpoint gửi tin thườngNode HTTP Request tới endpoint ZNS riêng, kèm template đã duyệt

Nhận sự kiện từ Zalo OA vào n8n bằng webhook thế nào

Zalo OA gửi sự kiện như tin nhắn mới hoặc khách theo dõi OA về một URL webhook do bạn khai báo trong trang quản trị app. n8n dựng sẵn node Webhook để nhận, chỉ cần copy URL sinh ra và dán vào cấu hình webhook bên Zalo Developers.

Khi khách nhắn tin vào OA, Zalo gọi tới webhook đó kèm dữ liệu JSON chứa nội dung tin và ID người gửi. Workflow đọc dữ liệu này, có thể tự động trả lời ngay hoặc đẩy sang node AI Agent phân loại yêu cầu trước khi quyết định gửi tin gì tiếp theo. Đây là hướng khác với việc dùng AI Agent xử lý phần suy luận trong workflow, ở đây webhook chỉ đóng vai trò cổng nhận dữ liệu đầu vào.

Lỗi hay gặp khi n8n kết nối Zalo OA

Ba lỗi lặp lại nhiều nhất khi mới dựng luồng kết nối này: gọi API bằng access token đã hết hạn, thiếu quyền gửi tin cho loại tin nhắn đang dùng, và sai định dạng user_id giữa các phiên bản API. Nhận diện đúng lỗi giúp sửa nhanh hơn đoán mò.

Response trả về mã lỗi kèm mô tả bằng tiếng Anh, ví dụ mã lỗi liên quan token hết hạn khác hẳn mã lỗi liên quan vượt giới hạn gửi tin trong ngày. Node kiểm tra response nên tách theo mã lỗi cụ thể thay vì gộp chung một nhánh báo lỗi, để log sau này biết ngay nguyên nhân mà không phải dò lại từng request.

Với workflow chạy lâu dài không có người theo dõi sát, phần bắt lỗi và cảnh báo càng quan trọng hơn cấu hình gửi tin ban đầu. Server chạy workflow ổn định cũng là một phần của bài toán này, dịch vụ quản trị máy chủ BizMaC nhận theo dõi tài nguyên và xử lý sự cố hạ tầng để workflow không đứng vì máy chủ chứ không phải vì logic gửi tin.

Câu hỏi thường gặp về n8n kết nối Zalo OA

n8n kết nối Zalo OA có cần node cài thêm không

Không cần community node riêng. Node HTTP Request có sẵn trong n8n đủ để gọi mọi endpoint của Zalo OA API, miễn cấu hình đúng header và tham số.

Vì sao workflow gửi tin Zalo OA đột nhiên báo lỗi 401

Phần lớn do access token đã hết hạn sau khoảng 1 giờ mà workflow chưa refresh kịp. Kiểm tra lại nhánh làm mới token trước khi nghi ngờ tới cấu hình gửi tin.

Consultation Message và ZNS chọn loại nào cho chăm sóc khách hàng

Trả lời hội thoại, tư vấn thông thường dùng Consultation Message trong khung thời gian cho phép. Thông báo giao dịch cần gửi chắc chắn, không phụ thuộc khách có tương tác trước hay không thì dùng ZNS.

Có thể test webhook Zalo OA trên máy local trước khi lên VPS không

Được, dùng công cụ hầm đường (tunnel) tạo URL công khai tạm thời trỏ vào n8n chạy local để khai báo webhook thử. Lên môi trường thật thì đổi lại URL webhook trỏ về VPS chạy chính thức.

Điều cần nhớ

  • Zalo OA chưa có node n8n chính thức, mọi kết nối đi qua node HTTP Request.
  • Access token sống khoảng 1 giờ, cần nhánh kiểm tra tuổi token hoặc cron riêng làm mới trước khi hết hạn.
  • Consultation Message miễn phí nhưng cần khách tương tác trước, ZNS tính phí theo tin nhưng gửi được không điều kiện.
  • Webhook nhận sự kiện từ Zalo OA dùng node Webhook có sẵn, không cần cấu hình thêm gì đặc biệt.
  • Tách bắt lỗi theo mã lỗi cụ thể để log workflow còn có ý nghĩa khi có sự cố.

Quy trình dựng luồng Zalo OA gọn hơn khi có người từng làm việc này khảo sát nghiệp vụ trước, đó là cách giải pháp AI Workflow n8n của BizMaC tiếp cận từng dự án.

Lưu ý: Bài viết chia kinh nghiệm chung, còn mỗi doanh nghiệp một quy mô và một cách vận hành. Muốn biết cách nào hợp với trường hợp của bạn — chọn gói nào, làm theo thứ tự nào, chi phí ra sao — chuyên viên BizMaC tư vấn và làm giúp bạn phần kỹ thuật.

Đọc rồi mà vẫn ngại tự làm?

Để BizMaC dựng website cho doanh nghiệp bạn

Giao diện chuẩn UX, cấu trúc chuẩn SEO, chạy mượt trên di động và dễ tự quản trị sau khi bàn giao. BizMaC làm website cho doanh nghiệp Việt từ năm 2007, đi kèm hướng dẫn vận hành chứ không bàn giao xong là hết.

Khách hàng và các chỉ số lượt theo dõi, độ phủ, doanh thu của một website doanh nghiệp