zalo-personal-pro

N8n Community Node tích hợp tài khoản Zalo cá nhân: Gửi tin nhắn, hình ảnh, video, quản lý nhóm & bạn bè tự động

Documentation

n8n-nodes-zalo-personal

Bộ Node n8n Community kết nối tài khoản Zalo cá nhân (Unofficial Zalo Automation)
Được phát triển độc lập, tối ưu siêu nhẹ (~50KB so với ~9MB của codedao), không rác, mã nguồn mở 100% bằng TypeScript.


🌟 Tính năng chính

1. Tin nhắn (Message)

  • Gửi tin nhắn văn bản (sendMessage): Gửi tin nhắn cá nhân hoặc nhóm.
  • Gửi Video (sendVideo): Hỗ trợ truyền videoUrl, thumbnailUrl, caption lời nhắn và thời lượng video (khớp chuẩn luồng của các workflow tự động hóa Zalo).
  • Gửi hình ảnh & tài liệu (sendImage, sendFile): Tự động tải từ Direct URL hoặc đọc file trên máy chủ gửi qua Zalo.

2. Quản lý nhóm (Group)

  • Lấy thông tin nhóm (getGroupInfo): Trích xuất tên, creator, setting, tổng số thành viên...
  • Lấy danh sách thành viên (getGroupMembers): Tự động bóc tách toàn bộ memberIds và profile chi tiết (Tên hiển thị, avatar, zaloName). Có tùy chọn Tách từng thành viên thành 1 dòng (Item) để chạy vòng lặp (Loop) trong n8n cực kỳ mượt mà.
  • Thêm / Xóa thành viên (addUserToGroup, removeUserFromGroup): Quản lý thành viên nhóm tự động bằng User ID.

3. Quản lý bạn bè (Friend)

  • Gửi lời mời kết bạn (sendFriendRequest): Gửi kết bạn kèm lời nhắn tùy chỉnh theo User ID.
  • Đồng ý kết bạn (acceptFriendRequest): Tự động duyệt kết bạn.
  • Tìm người dùng (findUser): Tra cứu Zalo ID và thông tin profile từ Số điện thoại.
  • Lấy danh sách bạn bè (getAllFriends): Xuất toàn bộ danh sách bạn bè hiện có.

4. Đăng nhập QR & Tự động đổi phiên (Auto Replace Credential)

  • loginQR: Tạo mã QR đăng nhập trực tiếp. Sau khi bạn dùng app Zalo điện thoại quét mã thành công, node sẽ tự động gọi n8n API để cập nhật đè session mới vào Credential trên n8n.
  • Giải quyết triệt để vấn đề Zalo tự động hết hạn phiên sau mỗi 30–45 ngày mà không cần mở DevTools copy/paste cookie thủ công.

5. Bộ lắng nghe thời gian thực (Trigger)

  • Zalo Personal Trigger: Bắt sự kiện tin nhắn đến (User hoặc Group), sự kiện nhóm, hoặc lời mời kết bạn mới theo thời gian thực (WebSocket).

🚀 Vì sao nên dùng bộ Node này thay cho codedao?

Tiêu chí codedao (n8n-nodes-ultimate) n8n-nodes-zalo-personal
Dung lượng Nặng ~9 MB (nhồi Facebook, TikTok, yt-dlp...) Siêu nhẹ ~52 KB, chỉ tập trung Zalo
Mã nguồn Bị làm rối (Obfuscated), không thể sửa lỗi TypeScript sạch 100%, dễ debug & tùy biến
Thông báo lỗi Báo lỗi hàm mã hóa vô nghĩa (a(r-764)...) Báo lỗi rõ ràng bằng Tiếng Việt / chuẩn n8n
Quản lý Session Dễ văng phiên, checkpoint do login liên tục Session Manager thông minh, tự cache kết nối
Hỗ trợ Proxy Giới hạn Hỗ trợ HTTP/SOCKS5 Proxy chống checkpoint IP

📦 Hướng dẫn cài đặt lên n8n Server

Cách 1: Cài đặt trực tiếp từ file nén .tgz (Khuyên dùng cho Docker / Self-hosted)

  1. Copy file n8n-nodes-zalo-personal-1.0.0.tgz vào server hoặc container n8n của bạn.
  2. Di chuyển vào thư mục cài đặt n8n (nơi có file package.json của n8n hoặc thư mục .n8n):
    cd ~/.n8n
    npm install /path/to/n8n-nodes-zalo-personal-1.0.0.tgz
    
  3. Khởi động lại n8n:
    docker restart <n8n-container-id>
    # hoặc restart service n8n
    

Cách 2: Cài đặt thủ công qua thư mục Custom Nodes

Nếu bạn dùng Docker với mount volume:

  1. Tạo thư mục custom bên trong thư mục dữ liệu của n8n (ví dụ: /home/node/.n8n/custom).
  2. Copy thư mục n8n-nodes-zalo-personal vào trong đó:
    cd /home/node/.n8n/custom/
    git clone <repo-cua-ban> n8n-nodes-zalo-personal
    cd n8n-nodes-zalo-personal
    npm install
    npm run build
    npm link
    cd ~/.n8n
    npm link n8n-nodes-zalo-personal
    

Cách 3: Đưa lên npm riêng (Private hoặc Public)

Nếu bạn publish gói này lên npm (ví dụ: npm publish --access public):

  • Trong giao diện n8n: Vào Settings $\rightarrow$ Community Nodes $\rightarrow$ Install $\rightarrow$ Nhập tên gói của bạn.

🔑 Hướng dẫn lấy thông tin đăng nhập (Credentials)

  1. Đăng nhập tài khoản Zalo trên trình duyệt (web.zalo.me).
  2. Mở Công cụ nhà phát triển (F12) $\rightarrow$ tab Console hoặc dùng tiện ích lấy Cookie.
  3. Chạy script nhỏ hoặc copy mảng cookies & imei từ localStorage:
    • imei: Lấy trong Application $\rightarrow$ Local Storage $\rightarrow$ https://chat.zalo.me $\rightarrow$ key z_uuid hoặc imei.
    • cookie: Lấy toàn bộ cookie của tên miền zalo.me.
  4. Hoặc xuất Session JSON bằng zca-js CLI:
    {
      "imei": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "cookie": [...],
      "userAgent": "Mozilla/5.0..."
    }
    
  5. Trong n8n, tạo Credential Zalo Personal Account API và dán Session JSON vào.

⚖️ Lưu ý pháp lý & Bảo mật

  • Đây là dự án sử dụng API không chính thức (Unofficial) mô phỏng Web Zalo qua zca-js.
  • Hãy sử dụng tài khoản Zalo phụ để chạy tự động hóa và luôn đặt độ trễ (delay 10–15s) giữa các lần gửi tin nhắn/kết bạn để tránh bị Zalo giới hạn tính năng.

Discussion