ZaloMessageTrigger Node - Lắng nghe sự kiện Real-time trong n8n

@Nguyễn Ngô Thượng//~4 phút đọc0
Chia sẻ:
ZaloMessageTrigger Node - Lắng nghe sự kiện Real-time trong n8n

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

ParameterTypeMô tả
CredentialCredentialZalo credential (bắt buộc)
Poll TimeNumberThời gian check events (default: 1s)
Event TypesMulti-selectChọn loại sự kiện muốn lắng nghe
FiltersCollectionLọ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:

  1. Incoming Message: Tin nhắn đến (quan trọng nhất)
  2. Group Event: Thay đổi trong nhóm
  3. Friend Request: Lời mời kết bạn
  4. Reaction: Thả tim/like tin nhắn
  5. Message Status: Đã gửi, đã nhận, đã xem
  6. 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:

FilterMô tả
From IDChỉ nhận tin từ User/Group cụ thể
Is GroupChỉ nhận tin nhóm (True) hoặc tin cá nhân (False)
KeywordsChỉ kích hoạt nếu nội dung chứa từ khóa (VD: "giá", "mua")
Exclude MeBỏ 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:

  1. Kiểm tra credential, đăng nhập lại nếu cần
  2. Đảm bảo n8n instance có internet access
  3. 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:

  1. Luôn sử dụng Filter: Giúp giảm load cho server n8n, chỉ xử lý tin nhắn cần thiết.
  2. 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.
  3. 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!

Chia sẻ:

>_ LLM-Friendly Copy

Copy as Markdown to use with ChatGPT, Claude, or other AI tools

943 words|5,798 characters

Bài viết liên quan

Khám phá thêm những bài viết cùng chủ đề với ZaloMessageTrigger Node - Lắng nghe sự kiện Real-time trong n8n

Bài viết hữu ích? Hãy kết nối với Diginno!

Chúng tôi giúp doanh nghiệp SME ứng dụng AI và automation vào quy trình làm việc - từ tư vấn chiến lược đến triển khai thực tế.