@growsalesai/n8n-nodes-datacrazy 1.8.9 → 1.9.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 +145 -29
- package/dist/nodes/Datacrazy/resources/conversations/conversation.description.d.ts.map +1 -1
- package/dist/nodes/Datacrazy/resources/conversations/conversation.description.js +104 -7
- package/dist/nodes/Datacrazy/resources/conversations/conversation.description.js.map +1 -1
- package/dist/nodes/Datacrazy/resources/conversations/conversation.handler.d.ts.map +1 -1
- package/dist/nodes/Datacrazy/resources/conversations/conversation.handler.js +21 -2
- package/dist/nodes/Datacrazy/resources/conversations/conversation.handler.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -12,6 +12,9 @@ Nó da comunidade N8N para integração completa com a plataforma **Datacrazy CR
|
|
|
12
12
|
- [Nós Disponíveis](#nós-disponíveis)
|
|
13
13
|
- [Módulos do CRM](#módulos-do-crm)
|
|
14
14
|
- [Nó de Automações](#nó-de-automações)
|
|
15
|
+
- [Webhook & Mensagens](#webhook--mensagens)
|
|
16
|
+
- [Lead & Pipeline](#lead--pipeline)
|
|
17
|
+
- [Utilitários Locais](#utilitários-locais)
|
|
15
18
|
- [Desenvolvimento](#desenvolvimento)
|
|
16
19
|
- [Reportar Issues](#reportar-issues)
|
|
17
20
|
- [Contribuição](#contribuição)
|
|
@@ -324,9 +327,11 @@ Gerenciamento de automações e fluxos do Datacrazy.
|
|
|
324
327
|
|
|
325
328
|
## 🤖 Nó de Automações
|
|
326
329
|
|
|
327
|
-
O nó **Datacrazy Automações** oferece utilitários inteligentes para construir fluxos com webhooks e lógica de CRM sem precisar escrever código.
|
|
330
|
+
O nó **Datacrazy Automações** oferece **17 utilitários inteligentes** para construir fluxos com webhooks e lógica de CRM sem precisar escrever código.
|
|
328
331
|
|
|
329
|
-
###
|
|
332
|
+
### Webhook & Mensagens
|
|
333
|
+
|
|
334
|
+
#### ⚡ Analisar Webhook Datacrazy
|
|
330
335
|
> `automations/webhookParser/`
|
|
331
336
|
|
|
332
337
|
Normaliza o payload recebido de um webhook do Datacrazy e extrai os campos principais: provedor, tipo de mensagem, texto, mídia, lead, token, conversa e muito mais.
|
|
@@ -337,7 +342,7 @@ Normaliza o payload recebido de um webhook do Datacrazy e extrai os campos princ
|
|
|
337
342
|
|
|
338
343
|
---
|
|
339
344
|
|
|
340
|
-
|
|
345
|
+
#### ⚡ Switch Tipo de Mensagem
|
|
341
346
|
> `automations/messageTypeSwitch/`
|
|
342
347
|
|
|
343
348
|
Roteia o item para a saída correta com base no tipo da mensagem recebida.
|
|
@@ -346,7 +351,7 @@ Roteia o item para a saída correta com base no tipo da mensagem recebida.
|
|
|
346
351
|
|
|
347
352
|
---
|
|
348
353
|
|
|
349
|
-
|
|
354
|
+
#### ⚡ É Mensagem Referenciada?
|
|
350
355
|
> `automations/replyChecker/`
|
|
351
356
|
|
|
352
357
|
Verifica se a mensagem recebida é uma resposta (reply) a outra mensagem.
|
|
@@ -355,7 +360,7 @@ Verifica se a mensagem recebida é uma resposta (reply) a outra mensagem.
|
|
|
355
360
|
|
|
356
361
|
---
|
|
357
362
|
|
|
358
|
-
|
|
363
|
+
#### ⚡ Detectar Provedor do Webhook
|
|
359
364
|
> `automations/providerDetector/`
|
|
360
365
|
|
|
361
366
|
Identifica o provedor de origem do webhook.
|
|
@@ -364,14 +369,14 @@ Identifica o provedor de origem do webhook.
|
|
|
364
369
|
|
|
365
370
|
---
|
|
366
371
|
|
|
367
|
-
|
|
372
|
+
#### ⚡ Extrair Info do Webhook
|
|
368
373
|
> `automations/webhookExtractor/`
|
|
369
374
|
|
|
370
375
|
Estrutura todos os campos do payload em objetos aninhados e organizados: `contact`, `message`, `attachment`, `referral`, `instance`, `conversation`.
|
|
371
376
|
|
|
372
377
|
---
|
|
373
378
|
|
|
374
|
-
|
|
379
|
+
#### ⚡ Contexto de Mensagem Referenciada
|
|
375
380
|
> `automations/messageContext/`
|
|
376
381
|
|
|
377
382
|
Verifica se a mensagem é um reply e, se for, busca o conteúdo da mensagem original na conversa do Datacrazy.
|
|
@@ -382,7 +387,67 @@ Verifica se a mensagem é um reply e, se for, busca o conteúdo da mensagem orig
|
|
|
382
387
|
|
|
383
388
|
---
|
|
384
389
|
|
|
385
|
-
|
|
390
|
+
#### ⚡ Roteador por Palavra-chave
|
|
391
|
+
> `automations/keywordRouter/`
|
|
392
|
+
|
|
393
|
+
Verifica o texto da mensagem contra até 4 grupos de palavras-chave configuráveis e roteia para a saída correspondente.
|
|
394
|
+
|
|
395
|
+
**Saídas:** Grupo 1 · Grupo 2 · Grupo 3 · Grupo 4 · Nenhuma
|
|
396
|
+
|
|
397
|
+
- Palavras-chave separadas por vírgula em cada grupo
|
|
398
|
+
- Opção de diferenciação de maiúsculas/minúsculas
|
|
399
|
+
- Retorna `matchedGroup` e `matchedGroupIndex` no output
|
|
400
|
+
- Operação puramente local — sem chamadas de API
|
|
401
|
+
|
|
402
|
+
---
|
|
403
|
+
|
|
404
|
+
### Lead & Pipeline
|
|
405
|
+
|
|
406
|
+
#### ⚡ Verificar se Lead Existe
|
|
407
|
+
> `automations/leadExistsChecker/`
|
|
408
|
+
|
|
409
|
+
Busca um lead e roteia para **Sim** (encontrado) ou **Não**.
|
|
410
|
+
|
|
411
|
+
**Métodos de busca:** WhatsApp · E-mail · Nome · CPF/CNPJ · Instagram · Campo Personalizado
|
|
412
|
+
|
|
413
|
+
| Rota usada | Método | Descrição |
|
|
414
|
+
|---|---|---|
|
|
415
|
+
| `/api/v1/leads` | `GET` | Busca com text search e varredura paginada |
|
|
416
|
+
| `/api/v1/conversations` | `GET` | Fallback para busca via conversas (WhatsApp) |
|
|
417
|
+
| `/api/crm/additional-fields/lead/:leadId/:fieldId` | `GET` | Verifica valor de campo personalizado |
|
|
418
|
+
|
|
419
|
+
---
|
|
420
|
+
|
|
421
|
+
#### ⚡ Upsert de Lead
|
|
422
|
+
> `automations/leadUpsert/`
|
|
423
|
+
|
|
424
|
+
Busca o lead pelo identificador informado; se não encontrar, cria automaticamente.
|
|
425
|
+
|
|
426
|
+
**Saídas:** Criado · Já Existia
|
|
427
|
+
|
|
428
|
+
**Métodos de busca/criação:** WhatsApp · E-mail · CPF/CNPJ
|
|
429
|
+
|
|
430
|
+
- O valor de busca é automaticamente usado como `phone`, `email` ou `document` na criação
|
|
431
|
+
- Campo JSON opcional para incluir campos extras na criação
|
|
432
|
+
- Retorna os dados completos do lead em ambas as saídas
|
|
433
|
+
|
|
434
|
+
---
|
|
435
|
+
|
|
436
|
+
#### ⚡ Verificar Duplicatas de Lead
|
|
437
|
+
> `automations/leadDuplicateChecker/`
|
|
438
|
+
|
|
439
|
+
Varre toda a base de leads e encontra todos que possuem o mesmo identificador.
|
|
440
|
+
|
|
441
|
+
**Saídas:** Com Duplicatas (≥2 leads) · Único (0 ou 1 lead)
|
|
442
|
+
|
|
443
|
+
**Métodos de busca:** WhatsApp · E-mail · CPF/CNPJ
|
|
444
|
+
|
|
445
|
+
- Retorna `duplicateCount` e a lista completa de leads duplicados
|
|
446
|
+
- Varredura paginada de até 2.000 leads
|
|
447
|
+
|
|
448
|
+
---
|
|
449
|
+
|
|
450
|
+
#### ⚡ Mover Lead na Pipeline
|
|
386
451
|
> `automations/leadMover/`
|
|
387
452
|
|
|
388
453
|
Busca os negócios do lead, filtra pela pipeline desejada e move para a etapa destino.
|
|
@@ -397,7 +462,24 @@ Busca os negócios do lead, filtra pela pipeline desejada e move para a etapa de
|
|
|
397
462
|
|
|
398
463
|
---
|
|
399
464
|
|
|
400
|
-
|
|
465
|
+
#### ⚡ Criar Negócio Condicional
|
|
466
|
+
> `automations/businessCreator/`
|
|
467
|
+
|
|
468
|
+
Verifica se o lead já possui um negócio aberto na pipeline; se não tiver, cria automaticamente.
|
|
469
|
+
|
|
470
|
+
**Saídas:** Criado · Já Existe
|
|
471
|
+
|
|
472
|
+
| Rota usada | Método | Descrição |
|
|
473
|
+
|---|---|---|
|
|
474
|
+
| `/api/v1/leads/:leadId/businesses` | `GET` | Verifica negócios existentes |
|
|
475
|
+
| `/api/v1/businesses` | `POST` | Cria o negócio se não houver um aberto |
|
|
476
|
+
|
|
477
|
+
- Dropdowns dinâmicos para pipeline e etapa inicial
|
|
478
|
+
- Retorna dados completos do negócio em ambas as saídas
|
|
479
|
+
|
|
480
|
+
---
|
|
481
|
+
|
|
482
|
+
#### ⚡ If Condicional do Lead
|
|
401
483
|
> `automations/leadIfCondition/`
|
|
402
484
|
|
|
403
485
|
Verifica uma condição no lead e roteia para **Sim** ou **Não**.
|
|
@@ -413,7 +495,7 @@ Verifica uma condição no lead e roteia para **Sim** ou **Não**.
|
|
|
413
495
|
|
|
414
496
|
---
|
|
415
497
|
|
|
416
|
-
|
|
498
|
+
#### ⚡ Tracker do Lead
|
|
417
499
|
> `automations/leadTracker/`
|
|
418
500
|
|
|
419
501
|
Define múltiplos campos personalizados em um lead de uma só vez, com controle de erro por campo.
|
|
@@ -424,6 +506,50 @@ Define múltiplos campos personalizados em um lead de uma só vez, com controle
|
|
|
424
506
|
|
|
425
507
|
---
|
|
426
508
|
|
|
509
|
+
#### ⚡ Detector de Primeira Mensagem
|
|
510
|
+
> `automations/firstMessageDetector/`
|
|
511
|
+
|
|
512
|
+
Verifica se é o primeiro contato do lead com base no tempo de criação.
|
|
513
|
+
|
|
514
|
+
**Saídas:** Sim (primeira vez) · Não (recorrente)
|
|
515
|
+
|
|
516
|
+
| Rota usada | Método | Descrição |
|
|
517
|
+
|---|---|---|
|
|
518
|
+
| `/api/v1/leads/:leadId` | `GET` | Lê `createdAt` do lead |
|
|
519
|
+
|
|
520
|
+
- Configura um limiar em minutos (padrão: 5 min)
|
|
521
|
+
- Retorna `isFirstMessage` e `leadAgeMinutes` no output
|
|
522
|
+
|
|
523
|
+
---
|
|
524
|
+
|
|
525
|
+
### Utilitários Locais
|
|
526
|
+
|
|
527
|
+
> Estas automações operam **sem chamadas de API** — sem necessidade de credencial.
|
|
528
|
+
|
|
529
|
+
#### ⚡ Verificar Horário de Atendimento
|
|
530
|
+
> `automations/businessHoursChecker/`
|
|
531
|
+
|
|
532
|
+
Verifica se o momento atual está dentro do horário de atendimento configurado.
|
|
533
|
+
|
|
534
|
+
**Saídas:** Dentro do Horário · Fora do Horário
|
|
535
|
+
|
|
536
|
+
- Configuração independente para dias úteis, sábado e domingo
|
|
537
|
+
- Suporte a qualquer fuso horário (ex: `America/Sao_Paulo`, `America/New_York`)
|
|
538
|
+
- Retorna `withinBusinessHours`, `dayOfWeek` e `currentTimeMinutes`
|
|
539
|
+
|
|
540
|
+
---
|
|
541
|
+
|
|
542
|
+
#### ⚡ Formatar Número de WhatsApp
|
|
543
|
+
> `automations/phoneFormatter/`
|
|
544
|
+
|
|
545
|
+
Normaliza números de telefone para o formato padrão (somente dígitos, com DDI).
|
|
546
|
+
|
|
547
|
+
- Adiciona DDI automaticamente se ausente (padrão: `55` para Brasil)
|
|
548
|
+
- Opção para remover o 9º dígito de celulares brasileiros
|
|
549
|
+
- Retorna `phoneFormatted`, `phoneOriginal` e `phoneDDI`
|
|
550
|
+
|
|
551
|
+
---
|
|
552
|
+
|
|
427
553
|
## 🛠️ Desenvolvimento
|
|
428
554
|
|
|
429
555
|
### Pré-requisitos
|
|
@@ -510,32 +636,22 @@ nodes/Datacrazy/
|
|
|
510
636
|
│
|
|
511
637
|
├── automations/ # Nós utilitários de automação (cada um com description + handler)
|
|
512
638
|
│ ├── webhookParser/
|
|
513
|
-
│ │ ├── webhookParser.description.ts
|
|
514
|
-
│ │ └── webhookParser.handler.ts
|
|
515
639
|
│ ├── webhookExtractor/
|
|
516
|
-
│ │ ├── webhookExtractor.description.ts
|
|
517
|
-
│ │ └── webhookExtractor.handler.ts
|
|
518
640
|
│ ├── providerDetector/
|
|
519
|
-
│ │ ├── providerDetector.description.ts
|
|
520
|
-
│ │ └── providerDetector.handler.ts
|
|
521
641
|
│ ├── messageContext/
|
|
522
|
-
│ │ ├── messageContext.description.ts
|
|
523
|
-
│ │ └── messageContext.handler.ts
|
|
524
642
|
│ ├── messageTypeSwitch/
|
|
525
|
-
│ │ ├── messageTypeSwitch.description.ts
|
|
526
|
-
│ │ └── messageTypeSwitch.handler.ts
|
|
527
643
|
│ ├── replyChecker/
|
|
528
|
-
│
|
|
529
|
-
│ │ └── replyChecker.handler.ts
|
|
644
|
+
│ ├── keywordRouter/
|
|
530
645
|
│ ├── leadMover/
|
|
531
|
-
│ │ ├── leadMover.description.ts
|
|
532
|
-
│ │ └── leadMover.handler.ts
|
|
533
646
|
│ ├── leadIfCondition/
|
|
534
|
-
│
|
|
535
|
-
│
|
|
536
|
-
│
|
|
537
|
-
│
|
|
538
|
-
│
|
|
647
|
+
│ ├── leadTracker/
|
|
648
|
+
│ ├── leadExistsChecker/
|
|
649
|
+
│ ├── leadUpsert/
|
|
650
|
+
│ ├── leadDuplicateChecker/
|
|
651
|
+
│ ├── businessCreator/
|
|
652
|
+
│ ├── firstMessageDetector/
|
|
653
|
+
│ ├── businessHoursChecker/
|
|
654
|
+
│ └── phoneFormatter/
|
|
539
655
|
│
|
|
540
656
|
├── methods/
|
|
541
657
|
│ └── loadOptions.ts # Carregamento dinâmico de dropdowns
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.description.d.ts","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/resources/conversations/conversation.description.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,eAAO,MAAM,sBAAsB,EAAE,eAAe,EAenD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"conversation.description.d.ts","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/resources/conversations/conversation.description.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,eAAO,MAAM,sBAAsB,EAAE,eAAe,EAenD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,eAAe,EA8J/C,CAAC"}
|
|
@@ -40,26 +40,123 @@ exports.conversationFields = [
|
|
|
40
40
|
},
|
|
41
41
|
],
|
|
42
42
|
},
|
|
43
|
+
{
|
|
44
|
+
displayName: 'Tipo de Mensagem',
|
|
45
|
+
name: 'messageType',
|
|
46
|
+
type: 'options',
|
|
47
|
+
noDataExpression: true,
|
|
48
|
+
displayOptions: { show: { resource: ['conversation'], operation: ['sendMessage'] } },
|
|
49
|
+
options: [
|
|
50
|
+
{
|
|
51
|
+
name: 'Texto',
|
|
52
|
+
value: 'text',
|
|
53
|
+
description: 'Enviar mensagem de texto simples',
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: 'Áudio',
|
|
57
|
+
value: 'audio',
|
|
58
|
+
description: 'Enviar arquivo de áudio (MP3, OGG, etc.)',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: 'Vídeo',
|
|
62
|
+
value: 'video',
|
|
63
|
+
description: 'Enviar arquivo de vídeo (MP4, etc.)',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: 'Documento',
|
|
67
|
+
value: 'document',
|
|
68
|
+
description: 'Enviar documento (PDF, Word, Excel, etc.)',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: 'Arquivo',
|
|
72
|
+
value: 'file',
|
|
73
|
+
description: 'Enviar qualquer tipo de arquivo',
|
|
74
|
+
},
|
|
75
|
+
],
|
|
76
|
+
default: 'text',
|
|
77
|
+
description: 'Tipo do conteúdo a ser enviado na mensagem',
|
|
78
|
+
},
|
|
79
|
+
// ── Texto ──────────────────────────────────────────────────────────────────
|
|
43
80
|
{
|
|
44
81
|
displayName: 'Mensagem',
|
|
45
82
|
name: 'message',
|
|
46
83
|
type: 'string',
|
|
47
84
|
required: true,
|
|
48
85
|
default: '',
|
|
49
|
-
typeOptions: { rows:
|
|
50
|
-
displayOptions: { show: { resource: ['conversation'], operation: ['sendMessage'] } },
|
|
51
|
-
description: 'Conteúdo da mensagem
|
|
86
|
+
typeOptions: { rows: 4 },
|
|
87
|
+
displayOptions: { show: { resource: ['conversation'], operation: ['sendMessage'], messageType: ['text'] } },
|
|
88
|
+
description: 'Conteúdo de texto da mensagem',
|
|
89
|
+
},
|
|
90
|
+
// ── Mídia (todos os tipos não-texto) ───────────────────────────────────────
|
|
91
|
+
{
|
|
92
|
+
displayName: 'URL da Mídia',
|
|
93
|
+
name: 'mediaUrl',
|
|
94
|
+
type: 'string',
|
|
95
|
+
required: true,
|
|
96
|
+
default: '',
|
|
97
|
+
placeholder: 'https://exemplo.com/arquivo.mp3',
|
|
98
|
+
displayOptions: {
|
|
99
|
+
show: {
|
|
100
|
+
resource: ['conversation'],
|
|
101
|
+
operation: ['sendMessage'],
|
|
102
|
+
messageType: ['audio', 'video', 'document', 'file'],
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
description: 'URL pública do arquivo a ser enviado',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
displayName: 'Legenda',
|
|
109
|
+
name: 'caption',
|
|
110
|
+
type: 'string',
|
|
111
|
+
default: '',
|
|
112
|
+
typeOptions: { rows: 2 },
|
|
113
|
+
displayOptions: {
|
|
114
|
+
show: {
|
|
115
|
+
resource: ['conversation'],
|
|
116
|
+
operation: ['sendMessage'],
|
|
117
|
+
messageType: ['video', 'document', 'file'],
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
description: 'Texto opcional enviado junto com o arquivo',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
displayName: 'Nome do Arquivo',
|
|
124
|
+
name: 'fileName',
|
|
125
|
+
type: 'string',
|
|
126
|
+
default: '',
|
|
127
|
+
placeholder: 'relatorio.pdf',
|
|
128
|
+
displayOptions: {
|
|
129
|
+
show: {
|
|
130
|
+
resource: ['conversation'],
|
|
131
|
+
operation: ['sendMessage'],
|
|
132
|
+
messageType: ['document', 'file'],
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
description: 'Nome de exibição do arquivo (opcional)',
|
|
52
136
|
},
|
|
137
|
+
// ── Opções Avançadas ───────────────────────────────────────────────────────
|
|
53
138
|
{
|
|
54
|
-
displayName: '
|
|
139
|
+
displayName: 'Opções Avançadas',
|
|
55
140
|
name: 'additionalFields',
|
|
56
141
|
type: 'collection',
|
|
57
|
-
placeholder: 'Adicionar
|
|
142
|
+
placeholder: 'Adicionar Opção',
|
|
58
143
|
default: {},
|
|
59
144
|
displayOptions: { show: { resource: ['conversation'], operation: ['sendMessage'] } },
|
|
60
145
|
options: [
|
|
61
|
-
{
|
|
62
|
-
|
|
146
|
+
{
|
|
147
|
+
displayName: 'Mensagem Interna',
|
|
148
|
+
name: 'isInternal',
|
|
149
|
+
type: 'boolean',
|
|
150
|
+
default: false,
|
|
151
|
+
description: 'Se ativado, a mensagem será visível apenas para a equipe (nota interna)',
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
displayName: 'ID da Mensagem Citada',
|
|
155
|
+
name: 'quotedMessageId',
|
|
156
|
+
type: 'string',
|
|
157
|
+
default: '',
|
|
158
|
+
description: 'ID de uma mensagem anterior para responder/citar',
|
|
159
|
+
},
|
|
63
160
|
],
|
|
64
161
|
},
|
|
65
162
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.description.js","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/resources/conversations/conversation.description.ts"],"names":[],"mappings":";;;AAEa,QAAA,sBAAsB,GAAsB;IACvD;QACE,WAAW,EAAE,UAAU;QACvB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE;QACxD,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,2BAA2B,EAAE;YAC3F,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,kCAAkC,EAAE;YAC1G,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,mCAAmC,EAAE;YAC9F,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,uCAAuC,EAAE;SACpG;QACD,OAAO,EAAE,QAAQ;KAClB;CACF,CAAC;AAEW,QAAA,kBAAkB,GAAsB;IACnD;QACE,WAAW,EAAE,UAAU;QACvB,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QACpC,QAAQ,EAAE,IAAI;QACd,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,EAAE;QAC7G,KAAK,EAAE;YACL;gBACE,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,UAAU,EAAE,IAAI,EAAE;aAC3E;YACD;gBACE,WAAW,EAAE,QAAQ;gBACrB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iBAAiB;aAC/B;SACF;KACF;IACD;QACE,WAAW,EAAE,UAAU;QACvB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;QACxB,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"conversation.description.js","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/resources/conversations/conversation.description.ts"],"names":[],"mappings":";;;AAEa,QAAA,sBAAsB,GAAsB;IACvD;QACE,WAAW,EAAE,UAAU;QACvB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE;QACxD,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,2BAA2B,EAAE;YAC3F,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,kCAAkC,EAAE;YAC1G,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,mCAAmC,EAAE;YAC9F,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,uCAAuC,EAAE;SACpG;QACD,OAAO,EAAE,QAAQ;KAClB;CACF,CAAC;AAEW,QAAA,kBAAkB,GAAsB;IACnD;QACE,WAAW,EAAE,UAAU;QACvB,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QACpC,QAAQ,EAAE,IAAI;QACd,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,EAAE;QAC7G,KAAK,EAAE;YACL;gBACE,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,UAAU,EAAE,IAAI,EAAE;aAC3E;YACD;gBACE,WAAW,EAAE,QAAQ;gBACrB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iBAAiB;aAC/B;SACF;KACF;IACD;QACE,WAAW,EAAE,kBAAkB;QAC/B,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE;QACpF,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,MAAM;gBACb,WAAW,EAAE,kCAAkC;aAChD;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,OAAO;gBACd,WAAW,EAAE,0CAA0C;aACxD;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,OAAO;gBACd,WAAW,EAAE,qCAAqC;aACnD;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,UAAU;gBACjB,WAAW,EAAE,2CAA2C;aACzD;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,MAAM;gBACb,WAAW,EAAE,iCAAiC;aAC/C;SACF;QACD,OAAO,EAAE,MAAM;QACf,WAAW,EAAE,4CAA4C;KAC1D;IAED,8EAA8E;IAC9E;QACE,WAAW,EAAE,UAAU;QACvB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;QACxB,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;QAC3G,WAAW,EAAE,+BAA+B;KAC7C;IAED,8EAA8E;IAC9E;QACE,WAAW,EAAE,cAAc;QAC3B,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,iCAAiC;QAC9C,cAAc,EAAE;YACd,IAAI,EAAE;gBACJ,QAAQ,EAAE,CAAC,cAAc,CAAC;gBAC1B,SAAS,EAAE,CAAC,aAAa,CAAC;gBAC1B,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC;aACpD;SACF;QACD,WAAW,EAAE,sCAAsC;KACpD;IACD;QACE,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;QACxB,cAAc,EAAE;YACd,IAAI,EAAE;gBACJ,QAAQ,EAAE,CAAC,cAAc,CAAC;gBAC1B,SAAS,EAAE,CAAC,aAAa,CAAC;gBAC1B,WAAW,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC;aAC3C;SACF;QACD,WAAW,EAAE,4CAA4C;KAC1D;IACD;QACE,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,eAAe;QAC5B,cAAc,EAAE;YACd,IAAI,EAAE;gBACJ,QAAQ,EAAE,CAAC,cAAc,CAAC;gBAC1B,SAAS,EAAE,CAAC,aAAa,CAAC;gBAC1B,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC;aAClC;SACF;QACD,WAAW,EAAE,wCAAwC;KACtD;IAED,8EAA8E;IAC9E;QACE,WAAW,EAAE,kBAAkB;QAC/B,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE,EAAE;QACX,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE;QACpF,OAAO,EAAE;YACP;gBACE,WAAW,EAAE,kBAAkB;gBAC/B,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,yEAAyE;aACvF;YACD;gBACE,WAAW,EAAE,uBAAuB;gBACpC,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,kDAAkD;aAChE;SACF;KACF;IACD;QACE,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE,EAAE;QACX,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE;QAC/E,OAAO,EAAE;YACP,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;YAC7E,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;YACzE,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;SAC5E;KACF;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.handler.d.ts","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/resources/conversations/conversation.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAe,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE/D,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,iBAAiB,EACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,WAAW,EACpB,CAAC,EAAE,MAAM,GACR,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"conversation.handler.d.ts","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/resources/conversations/conversation.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAe,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE/D,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,iBAAiB,EACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,WAAW,EACpB,CAAC,EAAE,MAAM,GACR,OAAO,CAAC,GAAG,CAAC,CA+Cd"}
|
|
@@ -20,9 +20,28 @@ async function executeConversation(operation, baseUrl, i) {
|
|
|
20
20
|
}
|
|
21
21
|
if (operation === 'sendMessage') {
|
|
22
22
|
const id = this.getNodeParameter('conversationId', i, '', { extractValue: true });
|
|
23
|
-
const
|
|
23
|
+
const messageType = this.getNodeParameter('messageType', i, 'text');
|
|
24
24
|
const extra = this.getNodeParameter('additionalFields', i, {});
|
|
25
|
-
|
|
25
|
+
let body;
|
|
26
|
+
if (messageType === 'text') {
|
|
27
|
+
const message = this.getNodeParameter('message', i);
|
|
28
|
+
body = { message, mediaType: 'text' };
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
const mediaUrl = this.getNodeParameter('mediaUrl', i);
|
|
32
|
+
body = { message: '', mediaUrl, mediaType: messageType };
|
|
33
|
+
if (messageType !== 'audio') {
|
|
34
|
+
const caption = this.getNodeParameter('caption', i, '');
|
|
35
|
+
if (caption)
|
|
36
|
+
body.message = caption;
|
|
37
|
+
}
|
|
38
|
+
if (messageType === 'document' || messageType === 'file') {
|
|
39
|
+
const fileName = this.getNodeParameter('fileName', i, '');
|
|
40
|
+
if (fileName)
|
|
41
|
+
body.fileName = fileName;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return request_1.makeRequest.call(this, baseUrl, 'POST', `/api/v1/conversations/${id}/messages`, { ...body, ...extra });
|
|
26
45
|
}
|
|
27
46
|
if (operation === 'finish') {
|
|
28
47
|
const id = this.getNodeParameter('conversationId', i, '', { extractValue: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.handler.js","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/resources/conversations/conversation.handler.ts"],"names":[],"mappings":";;AAGA,
|
|
1
|
+
{"version":3,"file":"conversation.handler.js","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/resources/conversations/conversation.handler.ts"],"names":[],"mappings":"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"}
|