Tổng quan
ZaloMessageTrigger là node khởi đầu cho hầu hết các workflow tự động hóa Zalo. Nó lắng nghe các sự kiện xảy ra trên tài khoản Zalo của bạn và kích hoạt workflow ngay lập tức.
Khả năng lắng nghe
Node này có thể bắt được các sự kiện:
- 📩 Tin nhắn mới: Text, ảnh, file, sticker, voice...
- 😮 Cảm xúc (Reactions): Like, heart, haha...
- 👥 Sự kiện nhóm: Tham gia, rời nhóm, kick member, đổi tên/avatar
- ⌨️ Trạng thái: Đang soạn tin (typing), đã xem (seen)
- 🤝 Bạn bè: Lời mời kết bạn mới, chấp nhận kết bạn
Configuration
Parameters
| Parameter | Type | Mô tả |
|---|---|---|
| Credential | Credential | Zalo credential (bắt buộc) |
| Poll Time | Number | Thời gian check events (default: 1s) |
| Event Types | Multi-select | Chọn loại sự kiện muốn lắng nghe |
| Filters | Collection | Lọc sự kiện theo điều kiện |
Event Types
Bạn có thể chọn lắng nghe một hoặc nhiều loại sự kiện:
- Incoming Message: Tin nhắn đến (quan trọng nhất)
- Group Event: Thay đổi trong nhóm
- Friend Request: Lời mời kết bạn
- Reaction: Thả tim/like tin nhắn
- Message Status: Đã gửi, đã nhận, đã xem
- Typing: Người dùng đang gõ phím
Output Data Structure
Khi có sự kiện, node sẽ trả về JSON object chứa thông tin chi tiết.
1. Incoming Message (Tin nhắn text)
{
"event": "onMessage",
"data": {
"msgId": "123456789",
"content": "Xin chào, tôi muốn hỏi giá",
"fromId": "user_123",
"fromDisplayName": "Nguyễn Văn A",
"toId": "my_user_id",
"timestamp": 1704067200000,
"type": "text",
"isGroup": false
}
}
2. Group Message (Tin nhắn nhóm)
{
"event": "onMessage",
"data": {
"msgId": "987654321",
"content": "@All họp team nhé",
"groupId": "group_456",
"groupName": "Team Dự Án",
"fromId": "user_123",
"timestamp": 1704067200000,
"isGroup": true,
"mentions": ["all"]
}
}
3. Image Message
{
"event": "onMessage",
"data": {
"type": "image",
"urls": [
"https://zalo-api.zadn.vn/...",
"https://zalo-api.zadn.vn/..."
],
"caption": "Ảnh sản phẩm lỗi"
}
}
4. Reaction Event
{
"event": "onReaction",
"data": {
"msgId": "123456789",
"reactorId": "user_123",
"reactType": "haha", // like, love, haha, wow, sad, angry
"groupId": "group_456" // nếu trong group
}
}
Filters (Bộ lọc)
Để tránh workflow chạy không cần thiết, bạn nên sử dụng filters ngay trong trigger node:
| Filter | Mô tả |
|---|---|
| From ID | Chỉ nhận tin từ User/Group cụ thể |
| Is Group | Chỉ nhận tin nhóm (True) hoặc tin cá nhân (False) |
| Keywords | Chỉ kích hoạt nếu nội dung chứa từ khóa (VD: "giá", "mua") |
| Exclude Me | Bỏ qua tin nhắn do chính mình gửi (Default: True) |
Common Use Cases
1. AI Chatbot Auto-reply
Tự động trả lời tin nhắn khách hàng bằng AI:
Trigger: Incoming Message (Filter: Not Group)
→ IF: Content contains keyword?
→ True: ZaloSendMessage (Template answer)
→ False:
→ OpenAI Node (Generate response)
→ ZaloSendMessage (AI response)
2. Group Moderation (Kiểm duyệt nhóm)
Tự động xóa tin nhắn vi phạm hoặc kick thành viên spam:
Trigger: Incoming Message (Filter: Is Group)
→ IF: Content contains bad words / spam link?
→ True:
→ ZaloGroup: Delete Message (thu hồi)
→ ZaloGroup: Kick Member (nếu vi phạm nhiều lần)
→ ZaloSendMessage: Warning user
3. Order Notification Parsing
Lắng nghe tin nhắn đặt hàng và lưu vào Google Sheets:
Trigger: Incoming Message
→ IF: Content starts with "ĐẶT HÀNG"
→ Function: Parse order info (Item, Qty, Phone, Address)
→ Google Sheets: Add Row
→ ZaloSendMessage: "Đã nhận đơn hàng, cảm ơn bạn!"
4. CRM Sync - Friend Request
Tự động chấp nhận kết bạn và lưu thông tin vào CRM:
Trigger: Friend Request
→ ZaloUser: Accept Friend Request
→ ZaloUser: Get User Info
→ Hubspot/Pipedrive: Create Contact
→ ZaloSendMessage: "Chào bạn, cảm ơn đã kết nối!"
Troubleshooting & Tips
❌ Node không trigger sự kiện
Nguyên nhân:
- Credential hết hạn (cookie expired)
- Mất kết nối mạng
- Event type chưa được chọn
Giải pháp:
- Kiểm tra credential, đăng nhập lại nếu cần
- Đảm bảo n8n instance có internet access
- Kiểm tra lại cấu hình Event Types
❌ Trigger quá chậm
Nguyên nhân: Poll time quá lớn hoặc server quá tải.
Giải pháp:
- Giảm Poll Time xuống 1s (mặc định)
- Trigger sử dụng cơ chế Long Polling nên độ trễ thường rất thấp (< 1s).
❌ Duplicate events
Nguyên nhân: Có thể do mạng chập chờn hoặc workflow chạy lâu hơn thời gian poll.
Giải pháp:
- Sử dụng node Deduplication (nếu có) hoặc lưu
msgIdđã xử lý vào Redis/Database để check trùng.
💡 Pro Tips
Best Practices:
- Luôn sử dụng Filter: Giúp giảm load cho server n8n, chỉ xử lý tin nhắn cần thiết.
- Xử lý "Exclude Me": Luôn bật tùy chọn này để tránh vòng lặp vô tận (Loop) khi bot tự trả lời chính mình.
- Error Handling: Luôn thêm node Error Trigger hoặc cấu hình "Continue on Fail" để workflow không bị crash nếu xử lý 1 tin nhắn lỗi.
Bước tiếp theo
Sau khi đã biết cách gửi tin nhắn, quản lý nhóm và lắng nghe sự kiện, bài tiếp theo chúng ta sẽ khám phá các nodes tiện ích khác như ZaloPoll (Bình chọn), ZaloTag (Phân loại) và ZaloLoginByQr.
Bài viết hữu ích?
Chia sẻ để nhiều người biết đến!
>_ LLM-Friendly Copy
Copy as Markdown to use with ChatGPT, Claude, or other AI tools



