n8n-nodes-pachca 1.0.2 → 1.0.3

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 ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 n8n-nodes-pachca
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,346 @@
1
+ # n8n Pachca Node
2
+
3
+ Кастомная нода для интеграции с API мессенджера Pachca в n8n. Позволяет автоматизировать работу с пользователями, сообщениями, чатами, файлами и другими ресурсами Pachca.
4
+
5
+ ## 📋 Содержание
6
+
7
+ - [Установка](#установка)
8
+ - [Настройка](#настройка)
9
+ - [Ресурсы и операции](#ресурсы-и-операции)
10
+ - [Примеры использования](#примеры-использования)
11
+ - [Устранение неполадок](#устранение-неполадок)
12
+ - [Поддержка](#поддержка)
13
+
14
+ ## 🚀 Установка
15
+
16
+ ### Автоматическая установка
17
+
18
+ 1. Скачайте архив с нодой:
19
+ ```bash
20
+ wget https://github.com/doesntneedname/n8n-nodes-pachca/releases/latest/download/pachca-node-v2.2.2.tar.gz
21
+ ```
22
+
23
+ 2. Распакуйте в директорию custom nodes:
24
+ ```bash
25
+ tar -xzf pachca-node-v2.2.2.tar.gz -C /path/to/n8n/custom-nodes/
26
+ ```
27
+
28
+ 3. Перезапустите n8n:
29
+ ```bash
30
+ docker restart n8n-container
31
+ ```
32
+
33
+ ### Ручная установка
34
+
35
+ 1. Клонируйте репозиторий:
36
+ ```bash
37
+ git clone https://github.com/doesntneedname/n8n-nodes-pachca.git
38
+ cd n8n-nodes-pachca
39
+ ```
40
+
41
+ 2. Установите зависимости:
42
+ ```bash
43
+ npm install
44
+ ```
45
+
46
+ 3. Соберите проект:
47
+ ```bash
48
+ npm run build
49
+ ```
50
+
51
+ 4. Перезапустите n8n:
52
+ ```bash
53
+ docker restart n8n-container
54
+ ```
55
+
56
+ ## ⚙️ Настройка
57
+
58
+ ### 1. Создание Credentials
59
+
60
+ 1. В n8n перейдите в **Settings** → **Credentials**
61
+ 2. Нажмите **Add Credential**
62
+ 3. Найдите **Pachca API** в списке
63
+ 4. Заполните поля:
64
+ - **Base URL**: `https://api.pachca.com/api/shared/v1`
65
+ - **Access Token**: Ваш токен доступа к API Pachca
66
+
67
+ ### 2. Получение Access Token
68
+
69
+ Для получения токена доступа:
70
+
71
+ 1. Войдите в веб-версию Pachca
72
+ 2. Перейдите в **Настройки** → **Интеграции**
73
+ 3. Создайте новый токен доступа
74
+ 4. Скопируйте токен и вставьте в настройки credentials
75
+
76
+ > ⚠️ **Важно**: Токен должен иметь необходимые права доступа для операций, которые вы планируете выполнять.
77
+
78
+ ## 📚 Ресурсы и операции
79
+
80
+ ### 👥 User (Пользователи)
81
+
82
+ | Операция | Описание | Метод |
83
+ |----------|----------|-------|
84
+ | Get All | Получить список всех пользователей | GET |
85
+ | Get By ID | Получить пользователя по ID | GET |
86
+ | Create | Создать нового пользователя | POST |
87
+ | Update | Обновить данные пользователя | PUT |
88
+ | Delete | Удалить пользователя | DELETE |
89
+
90
+ **Параметры для Update:**
91
+ - First Name, Last Name, Email
92
+ - Nickname, Phone Number
93
+ - Department, Title, Role
94
+ - Suspended (деактивация)
95
+ - List Tags (теги через запятую)
96
+ - Custom Properties (дополнительные поля)
97
+
98
+ ### 💬 Message (Сообщения)
99
+
100
+ | Операция | Описание | Метод |
101
+ |----------|----------|-------|
102
+ | Send | Отправить сообщение | POST |
103
+ | Get All By Chat | Получить сообщения чата | GET |
104
+ | Get By ID | Получить сообщение по ID | GET |
105
+ | Update | Редактировать сообщение | PUT |
106
+ | Delete | Удалить сообщение | DELETE |
107
+ | Get Read Members | Получить список прочитавших | GET |
108
+
109
+ ### 🏠 Chat (Чаты)
110
+
111
+ | Операция | Описание | Метод |
112
+ |----------|----------|-------|
113
+ | Get All | Получить список чатов | GET |
114
+ | Get By ID | Получить чат по ID | GET |
115
+ | Create | Создать новый чат | POST |
116
+ | Update | Обновить чат | PUT |
117
+ | Archive | Архивировать чат | PUT |
118
+ | Unarchive | Разархивировать чат | PUT |
119
+
120
+ **Параметры для Create:**
121
+ - Chat Name (название чата)
122
+ - Channel (переключатель: канал/беседа)
123
+ - Public (переключатель: открытый/закрытый)
124
+
125
+ ### 🏷️ Group Tag (Групповые теги)
126
+
127
+ | Операция | Описание | Метод |
128
+ |----------|----------|-------|
129
+ | Get All | Получить все теги | GET |
130
+ | Get By ID | Получить тег по ID | GET |
131
+ | Create | Создать новый тег | POST |
132
+ | Update | Обновить тег | PUT |
133
+ | Delete | Удалить тег | DELETE |
134
+ | Add Tags | Добавить теги к чату | POST |
135
+ | Remove Tag | Удалить тег из чата | DELETE |
136
+
137
+ ### 📁 File (Файлы)
138
+
139
+ | Операция | Описание | Метод |
140
+ |----------|----------|-------|
141
+ | Upload | Загрузить файл | POST |
142
+ | Get Upload Params | Получить параметры загрузки | POST |
143
+
144
+ **Поддерживаемые источники файлов:**
145
+ - URL (ссылка на файл)
146
+ - Binary (бинарные данные из предыдущих нод)
147
+
148
+ ### 🎯 Custom Fields (Дополнительные поля)
149
+
150
+ | Операция | Описание | Метод |
151
+ |----------|----------|-------|
152
+ | Get Custom Properties | Получить список полей | GET |
153
+
154
+ ### ✅ Task (Задачи)
155
+
156
+ | Операция | Описание | Метод |
157
+ |----------|----------|-------|
158
+ | Create | Создать задачу | POST |
159
+
160
+ ### 🤖 Bot (Боты)
161
+
162
+ | Операция | Описание | Метод |
163
+ |----------|----------|-------|
164
+ | Update | Обновить настройки бота | PUT |
165
+
166
+ ### 👤 Status (Статус)
167
+
168
+ | Операция | Описание | Метод |
169
+ |----------|----------|-------|
170
+ | Get Profile | Получить профиль | GET |
171
+ | Get Status | Получить статус | GET |
172
+ | Update Status | Обновить статус | PUT |
173
+ | Delete Status | Удалить статус | DELETE |
174
+
175
+ ### 🧵 Thread (Потоки)
176
+
177
+ | Операция | Описание | Метод |
178
+ |----------|----------|-------|
179
+ | Create Thread | Создать поток | POST |
180
+ | Get Thread | Получить поток | GET |
181
+
182
+ ### 👍 Reactions (Реакции)
183
+
184
+ | Операция | Описание | Метод |
185
+ |----------|----------|-------|
186
+ | Add Reaction | Добавить реакцию | POST |
187
+ | Delete Reaction | Удалить реакцию | DELETE |
188
+ | Get Reactions | Получить реакции | GET |
189
+
190
+ ## 💡 Примеры использования
191
+
192
+ ### 1. Отправка сообщения в чат
193
+
194
+ ```json
195
+ {
196
+ "resource": "message",
197
+ "operation": "send",
198
+ "chatId": 12345,
199
+ "content": "Привет! Это автоматическое сообщение от n8n."
200
+ }
201
+ ```
202
+
203
+ ### 2. Создание чата с настройками
204
+
205
+ ```json
206
+ {
207
+ "resource": "chat",
208
+ "operation": "create",
209
+ "chatName": "Новый проект",
210
+ "channel": true,
211
+ "public": false
212
+ }
213
+ ```
214
+
215
+ ### 3. Обновление пользователя
216
+
217
+ ```json
218
+ {
219
+ "resource": "user",
220
+ "operation": "update",
221
+ "userId": 123,
222
+ "firstName": "Иван",
223
+ "lastName": "Петров",
224
+ "department": "Разработка",
225
+ "title": "Senior Developer",
226
+ "role": "user",
227
+ "listTags": "Backend, Senior",
228
+ "customProperties": {
229
+ "property": [
230
+ {
231
+ "id": 1678,
232
+ "value": "Москва"
233
+ }
234
+ ]
235
+ }
236
+ }
237
+ ```
238
+
239
+ ### 4. Загрузка файла
240
+
241
+ ```json
242
+ {
243
+ "resource": "file",
244
+ "operation": "upload",
245
+ "fileSource": "url",
246
+ "fileUrl": "https://example.com/document.pdf",
247
+ "fileName": "document.pdf"
248
+ }
249
+ ```
250
+
251
+ ### 5. Workflow: Уведомление о новом пользователе
252
+
253
+ 1. **Webhook** - получает данные о новом пользователе
254
+ 2. **Pachca: Create User** - создает пользователя в Pachca
255
+ 3. **Pachca: Send Message** - отправляет приветственное сообщение
256
+ 4. **Pachca: Create Chat** - создает персональный чат
257
+
258
+ ## 🔧 Устранение неполадок
259
+
260
+ ### Ошибка "Invalid URL"
261
+
262
+ **Проблема**: API запросы не проходят из-за неправильного URL.
263
+
264
+ **Решение**:
265
+ 1. Проверьте Base URL в credentials: `https://api.pachca.com/api/shared/v1`
266
+ 2. Убедитесь, что токен доступа действителен
267
+ 3. Проверьте права доступа токена
268
+
269
+ ### Ошибка "Request failed with status code 404"
270
+
271
+ **Проблема**: Ресурс не найден.
272
+
273
+ **Решение**:
274
+ 1. Проверьте правильность ID ресурса
275
+ 2. Убедитесь, что у токена есть права на доступ к ресурсу
276
+ 3. Проверьте, что ресурс существует
277
+
278
+ ### Ошибка "Request failed with status code 400"
279
+
280
+ **Проблема**: Неверные параметры запроса.
281
+
282
+ **Решение**:
283
+ 1. Проверьте обязательные поля
284
+ 2. Убедитесь в правильности формата данных
285
+ 3. Проверьте ограничения API (длина текста, размер файла)
286
+
287
+ ### Файлы не загружаются
288
+
289
+ **Проблема**: Ошибка при загрузке файлов.
290
+
291
+ **Решение**:
292
+ 1. Проверьте доступность URL файла
293
+ 2. Убедитесь, что файл не превышает лимиты размера
294
+ 3. Проверьте формат файла (поддерживаемые типы)
295
+
296
+ ### Нода не отображается в списке
297
+
298
+ **Проблема**: Кастомная нода не появляется в n8n.
299
+
300
+ **Решение**:
301
+ 1. Убедитесь, что файлы скопированы в правильную директорию
302
+ 2. Перезапустите n8n
303
+ 3. Проверьте логи n8n на наличие ошибок загрузки
304
+
305
+ ## 📞 Поддержка
306
+
307
+ ### Получение помощи
308
+
309
+ - **GitHub Issues**: [Создать issue](https://github.com/doesntneedname/n8n-nodes-pachca/issues)
310
+ - **Документация Pachca API**: [api.pachca.com](https://api.pachca.com)
311
+ - **n8n Community**: [community.n8n.io](https://community.n8n.io)
312
+
313
+ ### Сообщение об ошибках
314
+
315
+ При сообщении об ошибке укажите:
316
+
317
+ 1. Версию n8n
318
+ 2. Версию ноды
319
+ 3. Описание проблемы
320
+ 4. Логи ошибок
321
+ 5. Шаги для воспроизведения
322
+
323
+ ### Вклад в развитие
324
+
325
+ Мы приветствуем вклад в развитие проекта:
326
+
327
+ 1. Fork репозитория
328
+ 2. Создайте feature branch
329
+ 3. Внесите изменения
330
+ 4. Создайте Pull Request
331
+
332
+ ## 📄 Лицензия
333
+
334
+ MIT License - см. файл [LICENSE](LICENSE) для подробностей.
335
+
336
+ ## 🏷️ Версии
337
+
338
+ ### v1.0.0
339
+ - Базовая функциональность
340
+ - Поддержка всех основных ресурсов Pachca API
341
+ - Загрузка файлов
342
+ - Управление пользователями и чатами
343
+
344
+ ---
345
+
346
+ **Создано с ❤️ для сообщества n8n и Pachca**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-pachca",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "Кастомная нода n8n для интеграции с API мессенджера Pachca. Поддерживает управление пользователями, сообщениями, чатами, файлами и другими ресурсами.",
5
5
  "keywords": [
6
6
  "n8n-community-node-package",
@@ -16,28 +16,28 @@
16
16
  "integration"
17
17
  ],
18
18
  "license": "MIT",
19
- "homepage": "https://github.com/doesntneedname/n8n-nodes-pachca#readme",
19
+ "homepage": "https://github.com/pachca/n8n-nodes-pachca#readme",
20
20
  "author": {
21
21
  "name": "doesntneedname",
22
22
  "email": "doesntneedname@example.com"
23
23
  },
24
24
  "repository": {
25
25
  "type": "git",
26
- "url": "git+https://github.com/doesntneedname/n8n-nodes-pachca.git"
26
+ "url": "git+https://github.com/pachca/n8n-nodes-pachca.git"
27
27
  },
28
28
  "bugs": {
29
- "url": "https://github.com/doesntneedname/n8n-nodes-pachca/issues"
29
+ "url": "https://github.com/pachca/n8n-nodes-pachca/issues"
30
30
  },
31
31
  "main": "index.js",
32
- "scripts": {
33
- "build": "tsc -p . && npm run copy-icons && npm run setup-n8n",
34
- "copy-icons": "mkdir -p dist/nodes/Pachca && cp -f nodes/Pachca/icons/Pachca_white_mark.png dist/nodes/Pachca/ || true",
35
- "setup-n8n": "mkdir -p dist/n8n-structure/nodes/Pachca dist/n8n-structure/credentials && cp -f dist/nodes/Pachca/Pachca.node.js dist/n8n-structure/nodes/Pachca/ || true && cp -f dist/nodes/Pachca/Pachca_white_mark.png dist/n8n-structure/nodes/Pachca/ || true && cp -f dist/credentials/PachcaApi.credentials.js dist/n8n-structure/credentials/ || true && cp package.json dist/n8n-structure/",
36
- "dev": "tsc --watch",
37
- "format": "prettier nodes credentials --write",
38
- "lint": "eslint nodes credentials package.json || true",
39
- "lintfix": "eslint nodes credentials package.json --fix || true",
40
- "prepublishOnly": "npm run build"
32
+ "scripts": {
33
+ "build": "tsc && npm run copy-icons && npm run setup-n8n",
34
+ "copy-icons": "mkdir -p dist/nodes/Pachca && cp nodes/Pachca/icons/Pachca_white_mark.png dist/nodes/Pachca/",
35
+ "setup-n8n": "mkdir -p dist/n8n-structure/nodes/Pachca dist/n8n-structure/credentials && cp dist/nodes/Pachca/Pachca.node.js dist/n8n-structure/nodes/Pachca/ && cp dist/nodes/Pachca/Pachca_white_mark.png dist/n8n-structure/nodes/Pachca/ && cp dist/credentials/PachcaApi.credentials.js dist/n8n-structure/credentials/ && cp package.json dist/n8n-structure/",
36
+ "dev": "tsc --watch",
37
+ "format": "prettier nodes credentials --write",
38
+ "lint": "eslint nodes credentials package.json",
39
+ "lintfix": "eslint nodes credentials package.json --fix",
40
+ "prepublishOnly": "npm run build && npm run lint -s"
41
41
  },
42
42
  "files": [
43
43
  "dist"
@@ -63,6 +63,6 @@
63
63
  "eslint-plugin-prettier": "^5.0.0",
64
64
  "prettier": "^3.0.0",
65
65
  "ts-node": "^10.9.2",
66
- "typescript": "^5.9.3"
66
+ "typescript": "^5.9.2"
67
67
  }
68
68
  }
@@ -1,73 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PachcaApi = void 0;
4
- class PachcaApi {
5
- constructor() {
6
- this.name = 'pachcaApi';
7
- this.displayName = 'Pachca API';
8
- this.documentationUrl = 'https://crm.pachca.com/dev/getting-started/requests-and-responses/';
9
- this.properties = [
10
- {
11
- displayName: 'Access Token',
12
- name: 'accessToken',
13
- type: 'string',
14
- typeOptions: { password: true },
15
- default: '',
16
- description: 'Токен доступа к API Пачки. Получить можно в настройках разработчика.',
17
- },
18
- {
19
- displayName: 'Base URL',
20
- name: 'baseUrl',
21
- type: 'string',
22
- default: 'https://api.pachca.com/api/shared/v1',
23
- description: 'Базовый URL API Пачки',
24
- },
25
- {
26
- displayName: 'Token Type',
27
- name: 'tokenType',
28
- type: 'options',
29
- options: [
30
- {
31
- name: 'Bot Token',
32
- value: 'bot',
33
- description: 'Токен бота - доступ к основным методам API',
34
- },
35
- {
36
- name: 'Admin Token',
37
- value: 'admin',
38
- description: 'Токен администратора - доступ к управлению пользователями и тегами',
39
- },
40
- {
41
- name: 'Owner Token',
42
- value: 'owner',
43
- description: 'Токен владельца - полный доступ включая экспорт',
44
- },
45
- ],
46
- default: 'bot',
47
- description: 'Тип токена определяет доступные методы API',
48
- },
49
- {
50
- displayName: 'User ID',
51
- name: 'userId',
52
- type: 'number',
53
- default: '',
54
- description: 'ID пользователя/бота, которому принадлежит токен (опционально)',
55
- },
56
- ];
57
- this.authenticate = {
58
- type: 'generic',
59
- properties: {
60
- headers: {
61
- Authorization: '=Bearer {{$credentials.accessToken}}',
62
- },
63
- },
64
- };
65
- this.test = {
66
- request: {
67
- baseURL: '={{$credentials.baseUrl}}',
68
- url: '/profile',
69
- },
70
- };
71
- }
72
- }
73
- exports.PachcaApi = PachcaApi;
@@ -1,73 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PachcaApi = void 0;
4
- class PachcaApi {
5
- constructor() {
6
- this.name = 'pachcaApi';
7
- this.displayName = 'Pachca API';
8
- this.documentationUrl = 'https://crm.pachca.com/dev/getting-started/requests-and-responses/';
9
- this.properties = [
10
- {
11
- displayName: 'Access Token',
12
- name: 'accessToken',
13
- type: 'string',
14
- typeOptions: { password: true },
15
- default: '',
16
- description: 'Токен доступа к API Пачки. Получить можно в настройках разработчика.',
17
- },
18
- {
19
- displayName: 'Base URL',
20
- name: 'baseUrl',
21
- type: 'string',
22
- default: 'https://api.pachca.com/api/shared/v1',
23
- description: 'Базовый URL API Пачки',
24
- },
25
- {
26
- displayName: 'Token Type',
27
- name: 'tokenType',
28
- type: 'options',
29
- options: [
30
- {
31
- name: 'Bot Token',
32
- value: 'bot',
33
- description: 'Токен бота - доступ к основным методам API',
34
- },
35
- {
36
- name: 'Admin Token',
37
- value: 'admin',
38
- description: 'Токен администратора - доступ к управлению пользователями и тегами',
39
- },
40
- {
41
- name: 'Owner Token',
42
- value: 'owner',
43
- description: 'Токен владельца - полный доступ включая экспорт',
44
- },
45
- ],
46
- default: 'bot',
47
- description: 'Тип токена определяет доступные методы API',
48
- },
49
- {
50
- displayName: 'User ID',
51
- name: 'userId',
52
- type: 'number',
53
- default: '',
54
- description: 'ID пользователя/бота, которому принадлежит токен (опционально)',
55
- },
56
- ];
57
- this.authenticate = {
58
- type: 'generic',
59
- properties: {
60
- headers: {
61
- Authorization: '=Bearer {{$credentials.accessToken}}',
62
- },
63
- },
64
- };
65
- this.test = {
66
- request: {
67
- baseURL: '={{$credentials.baseUrl}}',
68
- url: '/profile',
69
- },
70
- };
71
- }
72
- }
73
- exports.PachcaApi = PachcaApi;