n8n-nodes-digitalsac 1.0.0 → 1.0.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/README.md +835 -0
- package/package.json +2 -4
package/README.md
ADDED
|
@@ -0,0 +1,835 @@
|
|
|
1
|
+
# n8n-nodes-digitalsac
|
|
2
|
+
|
|
3
|
+
Este pacote adiciona um nó personalizado ao n8n para interagir com a API do Digitalsac Izing Pro.
|
|
4
|
+
|
|
5
|
+
## ✅ Versão para n8n v2.x
|
|
6
|
+
|
|
7
|
+
**Esta é a versão 1.0.1, compatível com n8n v2.x**
|
|
8
|
+
|
|
9
|
+
Se você usa **n8n v1.x**, instale a versão correta:
|
|
10
|
+
```bash
|
|
11
|
+
npm install n8n-nodes-digitalsac
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Funcionalidades
|
|
17
|
+
|
|
18
|
+
- Validar número de WhatsApp
|
|
19
|
+
- Validar CPF
|
|
20
|
+
- Validar Data
|
|
21
|
+
- Listar Filas
|
|
22
|
+
- Listar Atendentes
|
|
23
|
+
- Transferir para Fila
|
|
24
|
+
- Transferir para Atendente
|
|
25
|
+
- Fechar Ticket
|
|
26
|
+
- Enviar Mensagem (texto e arquivos)
|
|
27
|
+
- **Enviar Botões Interativos**
|
|
28
|
+
- **Enviar Listas**
|
|
29
|
+
- **Enviar Mídia com Caption**
|
|
30
|
+
- **Enviar Arquivo Base64**
|
|
31
|
+
- Listar Tags
|
|
32
|
+
- Vincular Tag
|
|
33
|
+
- Criar Tag
|
|
34
|
+
- Listar Kanbans
|
|
35
|
+
- Vincular Kanban
|
|
36
|
+
- Listar Carteiras
|
|
37
|
+
- Vincular Carteira
|
|
38
|
+
- **Agendamento:**
|
|
39
|
+
- Listar Serviços
|
|
40
|
+
- Listar Usuários Disponíveis
|
|
41
|
+
- Listar Horários Disponíveis
|
|
42
|
+
- Criar Agendamento
|
|
43
|
+
- Cancelar Agendamento
|
|
44
|
+
- Gerar Link do Calendário (.ics)
|
|
45
|
+
- **Templates WABA:**
|
|
46
|
+
- Listar Templates WABA
|
|
47
|
+
- Enviar Template WABA
|
|
48
|
+
|
|
49
|
+
## Instalação
|
|
50
|
+
|
|
51
|
+
### Via interface do n8n
|
|
52
|
+
1. Vá para **Configurações > Community Nodes**
|
|
53
|
+
2. Digite `n8n-nodes-digitalsac` na caixa de pesquisa
|
|
54
|
+
3. Clique em **Instalar**
|
|
55
|
+
|
|
56
|
+
### Via linha de comando
|
|
57
|
+
```bash
|
|
58
|
+
npm install -g n8n-nodes-digitalsac
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Ou se você estiver usando o n8n com um diretório específico:
|
|
62
|
+
```bash
|
|
63
|
+
cd ~/.n8n
|
|
64
|
+
npm install n8n-nodes-digitalsac
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## ✨ Novas Funcionalidades (v0.5.6)
|
|
68
|
+
|
|
69
|
+
### 📱 Templates WABA
|
|
70
|
+
Envie templates pré-aprovados do WhatsApp Business API:
|
|
71
|
+
- **Listar Templates WABA**: Busca todos os templates disponíveis na conta WABA
|
|
72
|
+
- **Enviar Template WABA**: Envia template com variáveis dinâmicas para contatos
|
|
73
|
+
|
|
74
|
+
**Benefícios:**
|
|
75
|
+
- ✅ Templates aprovados pelo Meta/Facebook
|
|
76
|
+
- ✅ Baixo custo de envio
|
|
77
|
+
- ✅ Alta taxa de entrega
|
|
78
|
+
- ✅ Suporte a variáveis personalizadas
|
|
79
|
+
- ✅ Ideais para notificações transacionais
|
|
80
|
+
|
|
81
|
+
## ✨ Funcionalidades Anteriores (v0.5.1)
|
|
82
|
+
|
|
83
|
+
### 🔘 Enviar Botões Interativos
|
|
84
|
+
Envie mensagens com botões clicáveis:
|
|
85
|
+
- **Resposta Rápida**: Botão que responde instantaneamente
|
|
86
|
+
- **URL**: Botão que abre links
|
|
87
|
+
- **Copiar**: Botão que copia texto
|
|
88
|
+
- **Ligar**: Botão que inicia chamada
|
|
89
|
+
|
|
90
|
+
### 📋 Enviar Listas
|
|
91
|
+
Crie menus organizados com:
|
|
92
|
+
- Múltiplas seções
|
|
93
|
+
- Opções clicáveis
|
|
94
|
+
- Descrições detalhadas
|
|
95
|
+
|
|
96
|
+
### 🖼️ Enviar Mídia com Caption
|
|
97
|
+
Envie arquivos com legendas personalizadas:
|
|
98
|
+
- Upload direto de arquivos
|
|
99
|
+
- Caption obrigatório
|
|
100
|
+
- Suporte a imagens, PDFs, vídeos
|
|
101
|
+
|
|
102
|
+
### 📁 Enviar Base64
|
|
103
|
+
Envie arquivos via base64:
|
|
104
|
+
- Sem necessidade de upload
|
|
105
|
+
- Caption opcional
|
|
106
|
+
- Ideal para integração com APIs
|
|
107
|
+
|
|
108
|
+
## Autenticação
|
|
109
|
+
|
|
110
|
+
Configure as credenciais Digitalsac com a URL base e seu Bearer Token:
|
|
111
|
+
1. Vá para **Credenciais > Criar Nova Credencial**
|
|
112
|
+
2. Selecione **Izing Pro Digitalsac API**
|
|
113
|
+
3. Preencha:
|
|
114
|
+
- **API Base URL**: URL da sua instalação do Digitalsac (ex: https://seudominio.digitalsac.com.br)
|
|
115
|
+
- **Bearer Token**: Seu token de autenticação
|
|
116
|
+
|
|
117
|
+
## Como Usar
|
|
118
|
+
|
|
119
|
+
### Validar WhatsApp
|
|
120
|
+
1. Selecione a operação **Validar WhatsApp**
|
|
121
|
+
2. No campo **Parâmetro**, insira o número de telefone a ser validado
|
|
122
|
+
|
|
123
|
+
### Validar CPF
|
|
124
|
+
1. Selecione a operação **Validar CPF**
|
|
125
|
+
2. No campo **Parâmetro**, insira o CPF a ser validado
|
|
126
|
+
|
|
127
|
+
### Validar Data
|
|
128
|
+
1. Selecione a operação **Validar Data**
|
|
129
|
+
2. No campo **Dados (JSON)**, insira os dados no formato:
|
|
130
|
+
```json
|
|
131
|
+
{
|
|
132
|
+
"data": "string com a data a ser validada"
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Listar Filas/Atendentes
|
|
137
|
+
1. Selecione a operação **Listar Filas** ou **Listar Atendentes**
|
|
138
|
+
2. Não é necessário configurar parâmetros adicionais
|
|
139
|
+
|
|
140
|
+
### Transferir para Fila
|
|
141
|
+
1. Selecione a operação **Transferir para Fila**
|
|
142
|
+
2. No campo **Dados (JSON)**, insira os dados no formato:
|
|
143
|
+
```json
|
|
144
|
+
{
|
|
145
|
+
"ticketId": 0,
|
|
146
|
+
"queueId": 0
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
Onde:
|
|
150
|
+
- `ticketId`: ID do ticket a ser transferido
|
|
151
|
+
- `queueId`: ID da fila de destino
|
|
152
|
+
|
|
153
|
+
### Transferir para Atendente
|
|
154
|
+
1. Selecione a operação **Transferir para Atendente**
|
|
155
|
+
2. No campo **Dados (JSON)**, insira os dados no formato:
|
|
156
|
+
```json
|
|
157
|
+
{
|
|
158
|
+
"ticketId": 0,
|
|
159
|
+
"userId": 0
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
Onde:
|
|
163
|
+
- `ticketId`: ID do ticket a ser transferido
|
|
164
|
+
- `userId`: ID do atendente de destino
|
|
165
|
+
|
|
166
|
+
### Fechar Ticket
|
|
167
|
+
1. Selecione a operação **Fechar Ticket**
|
|
168
|
+
2. No campo **Dados (JSON)**, insira os dados no formato:
|
|
169
|
+
```json
|
|
170
|
+
{
|
|
171
|
+
"ticketId": 0
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
Onde:
|
|
175
|
+
- `ticketId`: ID do ticket a ser fechado
|
|
176
|
+
|
|
177
|
+
### Enviar Mensagem de Texto
|
|
178
|
+
1. Selecione a operação **Enviar Mensagem**
|
|
179
|
+
2. No campo **Parâmetro**, insira o UUID da conexão (ex: 999ab3a2-9f1f-4ffb-969a-bfb72234ece1)
|
|
180
|
+
3. No campo **Corpo da Mensagem**, insira o texto da mensagem
|
|
181
|
+
4. No campo **Número de Telefone**, insira o número no formato DDI+DDD+Número (ex: 5511999999999)
|
|
182
|
+
5. No campo **Chave Externa**, insira um identificador único opcional
|
|
183
|
+
|
|
184
|
+
### Enviar Arquivo
|
|
185
|
+
1. Conecte um nó que forneça dados binários (ex: **HTTP Request**, **Read Binary File**, **Google Drive**)
|
|
186
|
+
2. Conecte ao nó **Digitalsac**
|
|
187
|
+
3. Selecione a operação **Enviar Mensagem**
|
|
188
|
+
4. No campo **Parâmetro**, insira o UUID da conexão
|
|
189
|
+
5. Preencha os demais campos normalmente
|
|
190
|
+
6. O nó detectará automaticamente o arquivo binário e enviará via FormData
|
|
191
|
+
|
|
192
|
+
**Nota**: O nó detecta automaticamente se há dados binários conectados e escolhe o método correto:
|
|
193
|
+
- **Sem arquivo**: Envia como JSON (texto)
|
|
194
|
+
- **Com arquivo**: Envia como FormData (arquivo + texto)
|
|
195
|
+
|
|
196
|
+
### 🔘 Enviar Botões Interativos
|
|
197
|
+
1. Selecione a operação **Enviar Botões**
|
|
198
|
+
2. No campo **Parâmetro**, insira o UUID da conexão
|
|
199
|
+
3. Preencha os campos básicos:
|
|
200
|
+
- **Título**: "Escolha uma opção"
|
|
201
|
+
- **Corpo da Mensagem**: "Clique em uma das opções abaixo:"
|
|
202
|
+
- **Número de Telefone**: "5511999999999"
|
|
203
|
+
- **Chave Externa**: "btn_001"
|
|
204
|
+
4. No campo **Botões (JSON)**, configure os botões:
|
|
205
|
+
|
|
206
|
+
```json
|
|
207
|
+
[
|
|
208
|
+
{
|
|
209
|
+
"tipo": {"label": "Resposta Rápida", "value": "quick_reply"},
|
|
210
|
+
"display_text": "✅ Sim",
|
|
211
|
+
"conteudo": "sim"
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"tipo": {"label": "Resposta Rápida", "value": "quick_reply"},
|
|
215
|
+
"display_text": "❌ Não",
|
|
216
|
+
"conteudo": "nao"
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"tipo": {"label": "URL", "value": "url"},
|
|
220
|
+
"display_text": "🌐 Visitar Site",
|
|
221
|
+
"conteudo": "https://www.digitalsac.com.br"
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"tipo": {"label": "Copiar", "value": "copy"},
|
|
225
|
+
"display_text": "📋 Copiar Código",
|
|
226
|
+
"conteudo": "PROMO2024"
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
"tipo": {"label": "Ligar", "value": "call"},
|
|
230
|
+
"display_text": "📞 Ligar Agora",
|
|
231
|
+
"conteudo": "5511999999999"
|
|
232
|
+
}
|
|
233
|
+
]
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
**Tipos de botão disponíveis:**
|
|
237
|
+
- `quick_reply`: Resposta rápida (o texto vai para o chat)
|
|
238
|
+
- `url`: Abre um link no navegador
|
|
239
|
+
- `copy`: Copia texto para área de transferência
|
|
240
|
+
- `call`: Inicia uma chamada telefônica
|
|
241
|
+
|
|
242
|
+
### 📋 Enviar Lista
|
|
243
|
+
1. Selecione a operação **Enviar Lista**
|
|
244
|
+
2. No campo **Parâmetro**, insira o UUID da conexão
|
|
245
|
+
3. Preencha os campos básicos:
|
|
246
|
+
- **Título**: "Menu de Opções"
|
|
247
|
+
- **Texto**: "Escolha uma categoria:"
|
|
248
|
+
- **Texto do Botão**: "Ver Opções"
|
|
249
|
+
- **Rodapé**: "Powered by DigitalSac"
|
|
250
|
+
- **Número de Telefone**: "5511999999999"
|
|
251
|
+
- **Chave Externa**: "list_001"
|
|
252
|
+
4. No campo **Seções (JSON)**, configure as seções:
|
|
253
|
+
|
|
254
|
+
```json
|
|
255
|
+
[
|
|
256
|
+
{
|
|
257
|
+
"title": "🛍️ Produtos",
|
|
258
|
+
"lines": [
|
|
259
|
+
{
|
|
260
|
+
"title": "Smartphone Premium",
|
|
261
|
+
"description": "iPhone 15 Pro Max 256GB",
|
|
262
|
+
"rowId": 1
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"title": "Notebook Gamer",
|
|
266
|
+
"description": "Dell Alienware com RTX 4090",
|
|
267
|
+
"rowId": 2
|
|
268
|
+
}
|
|
269
|
+
]
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
"title": "🛠️ Serviços",
|
|
273
|
+
"lines": [
|
|
274
|
+
{
|
|
275
|
+
"title": "Suporte Técnico",
|
|
276
|
+
"description": "Assistência técnica especializada",
|
|
277
|
+
"rowId": 3
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"title": "Consultoria",
|
|
281
|
+
"description": "Consultoria personalizada",
|
|
282
|
+
"rowId": 4
|
|
283
|
+
}
|
|
284
|
+
]
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"title": "📞 Contato",
|
|
288
|
+
"lines": [
|
|
289
|
+
{
|
|
290
|
+
"title": "Falar com Vendedor",
|
|
291
|
+
"description": "Atendimento comercial",
|
|
292
|
+
"rowId": 5
|
|
293
|
+
}
|
|
294
|
+
]
|
|
295
|
+
}
|
|
296
|
+
]
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
### 🖼️ Enviar Mídia com Caption
|
|
300
|
+
1. **Conecte um nó com arquivo** (ex: HTTP Request, Read Binary File, Google Drive)
|
|
301
|
+
2. Conecte ao nó **Digitalsac**
|
|
302
|
+
3. Selecione a operação **Enviar Mídia com Caption**
|
|
303
|
+
4. No campo **Parâmetro**, insira o UUID da conexão
|
|
304
|
+
5. Preencha os campos:
|
|
305
|
+
- **Caption**: "Esta é uma imagem importante do produto"
|
|
306
|
+
- **Número de Telefone**: "5511999999999"
|
|
307
|
+
- **Chave Externa**: "media_001"
|
|
308
|
+
|
|
309
|
+
**Tipos de arquivo suportados:**
|
|
310
|
+
- 🖼️ Imagens: JPG, PNG, GIF
|
|
311
|
+
- 📄 Documentos: PDF, DOC, DOCX
|
|
312
|
+
- 🎥 Vídeos: MP4, AVI
|
|
313
|
+
- 🎵 Áudio: MP3, WAV
|
|
314
|
+
|
|
315
|
+
### 📁 Enviar Base64
|
|
316
|
+
1. Selecione a operação **Enviar Base64**
|
|
317
|
+
2. No campo **Parâmetro**, insira o UUID da conexão
|
|
318
|
+
3. Preencha os campos:
|
|
319
|
+
- **Caption (Opcional)**: "Documento enviado via API"
|
|
320
|
+
- **Número de Telefone**: "5511999999999"
|
|
321
|
+
- **Arquivo Base64**: Cole o arquivo codificado em base64
|
|
322
|
+
- **Tipo MIME**: "application/pdf" (ou conforme o arquivo)
|
|
323
|
+
- **Nome do Arquivo**: "documento.pdf"
|
|
324
|
+
- **Chave Externa**: "base64_001"
|
|
325
|
+
|
|
326
|
+
**Exemplo de uso com código base64:**
|
|
327
|
+
```json
|
|
328
|
+
{
|
|
329
|
+
"caption": "Relatório mensal de vendas",
|
|
330
|
+
"mediaBase64": "JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKPj4KZW5kb2JqCjIgMCBvYmoKPDwKL1R5cGUgL1BhZ2VzCi9LaWRzIFszIDAgUl0KL0NvdW50IDEKPD4KZW5kb2JqCjMgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL1BhcmVudCAyIDAgUgovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQo+PgplbmRvYmoKeHJlZgowIDQKMDAwMDAwMDAwMCA2NTUzNSBmCjAwMDAwMDAwMDkgMDAwMDAgbgowMDAwMDAwMDc0IDAwMDAwIG4KMDAwMDAwMDEyMCAwMDAwMCBuCnRyYWlsZXIKPDwKL1NpemUgNAovUm9vdCAxIDAgUgo+PgpzdGFydHhyZWYKMTc5CiUlRU9G",
|
|
331
|
+
"mimeType": "application/pdf",
|
|
332
|
+
"fileName": "relatorio.pdf"
|
|
333
|
+
}
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
**Dica**: Para converter arquivo para base64:
|
|
337
|
+
- **Linux/Mac**: `base64 arquivo.pdf`
|
|
338
|
+
- **Windows**: Use PowerShell: `[Convert]::ToBase64String([IO.File]::ReadAllBytes("arquivo.pdf"))`
|
|
339
|
+
- **Online**: Use conversores como base64encode.org
|
|
340
|
+
|
|
341
|
+
### Listar Tags
|
|
342
|
+
1. Selecione a operação **Listar Tags**
|
|
343
|
+
2. Não é necessário configurar parâmetros adicionais
|
|
344
|
+
|
|
345
|
+
### Vincular Tag
|
|
346
|
+
1. Selecione a operação **Vincular Tag**
|
|
347
|
+
2. No campo **Dados (JSON)**, insira os dados no formato:
|
|
348
|
+
```json
|
|
349
|
+
{
|
|
350
|
+
"ticketId": 123,
|
|
351
|
+
"tagId": 456
|
|
352
|
+
}
|
|
353
|
+
```
|
|
354
|
+
Onde:
|
|
355
|
+
- `ticketId`: ID do ticket
|
|
356
|
+
- `tagId`: ID da tag a ser vinculada
|
|
357
|
+
|
|
358
|
+
### Criar Tag
|
|
359
|
+
1. Selecione a operação **Criar Tag**
|
|
360
|
+
2. No campo **Nome da Tag**, insira o nome da tag
|
|
361
|
+
3. No campo **Cor da Tag**, insira a cor em formato hexadecimal (ex: #FF5733, #2196F3, #4CAF50)
|
|
362
|
+
|
|
363
|
+
### Listar Kanbans
|
|
364
|
+
1. Selecione a operação **Listar Kanbans**
|
|
365
|
+
2. No campo **User ID**, insira o ID do usuário
|
|
366
|
+
|
|
367
|
+
### Vincular Kanban
|
|
368
|
+
1. Selecione a operação **Vincular Kanban**
|
|
369
|
+
2. No campo **Dados (JSON)**, insira os dados no formato:
|
|
370
|
+
```json
|
|
371
|
+
{
|
|
372
|
+
"ticketId": 123,
|
|
373
|
+
"kanbanId": 456,
|
|
374
|
+
"userId": 789
|
|
375
|
+
}
|
|
376
|
+
```
|
|
377
|
+
Onde:
|
|
378
|
+
- `ticketId`: ID do ticket
|
|
379
|
+
- `kanbanId`: ID do kanban a ser vinculado
|
|
380
|
+
- `userId`: ID do usuário
|
|
381
|
+
|
|
382
|
+
### Listar Carteiras
|
|
383
|
+
1. Selecione a operação **Listar Carteiras**
|
|
384
|
+
2. Não é necessário configurar parâmetros adicionais
|
|
385
|
+
|
|
386
|
+
### Vincular Carteira
|
|
387
|
+
1. Selecione a operação **Vincular Carteira**
|
|
388
|
+
2. No campo **Dados (JSON)**, insira os dados no formato:
|
|
389
|
+
```json
|
|
390
|
+
{
|
|
391
|
+
"ticketId": 123,
|
|
392
|
+
"userId": 456
|
|
393
|
+
}
|
|
394
|
+
```
|
|
395
|
+
Onde:
|
|
396
|
+
- `ticketId`: ID do ticket
|
|
397
|
+
- `userId`: ID do usuário da carteira
|
|
398
|
+
|
|
399
|
+
## Exemplos de Respostas da API
|
|
400
|
+
|
|
401
|
+
### Transferir para Fila
|
|
402
|
+
**Resposta de sucesso:**
|
|
403
|
+
```json
|
|
404
|
+
{
|
|
405
|
+
"status": 0
|
|
406
|
+
}
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
### Transferir para Atendente
|
|
410
|
+
**Resposta de sucesso:**
|
|
411
|
+
```json
|
|
412
|
+
{
|
|
413
|
+
"status": 0
|
|
414
|
+
}
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
### Fechar Ticket
|
|
418
|
+
**Resposta de sucesso:**
|
|
419
|
+
```json
|
|
420
|
+
"string"
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
### Validar Data
|
|
424
|
+
**Resposta de sucesso:**
|
|
425
|
+
```json
|
|
426
|
+
{
|
|
427
|
+
"status": 0
|
|
428
|
+
}
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
### Criar Tag
|
|
432
|
+
**Resposta de sucesso (tag criada):**
|
|
433
|
+
```json
|
|
434
|
+
{
|
|
435
|
+
"status": 1,
|
|
436
|
+
"tagId": 456
|
|
437
|
+
}
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
**Resposta quando tag já existe:**
|
|
441
|
+
```json
|
|
442
|
+
{
|
|
443
|
+
"status": 2
|
|
444
|
+
}
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
**Resposta de erro:**
|
|
448
|
+
```json
|
|
449
|
+
{
|
|
450
|
+
"status": 0
|
|
451
|
+
}
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
### Vincular Tag/Kanban/Carteira
|
|
455
|
+
**Resposta de sucesso:**
|
|
456
|
+
```json
|
|
457
|
+
{
|
|
458
|
+
"status": 0
|
|
459
|
+
}
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
## Exemplo de Fluxo
|
|
463
|
+
|
|
464
|
+
### Enviar PDF para um contato
|
|
465
|
+
1. Adicione um nó **Read Binary File**
|
|
466
|
+
- Configure para ler um arquivo PDF
|
|
467
|
+
2. Conecte ao nó **Digitalsac**
|
|
468
|
+
- Operação: **Enviar Mensagem**
|
|
469
|
+
- Parâmetro: `999ab3a2-9f1f-4ffb-969a-bfb72234ece1` (seu UUID de conexão)
|
|
470
|
+
- Corpo da Mensagem: `Segue o PDF solicitado`
|
|
471
|
+
- Número de Telefone: `5511999999999`
|
|
472
|
+
- Chave Externa: `pdf_documento_123`
|
|
473
|
+
|
|
474
|
+
### Transferir ticket para uma fila específica
|
|
475
|
+
1. Adicione um nó **Digitalsac**
|
|
476
|
+
- Operação: **Transferir para Fila**
|
|
477
|
+
- Dados (JSON):
|
|
478
|
+
```json
|
|
479
|
+
{
|
|
480
|
+
"ticketId": 123,
|
|
481
|
+
"queueId": 5
|
|
482
|
+
}
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
### Transferir ticket para um atendente específico
|
|
486
|
+
1. Adicione um nó **Digitalsac**
|
|
487
|
+
- Operação: **Transferir para Atendente**
|
|
488
|
+
- Dados (JSON):
|
|
489
|
+
```json
|
|
490
|
+
{
|
|
491
|
+
"ticketId": 123,
|
|
492
|
+
"userId": 10
|
|
493
|
+
}
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
### Criar uma tag e vincular a um ticket
|
|
497
|
+
1. Adicione um nó **Digitalsac**
|
|
498
|
+
- Operação: **Criar Tag**
|
|
499
|
+
- Nome da Tag: `Suporte Técnico`
|
|
500
|
+
- Cor da Tag: `#2196F3`
|
|
501
|
+
2. Conecte a outro nó **Digitalsac**
|
|
502
|
+
- Operação: **Vincular Tag**
|
|
503
|
+
- Dados (JSON):
|
|
504
|
+
```json
|
|
505
|
+
{
|
|
506
|
+
"ticketId": 123,
|
|
507
|
+
"tagId": "{{$json.tagId}}"
|
|
508
|
+
}
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
### Listar kanbans de um usuário e vincular a um ticket
|
|
512
|
+
1. Adicione um nó **Digitalsac**
|
|
513
|
+
- Operação: **Listar Kanbans**
|
|
514
|
+
- User ID: `10`
|
|
515
|
+
2. Conecte a outro nó **Digitalsac**
|
|
516
|
+
- Operação: **Vincular Kanban**
|
|
517
|
+
- Dados (JSON):
|
|
518
|
+
```json
|
|
519
|
+
{
|
|
520
|
+
"ticketId": 123,
|
|
521
|
+
"kanbanId": 5,
|
|
522
|
+
"userId": 10
|
|
523
|
+
}
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
### Vincular carteira a um ticket
|
|
527
|
+
1. Adicione um nó **Digitalsac**
|
|
528
|
+
- Operação: **Vincular Carteira**
|
|
529
|
+
- Dados (JSON):
|
|
530
|
+
```json
|
|
531
|
+
{
|
|
532
|
+
"ticketId": 123,
|
|
533
|
+
"userId": 15
|
|
534
|
+
}
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+
### Gerar link de calendário para um agendamento
|
|
538
|
+
1. Adicione um nó **Digitalsac**
|
|
539
|
+
- Operação: **Gerar Link do Calendário (.ics)**
|
|
540
|
+
- ID do Agendamento: `123`
|
|
541
|
+
2. O retorno pode ser usado para:
|
|
542
|
+
- Enviar o link direto para o cliente
|
|
543
|
+
- Fazer download automático do arquivo .ics
|
|
544
|
+
- Integrar com outros sistemas de calendário
|
|
545
|
+
|
|
546
|
+
## Funcionalidades de Agendamento
|
|
547
|
+
|
|
548
|
+
### Listar Serviços
|
|
549
|
+
Lista todos os serviços disponíveis para agendamento.
|
|
550
|
+
1. Selecione a operação **Listar Serviços**
|
|
551
|
+
2. (Opcional) No campo **ID do Usuário**, insira o ID do usuário para filtrar apenas os serviços que ele atende
|
|
552
|
+
|
|
553
|
+
**Retorno exemplo:**
|
|
554
|
+
```json
|
|
555
|
+
{
|
|
556
|
+
"servicos": "*1* - Consulta (30min - R$ 100,00)\n*2* - Retorno (15min - R$ 50,00)"
|
|
557
|
+
}
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
### Listar Usuários Disponíveis
|
|
561
|
+
Lista os usuários/atendentes disponíveis para um serviço em uma data específica.
|
|
562
|
+
1. Selecione a operação **Listar Usuários Disponíveis**
|
|
563
|
+
2. Preencha:
|
|
564
|
+
- **ID do Serviço**: ID do serviço desejado
|
|
565
|
+
- **Data**: Data no formato YYYY-MM-DD (ex: 2025-08-07)
|
|
566
|
+
- **Horário** (opcional): Horário específico no formato HH:mm (ex: 09:00)
|
|
567
|
+
|
|
568
|
+
**Retorno exemplo:**
|
|
569
|
+
```json
|
|
570
|
+
{
|
|
571
|
+
"usuarios": "*28* - João Silva\n*29* - Maria Santos"
|
|
572
|
+
}
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
### Listar Horários Disponíveis
|
|
576
|
+
Lista os horários disponíveis para um serviço e usuário em uma data específica.
|
|
577
|
+
1. Selecione a operação **Listar Horários Disponíveis**
|
|
578
|
+
2. Preencha:
|
|
579
|
+
- **ID do Serviço**: ID do serviço desejado
|
|
580
|
+
- **ID do Usuário**: ID do atendente/usuário
|
|
581
|
+
- **Data**: Data no formato YYYY-MM-DD
|
|
582
|
+
|
|
583
|
+
**Retorno exemplo:**
|
|
584
|
+
```json
|
|
585
|
+
{
|
|
586
|
+
"horarios": "*1* - 09:00\n*2* - 09:30\n*3* - 10:00\n*4* - 10:30"
|
|
587
|
+
}
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
### Criar Agendamento
|
|
591
|
+
Cria um novo agendamento no sistema.
|
|
592
|
+
1. Selecione a operação **Criar Agendamento**
|
|
593
|
+
2. Preencha:
|
|
594
|
+
- **ID do Serviço**: ID do serviço
|
|
595
|
+
- **ID do Usuário**: ID do atendente/usuário
|
|
596
|
+
- **Data**: Data do agendamento (YYYY-MM-DD)
|
|
597
|
+
- **Horário**: Horário do agendamento (HH:mm)
|
|
598
|
+
- **Nome do Contato**: Nome do cliente
|
|
599
|
+
- **Telefone do Contato**: Telefone do cliente (formato: 5511999999999)
|
|
600
|
+
- **Observações** (opcional): Notas sobre o agendamento
|
|
601
|
+
- **ID da Conexão WhatsApp** (opcional): ID da conexão WhatsApp (usa primeira disponível se não informado)
|
|
602
|
+
- **Mensagem Personalizada** (opcional): Mensagem personalizada do agendamento
|
|
603
|
+
- **Lembretes (minutos)**: Lembretes em minutos antes do agendamento (separados por vírgula, ex: 60,240,1440)
|
|
604
|
+
- **Duração do Intervalo (minutos)**: Duração do intervalo em minutos (padrão: 30)
|
|
605
|
+
- **Fechar Ticket**: Se deve fechar o ticket após criar agendamento
|
|
606
|
+
|
|
607
|
+
**Observações importantes:**
|
|
608
|
+
- Se o contato não existir no sistema, ele será criado automaticamente
|
|
609
|
+
- Se não informar conexão WhatsApp, será usada a primeira disponível
|
|
610
|
+
- Os lembretes são em minutos (60 = 1 hora, 240 = 4 horas, 1440 = 1 dia)
|
|
611
|
+
|
|
612
|
+
**Retorno exemplo:**
|
|
613
|
+
```json
|
|
614
|
+
{
|
|
615
|
+
"status": 1,
|
|
616
|
+
"mensagem": "Agendamento criado com sucesso",
|
|
617
|
+
"scheduleId": 123,
|
|
618
|
+
"contactId": 456,
|
|
619
|
+
"whatsappId": 789
|
|
620
|
+
}
|
|
621
|
+
```
|
|
622
|
+
|
|
623
|
+
### Cancelar Agendamento
|
|
624
|
+
Cancela um agendamento existente.
|
|
625
|
+
1. Selecione a operação **Cancelar Agendamento**
|
|
626
|
+
2. Preencha:
|
|
627
|
+
- **ID do Agendamento**: ID do agendamento a ser cancelado
|
|
628
|
+
|
|
629
|
+
**Retorno exemplo:**
|
|
630
|
+
```json
|
|
631
|
+
{
|
|
632
|
+
"status": 0,
|
|
633
|
+
"mensagem": "Agendamento cancelado com sucesso"
|
|
634
|
+
}
|
|
635
|
+
```
|
|
636
|
+
|
|
637
|
+
### Gerar Link do Calendário (.ics)
|
|
638
|
+
Gera um link para download do arquivo .ics (calendário) de um agendamento específico.
|
|
639
|
+
1. Selecione a operação **Gerar Link do Calendário (.ics)**
|
|
640
|
+
2. Preencha:
|
|
641
|
+
- **ID do Agendamento**: ID do agendamento para gerar o link do calendário
|
|
642
|
+
|
|
643
|
+
**Retorno exemplo:**
|
|
644
|
+
```json
|
|
645
|
+
{
|
|
646
|
+
"status": 1,
|
|
647
|
+
"link": "https://seudominio.com/schedules/123/ics",
|
|
648
|
+
"scheduleId": 123,
|
|
649
|
+
"info": {
|
|
650
|
+
"cliente": "João Silva",
|
|
651
|
+
"servico": "Consulta Médica",
|
|
652
|
+
"data": "2025-01-15T14:30:00.000Z",
|
|
653
|
+
"funcionario": "Dr. Pedro Santos"
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
```
|
|
657
|
+
|
|
658
|
+
**Uso do link:**
|
|
659
|
+
- O link gerado pode ser usado diretamente para download do arquivo .ics
|
|
660
|
+
- O arquivo .ics contém todas as informações do agendamento
|
|
661
|
+
- Pode ser importado em qualquer aplicativo de calendário (Google Calendar, Outlook, Apple Calendar, etc.)
|
|
662
|
+
- É útil para integração com sistemas externos ou envio para clientes
|
|
663
|
+
|
|
664
|
+
### 📱 Listar Templates WABA
|
|
665
|
+
Lista todos os templates disponíveis na conta WABA (WhatsApp Business API).
|
|
666
|
+
1. Selecione a operação **Listar Templates WABA**
|
|
667
|
+
2. Preencha:
|
|
668
|
+
- **WhatsApp ID**: ID da conexão WhatsApp WABA
|
|
669
|
+
|
|
670
|
+
**Retorno exemplo:**
|
|
671
|
+
```json
|
|
672
|
+
[
|
|
673
|
+
{
|
|
674
|
+
"id": "123456789",
|
|
675
|
+
"name": "boas_vindas",
|
|
676
|
+
"language": "pt_BR",
|
|
677
|
+
"category": "MARKETING",
|
|
678
|
+
"status": "APPROVED",
|
|
679
|
+
"alreadyImported": true
|
|
680
|
+
},
|
|
681
|
+
{
|
|
682
|
+
"id": "987654321",
|
|
683
|
+
"name": "confirmacao_pedido",
|
|
684
|
+
"language": "pt_BR",
|
|
685
|
+
"category": "UTILITY",
|
|
686
|
+
"status": "APPROVED",
|
|
687
|
+
"alreadyImported": false
|
|
688
|
+
}
|
|
689
|
+
]
|
|
690
|
+
```
|
|
691
|
+
|
|
692
|
+
**Campos retornados:**
|
|
693
|
+
- `id`: ID do template no Facebook Graph API
|
|
694
|
+
- `name`: Nome do template
|
|
695
|
+
- `language`: Idioma do template
|
|
696
|
+
- `category`: Categoria (MARKETING, UTILITY, AUTHENTICATION)
|
|
697
|
+
- `status`: Status (APPROVED, PENDING, REJECTED)
|
|
698
|
+
- `alreadyImported`: Indica se o template já foi importado no sistema
|
|
699
|
+
|
|
700
|
+
### 📤 Enviar Template WABA
|
|
701
|
+
Envia um template WABA pré-aprovado para um número de WhatsApp.
|
|
702
|
+
1. Selecione a operação **Enviar Template WABA**
|
|
703
|
+
2. Preencha:
|
|
704
|
+
- **WhatsApp ID**: ID da conexão WhatsApp WABA
|
|
705
|
+
- **Template ID**: ID do template no sistema (obtido após importação)
|
|
706
|
+
- **Número de Telefone**: Número do destinatário com DDI (ex: 5511999999999)
|
|
707
|
+
- **Parâmetros do Template**: JSON com variáveis para substituir no template (opcional)
|
|
708
|
+
|
|
709
|
+
**Exemplo de parâmetros:**
|
|
710
|
+
```json
|
|
711
|
+
{
|
|
712
|
+
"nome_cliente": "João Silva",
|
|
713
|
+
"numero_pedido": "12345",
|
|
714
|
+
"data_entrega": "15/01/2025"
|
|
715
|
+
}
|
|
716
|
+
```
|
|
717
|
+
|
|
718
|
+
**Retorno exemplo:**
|
|
719
|
+
```json
|
|
720
|
+
{
|
|
721
|
+
"success": true,
|
|
722
|
+
"message": "Template enviado com sucesso",
|
|
723
|
+
"messageId": "wamid.HBgNNTUxMTk4NzY1NDMyMRUCABIYIDNBNjdFRjg5RjY4OTRDNTA5MDk5",
|
|
724
|
+
"templateName": "boas_vindas",
|
|
725
|
+
"recipient": "5511999999999",
|
|
726
|
+
"whatsappId": 3
|
|
727
|
+
}
|
|
728
|
+
```
|
|
729
|
+
|
|
730
|
+
**Observações importantes:**
|
|
731
|
+
- Templates WABA precisam ser pré-aprovados pelo Meta/Facebook
|
|
732
|
+
- O template deve estar importado no sistema para ser enviado
|
|
733
|
+
- Use `listWabaTemplates` para ver quais templates estão disponíveis
|
|
734
|
+
- Os parâmetros devem corresponder às variáveis definidas no template
|
|
735
|
+
- Templates WABA são ideais para notificações, confirmações e mensagens de marketing
|
|
736
|
+
|
|
737
|
+
## 💡 Casos de Uso Práticos
|
|
738
|
+
|
|
739
|
+
### 🤖 Bot de Atendimento Interativo
|
|
740
|
+
Combine as novas operações para criar um fluxo completo:
|
|
741
|
+
|
|
742
|
+
1. **Enviar Botões** → Menu inicial com opções
|
|
743
|
+
2. **Enviar Lista** → Catálogo de produtos/serviços
|
|
744
|
+
3. **Enviar Mídia** → Imagens dos produtos
|
|
745
|
+
4. **Enviar Base64** → Contratos/documentos
|
|
746
|
+
|
|
747
|
+
### 🛒 E-commerce Automation
|
|
748
|
+
```
|
|
749
|
+
Trigger (Webhook)
|
|
750
|
+
↓
|
|
751
|
+
Enviar Botões (Confirmar pedido?)
|
|
752
|
+
↓
|
|
753
|
+
Enviar Lista (Formas de pagamento)
|
|
754
|
+
↓
|
|
755
|
+
Enviar Base64 (Contrato PDF)
|
|
756
|
+
↓
|
|
757
|
+
Enviar Mídia (Comprovante)
|
|
758
|
+
```
|
|
759
|
+
|
|
760
|
+
### 📊 Relatórios Automatizados
|
|
761
|
+
```
|
|
762
|
+
Scheduler (Diário)
|
|
763
|
+
↓
|
|
764
|
+
HTTP Request (Buscar dados)
|
|
765
|
+
↓
|
|
766
|
+
Code (Gerar gráfico base64)
|
|
767
|
+
↓
|
|
768
|
+
Enviar Base64 (Relatório visual)
|
|
769
|
+
```
|
|
770
|
+
|
|
771
|
+
### 🎯 Marketing Campaigns
|
|
772
|
+
```
|
|
773
|
+
Database (Lista clientes)
|
|
774
|
+
↓
|
|
775
|
+
Loop (Para cada cliente)
|
|
776
|
+
↓
|
|
777
|
+
Enviar Botões (CTA personalizado)
|
|
778
|
+
↓
|
|
779
|
+
Webhook (Capturar resposta)
|
|
780
|
+
```
|
|
781
|
+
|
|
782
|
+
### 🔄 Workflow Exemplo Completo
|
|
783
|
+
**Cenário**: Venda de produto com confirmação interativa
|
|
784
|
+
|
|
785
|
+
```
|
|
786
|
+
1. Webhook (Novo lead)
|
|
787
|
+
↓
|
|
788
|
+
2. Enviar Botões ("Interesse em comprar?")
|
|
789
|
+
↓
|
|
790
|
+
3. IF (Resposta = "Sim")
|
|
791
|
+
↓
|
|
792
|
+
4. Enviar Lista (Catálogo produtos)
|
|
793
|
+
↓
|
|
794
|
+
5. HTTP Request (Buscar detalhes do produto)
|
|
795
|
+
↓
|
|
796
|
+
6. Enviar Mídia (Foto do produto)
|
|
797
|
+
↓
|
|
798
|
+
7. Enviar Botões ("Fechar pedido?")
|
|
799
|
+
↓
|
|
800
|
+
8. Enviar Base64 (Contrato PDF)
|
|
801
|
+
↓
|
|
802
|
+
9. Webhook (Notificar vendedor)
|
|
803
|
+
```
|
|
804
|
+
|
|
805
|
+
### 📱 Templates WABA
|
|
806
|
+
**Cenário**: Notificação de pedido aprovado
|
|
807
|
+
|
|
808
|
+
```
|
|
809
|
+
1. Webhook (Pedido aprovado)
|
|
810
|
+
↓
|
|
811
|
+
2. Listar Templates WABA (Buscar template de confirmação)
|
|
812
|
+
↓
|
|
813
|
+
3. Enviar Template WABA (Notificar cliente)
|
|
814
|
+
↓
|
|
815
|
+
Parâmetros: {
|
|
816
|
+
"nome_cliente": "{{$json.customer_name}}",
|
|
817
|
+
"numero_pedido": "{{$json.order_id}}",
|
|
818
|
+
"valor_total": "{{$json.total}}",
|
|
819
|
+
"data_entrega": "{{$json.delivery_date}}"
|
|
820
|
+
}
|
|
821
|
+
↓
|
|
822
|
+
4. Database (Registrar envio)
|
|
823
|
+
```
|
|
824
|
+
|
|
825
|
+
**Vantagens dos Templates WABA:**
|
|
826
|
+
- ✅ Aprovação prévia do Meta/Facebook
|
|
827
|
+
- ✅ Baixo custo de envio
|
|
828
|
+
- ✅ Alta taxa de entrega
|
|
829
|
+
- ✅ Ideais para notificações transacionais
|
|
830
|
+
- ✅ Suporte a variáveis dinâmicas
|
|
831
|
+
- ✅ Podem incluir botões e mídia
|
|
832
|
+
|
|
833
|
+
## Suporte
|
|
834
|
+
|
|
835
|
+
Para suporte, entre em contato com [contato@digitalsac.io](mailto:contato@digitalsac.io).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-digitalsac",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Izing Pro Digitalsac - Compatible with n8n v2.x",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"n8n",
|
|
@@ -27,9 +27,7 @@
|
|
|
27
27
|
},
|
|
28
28
|
"files": [
|
|
29
29
|
"dist",
|
|
30
|
-
"
|
|
31
|
-
"nodes",
|
|
32
|
-
"credentials"
|
|
30
|
+
"README.md"
|
|
33
31
|
],
|
|
34
32
|
"n8n": {
|
|
35
33
|
"n8nNodesApiVersion": 2,
|