JSPM

  • Created
  • Published
  • Downloads 4655
  • Score
    100M100P100Q121569F
  • License MIT

Zalo integration for n8n: personal account (zca-js) and official Zalo Bot Platform

Package Exports

  • n8n-nodes-zalo-gemazo
  • n8n-nodes-zalo-gemazo/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (n8n-nodes-zalo-gemazo) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

n8n-nodes-zalo-gemazo

Community node n8n tích hợp Zalo theo hai luồng:

Luồng API Dùng khi
Zalo Bot (khuyến nghị doanh nghiệp) Zalo Bot Platform — token chính thức Chatbot, auto-reply, không cần tài khoản cá nhân
Zalo cá nhân zca-js — không chính thức Tự động hóa tài khoản Zalo Web đầy đủ tính năng

Cảnh báo (cá nhân): API không chính thức, mô phỏng Zalo Web. Có thể vi phạm điều khoản Zalo và dẫn đến khóa tài khoản. Nên dùng tài khoản phụ để thử nghiệm.

Cài đặt

Community Nodes (khuyến nghị)

  1. Mở n8n → SettingsCommunity Nodes
  2. Cài package: n8n-nodes-zalo-gemazo
  3. Tải lại editor

Cài thủ công

cd ~/.n8n/nodes
npm install n8n-nodes-zalo-gemazo

Zalo Bot (API chính thức)

2 node Bot

Node Mô tả
Zalo Bot Event Trigger Nhận tin nhắn qua webhook (tự đăng ký khi activate)
Zalo Bot Tương Tác Gửi tin nhắn, ảnh, sticker

Tạo bot và credential

  1. Mở app Zalo → tìm OA Zalo Bot ManagerTạo bot
  2. Nhập tên bot (bắt đầu bằng Bot, ví dụ Bot MyShop)
  3. Zalo gửi Bot Token dạng {bot_id}:{secret_key}
  4. Trong n8n: credential Zalo Bot:
    • Bot Token: dán toàn bộ chuỗi token
    • Webhook Secret Token (tùy chọn): chỉ cần nếu cấu hình webhook thủ công trên Zalo Bot Manager

Hai cách cấu hình webhook

Cách A — n8n tự đăng ký (khuyến nghị)

  1. Credential: chỉ điền Bot Token
  2. Zalo Bot Event Trigger → bật Tự Đăng Ký Webhook
  3. Activate workflow → n8n tự gọi setWebhook
  4. Không cần điền Webhook trên Zalo Bot Manager

Cách B — cấu hình tay trên Zalo Bot Manager

  1. Activate workflow trước → copy Production Webhook URL từ node trigger (dạng /webhook/..., không dùng /webhook-test/)
  2. Trên Zalo Bot Manager: dán Webhook URL + Secret Token → Lưu thay đổi
  3. Credential n8n: dán cùng Secret Token vào field Webhook Secret Token
  4. Node trigger: tắt Tự Đăng Ký Webhook

HTTP được Zalo chấp nhận (http:// hoặc https://). Cần IP public + mở port (vd. 5678) để Zalo gọi được vào.

Workflow mẫu Bot

Zalo Bot Event Trigger (Text Message)
  → Zalo Bot Tương Tác (Send Message)
       chatId: {{ $json.message.chat.id }}
       text: Xin chào {{ $json.message.from.display_name }}!

Expression hữu ích:

Expression Mô tả
{{ $json.message.chat.id }} Chat ID để trả lời
{{ $json.message.text }} Nội dung tin nhắn
{{ $json.event_name }} Loại sự kiện

Yêu cầu và lưu ý Bot

  • Webhook URL phải truy cập được từ internet (http hoặc https)
  • Một bot chỉ gắn một webhook — workflow activate sau ghi đè workflow trước
  • Secret Token trên Zalo phải trùng với credential n8n (hoặc để trống để n8n tự sinh)
  • Cloudflare: Zalo gửi webhook với User-Agent: Java/1.8.0_192 — có thể bị chặn. Tạo rule WAF skip cho path chứa /webhook

Khắc phục “đã set nhưng không nhận tin”

Nguyên nhân Cách xử lý
Secret Token không khớp Dán cùng secret vào credential Webhook Secret Token
Dùng /webhook-test/ Activate workflow, dùng URL /webhook/... (production)
Port chưa mở Mở firewall port n8n (vd. 5678) cho IP public
Token cũ sau Reset Cập nhật Bot Token mới vào credential n8n
Cấu hình tay + tự đăng ký Tắt Tự Đăng Ký Webhook nếu đã set trên Zalo

Sắp có (Bot)

  • getUpdates (polling, không cần HTTPS)
  • sendChatAction (typing indicator)
  • Quản lý webhook thủ công

Zalo cá nhân — 3 node chính

Node Mô tả
Zalo Login QR Đăng nhập QR, tự lưu credential
Zalo Event Trigger Lắng nghe tin nhắn, reaction, thu hồi, sự kiện nhóm
Zalo Tương Tác Gửi tin / quản lý bạn bè, nhóm, tài khoản, tool

Zalo Tương Tác — Resource

Resource Ví dụ
Message Gửi tin nhắn, sticker, voice (nhiều ảnh)
Get Bạn bè, nhóm, user info, sticker
Friend Kết bạn, chặn, alias, profile
Group Tạo/sửa nhóm, poll, ghi chú
Account Thông tin tài khoản, pin, test credential
Tool Xóa tin, reaction, typing, danh thiếp
Custom API Call Gọi method zca-js tùy ý

Zalo Event Trigger — Listen Events

Chọn một hoặc nhiều: Message, Reaction, Undo, Group Event.

Output có field event (message, reaction, undo, group_event).

So sánh Bot vs Cá nhân

Zalo Bot Zalo cá nhân
API Chính thức Không chính thức
Credential Bot Token Cookie + IMEI + UA
Trigger Webhook HTTPS WebSocket
Rủi ro khóa TK Thấp Cao
Tính năng Chat bot cơ bản Đầy đủ (nhóm, poll, reaction…)

Chuyển từ node cũ (ẩn khỏi palette)

Node cũ Thay bằng
Zalo Message Zalo Tương Tác → Resource Message
Zalo User Resource Friend / Get
Zalo Group Resource Group
Zalo Account Resource Account
Zalo Sticker Resource Get
Zalo Poll / Note Resource Group
Zalo Message Trigger Zalo Event Trigger → Message
Zalo Reaction Trigger Zalo Event Trigger → Reaction
Zalo Undo Trigger Zalo Event Trigger → Undo
Zalo Group Event Trigger Zalo Event Trigger → Group Event

Workflow cũ vẫn chạy — các node cũ chỉ bị ẩn khi thêm node mới.

Credential zaloApi (cá nhân)

Field Mô tả
Cookie JSON cookie từ Zalo Web hoặc Zalo Login QR
IMEI localStorage.getItem('z_uuid') trên chat.zalo.me
User Agent navigator.userAgent từ trình duyệt
Proxy Tùy chọn

Workflow mẫu (cá nhân)

  1. Zalo Login QR → quét QR → credential Zalo - Tên (SĐT)
  2. Zalo Event Trigger → Listen Message → test event
  3. Zalo Tương Tác → Resource Message → Gửi tin nhắn
    • User/Group Id: ={{ $json.threadId }}
    • Attachments: ={{ $json.imageUrls.join(",") }} (album)

Phát triển

npm install
npm run build
npm run lint

License

MIT — xem LICENSE.