n8n-nodes-zalo-nnt 1.0.9 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +19 -19
- package/README.md +248 -231
- package/dist/credentials/N8nZaloApi.credentials.js +1 -1
- package/dist/credentials/ZaloApi.credentials.js +1 -1
- package/dist/credentials/shared/zalo.svg +10 -10
- package/dist/nodes/ZaloChatHistory/ZaloChatHistory.node.js +1 -1
- package/dist/nodes/ZaloChatHistory/ZaloChatHistory.properties.js +1 -1
- package/dist/nodes/ZaloChatHistory/utils/historyProcessor.js +1 -1
- package/dist/nodes/ZaloChatHistory/utils/index.js +1 -1
- package/dist/nodes/ZaloChatHistory/utils/messageParser.js +1 -1
- package/dist/nodes/ZaloChatHistory/utils/types.js +1 -1
- package/dist/nodes/ZaloChatHistory/utils/validator.js +1 -1
- package/dist/nodes/ZaloConversation/ZaloConversation.node.d.ts +5 -0
- package/dist/nodes/ZaloConversation/ZaloConversation.node.js +1 -0
- package/dist/nodes/ZaloConversation/ZaloConversation.node.js.map +1 -0
- package/dist/nodes/ZaloConversation/ZaloConversation.properties.d.ts +2 -0
- package/dist/nodes/ZaloConversation/ZaloConversation.properties.js +1 -0
- package/dist/nodes/ZaloConversation/ZaloConversation.properties.js.map +1 -0
- package/dist/nodes/ZaloConversation/utils/conversationProcessor.d.ts +18 -0
- package/dist/nodes/ZaloConversation/utils/conversationProcessor.js +1 -0
- package/dist/nodes/ZaloConversation/utils/conversationProcessor.js.map +1 -0
- package/dist/nodes/ZaloConversation/utils/index.d.ts +3 -0
- package/dist/nodes/ZaloConversation/utils/index.js +1 -0
- package/dist/nodes/ZaloConversation/utils/index.js.map +1 -0
- package/dist/nodes/ZaloConversation/utils/types.d.ts +66 -0
- package/dist/nodes/ZaloConversation/utils/types.js +1 -0
- package/dist/nodes/ZaloConversation/utils/types.js.map +1 -0
- package/dist/nodes/ZaloConversation/utils/validator.d.ts +8 -0
- package/dist/nodes/ZaloConversation/utils/validator.js +1 -0
- package/dist/nodes/ZaloConversation/utils/validator.js.map +1 -0
- package/dist/nodes/ZaloGroup/ZaloGroup.node.js +1 -1
- package/dist/nodes/ZaloGroup/ZaloGroup.node.js.map +1 -1
- package/dist/nodes/ZaloGroup/ZaloGroup.properties.js +1 -1
- package/dist/nodes/ZaloGroup/ZaloGroup.properties.js.map +1 -1
- package/dist/nodes/ZaloGroup/utils/groupProcessor.d.ts +5 -1
- package/dist/nodes/ZaloGroup/utils/groupProcessor.js +1 -1
- package/dist/nodes/ZaloGroup/utils/groupProcessor.js.map +1 -1
- package/dist/nodes/ZaloGroup/utils/index.js +1 -1
- package/dist/nodes/ZaloGroup/utils/types.d.ts +13 -0
- package/dist/nodes/ZaloGroup/utils/types.js +1 -1
- package/dist/nodes/ZaloGroup/utils/validator.js +1 -1
- package/dist/nodes/ZaloLoginByQr/ZaloLoginByQr.node.js +1 -1
- package/dist/nodes/ZaloLoginByQr/ZaloLoginByQr.node.js.map +1 -1
- package/dist/nodes/ZaloMessageTrigger/EventFilter.js +1 -1
- package/dist/nodes/ZaloMessageTrigger/EventListenerRegistry.js +1 -1
- package/dist/nodes/ZaloMessageTrigger/ZaloConnectionManager.js +1 -1
- package/dist/nodes/ZaloMessageTrigger/ZaloMessageTrigger.node.js +1 -1
- package/dist/nodes/ZaloMessageTrigger/constants.d.ts +2 -2
- package/dist/nodes/ZaloMessageTrigger/constants.js +1 -1
- package/dist/nodes/ZaloMessageTrigger/constants.js.map +1 -1
- package/dist/nodes/ZaloMessageTrigger/types.js +1 -1
- package/dist/nodes/ZaloMessageTrigger/utils.js +1 -1
- package/dist/nodes/ZaloPoll/ZaloPoll.node.js +1 -1
- package/dist/nodes/ZaloPoll/ZaloPoll.node.js.map +1 -1
- package/dist/nodes/ZaloPoll/ZaloPollDescription.js +1 -1
- package/dist/nodes/ZaloQuickMessage/ZaloQuickMessage.node.d.ts +5 -0
- package/dist/nodes/ZaloQuickMessage/ZaloQuickMessage.node.js +1 -0
- package/dist/nodes/ZaloQuickMessage/ZaloQuickMessage.node.js.map +1 -0
- package/dist/nodes/ZaloQuickMessage/ZaloQuickMessage.properties.d.ts +2 -0
- package/dist/nodes/ZaloQuickMessage/ZaloQuickMessage.properties.js +1 -0
- package/dist/nodes/ZaloQuickMessage/ZaloQuickMessage.properties.js.map +1 -0
- package/dist/nodes/ZaloQuickMessage/utils/index.d.ts +3 -0
- package/dist/nodes/ZaloQuickMessage/utils/index.js +1 -0
- package/dist/nodes/ZaloQuickMessage/utils/index.js.map +1 -0
- package/dist/nodes/ZaloQuickMessage/utils/quickMessageProcessor.d.ts +6 -0
- package/dist/nodes/ZaloQuickMessage/utils/quickMessageProcessor.js +1 -0
- package/dist/nodes/ZaloQuickMessage/utils/quickMessageProcessor.js.map +1 -0
- package/dist/nodes/ZaloQuickMessage/utils/types.d.ts +39 -0
- package/dist/nodes/ZaloQuickMessage/utils/types.js +1 -0
- package/dist/nodes/ZaloQuickMessage/utils/types.js.map +1 -0
- package/dist/nodes/ZaloQuickMessage/utils/validator.d.ts +5 -0
- package/dist/nodes/ZaloQuickMessage/utils/validator.js +1 -0
- package/dist/nodes/ZaloQuickMessage/utils/validator.js.map +1 -0
- package/dist/nodes/ZaloReminder/ZaloReminder.node.js +1 -1
- package/dist/nodes/ZaloReminder/ZaloReminder.properties.js +1 -1
- package/dist/nodes/ZaloReminder/utils/index.js +1 -1
- package/dist/nodes/ZaloReminder/utils/reminderProcessor.js +1 -1
- package/dist/nodes/ZaloReminder/utils/types.js +1 -1
- package/dist/nodes/ZaloReminder/utils/validator.js +1 -1
- package/dist/nodes/ZaloSendMessage/ZaloSendMessage.node.js +1 -1
- package/dist/nodes/ZaloSendMessage/ZaloSendMessage.node.js.map +1 -1
- package/dist/nodes/ZaloSendMessage/ZaloSendMessage.properties.js +1 -1
- package/dist/nodes/ZaloSendMessage/ZaloSendMessage.properties.js.map +1 -1
- package/dist/nodes/ZaloSendMessage/utils/attachmentProcessor.js +1 -1
- package/dist/nodes/ZaloSendMessage/utils/index.d.ts +1 -0
- package/dist/nodes/ZaloSendMessage/utils/index.js +1 -1
- package/dist/nodes/ZaloSendMessage/utils/index.js.map +1 -1
- package/dist/nodes/ZaloSendMessage/utils/markdownToZaloStyles.js +1 -1
- package/dist/nodes/ZaloSendMessage/utils/mentionParser.d.ts +12 -0
- package/dist/nodes/ZaloSendMessage/utils/mentionParser.js +1 -0
- package/dist/nodes/ZaloSendMessage/utils/mentionParser.js.map +1 -0
- package/dist/nodes/ZaloSendMessage/utils/messageBuilder.js +1 -1
- package/dist/nodes/ZaloSendMessage/utils/types.js +1 -1
- package/dist/nodes/ZaloSendMessage/utils/validator.js +1 -1
- package/dist/nodes/ZaloTag/ZaloTag.node.js +1 -1
- package/dist/nodes/ZaloUser/ZaloUser.node.js +1 -1
- package/dist/nodes/ZaloUser/ZaloUser.node.js.map +1 -1
- package/dist/nodes/ZaloUser/ZaloUserDescription.js +1 -1
- package/dist/nodes/ZaloUser/ZaloUserDescription.js.map +1 -1
- package/dist/nodes/shared/branding.js +1 -1
- package/dist/nodes/shared/branding.js.map +1 -1
- package/dist/nodes/utils/helper.js +1 -1
- package/dist/package.json +109 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +108 -94
package/LICENSE.md
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
Copyright 2022 n8n
|
|
2
|
-
|
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
4
|
-
this software and associated documentation files (the "Software"), to deal in
|
|
5
|
-
the Software without restriction, including without limitation the rights to
|
|
6
|
-
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
7
|
-
of the Software, and to permit persons to whom the Software is furnished to do
|
|
8
|
-
so, subject to the following conditions:
|
|
9
|
-
|
|
10
|
-
The above copyright notice and this permission notice shall be included in all
|
|
11
|
-
copies or substantial portions of the Software.
|
|
12
|
-
|
|
13
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
19
|
-
SOFTWARE.
|
|
1
|
+
Copyright 2022 n8n
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
4
|
+
this software and associated documentation files (the "Software"), to deal in
|
|
5
|
+
the Software without restriction, including without limitation the rights to
|
|
6
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
7
|
+
of the Software, and to permit persons to whom the Software is furnished to do
|
|
8
|
+
so, subject to the following conditions:
|
|
9
|
+
|
|
10
|
+
The above copyright notice and this permission notice shall be included in all
|
|
11
|
+
copies or substantial portions of the Software.
|
|
12
|
+
|
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
19
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,231 +1,248 @@
|
|
|
1
|
-

