Description
n8n-nodes-zsm
Node cộng đồng cho n8n để làm việc với một workspace quản lý nhiều tài khoản chat bán hàng.
- Đăng nhập một lần bằng tài khoản quản trị (username/password), không cần quét QR cho từng sale.
- Liệt kê toàn bộ tài khoản sale mà tài khoản quản trị được phép dùng.
- Chọn tài khoản sale để tìm khách theo số điện thoại, kiểm tra quan hệ bạn bè, gửi lời mời kết bạn và gửi tin nhắn.
> ⚠️ Không chính thức. Không liên kết với nhà cung cấp workspace. API có thể thay đổi không báo trước; tự chịu trách nhiệm khi dùng.
Cài đặt
Trong n8n: Settings → Community nodes → Install → nhập n8n-nodes-zsm.
Hoặc cài thủ công trong môi trường n8n:
npm install n8n-nodes-zsm
Yêu cầu Node.js >= 20.
Credential
Tạo credential ZSM Workspace API với các trường:
| Trường | Ý nghĩa |
| — | — |
| Workspace URL | Host workspace, dùng cho API sau đăng nhập |
| Login URL | Host trang đăng nhập username/password |
| Login Target | Giá trị target của form đăng nhập do workspace quy định |
| Username | Tài khoản quản trị |
| Password | Mật khẩu, được n8n mã hóa khi lưu |
| Timeout (ms) | Timeout mỗi request, mặc định 30000 |
Node đăng nhập lại mỗi lần workflow chạy. Mật khẩu và token không được ghi ra output.
Node ZSM
| Resource | Operation | Kết quả |
| — | — | — |
| Account | Get Many | Mỗi item là một tài khoản sale: accountId, name, status |
| Contact | Find by Phone | found, userId, name, avatar, conversationId |
| Friend Request | Get Status | status: ALREADY_FRIENDS, INVITED, NONE, UNKNOWN |
| Friend Request | Send | Tra cứu SĐT rồi gửi lời mời; trả INVITED, ALREADYFRIENDS, NOTFOUND, DRY_RUN |
| Message | Send | Gửi tin nhắn văn bản tới toId, trả messageId |
Dry Run
Hai operation ghi dữ liệu (Friend Request → Send, Message → Send) có tùy chọn Dry Run, mặc định bật. Khi bật, node chỉ tra cứu và trả kết quả dự kiến, không gửi thật.
Map sale code với account
Mỗi dòng khách trong workflow thường có Mã Nhân Viên. Thêm cột zsmaccountid vào Data Table Sales và map:
{{ $json.zsmaccountid }}
rồi truyền vào trường Sale Account. Node không tự đoán tài khoản theo tên để tránh gửi nhầm sale.
Lỗi có cấu trúc
Khi node được đặt Continue On Fail / onError = continueRegularOutput, mỗi item lỗi trả thêm:
| Field | Ý nghĩa |
| — | — |
| error | Thông báo ngắn |
| errorName | Loại lỗi (HttpError, ApiError, AuthenticationError…) |
| errorCode | Mã lỗi API nếu có |
| errorStatus | HTTP status nếu có |
| errorBody | Body rút gọn 500 ký tự để chẩn đoán |
Dùng các field này để ghi log DB; không cần parse chuỗi.
Ghi chú an toàn
Phát triển
npm install --legacy-peer-deps
npm test
Test dùng HTTP server giả, không gọi mạng thật và không cần credential thật.
Giấy phép
MIT.