|
|
2
|
-
|
|
3
|
-
## 📺 Video hướng dẫn cài đặt & đăng nhập Zalo trên n8n
|
|
4
|
-
|
|
5
|
-
[](https://www.youtube.com/watch?v=iwziXxQoW_Q)
|
|
6
|
-
|
|
7
|
-
> Video chi tiết cách cài đặt node, cấu hình và đăng nhập Zalo bằng QR code trên n8n.
|
|
8
|
-
|
|
9
|
-
# n8n-nodes-zalo-nnt
|
|
10
|
-
|
|
11
|
-
Node dành riêng cho n8n này được thiết kế hoạt động hoàn toàn bên trong instance n8n của bạn. Không cần sử dụng API của bên thứ ba hay phụ thuộc ngoại vi nào — chỉ có sự tự động hóa quy trình thuần túy, đảm bảo dữ liệu của bạn luôn được giữ riêng tư và an toàn.
|
|
12
|
-
|
|
13
|
-
Node này mô phỏng trình duyệt để tương tác trực tiếp với Zalo Web, cho phép tự động hóa liền mạch ngay trong n8n. Đây là dự án mã nguồn mở, mở rộng cơ hội cho cộng đồng cùng đóng góp ý kiến và phát triển thêm các tính năng mới, nhằm xây dựng hệ thống tự động hóa Zalo tiên tiến, hiệu quả và an toàn hơn.
|
|
14
|
-
|
|
15
|
-
## 🎉 Version 1.0.3 - Local File Support
|
|
16
|
-
|
|
17
|
-
### ✨ Tính năng mới
|
|
18
|
-
- **ZaloSendMessage**: Hỗ trợ gửi file từ local server (không cần URL)
|
|
19
|
-
- Thêm 2 loại attachment mới: `Đường dẫn Local` và `Mảng Đường dẫn Local`
|
|
20
|
-
- Tự động tìm file từ nhiều vị trí: đường dẫn tuyệt đối, thư mục n8n (~/.n8n/), hoặc working directory
|
|
21
|
-
- Tích hợp liền mạch với node FTP, HTTP Request, và Read/Write Files from Disk
|
|
22
|
-
- Logging chi tiết để debug đường dẫn file
|
|
23
|
-
|
|
24
|
-
### 🔧 Cải thiện
|
|
25
|
-
- Validation file path thông minh với fallback mechanism
|
|
26
|
-
- Hỗ trợ cả đường dẫn tuyệt đối và tương đối
|
|
27
|
-
- Error messages rõ ràng hơn (hiển thị tất cả đường dẫn đã tìm kiếm)
|
|
28
|
-
- Descriptions và placeholders được cập nhật cho user-friendly
|
|
29
|
-
|
|
30
|
-
### 💡 Use Case
|
|
31
|
-
```
|
|
32
|
-
HTTP Request (download) → Read/Write Files (save to disk) → ZaloSendMessage (send local file)
|
|
33
|
-
FTP Node (download) → ZaloSendMessage (send from file name: {{ $json.fileName }})
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
## 🎉 Version 1.0.2 - Maintenance Release
|
|
39
|
-
|
|
40
|
-
### ✅ Thay đổi
|
|
41
|
-
- Cập nhật cấu hình build và tài liệu bảo vệ mã nguồn trong `docs/development/code-protection.md` để chuẩn hoá quy trình build/obfuscate khi phát hành.
|
|
42
|
-
- Hoàn thiện gói `dist/` sẵn sàng publish; không thay đổi API bề mặt.
|
|
43
|
-
|
|
44
|
-
### ℹ️ Lý do
|
|
45
|
-
- Đảm bảo trải nghiệm cài đặt mượt mà khi dùng `pnpm publish` (tự động build + obfuscate + lint qua hook `prepublishOnly`).
|
|
46
|
-
- Đồng bộ phiên bản `package.json` với bản phát hành trên npm.
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## 🎉 Version 1.0.0 - Major Release
|
|
51
|
-
|
|
52
|
-
### 🚀 Tổng quan
|
|
53
|
-
Package **n8n-nodes-zalo-nnt** hiện cung cấp **9 nodes** với **60+ operations** để tự động hóa Zalo hoàn toàn trong n8n.
|
|
54
|
-
|
|
55
|
-
### 📊 Thống kê
|
|
56
|
-
- **9 nodes**: 1 trigger node + 8 action nodes
|
|
57
|
-
- **60+ operations** tổng cộng
|
|
58
|
-
- **2 credential types**: zaloApi (QR login) + n8nApiZaloApi
|
|
59
|
-
|
|
60
|
-
### 🎯 Tính năng chính v1.0.0
|
|
61
|
-
|
|
62
|
-
#### 1. **ZaloSendMessage** - Gửi tin nhắn đa năng
|
|
63
|
-
- Markdown formatting (**đậm**, *nghiêng*, [red]màu[/red])
|
|
64
|
-
- Gửi nhiều ảnh/file: URL, mảng URL, **hoặc đường dẫn local** ⭐ NEW
|
|
65
|
-
- HEIC/HEIF → JPEG auto-conversion
|
|
66
|
-
- Quote reply (trích dẫn tin nhắn)
|
|
67
|
-
- @Mention users (gắn thẻ)
|
|
68
|
-
- Độ ưu tiên: Mặc định, Quan trọng, Khẩn cấp
|
|
69
|
-
- TTL (tự xóa tin nhắn sau X giây)
|
|
70
|
-
- **Local file support**: Gửi trực tiếp từ FTP/HTTP download hoặc Read/Write Files node ⭐ NEW
|
|
71
|
-
|
|
72
|
-
#### 2. **ZaloGroup** - Quản lý nhóm toàn diện (17 ops)
|
|
73
|
-
**5 Resources:**
|
|
74
|
-
- Nhóm: Tạo, lấy info, danh sách, tham gia, rời
|
|
75
|
-
- Thành viên: Thêm, xóa, mời nhiều nhóm, thêm phó nhóm
|
|
76
|
-
- Cài đặt: Đổi tên, đổi avatar
|
|
77
|
-
- Kiểm duyệt: Lấy DS chặn, chặn/bỏ chặn, duyệt yêu cầu
|
|
78
|
-
- Nội dung: Tạo ghi chú (có ghim)
|
|
79
|
-
|
|
80
|
-
#### 3. **ZaloChatHistory** - Lịch sử trò chuyện
|
|
81
|
-
- Fetch all mode (tự động phân trang)
|
|
82
|
-
- Lọc theo thời gian (từ ngày - đến ngày)
|
|
83
|
-
- Sắp xếp (mới nhất/cũ nhất)
|
|
84
|
-
- Lấy reactions
|
|
85
|
-
- Delay control (tránh block)
|
|
86
|
-
|
|
87
|
-
#### 4. **ZaloReminder** - Lịch hẹn thông minh
|
|
88
|
-
- Tạo/sửa/xóa lịch hẹn
|
|
89
|
-
- Lặp lại: Hàng ngày/tuần/tháng
|
|
90
|
-
- Emoji tùy chỉnh
|
|
91
|
-
- Lấy phản hồi (chấp nhận/từ chối)
|
|
92
|
-
|
|
93
|
-
#### 5. **ZaloPoll** - Bình chọn
|
|
94
|
-
- Tạo/lấy/khóa poll
|
|
95
|
-
- Multi-choice, thêm option mới
|
|
96
|
-
- Ẩn kết quả/người vote
|
|
97
|
-
- Ghim poll, thời hạn
|
|
98
|
-
|
|
99
|
-
#### 6. **ZaloUser** - Quản lý user (24 ops)
|
|
100
|
-
**7 Resources:**
|
|
101
|
-
- Bạn bè (9): Gửi/chấp nhận/từ chối lời mời, xóa, tìm kiếm SĐT
|
|
102
|
-
- Tài khoản (4): Lấy info, đổi settings, đổi ngôn ngữ
|
|
103
|
-
- Riêng tư (3): Chặn/bỏ chặn user, chặn xem feed
|
|
104
|
-
- Biệt danh (3): Đổi/xóa/lấy danh sách alias
|
|
105
|
-
- Avatar (3): Lấy DS, dùng lại ảnh cũ, xóa
|
|
106
|
-
- Tin nhắn (1): Thu hồi
|
|
107
|
-
- Hệ thống (1): Keep alive
|
|
108
|
-
|
|
109
|
-
#### 7. **ZaloTag** - Quản lý thẻ
|
|
110
|
-
- Lấy danh sách labels/tags
|
|
111
|
-
|
|
112
|
-
#### 8. **ZaloLoginByQr** - Đăng nhập tự động
|
|
113
|
-
- QR login đơn giản
|
|
114
|
-
- Auto-create credential (tích hợp n8n API)
|
|
115
|
-
- Proxy support
|
|
116
|
-
- Output QR code dạng PNG
|
|
117
|
-
|
|
118
|
-
#### 9. **ZaloMessageTrigger** - Event listener (9 events)
|
|
119
|
-
**Lắng nghe:**
|
|
120
|
-
1. Tin nhắn mới
|
|
121
|
-
2. Reaction (cảm xúc)
|
|
122
|
-
3. Typing (đang soạn)
|
|
123
|
-
4. Seen/Delivered
|
|
124
|
-
5. Undo (thu hồi)
|
|
125
|
-
6. Group events (join/leave/kick/admin)
|
|
126
|
-
7. Friend events (request/accept/reject)
|
|
127
|
-
8. Connection status
|
|
128
|
-
|
|
129
|
-
**Bộ lọc:**
|
|
130
|
-
- Loại nội dung: text/image/sticker/file/link/video/voice
|
|
131
|
-
- Nguồn: cá nhân/nhóm
|
|
132
|
-
- ID cụ thể
|
|
133
|
-
- Self-listen mode
|
|
134
|
-
|
|
135
|
-
## 📦 Hướng dẫn cài đặt
|
|
136
|
-
|
|
137
|
-
### Community Nodes (Khuyến nghị)
|
|
138
|
-
|
|
139
|
-
Đối với người dùng n8n v0.187+, bạn có thể cài đặt node này trực tiếp từ bảng Community Nodes trong trình soạn thảo n8n.
|
|
140
|
-
|
|
141
|
-
1. Mở trình soạn thảo n8n của bạn
|
|
142
|
-
2. Vào **Settings > Community Nodes**
|
|
143
|
-
3. Tìm kiếm **"n8n-nodes-zalo-nnt"**
|
|
144
|
-
4. Nhấp vào **Install**
|
|
145
|
-
5. Tải lại trình soạn thảo
|
|
146
|
-
|
|
147
|
-
### Cài đặt thủ công
|
|
148
|
-
|
|
149
|
-
```bash
|
|
150
|
-
cd YOUR_N8N_INSTALLATION_DIRECTORY
|
|
151
|
-
npm install n8n-nodes-zalo-nnt
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
## 🔑 Credentials Setup
|
|
155
|
-
|
|
156
|
-
### 1. zaloApi (Zalo Credential)
|
|
157
|
-
|
|
158
|
-
Credential này được tạo tự động khi bạn sử dụng node **ZaloLoginByQr**.
|
|
159
|
-
|
|
160
|
-
**Thông tin credential:**
|
|
161
|
-
- `cookie`: JSON array of cookies từ Zalo Web
|
|
162
|
-
- `imei`: Device IMEI (auto-generated)
|
|
163
|
-
- `userAgent`: Browser user agent
|
|
164
|
-
- `proxy`: (Optional) Proxy URL nếu cần
|
|
165
|
-
- `supportCode`: (Optional) Support code
|
|
166
|
-
- `licenseKey`: (Optional) License key
|
|
167
|
-
|
|
168
|
-
### 2. n8nApiZaloApi (n8n API for QR Login)
|
|
169
|
-
|
|
170
|
-
Credential này cần thiết để node **ZaloLoginByQr** có thể tự động tạo credential Zalo sau khi đăng nhập thành công.
|
|
171
|
-
|
|
172
|
-
**Cách lấy n8n API key:**
|
|
173
|
-
1. Vào **Settings > API** trong n8n
|
|
174
|
-
2. Tạo API key mới
|
|
175
|
-
3. Copy API key và URL của n8n instance
|
|
176
|
-
|
|
177
|
-
## 🎓 Use Cases
|
|
178
|
-
|
|
179
|
-
### 1. Customer Support Bot
|
|
180
|
-
- Auto-reply tin nhắn khách hàng
|
|
181
|
-
- Phân loại và route requests
|
|
182
|
-
- Tích hợp CRM/ticketing systems
|
|
183
|
-
|
|
184
|
-
### 2. Marketing Automation
|
|
185
|
-
- Gửi tin nhắn hàng loạt
|
|
186
|
-
- Scheduled campaigns
|
|
187
|
-
- Group management tự động
|
|
188
|
-
|
|
189
|
-
### 3. Monitoring & Alerts
|
|
190
|
-
- Nhận thông báo từ hệ thống
|
|
191
|
-
- Alert qua Zalo group
|
|
192
|
-
- Status updates tự động
|
|
193
|
-
|
|
194
|
-
### 4. Data Collection
|
|
195
|
-
- Lấy lịch sử chat để phân tích
|
|
196
|
-
- Export group member lists
|
|
197
|
-
- Poll/survey automation
|
|
198
|
-
|
|
199
|
-
### 5. Event-Driven Workflows
|
|
200
|
-
- Trigger workflows từ tin nhắn Zalo
|
|
201
|
-
- Auto-response dựa trên nội dung
|
|
202
|
-
- Integration với external services
|
|
203
|
-
|
|
204
|
-
##
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
Nếu
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
-
|
|
219
|
-
-
|
|
220
|
-
|
|
221
|
-
##
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
1
|
+

|
|
2
|
+
|
|
3
|
+
## 📺 Video hướng dẫn cài đặt & đăng nhập Zalo trên n8n
|
|
4
|
+
|
|
5
|
+
[](https://www.youtube.com/watch?v=iwziXxQoW_Q)
|
|
6
|
+
|
|
7
|
+
> Video chi tiết cách cài đặt node, cấu hình và đăng nhập Zalo bằng QR code trên n8n.
|
|
8
|
+
|
|
9
|
+
# n8n-nodes-zalo-nnt
|
|
10
|
+
|
|
11
|
+
Node dành riêng cho n8n này được thiết kế hoạt động hoàn toàn bên trong instance n8n của bạn. Không cần sử dụng API của bên thứ ba hay phụ thuộc ngoại vi nào — chỉ có sự tự động hóa quy trình thuần túy, đảm bảo dữ liệu của bạn luôn được giữ riêng tư và an toàn.
|
|
12
|
+
|
|
13
|
+
Node này mô phỏng trình duyệt để tương tác trực tiếp với Zalo Web, cho phép tự động hóa liền mạch ngay trong n8n. Đây là dự án mã nguồn mở, mở rộng cơ hội cho cộng đồng cùng đóng góp ý kiến và phát triển thêm các tính năng mới, nhằm xây dựng hệ thống tự động hóa Zalo tiên tiến, hiệu quả và an toàn hơn.
|
|
14
|
+
|
|
15
|
+
## 🎉 Version 1.0.3 - Local File Support
|
|
16
|
+
|
|
17
|
+
### ✨ Tính năng mới
|
|
18
|
+
- **ZaloSendMessage**: Hỗ trợ gửi file từ local server (không cần URL)
|
|
19
|
+
- Thêm 2 loại attachment mới: `Đường dẫn Local` và `Mảng Đường dẫn Local`
|
|
20
|
+
- Tự động tìm file từ nhiều vị trí: đường dẫn tuyệt đối, thư mục n8n (~/.n8n/), hoặc working directory
|
|
21
|
+
- Tích hợp liền mạch với node FTP, HTTP Request, và Read/Write Files from Disk
|
|
22
|
+
- Logging chi tiết để debug đường dẫn file
|
|
23
|
+
|
|
24
|
+
### 🔧 Cải thiện
|
|
25
|
+
- Validation file path thông minh với fallback mechanism
|
|
26
|
+
- Hỗ trợ cả đường dẫn tuyệt đối và tương đối
|
|
27
|
+
- Error messages rõ ràng hơn (hiển thị tất cả đường dẫn đã tìm kiếm)
|
|
28
|
+
- Descriptions và placeholders được cập nhật cho user-friendly
|
|
29
|
+
|
|
30
|
+
### 💡 Use Case
|
|
31
|
+
```
|
|
32
|
+
HTTP Request (download) → Read/Write Files (save to disk) → ZaloSendMessage (send local file)
|
|
33
|
+
FTP Node (download) → ZaloSendMessage (send from file name: {{ $json.fileName }})
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 🎉 Version 1.0.2 - Maintenance Release
|
|
39
|
+
|
|
40
|
+
### ✅ Thay đổi
|
|
41
|
+
- Cập nhật cấu hình build và tài liệu bảo vệ mã nguồn trong `docs/development/code-protection.md` để chuẩn hoá quy trình build/obfuscate khi phát hành.
|
|
42
|
+
- Hoàn thiện gói `dist/` sẵn sàng publish; không thay đổi API bề mặt.
|
|
43
|
+
|
|
44
|
+
### ℹ️ Lý do
|
|
45
|
+
- Đảm bảo trải nghiệm cài đặt mượt mà khi dùng `pnpm publish` (tự động build + obfuscate + lint qua hook `prepublishOnly`).
|
|
46
|
+
- Đồng bộ phiên bản `package.json` với bản phát hành trên npm.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 🎉 Version 1.0.0 - Major Release
|
|
51
|
+
|
|
52
|
+
### 🚀 Tổng quan
|
|
53
|
+
Package **n8n-nodes-zalo-nnt** hiện cung cấp **9 nodes** với **60+ operations** để tự động hóa Zalo hoàn toàn trong n8n.
|
|
54
|
+
|
|
55
|
+
### 📊 Thống kê
|
|
56
|
+
- **9 nodes**: 1 trigger node + 8 action nodes
|
|
57
|
+
- **60+ operations** tổng cộng
|
|
58
|
+
- **2 credential types**: zaloApi (QR login) + n8nApiZaloApi
|
|
59
|
+
|
|
60
|
+
### 🎯 Tính năng chính v1.0.0
|
|
61
|
+
|
|
62
|
+
#### 1. **ZaloSendMessage** - Gửi tin nhắn đa năng
|
|
63
|
+
- Markdown formatting (**đậm**, *nghiêng*, [red]màu[/red])
|
|
64
|
+
- Gửi nhiều ảnh/file: URL, mảng URL, **hoặc đường dẫn local** ⭐ NEW
|
|
65
|
+
- HEIC/HEIF → JPEG auto-conversion
|
|
66
|
+
- Quote reply (trích dẫn tin nhắn)
|
|
67
|
+
- @Mention users (gắn thẻ)
|
|
68
|
+
- Độ ưu tiên: Mặc định, Quan trọng, Khẩn cấp
|
|
69
|
+
- TTL (tự xóa tin nhắn sau X giây)
|
|
70
|
+
- **Local file support**: Gửi trực tiếp từ FTP/HTTP download hoặc Read/Write Files node ⭐ NEW
|
|
71
|
+
|
|
72
|
+
#### 2. **ZaloGroup** - Quản lý nhóm toàn diện (17 ops)
|
|
73
|
+
**5 Resources:**
|
|
74
|
+
- Nhóm: Tạo, lấy info, danh sách, tham gia, rời
|
|
75
|
+
- Thành viên: Thêm, xóa, mời nhiều nhóm, thêm phó nhóm
|
|
76
|
+
- Cài đặt: Đổi tên, đổi avatar
|
|
77
|
+
- Kiểm duyệt: Lấy DS chặn, chặn/bỏ chặn, duyệt yêu cầu
|
|
78
|
+
- Nội dung: Tạo ghi chú (có ghim)
|
|
79
|
+
|
|
80
|
+
#### 3. **ZaloChatHistory** - Lịch sử trò chuyện
|
|
81
|
+
- Fetch all mode (tự động phân trang)
|
|
82
|
+
- Lọc theo thời gian (từ ngày - đến ngày)
|
|
83
|
+
- Sắp xếp (mới nhất/cũ nhất)
|
|
84
|
+
- Lấy reactions
|
|
85
|
+
- Delay control (tránh block)
|
|
86
|
+
|
|
87
|
+
#### 4. **ZaloReminder** - Lịch hẹn thông minh
|
|
88
|
+
- Tạo/sửa/xóa lịch hẹn
|
|
89
|
+
- Lặp lại: Hàng ngày/tuần/tháng
|
|
90
|
+
- Emoji tùy chỉnh
|
|
91
|
+
- Lấy phản hồi (chấp nhận/từ chối)
|
|
92
|
+
|
|
93
|
+
#### 5. **ZaloPoll** - Bình chọn
|
|
94
|
+
- Tạo/lấy/khóa poll
|
|
95
|
+
- Multi-choice, thêm option mới
|
|
96
|
+
- Ẩn kết quả/người vote
|
|
97
|
+
- Ghim poll, thời hạn
|
|
98
|
+
|
|
99
|
+
#### 6. **ZaloUser** - Quản lý user (24 ops)
|
|
100
|
+
**7 Resources:**
|
|
101
|
+
- Bạn bè (9): Gửi/chấp nhận/từ chối lời mời, xóa, tìm kiếm SĐT
|
|
102
|
+
- Tài khoản (4): Lấy info, đổi settings, đổi ngôn ngữ
|
|
103
|
+
- Riêng tư (3): Chặn/bỏ chặn user, chặn xem feed
|
|
104
|
+
- Biệt danh (3): Đổi/xóa/lấy danh sách alias
|
|
105
|
+
- Avatar (3): Lấy DS, dùng lại ảnh cũ, xóa
|
|
106
|
+
- Tin nhắn (1): Thu hồi
|
|
107
|
+
- Hệ thống (1): Keep alive
|
|
108
|
+
|
|
109
|
+
#### 7. **ZaloTag** - Quản lý thẻ
|
|
110
|
+
- Lấy danh sách labels/tags
|
|
111
|
+
|
|
112
|
+
#### 8. **ZaloLoginByQr** - Đăng nhập tự động
|
|
113
|
+
- QR login đơn giản
|
|
114
|
+
- Auto-create credential (tích hợp n8n API)
|
|
115
|
+
- Proxy support
|
|
116
|
+
- Output QR code dạng PNG
|
|
117
|
+
|
|
118
|
+
#### 9. **ZaloMessageTrigger** - Event listener (9 events)
|
|
119
|
+
**Lắng nghe:**
|
|
120
|
+
1. Tin nhắn mới
|
|
121
|
+
2. Reaction (cảm xúc)
|
|
122
|
+
3. Typing (đang soạn)
|
|
123
|
+
4. Seen/Delivered
|
|
124
|
+
5. Undo (thu hồi)
|
|
125
|
+
6. Group events (join/leave/kick/admin)
|
|
126
|
+
7. Friend events (request/accept/reject)
|
|
127
|
+
8. Connection status
|
|
128
|
+
|
|
129
|
+
**Bộ lọc:**
|
|
130
|
+
- Loại nội dung: text/image/sticker/file/link/video/voice
|
|
131
|
+
- Nguồn: cá nhân/nhóm
|
|
132
|
+
- ID cụ thể
|
|
133
|
+
- Self-listen mode
|
|
134
|
+
|
|
135
|
+
## 📦 Hướng dẫn cài đặt
|
|
136
|
+
|
|
137
|
+
### Community Nodes (Khuyến nghị)
|
|
138
|
+
|
|
139
|
+
Đối với người dùng n8n v0.187+, bạn có thể cài đặt node này trực tiếp từ bảng Community Nodes trong trình soạn thảo n8n.
|
|
140
|
+
|
|
141
|
+
1. Mở trình soạn thảo n8n của bạn
|
|
142
|
+
2. Vào **Settings > Community Nodes**
|
|
143
|
+
3. Tìm kiếm **"n8n-nodes-zalo-nnt"**
|
|
144
|
+
4. Nhấp vào **Install**
|
|
145
|
+
5. Tải lại trình soạn thảo
|
|
146
|
+
|
|
147
|
+
### Cài đặt thủ công
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
cd YOUR_N8N_INSTALLATION_DIRECTORY
|
|
151
|
+
npm install n8n-nodes-zalo-nnt
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## 🔑 Credentials Setup
|
|
155
|
+
|
|
156
|
+
### 1. zaloApi (Zalo Credential)
|
|
157
|
+
|
|
158
|
+
Credential này được tạo tự động khi bạn sử dụng node **ZaloLoginByQr**.
|
|
159
|
+
|
|
160
|
+
**Thông tin credential:**
|
|
161
|
+
- `cookie`: JSON array of cookies từ Zalo Web
|
|
162
|
+
- `imei`: Device IMEI (auto-generated)
|
|
163
|
+
- `userAgent`: Browser user agent
|
|
164
|
+
- `proxy`: (Optional) Proxy URL nếu cần
|
|
165
|
+
- `supportCode`: (Optional) Support code
|
|
166
|
+
- `licenseKey`: (Optional) License key
|
|
167
|
+
|
|
168
|
+
### 2. n8nApiZaloApi (n8n API for QR Login)
|
|
169
|
+
|
|
170
|
+
Credential này cần thiết để node **ZaloLoginByQr** có thể tự động tạo credential Zalo sau khi đăng nhập thành công.
|
|
171
|
+
|
|
172
|
+
**Cách lấy n8n API key:**
|
|
173
|
+
1. Vào **Settings > API** trong n8n
|
|
174
|
+
2. Tạo API key mới
|
|
175
|
+
3. Copy API key và URL của n8n instance
|
|
176
|
+
|
|
177
|
+
## 🎓 Use Cases
|
|
178
|
+
|
|
179
|
+
### 1. Customer Support Bot
|
|
180
|
+
- Auto-reply tin nhắn khách hàng
|
|
181
|
+
- Phân loại và route requests
|
|
182
|
+
- Tích hợp CRM/ticketing systems
|
|
183
|
+
|
|
184
|
+
### 2. Marketing Automation
|
|
185
|
+
- Gửi tin nhắn hàng loạt
|
|
186
|
+
- Scheduled campaigns
|
|
187
|
+
- Group management tự động
|
|
188
|
+
|
|
189
|
+
### 3. Monitoring & Alerts
|
|
190
|
+
- Nhận thông báo từ hệ thống
|
|
191
|
+
- Alert qua Zalo group
|
|
192
|
+
- Status updates tự động
|
|
193
|
+
|
|
194
|
+
### 4. Data Collection
|
|
195
|
+
- Lấy lịch sử chat để phân tích
|
|
196
|
+
- Export group member lists
|
|
197
|
+
- Poll/survey automation
|
|
198
|
+
|
|
199
|
+
### 5. Event-Driven Workflows
|
|
200
|
+
- Trigger workflows từ tin nhắn Zalo
|
|
201
|
+
- Auto-response dựa trên nội dung
|
|
202
|
+
- Integration với external services
|
|
203
|
+
|
|
204
|
+
## ❓ FAQ & Troubleshooting
|
|
205
|
+
|
|
206
|
+
### Tại sao ảnh gửi đi đôi khi bị resize?
|
|
207
|
+
|
|
208
|
+
**Trả lời:** Đây không phải là lỗi của node mà là tính năng của Zalo Server.
|
|
209
|
+
|
|
210
|
+
- Node của chúng ta **KHÔNG** resize ảnh, luôn gửi ảnh nguyên bản
|
|
211
|
+
- **Zalo server tự động resize** ảnh dựa trên file size (bytes), không phải dimension (pixels)
|
|
212
|
+
- Nếu file size > ngưỡng cho phép (thường ~2-5MB) → Zalo server sẽ tự động resize
|
|
213
|
+
- Cùng dimension nhưng khác file size → kết quả khác nhau
|
|
214
|
+
|
|
215
|
+
**Giải pháp:**
|
|
216
|
+
- Nén ảnh trước khi gửi (giảm quality xuống 80-90%)
|
|
217
|
+
- Giữ file size dưới 2MB
|
|
218
|
+
- Sử dụng JPEG thay vì PNG cho ảnh chụp
|
|
219
|
+
- Xem phân tích chi tiết: [docs/nodes/zalo-image-resize-analysis.md](docs/nodes/zalo-image-resize-analysis.md)
|
|
220
|
+
|
|
221
|
+
## ⚠️ Lưu ý quan trọng
|
|
222
|
+
|
|
223
|
+
**Vui lòng đọc kỹ trước khi sử dụng:**
|
|
224
|
+
|
|
225
|
+
Việc sử dụng thư viện này đồng nghĩa với việc bạn đang làm trái với chính sách của Zalo và nó có thể khiến cho tài khoản của bạn bị vô hiệu hóa. Chúng tôi sẽ không chịu trách nhiệm nếu điều đó xảy ra, vậy nên hãy cân nhắc trước khi sử dụng.
|
|
226
|
+
|
|
227
|
+
## 💝 Ủng hộ tác giả
|
|
228
|
+
|
|
229
|
+
Nếu **node** này giúp bạn tiết kiệm thời gian hoặc giải quyết được vấn đề khó nhằn, hãy cân nhắc ủng hộ tôi [tại đây](https://nguyenngothuong.com/payment) hoặc thuê team chúng tôi triển khai setup workflow cho bạn -> [diginno.net](https://diginno.net/services/automation)
|
|
230
|
+
|
|
231
|
+
Sự động viên nhỏ ấy sẽ tiếp thêm năng lượng để mình tiếp tục duy trì, cập nhật và phát triển thêm nhiều tính năng hữu ích hơn nữa.
|
|
232
|
+
Cám ơn bạn rất nhiều! 💛
|
|
233
|
+
|
|
234
|
+
## 👨💻 Tác giả
|
|
235
|
+
- **Nguyễn Ngô Thượng** - Maintainer & Developer
|
|
236
|
+
- Original work by Dương Đình Trung - ChickenAI Team
|
|
237
|
+
|
|
238
|
+
## 🙏 Cảm ơn
|
|
239
|
+
|
|
240
|
+
We would like to thank **ZCA-JS** for their excellent work on the core library that makes this integration possible.
|
|
241
|
+
|
|
242
|
+
## 📄 License
|
|
243
|
+
|
|
244
|
+
- Cập nhật sau
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
⭐ **Don't forget to star this repo if it helped you!**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function _0x87ec7e(n,t){return _0x32e7(t- -284,n)}(()=>{function n(n,t){return _0x32e7(n-152,t)}for(var t=_0x28bf();;)try{if(513429==-parseInt(n(404,424))+-parseInt(n(411,393))/2*(parseInt(n(413,425))/3)+parseInt(n(438,430))/4+-parseInt(n(402,417))/5+parseInt(n(429,437))/6*(-parseInt(n(401,390))/7)+parseInt(n(409,406))/8+-parseInt(n(410,421))/9)break;t.push(t.shift())}catch(n){t.push(t.shift())}})(),(()=>{function n(n,t){return _0x32e7(n-518,t)}var t={LuBpt:function(n,t){return n+t},XWJfU:function(n,t){return n+t},ATizT:function(n,t){return n(t)},zKYMl:function(n,t,e){return n(t,e)},nLvsL:function(n,t){return n/t},BGvhE:function(n,t){return n*t},QprEH:function(n,t){return n/t}},e=_0x12ba();function r(n,t){return _0x3cd4(n- -144,t)}for(;;)try{if(187939==t.LuBpt(t.XWJfU(t[n(805,785)](t[n(787,779)](+parseInt(r(186,176))*(t.ATizT(parseInt,r(174,184))/2)+-t.ATizT(parseInt,r(180,181))/3,parseInt(t[n(802,815)](r,182,177))/4),t.nLvsL(-t.ATizT(parseInt,r(171,160)),5)*(-t.ATizT(parseInt,r(175,168))/6))+t.BGvhE(-parseInt(r(181,191))/7,t.QprEH(-parseInt(r(165,162)),8)),-t[n(774,784)](parseInt,r(183,183))/9),-parseInt(t.zKYMl(r,178,176))/10*(parseInt(r(185,196))/11)))break;e[n(773,784)](e[n(788,802)]())}catch(n){e.push(e.shift())}})(),Object[_0x4f2138(-158,-155)](exports,_0x87ec7e(5,-8),{value:!0}),exports.N8nZaloApi=void 0;class N8nZaloApi{constructor(){var r={wlVpZ:function(n,t,e){return n(t,e)},XHToK:function(n,t){return n-t},nLIeG:n(-111,-127),kzkUj:"string"};function n(n,t){return _0x32e7(n- -364,t)}var t={UGyIK:e(-612,-606),ZAciN:e(-610,-612),fohST:e(-611,-622),VeMUY:e(-601,-600),dCbKg:n(-97,-100),aFTbp:e(-603,-592),GDsWD:r.nLIeG};function e(n,t){function e(n,t){return _0x32e7(n- -174,t)}return r[e(108,92)](_0x3cd4,r[e(91,74)](n,-924),t)}this.name=t[r[n(-82,-80)](e,-607,-618)],this.displayName=e(-593,-583),this[e(-613,-602)]=t[n(-89,-105)],this[n(-75,-94)]=t.fohST,this[n(-93,-109)]=[{displayName:"API Key",name:t[e(-614,-621)],type:r.kzkUj,default:"",description:"The API key used to authenticate with the n8n API.",required:!0},{displayName:n(-85,-87),name:t[e(-604,-605)],type:n(-96,-97),default:t[n(-100,-111)],description:t[n(-102,-100)],required:!0}]}}function _0x28bf(){var n=["668682kKBsGO","TPhWX","ZAciN","__esModule","6TKENAP","46695FVfavx","URL","VeMUY","2135106xYXoeX","wlVpZ","documentationUrl","zKYMl","N8nZaloApi","3514540gIQkxQ","XWJfU","EAJlh","icon","1737204DGyOKB","570390qGGZxp","GWSYf","87382ITggvK","The URL of the n8n instance","n8n-n8n-api","push","ATizT","7274256exEjJi","3044916MRMClS","486532cUUAFu","1370cUVKvc","6ACeDpW","GDsWD","1484289xsYUKa","aFTbp","XHToK","http://127.0.0.1:5678","url","string","LuBpt","shift","properties","2ICGHpG"];return(_0x28bf=function(){return n})()}function _0x32e7(n,t){var e=_0x28bf();return(_0x32e7=function(n,t){return e[n-=249]})(n,t)}function _0x3cd4(n,t){var e=_0x12ba();return(_0x3cd4=function(n,t){return e[n-=309]})(n,t)}function _0x4f2138(n,t){return _0x3cd4(t- -483,n)}function _0x12ba(){var n={EAJlh:"2511579BxQdjC",GWSYf:e(-571,-568),Asbaq:"n8nApiZaloApi",QKaWA:"file:shared/n8n.png",TPhWX:e(-595,-603),UezDf:e(-589,-575)},t=[e(-576,-569),n[e(-561,-567)],"1444780LOdvMQ",e(-586,-573),"defineProperty",n[e(-598,-609)],e(-577,-598),"n8n API Account","8tcuMMZ",e(-569,-568),e(-566,-551),n.Asbaq,n.QKaWA,n[e(-575,-588)],"5JPORNQ",e(-564,-566),"UGyIK","81476cbTkqd",e(-568,-566),"dCbKg",e(-583,-598),n.UezDf,"apiKey"];function e(n,t){return _0x32e7(n- -849,t)}return(_0x12ba=function(){return t})()}exports[_0x4f2138(-159,-167)]=N8nZaloApi;
|
|
1
|
+
function _0x2424(){var n={SGmGj:"HGWEC",pInJF:t(-336,-296),KyaSE:"N8nZaloApi",naWSS:t(-330,-381),SCbWc:"4012450nYdMQW",ItdRt:"qiGOv",ycgpI:"3191304UEfXsi",autxL:"775936MDvjcP",uhEIi:"Ayuqp",WIgMA:t(-446,-387),cwFdO:t(-410,-416),AsYgz:t(-419,-460),sdpiX:"MrczD",NnIjV:"KfgZI",JEhXo:"zUlwg",hGrhG:t(-468,-553),DImlv:"apiKey",YCnqm:t(-366,-438),YHlQx:t(-467,-451),DkuPk:"XCPQY",axggE:t(-294,-328),XsHnt:t(-389,-349),Pvggk:"push",MIttL:t(-321,-382),tpqNs:t(-373,-309),wcgMc:t(-304,-379),gFwas:t(-443,-481),Owhjl:"Kmwep"},r=[t(-453,-422),t(-316,-402),n[t(-476,-452)],"Rdzbn",n.pInJF,"bbzFK","nWSOO",t(-425,-517),t(-461,-509),n.KyaSE,"5ZoLqrY","SWUBG",t(-472,-453),"__esModule",t(-339,-321),n[t(-456,-549)],"boSGe",n[t(-318,-337)],n.ItdRt,t(-329,-252),"pwNSg",t(-324,-288),"RoXvn",t(-338,-423),n[t(-369,-338)],n.autxL,t(-298,-273),"PlygG",n[t(-349,-411)],t(-360,-434),"3629836voBmly","rieZW","n8n API Account",t(-356,-309),t(-293,-250),"ucclK",t(-341,-253),t(-331,-315),n.WIgMA,"The API key used to authenticate with the n8n API.",n[t(-311,-282)],n.AsYgz,"defineProperty",t(-303,-274),t(-371,-422),n[t(-327,-389)],t(-439,-520),t(-413,-510),t(-320,-393),t(-335,-290),n.NnIjV,"VWtTQ",n[t(-396,-393)],n.hGrhG,n.DImlv,t(-421,-507),t(-322,-312),"gAqMF",t(-433,-419),n[t(-440,-457)],"GqlYw","edLVb",n.YHlQx,t(-435,-509),"925000hWCYFw",n.DkuPk,"gBote",t(-450,-496),"BfPlE","pUkWQ",t(-403,-437),t(-295,-321),t(-361,-357),t(-401,-475),t(-460,-480),n[t(-438,-397)],n.XsHnt,t(-332,-396),"HrjDl","OsVus","2wQVwXR","xfLzm",t(-382,-346),"32130jIJjKP",t(-326,-272),n[t(-300,-343)],"363510TgmTPj",n.MIttL,"glcNe",t(-315,-311),t(-408,-500),n[t(-411,-426)],t(-432,-362),t(-299,-323),"11118048gDkpBc",n.wcgMc,t(-409,-424),t(-355,-451),"PdDTJ",n[t(-352,-279)],"4415912krLWih","QzCja",t(-471,-495),t(-343,-376),t(-376,-460),n.Owhjl];function t(n,r){return _0x2a5f(n- -748,r)}return(_0x2424=function(){return r})()}function _0xb7166b(n,r){return{jujNw:function(n,r,t){return n(r,t)}}[_0x2a5f(319,-382)](_0x5013,n- -872,r)}function _0x32dc(){function n(n,r){return _0x2a5f(r- -765,n)}var t={EbnAn:function(n,r,t){return n(r,t)},mXTEo:function(n,r){return n-r},URGCY:function(n,r,t){return n(r,t)},BTGWp:function(n,r,t){return n(r,t)},VXlyS:function(n,r,t){return n(r,t)},dlpKJ:"12ycbJjl",aersC:function(n,r,t){return n(r,t)},oUWoL:function(n,r,t){return n(r,t)},wtVfW:n(-434,-435),Nluhg:"12841440cdzXRm",LmzQB:function(n,r,t){return n(r,t)},ZzVVP:function(n,r,t){return n(r,t)},kNEjS:function(n,r,t){return n(r,t)},iUuWF:function(n,r,t){return n(r,t)},eRsRd:function(n,r,t){return n(r,t)},XgRAv:function(n,r,t){return n(r,t)}},u={lJmWl:function(n,r,t){return n(r,t)},gHcUU:n(-373,-456),zUlwg:function(n,r,t){return n(r,t)},KyRpr:function(n,r,t){return n(r,t)},nCjrv:n(-456,-423),XCPQY:"file:shared/n8n.png",gpYtd:n(-419,-371),QtaAo:"1NosnXQ",qhZwA:function(n,r,t){return n(r,t)},qkXfD:"2927762HbgeLv",DRpZM:n(-305,-374)},r={edLVb:e(-636,-663),jzkte:t[n(-436,-441)](f,-299,-344),nRfvo:n(-369,-306),QyqID:e(-629,-648),NYOfN:u.gHcUU,Ayuqp:u[t[n(-377,-474)](f,-309,-323)](e,-670,-684),ahbYU:t.dlpKJ,FBfFf:t.aersC(f,-345,-345),jxxXw:f(-372,-361),YwPyi:n(-560,-472),dhIDX:n(-301,-325),QClVB:e(-685,-660)};function e(n,r){return u[t.EbnAn(_0x46e1,387,845)](_0x5013,t.mXTEo(r,-853),n)}function f(n,r){return t.URGCY(_0x46e1,r- -688,n)}var o=[r[t[n(-305,-398)](f,-330,-314)],t.wtVfW,f(-287,-328),u.KyRpr(e,-644,-632),f(-334,-290),r[e(-653,-639)],"110ZnLTqs",t.Nluhg,u[t.BTGWp(f,-358,-352)],r[t[n(-358,-409)](e,-691,-681)],u[f(-318,-323)](e,-618,-633),u[t.VXlyS(f,-265,-310)],t[n(-471,-451)](f,-243,-296),u[f(-293,-308)],r.QyqID,t.ZzVVP(e,-670,-683),u.QtaAo,e(-633,-650),r[u.qhZwA(e,-683,-661)],f(-365,-333),r[t.kNEjS(e,-643,-629)],f(-302,-343),t.iUuWF(e,-709,-689),t.eRsRd(e,-703,-676),r[u[t[n(-376,-458)](f,-372,-354)](e,-695,-670)],r[e(-654,-669)],u.qkXfD,e(-669,-654),e(-657,-655),"OEium",n(-500,-464),u.DRpZM,u[f(-310,-337)](e,-605,-637),t.XgRAv(e,-663,-659),r[n(-403,-481)],r[e(-682,-657)],t[n(-424,-421)](f,-258,-261),r[e(-704,-674)],r.QClVB];return(_0x32dc=function(){return o})()}function _0x9ee376(n,r){var u={kuBci:function(n,r,t){return n(r,t)}};return{ZIkiN:function(n,r,t){return u[_0x46e1(339,-278)](n,r,t)}}[_0x5013(200,-533)](_0x1fba,n- -555,r)}function _0x2a5f(n,r){return n-=272,_0x42a5()[n]}function _0x1fba(n,r){return n-=150,_0x3cc9()[n]}function _0x1e94(){var t={MOSZC:function(n,r){return n-r},kjUZS:function(n,r,t){return n(r,t)},NqgsW:function(n,r,t){return n(r,t)},QeOBD:r(962,1058),oMzaN:function(n,r,t){return n(r,t)},NYXNL:r(796,859),zLPjb:r(917,1013),YPFBV:function(n,r,t){return n(r,t)},FJeTE:function(n,r,t){return n(r,t)},JwFec:function(n,r,t){return n(r,t)},oaYdL:"VWtTQ",ueqtD:r(876,799),MryPP:"name",bPDiq:function(n,r,t){return n(r,t)},qnYGy:function(n,r,t){return n(r,t)},tloty:"3176411yKNabA",XIbcV:r(834,864),csmek:r(789,776),aSYaK:function(n,r,t){return n(r,t)},CfvjF:r(870,935)},n={brsvj:u(455,407),BbiRI:t.kjUZS(u,445,484),TuokM:r(949,993),zNdoH:"NYOfN",RoXvn:u(432,419),dzQlB:r(901,951),mRZPY:r(785,823),qADXS:t[r(795,884)](u,402,349),Wdjpl:r(947,868),ggJYZ:t[r(864,801)](u,427,438),cmBMl:u(471,515),kaNUW:u(441,437),EXnNt:t.QeOBD,KUXyY:t[r(904,844)](u,404,382),tjokv:r(890,987),sXjSp:t.NYXNL,oagYe:u(424,392),QgZFm:u(476,511)};function r(n,r){return _0x2a5f(n-506,r)}function u(n,r){return _0x46e1(t[_0x2a5f(414,163)](n,78),r)}var e=["nRfvo",n[u(498,540)],r(779,716),n[r(909,898)],u(480,464),t.zLPjb,t.YPFBV(u,477,478),r(952,989),r(935,954),r(957,1023),u(506,525),r(945,871),r(784,844),u(490,449),"jCJAJ",n[t.FJeTE(u,475,508)],t.JwFec(u,482,468),r(800,711),r(788,744),u(501,462),n[u(466,456)],n[u(413,420)],"52107484TnSCem",u(457,433),"YwPyi",t.oaYdL,n.dzQlB,u(434,436),t.ueqtD,n[r(914,955)],u(453,441),t[r(892,865)],u(494,541),n[r(824,845)],"OlUly",n[u(488,472)],t[r(823,820)](u,444,403),u(416,419),n[r(805,805)],n[r(806,845)],t[r(866,963)](u,504,495),t.qnYGy(u,469,481),"jzkte",n[u(467,494)],t[r(882,820)],n[r(958,1032)],u(451,488),r(940,867),u(496,473),n[u(440,427)],n.tjokv,t[r(884,885)],u(419,378),u(415,386),t[r(795,709)](u,499,520),t[r(875,782)],t[r(929,871)](u,406,457),"shift",n[r(857,775)],t.CfvjF,r(963,881),u(487,511),n.oagYe,r(874,824),n.QgZFm];return(_0x1e94=function(){return e})()}function _0x42a5(){var n=["NqgsW","efFKV","VXlyS","naWSS","properties","DIuDm","SLLhV","SMbgV","JyJST","gpYtd","ggJYZ","cmBMl","4181465QKbzOs","KyRpr","WtDnk","url","YcERu","LkdBz","EbnAn","YCnqm","string","axggE","926815zvJDfL","bgZBp","zmfnI","aersC","SQAHr","1449258QWAThc","YPFBV","qADXS","jujNw","NKIWF","pwNSg","GqjUr","4799766HvKzUb","BTGWp","meARa","NDGfS","tgGCc","KZoxv","1334826YOHTAQ","134025nPEeUd","jJtVa","VnFri","SCZyQ","729834BbMbKA","Xosya","4195710VUjLaz","tpqNs","XjvCD","TmRHR","HpGXV","ykpTp","VUCWy","zTFgl","eRsRd","kZdxj","qiGOv","7XbdxPb","MEoVB","tEQEI","525819TMHKAN","sXjSp","JEhXo","ttImO","uwmwr","JDbpz","LmzQB","uXHBg","kjUZS","kaNUW","bPDiq","451809TsPffi","AkZnJ","The URL of the n8n instance","zXPid","ZAPcV","126ZhGpWi","oUWoL","n8n-n8n-api","csmek","ZIkiN","CYfdo","phgGL","RIzmv","PlygG","sjVjv","tloty","SiMYW","XIbcV","ycgpI","OuWNS","1256152XElRkp","EwFtz","rjroc","n8nApiZaloApi","Shwmr","MryPP","ghNYX","rhUFr","ybjxU","KnnpD","4188MJInrI","152LTjxzg","Wdjpl","1986730yuTZSs","wAAfz","gFwas","1686363aKGvdT","oMzaN","uhEIi","ozgND","8FrMJUr","VmrJu","BbiRI","OuKTi","documentationUrl","FBXAl","XjBCi","mRZPY","displayName","nCjrv","yGzyd","HAgOm","KUXyY","MOSZC","okhLL","Pdrhl","36UrwPHX","403876jtWpAe","yChat","PWfTD","sdpiX","TuokM","aSYaK","qhZwA","fufIP","5936730pDODuW","cxKUI","344901cXPnnX","bADkx","SCbWc","zfHGf","brsvj","URL","lAojL","bDTDT","HlDYi","cwFdO","kWySO","ahbYU","18fCoHwa","uNFIo","tbJOL","XFMnJ","shift","FKGjy","dhIDX","qlPPG","Pvggk","UQonF","kuBci","282888mhgHER","EXnNt","icon","zNdoH","sRFIY","6028736JCpuWv","AwTKn","GiMzw","API Key","XVrBW","esIne","6ZpCrxh","KbdtY","eYGMp","ygjtI","push","SGmGj","1191085vEfNzX","RmYuZ","1mpfQjr","423602hYkZJN","QbYgN","FBfFf","13895208AoAVyp","GzqfY","vhYfn","JLyOS","BjxDr","jxxXw","mdOIi","NVyTu","528zzlloH","lJmWl"];return(_0x42a5=function(){return n})()}function _0x46e1(n,r){return n-=323,_0x2424()[n]}function _0x3cc9(){var u={rjroc:function(n,r,t){return n(r,t)},pVSLm:function(n,r){return n-r},HlDYi:function(n,r,t){return n(r,t)},uXHBg:function(n,r,t){return n(r,t)},zfHGf:n(-486,-414),tQnjY:function(n,r,t){return n(r,t)}};function n(n,r){return _0x2a5f(n- -849,r)}function r(n,r){return u.rjroc(_0x46e1,u.pVSLm(r,-934),n)}var t={JDbpz:"http://127.0.0.1:5678",rhUFr:function(n,r,t){return n(r,t)},SQAHr:r(-590,-539),MEoVB:function(n,r,t){return n(r,t)},phgGL:function(n,r,t){return n(r,t)},HmfEX:function(n,r,t){return u.rjroc(n,r,t)},sRFIY:function(n,r,t){return n(r,t)}},e={zXPid:function(n,r,t){return n(r,t)},HAgOm:function(n,r,t){return n(r,t)},YcERu:t[n(-494,-474)],SiMYW:function(n,r,t){return n(r,t)}};function f(n,r){return u[_0x2a5f(383,297)](_0x5013,n- -192,r)}var o={rieZW:t[n(-461,-504)](c,467,472),bADkx:t[u.HlDYi(r,-603,-592)](f,-19,5),jCJAJ:c(479,473),SWUBG:e[f(-1,32)](c,477,493),VUCWy:e[f(-7,-33)],OsVus:u[n(-466,-378)](r,-621,-582)};function c(n,r){return e[_0x5013(166,1022)](_0xdab9,n-186,r)}var i=[c(489,487),c(487,503),r(-508,-550),f(-29,-58),o[c(469,466)],c(473,457),o[t[r(-611,-592)](f,-12,-13)],c(482,494),e[u[n(-492,-446)](r,-627,-577)](c,483,487),c(493,505),f(15,23),t[u[n(-413,-323)](r,-544,-563)],o[t.rhUFr(f,-6,27)],o[t[n(-501,-587)](c,478,492)],t[n(-501,-522)](c,475,456),t.phgGL(f,30,25),o[t[r(-533,-517)](c,472,463)],r(-541,-538),t[r(-565,-517)](f,-11,-10),c(461,457),t.HmfEX(c,462,463),c(495,505),u[n(-418,-472)],o[u.rjroc(c,476,488)],t[u.tQnjY(r,-634,-587)](f,-10,16)];return(_0x3cc9=function(){return i})()}function _0xdab9(n,r){return n-=271,{KnnpD:function(n){return n()}}[_0x2a5f(390,-229)](_0x32dc)[n]}function _0x5013(n,r){return n-=161,_0x1e94()[n]}(()=>{var r=_0x42a5();function n(n,r){return _0x2a5f(r-553,n)}for(;;)try{if(204800==+parseInt(n(869,828))*(parseInt(n(893,887))/2)+-parseInt(n(923,903))/3+-parseInt(n(931,954))/4*(parseInt(n(931,864))/5)+-parseInt(n(1030,1015))/6*(parseInt(n(976,950))/7)+parseInt(n(1020,934))/8+parseInt(n(844,914))/9+parseInt(n(816,889))/10)break;r.push(r.shift())}catch(n){r.push(r.shift())}})(),(()=>{var n={AkZnJ:function(n,r){return n==r},okhLL:function(n,r){return n+r},VmrJu:function(n,r){return n/r},RmYuZ:function(n,r){return n(r)},BASQK:function(n,r,t){return n(r,t)},eYGMp:function(n,r){return n(r)},kWySO:function(n,r){return n(r)},ImOYN:function(n,r){return n*r},meARa:function(n,r){return n/r},zTFQN:function(n,r,t){return n(r,t)}};function r(n,r){return _0x46e1(r-938,n)}function t(n,r){return _0x2a5f(n-411,r)}for(var u=_0x2424();;)try{if(n[t(773,779)](712103,n[t(826,752)](-parseInt(r(1292,1261))*n[t(813,873)](-n.RmYuZ(parseInt,n.BASQK(r,1314,1263)),2)+parseInt(r(1292,1299))/3+parseInt(r(1337,1351))/4+parseInt(r(1320,1307))/5+n[t(875,949)](parseInt,r(1315,1343))/6*n[t(813,855)](n[t(849,929)](parseInt,r(1363,1324)),7)+-parseInt(r(1340,1345))/8,n.ImOYN(n[t(736,799)](-n[t(685,635)](parseInt,n.zTFQN(r,1304,1288)),9),parseInt(r(1303,1268))/10))))break;u.push(u[t(855,846)]())}catch(n){u.push(u.shift())}})(),(()=>{var t={rVtKk:function(n,r){return n(r)},jJtVa:function(n){return n()},VClOu:function(n,r){return n+r},ZAPcV:function(n,r){return n+r},tbJOL:function(n,r,t){return n(r,t)},KbdtY:function(n,r,t){return n(r,t)},EyBvj:function(n,r){return n(r)},Kqvip:function(n,r,t){return n(r,t)},yfqcB:function(n,r,t){return n(r,t)},ybjxU:function(n,r,t){return n(r,t)}},u={Pdrhl:function(n,r){return n-r},EwFtz:function(n,r){return n+r},gAqMF:function(n,r){return n/r},ucclK:function(n,r){return n(r)},boSGe:function(n,r,t){return n(r,t)},UQonF:function(n,r,t){return n(r,t)},zTFgl:function(n,r){return n(r)},SMbgV:function(n,r){return t.rVtKk(n,r)},PdDTJ:function(n,r){return n(r)}};function r(n,r){return _0x2a5f(n-880,r)}function e(n,r){return _0x46e1(n-791,r)}var f=t[r(1211,1189)](_0x1e94);function n(n,r){return _0x5013(u[_0x46e1(390,1319)](r,-186),n)}for(;;)try{if(848410==u[e(1163,1157)](t.VClOu(t[r(1245,1159)](u[e(1163,1149)](-parseInt(n(18,-8)),u.gAqMF(-u[t[r(1322,1371)](e,1139,1112)](parseInt,u[e(1120,1075)](n,30,25)),2)*(-u[t[r(1322,1228)](e,1139,1174)](parseInt,u[e(1197,1240)](n,49,26))/3))+u[r(1223,1143)](parseInt,u[e(1120,1085)](n,26,23))/4,-parseInt(u[e(1120,1169)](n,6,-12))/5),u[t[r(1343,1322)](e,1161,1154)](t.EyBvj(parseInt,t.Kqvip(n,60,39)),6)),u[r(1176,1177)](parseInt,t.yfqcB(n,39,31))/7)+-u[e(1202,1181)](parseInt,t[r(1269,1211)](n,1,15))/8)break;f[r(1346,1268)](f[e(1199,1179)]())}catch(n){f[e(1189,1220)](f[r(1324,1297)]())}})(),(()=>{var u={JcvIM:function(n,r){return n==r},mdOIi:function(n,r,t){return n(r,t)},nTupf:function(n,r){return n(r)},ykpTp:function(n,r,t){return n(r,t)},XVrBW:function(n,r,t){return n(r,t)},TGNRJ:function(n,r,t){return n(r,t)},Obhkb:function(n,r){return n-r},ttImO:function(n,r){return n+r},eamCH:function(n,r){return n*r},BljNf:function(n,r){return n(r)},ymoKT:function(n,r){return n(r)},zkcgT:function(n,r,t){return n(r,t)},WtDnk:function(n,r,t){return n(r,t)}},e={glcNe:function(n,r){return n+r},tgGCc:function(n,r,t){return n(r,t)},nWSOO:function(n){return n()},QzCja:function(n,r){return u.JcvIM(n,r)},QbYgN:function(n,r){return n+r},tEQEI:function(n,r,t){return u[_0x2a5f(285,-170)](n,r,t)},RIzmv:function(n,r,t){return n(r,t)},ygjtI:function(n,r){return n/r},HpGXV:function(n,r,t){return n(r,t)},ghNYX:function(n,r,t){return n(r,t)},VnFri:function(n,r,t){return n(r,t)}};function r(n,r){return _0x2a5f(r-865,n)}function t(n,r){return u[_0x2a5f(285,-492)](_0x5013,r-158,n)}var f={efFKV:function(n,r){return n-r},BfPlE:function(n,r){return e[_0x46e1(401,1255)](n,r)},gBote:function(n,r){return n+r},lAojL:function(n,r){return u.nTupf(n,r)},PlygG:function(n,r,t){return n(r,t)},vhYfn:function(n,r){return n*r},HrjDl:function(n,r){return n/r},GqlYw:function(n,r){return n/r},BjxDr:function(n,r,t){return e[_0x2a5f(327,1124)](n,r,t)}},o=e[c(547,566)](_0x32dc);function n(n,r){return u.ykpTp(_0xdab9,f[u[_0x2a5f(460,-252)](_0x5013,165,-845)](n,804),r)}function c(n,r){return u.TGNRJ(_0x46e1,u.Obhkb(r,141),n)}for(;;)try{if(e[c(586,555)](859718,u[r(1197,1218)](u.ttImO(e[c(506,556)](f[u.XVrBW(c,550,522)](f[t(383,353)](u.eamCH(+f[e[u[r(1143,1206)](c,464,509)](t,393,377)](parseInt,e.tEQEI(n,1098,1093)),-parseInt(f[r(1297,1239)](n,1108,1121))/2)+f[e[r(1261,1214)](t,355,360)](-f[t(386,377)](parseInt,e[r(1199,1238)](n,1083,1087))/3,-parseInt(u[r(1385,1325)](n,1102,1103))/4),e.ygjtI(-u.BljNf(parseInt,n(1112,1105)),5)*(-parseInt(e.RIzmv(n,1106,1105))/6)),parseInt(u.XVrBW(n,1075,1079))/7),e[r(1413,1330)](parseInt(f[c(502,481)](n,1089,1075)),8)),f.vhYfn(f[e[c(588,544)](t,339,371)](f.lAojL(parseInt,e.HpGXV(n,1081,1095)),9),u.ymoKT(parseInt,u.zkcgT(n,1088,1082))/10)),f[e[u[r(1092,1168)](c,534,526)](t,350,376)](-f[t(356,377)](parseInt,f[u.ykpTp(t,337,320)](n,1076,1095)),11))))break;o[t(343,329)](o[r(1258,1309)]())}catch(n){o.push(o[e[r(1166,1197)](t,301,322)]())}})(),(()=>{var u={fufIP:function(n,r,t){return n(r,t)},vepSh:function(n,r){return n-r},OuWNS:function(n,r,t){return n(r,t)},ozgND:function(n,r){return n(r)},MrXuH:function(n,r,t){return n(r,t)},NKIWF:function(n,r){return n(r)},uwmwr:function(n,r){return n+r},vJwJu:function(n,r){return n+r},SYJXM:function(n,r,t){return n(r,t)},OuKTi:function(n,r){return n/r},daBag:function(n,r){return n-r},bgZBp:function(n,r){return n/r},bqpMd:function(n,r,t){return n(r,t)},GiMzw:function(n,r,t){return n(r,t)},PWfTD:function(n,r,t){return n(r,t)},sWUpj:function(n,r,t){return n(r,t)},BQhPN:function(n,r){return n(r)},esIne:function(n,r,t){return n(r,t)}};function n(n,r){return u.fufIP(_0x46e1,r- -740,n)}var e={zoQmR:function(n,r){return u.vepSh(n,r)},MCpIR:function(n,r){return n-r},cxKUI:function(n,r,t){return n(r,t)},qiGOv:function(n,r){return n(r)},yChat:function(n,r,t){return n(r,t)},BJOfz:function(n,r){return n+r},MrczD:function(n,r){return n+r},bbzFK:function(n,r){return n+r},pwNSg:function(n,r,t){return n(r,t)},LkdBz:function(n,r,t){return n(r,t)},SLLhV:function(n,r,t){return u[_0x2a5f(380,1280)](n,r,t)},WQHPG:function(n,r){return u[_0x2a5f(400,1119)](n,r)},SxmvB:function(n,r,t){return n(r,t)},qlPPG:function(n,r,t){return u.MrXuH(n,r,t)}},t={XjBCi:function(n){return n()},AwTKn:function(n,r){return n*r},OlUly:function(n,r){return u[_0x2a5f(320,-104)](n,r)},qufPV:function(n,r){return e.zoQmR(n,r)},NVyTu:function(n,r){return e.MCpIR(n,r)},XjvCD:function(n,r){return n==r},DIuDm:function(n,r){return u[_0x2a5f(354,-260)](n,r)},SCZyQ:function(n,r){return u.vJwJu(n,r)},GzqfY:function(n,r,t){return u.SYJXM(n,r,t)},sjVjv:function(n,r){return n/r},TmRHR:function(n,r,t){return e[_0x46e1(400,512)](n,r,t)},Rdzbn:function(n,r){return u[_0x2a5f(404,232)](n,r)},bDTDT:function(n,r,t){return n(r,t)}};function r(n,r){return _0x5013(u.daBag(r,926),n)}var f={kZdxj:function(n){return t[e[_0x46e1(400,1064)](_0x5013,210,1080)](n)},FKGjy:function(n,r){return u[_0x2a5f(312,643)](n,r)},VWtTQ:function(n,r){return e[_0x2a5f(346,422)](n,r)},pUkWQ:function(n,r){return t[u[_0x2a5f(425,172)](_0x5013,167,465)](n,r)},Kmwep:function(n,r,t){return n(r,t)},JLyOS:function(n,r){return t[_0x5013(206,1037)](n,r)}};function o(n,r){return u.bqpMd(_0xdab9,t.qufPV(n,-135),r)}function c(n,r){return e.yChat(_0x1fba,t[_0x2a5f(286,-3)](n,-218),r)}function i(n,r){return _0x2a5f(n- -588,r)}for(var a=f[n(-311,-357)](_0x3cc9);;)try{if(t[u.SYJXM(n,-403,-387)](266117,e.BJOfz(t[r(1083,1115)](e[n(-331,-382)](e[n(-367,-316)](t[i(-255,-348)](-e.qiGOv(parseInt,c(-67,-67)),f[i(-143,-227)](-f[u.SYJXM(n,-364,-376)](parseInt,t[u[i(-130,-164)](r,1151,1134)](c,-57,-59)),2))+f[n(-317,-358)](u.OuKTi(-e[n(-459,-409)](parseInt,f[r(1165,1146)](c,-64,-60)),3),t[u[i(-168,-213)](r,1099,1114)](f[u[i(-130,-195)](r,1114,1123)](parseInt,f[e[n(-438,-407)](o,153,153)](c,-66,-76)),4)),f[t[e[i(-267,-271)](r,1104,1094)](o,170,175)](t[e[i(-267,-171)](r,1110,1132)](parseInt,c(-68,-70)),5)*t[u.sWUpj(n,-334,-318)](u.BQhPN(parseInt,t[n(-328,-331)](c,-49,-56)),6)),parseInt(e[u[i(-127,-221)](n,-358,-408)](c,-60,-71))/7),f[t[i(-249,-314)](o,170,182)](-parseInt(c(-54,-59)),8)),f[e[i(-282,-226)](r,1103,1125)](-f[t[i(-153,-175)](o,143,138)](parseInt,e[n(-309,-321)](c,-65,-75)),9)*(-e.WQHPG(parseInt,t[i(-153,-194)](c,-47,-38))/10))))break;a[e.SxmvB(o,147,159)](a[o(165,162)]())}catch(n){a[e[i(-141,-176)](o,147,150)](a[o(165,162)]())}})(),Object[_0x9ee376(-389,-380)](exports,_0x9ee376(-393,-401),{value:!0}),exports[_0xb7166b(-690,-712)]=void 0;class N8nZaloApi{constructor(){var u={GqjUr:function(n,r){return n-r},NDGfS:function(n,r,t){return n(r,t)},Shwmr:function(n,r){return n-r},FBXAl:function(n,r,t){return n(r,t)},bxGGu:function(n,r,t){return n(r,t)},JyJST:function(n,r,t){return n(r,t)},dbnuf:function(n,r,t){return n(r,t)}},t={zmfnI:function(n,r,t){return n(r,t)},gTEPP:function(n,r){return u[_0x2a5f(322,848)](n,r)}};function n(n,r){return _0x2a5f(r- -815,n)}function r(n,r){return t[u[_0x2a5f(326,615)](_0x46e1,376,63)](_0x5013,n-353,r)}function e(n,r){return _0x46e1(u[_0x2a5f(385,-521)](n,-267),r)}var f={HGWEC:r(529,538),KfgZI:u[n(-434,-409)](r,528,543),XFMnJ:e(92,43),KZoxv:function(n,r,t){return u[_0x2a5f(326,539)](n,r,t)}},o={Xosya:function(n,r,t){return n(r,t)},wAAfz:function(n,r,t){return n(r,t)},xfLzm:f[u.bxGGu(r,514,536)]},c={OEium:f[r(568,544)],yGzyd:f[t[e(109,122)](r,540,531)],uNFIo:u.JyJST(i,215,219),CYfdo:o[f[u[n(-426,-518)](r,576,599)](a,-116,-116)](i,208,200)};function i(n,r){return _0x1fba(r-45,n)}function a(n,r){return _0xdab9(t.gTEPP(r,-396),n)}this[t.zmfnI(a,-111,-101)]=u.bxGGu(i,228,218),this[f[u.dbnuf(r,576,544)](a,-121,-123)]=a(-79,-97),this[r(557,559)]=o.Xosya(i,220,215),this[i(199,205)]=u.JyJST(i,220,217),this[a(-128,-122)]=[{displayName:o[a(-75,-90)](i,218,208),name:c[i(216,212)],type:c[i(207,204)],default:"",description:i(192,201),required:!0},{displayName:o[e(127,171)],name:n(-599,-511),type:u.NDGfS(i,204,210),default:c[i(205,213)],description:c[n(-408,-444)],required:!0}]}}exports[_0x9ee376(-398,-388)]=N8nZaloApi;
|