@growsalesai/n8n-nodes-datacrazy 3.2.0 → 3.3.0
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 +45 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/nodes/Datacrazy/DatacrazyAudioTranscriber.node.d.ts +6 -0
- package/dist/nodes/Datacrazy/DatacrazyAudioTranscriber.node.d.ts.map +1 -0
- package/dist/nodes/Datacrazy/DatacrazyAudioTranscriber.node.js +175 -0
- package/dist/nodes/Datacrazy/DatacrazyAudioTranscriber.node.js.map +1 -0
- package/dist/nodes/Datacrazy/DatacrazyMetaConversions.node.d.ts +6 -0
- package/dist/nodes/Datacrazy/DatacrazyMetaConversions.node.d.ts.map +1 -0
- package/dist/nodes/Datacrazy/DatacrazyMetaConversions.node.js +181 -0
- package/dist/nodes/Datacrazy/DatacrazyMetaConversions.node.js.map +1 -0
- package/dist/nodes/Datacrazy/icone-assemblyai.png +0 -0
- package/dist/nodes/Datacrazy/icone-meta-capi.png +0 -0
- package/package.json +5 -3
package/README.md
CHANGED
|
@@ -556,6 +556,51 @@ Verifica se é o primeiro contato do lead com base no tempo de criação.
|
|
|
556
556
|
|
|
557
557
|
---
|
|
558
558
|
|
|
559
|
+
### Integrações Externas & IA
|
|
560
|
+
|
|
561
|
+
#### ⚡ Transcritor de Áudio (IA)
|
|
562
|
+
> `automations/audioTranscriber/`
|
|
563
|
+
|
|
564
|
+
Transcreve áudios enviados por leads (como mensagens de voz do WhatsApp) usando as melhores inteligências artificiais do mercado.
|
|
565
|
+
|
|
566
|
+
**Provedores Suportados:**
|
|
567
|
+
- **OpenAI Whisper:** via arquivo binário (rápido, usando credencial nativa do n8n).
|
|
568
|
+
- **AssemblyAI:** via URL pública do áudio, com *polling adaptativo progressivo* (extremamente rápido para áudios curtos e seguro contra timeouts para áudios de até 15 minutos).
|
|
569
|
+
|
|
570
|
+
- Opção de postar a transcrição automaticamente como uma **Mensagem Interna** no chat do Datacrazy.
|
|
571
|
+
- Seleção de modelo inteligente e detecção de idioma.
|
|
572
|
+
|
|
573
|
+
---
|
|
574
|
+
|
|
575
|
+
#### ⚡ Meta Conversions API (Facebook Pixel)
|
|
576
|
+
> `automations/metaConversionsApi/`
|
|
577
|
+
|
|
578
|
+
Dispara eventos de conversão offline (ex: *Purchase*, *Lead*) diretamente para o Pixel do Facebook/Meta de forma 100% server-side, driblando bloqueadores de anúncios (AdBlock) e restrições do iOS 14.
|
|
579
|
+
|
|
580
|
+
- Identificação rica do lead enviando e-mail, telefone (hashed automaticamente no nó), nome, cidade, estado, IP e User Agent.
|
|
581
|
+
- Suporte a dados de conversão como valor (`value`) e moeda (`currency`).
|
|
582
|
+
- Ideal para alimentar as campanhas de tráfego pago baseadas em leads ganhos no CRM.
|
|
583
|
+
|
|
584
|
+
---
|
|
585
|
+
|
|
586
|
+
#### ⚡ Sincronização Google Calendar
|
|
587
|
+
> `automations/activityGoogleSync/`
|
|
588
|
+
|
|
589
|
+
Sincroniza automaticamente as atividades/tarefas (ex: reuniões, visitas, calls) criadas no CRM diretamente com o Google Agenda (Google Calendar).
|
|
590
|
+
|
|
591
|
+
- Usa a credencial OAuth2 nativa do Google Calendar no n8n.
|
|
592
|
+
- Permite mapeamento detalhado: Título, Descrição, Data/Hora de Início e Fim.
|
|
593
|
+
- Adiciona e-mails de convidados automaticamente ao evento.
|
|
594
|
+
|
|
595
|
+
---
|
|
596
|
+
|
|
597
|
+
#### ⚡ Roteador de Etapa por IA (AI Stage Router)
|
|
598
|
+
> `automations/leadAiStageRouter/`
|
|
599
|
+
|
|
600
|
+
Facilita o roteamento de leads no funil usando Inteligência Artificial. Após um assistente LLM analisar a intenção do cliente (ex: "Quente", "Frio", "Agendou Reunião"), este nó direciona o fluxo para caminhos diferentes com base na análise.
|
|
601
|
+
|
|
602
|
+
---
|
|
603
|
+
|
|
559
604
|
### Utilitários Locais
|
|
560
605
|
|
|
561
606
|
> Estas automações operam **sem chamadas de API** — sem necessidade de credencial.
|
package/dist/index.d.ts
CHANGED
|
@@ -5,4 +5,6 @@ export { Datacrazy } from './nodes/Datacrazy/Datacrazy.node';
|
|
|
5
5
|
export { DatacrazyUtils } from './nodes/Datacrazy/DatacrazyUtils.node';
|
|
6
6
|
export { DatacrazyMsgSwitch } from './nodes/Datacrazy/DatacrazyMsgSwitch.node';
|
|
7
7
|
export { DatacrazyReplyCheck } from './nodes/Datacrazy/DatacrazyReplyCheck.node';
|
|
8
|
+
export { DatacrazyAudioTranscriber } from './nodes/Datacrazy/DatacrazyAudioTranscriber.node';
|
|
9
|
+
export { DatacrazyMetaConversions } from './nodes/Datacrazy/DatacrazyMetaConversions.node';
|
|
8
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,kDAAkD,CAAC;AAC7F,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DatacrazyReplyCheck = exports.DatacrazyMsgSwitch = exports.DatacrazyUtils = exports.Datacrazy = exports.MetaConversionsApi = exports.AssemblyAiApi = exports.DatacrazyApi = void 0;
|
|
3
|
+
exports.DatacrazyMetaConversions = exports.DatacrazyAudioTranscriber = exports.DatacrazyReplyCheck = exports.DatacrazyMsgSwitch = exports.DatacrazyUtils = exports.Datacrazy = exports.MetaConversionsApi = exports.AssemblyAiApi = exports.DatacrazyApi = void 0;
|
|
4
4
|
var DatacrazyApi_credentials_1 = require("./credentials/DatacrazyApi.credentials");
|
|
5
5
|
Object.defineProperty(exports, "DatacrazyApi", { enumerable: true, get: function () { return DatacrazyApi_credentials_1.DatacrazyApi; } });
|
|
6
6
|
var AssemblyAiApi_credentials_1 = require("./credentials/AssemblyAiApi.credentials");
|
|
@@ -15,4 +15,8 @@ var DatacrazyMsgSwitch_node_1 = require("./nodes/Datacrazy/DatacrazyMsgSwitch.no
|
|
|
15
15
|
Object.defineProperty(exports, "DatacrazyMsgSwitch", { enumerable: true, get: function () { return DatacrazyMsgSwitch_node_1.DatacrazyMsgSwitch; } });
|
|
16
16
|
var DatacrazyReplyCheck_node_1 = require("./nodes/Datacrazy/DatacrazyReplyCheck.node");
|
|
17
17
|
Object.defineProperty(exports, "DatacrazyReplyCheck", { enumerable: true, get: function () { return DatacrazyReplyCheck_node_1.DatacrazyReplyCheck; } });
|
|
18
|
+
var DatacrazyAudioTranscriber_node_1 = require("./nodes/Datacrazy/DatacrazyAudioTranscriber.node");
|
|
19
|
+
Object.defineProperty(exports, "DatacrazyAudioTranscriber", { enumerable: true, get: function () { return DatacrazyAudioTranscriber_node_1.DatacrazyAudioTranscriber; } });
|
|
20
|
+
var DatacrazyMetaConversions_node_1 = require("./nodes/Datacrazy/DatacrazyMetaConversions.node");
|
|
21
|
+
Object.defineProperty(exports, "DatacrazyMetaConversions", { enumerable: true, get: function () { return DatacrazyMetaConversions_node_1.DatacrazyMetaConversions; } });
|
|
18
22
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,mFAAsE;AAA7D,wHAAA,YAAY,OAAA;AACrB,qFAAwE;AAA/D,0HAAA,aAAa,OAAA;AACtB,+FAAkF;AAAzE,oIAAA,kBAAkB,OAAA;AAC3B,mEAA6D;AAApD,2GAAA,SAAS,OAAA;AAClB,6EAAuE;AAA9D,qHAAA,cAAc,OAAA;AACvB,qFAA+E;AAAtE,6HAAA,kBAAkB,OAAA;AAC3B,uFAAiF;AAAxE,+HAAA,mBAAmB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,mFAAsE;AAA7D,wHAAA,YAAY,OAAA;AACrB,qFAAwE;AAA/D,0HAAA,aAAa,OAAA;AACtB,+FAAkF;AAAzE,oIAAA,kBAAkB,OAAA;AAC3B,mEAA6D;AAApD,2GAAA,SAAS,OAAA;AAClB,6EAAuE;AAA9D,qHAAA,cAAc,OAAA;AACvB,qFAA+E;AAAtE,6HAAA,kBAAkB,OAAA;AAC3B,uFAAiF;AAAxE,+HAAA,mBAAmB,OAAA;AAC5B,mGAA6F;AAApF,2IAAA,yBAAyB,OAAA;AAClC,iGAA2F;AAAlF,yIAAA,wBAAwB,OAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class DatacrazyAudioTranscriber implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=DatacrazyAudioTranscriber.node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatacrazyAudioTranscriber.node.d.ts","sourceRoot":"","sources":["../../../nodes/Datacrazy/DatacrazyAudioTranscriber.node.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EACrB,MAAM,cAAc,CAAC;AAKtB,qBAAa,yBAA0B,YAAW,SAAS;IACzD,WAAW,EAAE,oBAAoB,CAwI/B;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CA+BxE"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DatacrazyAudioTranscriber = void 0;
|
|
4
|
+
const audioTranscriber_handler_1 = require("./automations/audioTranscriber/audioTranscriber.handler");
|
|
5
|
+
const request_1 = require("./utils/request");
|
|
6
|
+
class DatacrazyAudioTranscriber {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.description = {
|
|
9
|
+
displayName: 'Datacrazy - Transcritor de Áudio IA',
|
|
10
|
+
name: 'datacrazyAudioTranscriber',
|
|
11
|
+
icon: 'file:icone-assemblyai.png',
|
|
12
|
+
group: ['transform'],
|
|
13
|
+
version: 1,
|
|
14
|
+
description: 'Transcreve áudios em texto usando OpenAI Whisper ou AssemblyAI',
|
|
15
|
+
defaults: { name: 'Transcritor de Áudio IA' },
|
|
16
|
+
inputs: ['main'],
|
|
17
|
+
outputs: ['main'],
|
|
18
|
+
credentials: [
|
|
19
|
+
{
|
|
20
|
+
name: 'datacrazyApi',
|
|
21
|
+
required: false,
|
|
22
|
+
displayOptions: {
|
|
23
|
+
show: {
|
|
24
|
+
postAsInternalMessage: [true],
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: 'assemblyAiApi',
|
|
30
|
+
required: true,
|
|
31
|
+
displayOptions: {
|
|
32
|
+
show: {
|
|
33
|
+
transcriptionProvider: ['assemblyai'],
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'openAiApi',
|
|
39
|
+
required: true,
|
|
40
|
+
displayOptions: {
|
|
41
|
+
show: {
|
|
42
|
+
transcriptionProvider: ['openai'],
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
properties: [
|
|
48
|
+
{
|
|
49
|
+
displayName: 'Operação',
|
|
50
|
+
name: 'operation',
|
|
51
|
+
type: 'options',
|
|
52
|
+
noDataExpression: true,
|
|
53
|
+
options: [
|
|
54
|
+
{
|
|
55
|
+
name: 'Transcrever Áudio',
|
|
56
|
+
value: 'transcribe',
|
|
57
|
+
action: 'Transcreve o áudio em texto',
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
default: 'transcribe',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
displayName: 'Provedor de Transcrição',
|
|
64
|
+
name: 'transcriptionProvider',
|
|
65
|
+
type: 'options',
|
|
66
|
+
options: [
|
|
67
|
+
{ name: 'AssemblyAI (via URL)', value: 'assemblyai' },
|
|
68
|
+
{ name: 'OpenAI Whisper (via Arquivo Binário)', value: 'openai' },
|
|
69
|
+
],
|
|
70
|
+
default: 'assemblyai',
|
|
71
|
+
description: 'Escolha o provedor para realizar a transcrição de áudio',
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
displayName: 'URL do Áudio (Audio URL)',
|
|
75
|
+
name: 'audioUrl',
|
|
76
|
+
type: 'string',
|
|
77
|
+
default: '',
|
|
78
|
+
required: true,
|
|
79
|
+
description: 'A URL pública do arquivo de áudio (ex: link vindo do Datacrazy)',
|
|
80
|
+
displayOptions: {
|
|
81
|
+
show: {
|
|
82
|
+
transcriptionProvider: ['assemblyai'],
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
displayName: 'Modelo de Transcrição',
|
|
88
|
+
name: 'speechModel',
|
|
89
|
+
type: 'options',
|
|
90
|
+
options: [
|
|
91
|
+
{ name: 'Automático (Recomendado ⭐)', value: 'best' },
|
|
92
|
+
{ name: 'Universal 2 (Mais Econômico 💸)', value: 'universal-2' },
|
|
93
|
+
{ name: 'Universal 3 Pro (Maior Precisão 🎯)', value: 'universal-3-pro' },
|
|
94
|
+
],
|
|
95
|
+
default: 'best',
|
|
96
|
+
description: 'Escolha o modelo de IA da AssemblyAI. O modelo Universal 2 é mais econômico, enquanto o Automático seleciona a melhor precisão disponível.',
|
|
97
|
+
displayOptions: {
|
|
98
|
+
show: {
|
|
99
|
+
transcriptionProvider: ['assemblyai'],
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
displayName: 'Nome do Campo de Dados Binários',
|
|
105
|
+
name: 'binaryFieldName',
|
|
106
|
+
type: 'string',
|
|
107
|
+
default: 'data',
|
|
108
|
+
required: true,
|
|
109
|
+
description: 'O nome do campo de entrada binário que contém o arquivo de áudio a ser transcrito',
|
|
110
|
+
displayOptions: {
|
|
111
|
+
show: {
|
|
112
|
+
transcriptionProvider: ['openai'],
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
displayName: 'Idioma (Opcional)',
|
|
118
|
+
name: 'language',
|
|
119
|
+
type: 'string',
|
|
120
|
+
default: 'pt',
|
|
121
|
+
description: 'Código do idioma. Padrão é "pt" para Português.',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
displayName: 'Enviar como Mensagem Interna?',
|
|
125
|
+
name: 'postAsInternalMessage',
|
|
126
|
+
type: 'boolean',
|
|
127
|
+
default: false,
|
|
128
|
+
description: 'Se ativado, envia o texto transcrito como uma mensagem interna no histórico do chat do usuário no Datacrazy.',
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
displayName: 'ID da Conversa (Conversation ID)',
|
|
132
|
+
name: 'conversationId',
|
|
133
|
+
type: 'string',
|
|
134
|
+
default: '',
|
|
135
|
+
required: true,
|
|
136
|
+
description: 'O ID da conversa no Datacrazy onde a mensagem interna será registrada.',
|
|
137
|
+
displayOptions: {
|
|
138
|
+
show: {
|
|
139
|
+
postAsInternalMessage: [true],
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
async execute() {
|
|
147
|
+
const items = this.getInputData();
|
|
148
|
+
const returnData = [];
|
|
149
|
+
let baseUrl = { crm: '', v1: '', messaging: '', timezone: 'America/Sao_Paulo' };
|
|
150
|
+
try {
|
|
151
|
+
const credentials = await this.getCredentials('datacrazyApi');
|
|
152
|
+
baseUrl = (0, request_1.getBaseUrls)(credentials);
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
// Credentials optional
|
|
156
|
+
}
|
|
157
|
+
for (let i = 0; i < items.length; i++) {
|
|
158
|
+
try {
|
|
159
|
+
const responseData = await audioTranscriber_handler_1.executeAudioTranscriber.call(this, baseUrl, i);
|
|
160
|
+
const executionData = this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray(Array.isArray(responseData) ? responseData : [responseData]), { itemData: { item: i } });
|
|
161
|
+
returnData.push(...executionData);
|
|
162
|
+
}
|
|
163
|
+
catch (error) {
|
|
164
|
+
if (this.continueOnFail()) {
|
|
165
|
+
returnData.push({ json: { error: error.message }, pairedItem: { item: i } });
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
throw error;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return [returnData];
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
exports.DatacrazyAudioTranscriber = DatacrazyAudioTranscriber;
|
|
175
|
+
//# sourceMappingURL=DatacrazyAudioTranscriber.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatacrazyAudioTranscriber.node.js","sourceRoot":"","sources":["../../../nodes/Datacrazy/DatacrazyAudioTranscriber.node.ts"],"names":[],"mappings":";;;AAOA,sGAAkG;AAClG,6CAA2D;AAE3D,MAAa,yBAAyB;IAAtC;QACE,gBAAW,GAAyB;YAClC,WAAW,EAAE,qCAAqC;YAClD,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,2BAA2B;YACjC,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,gEAAgE;YAC7E,QAAQ,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE;YAC7C,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE;gBACX;oBACE,IAAI,EAAE,cAAc;oBACpB,QAAQ,EAAE,KAAK;oBACf,cAAc,EAAE;wBACd,IAAI,EAAE;4BACJ,qBAAqB,EAAE,CAAC,IAAI,CAAC;yBAC9B;qBACF;iBACF;gBACD;oBACE,IAAI,EAAE,eAAe;oBACrB,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACd,IAAI,EAAE;4BACJ,qBAAqB,EAAE,CAAC,YAAY,CAAC;yBACtC;qBACF;iBACF;gBACD;oBACE,IAAI,EAAE,WAAW;oBACjB,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACd,IAAI,EAAE;4BACJ,qBAAqB,EAAE,CAAC,QAAQ,CAAC;yBAClC;qBACF;iBACF;aACF;YACD,UAAU,EAAE;gBACV;oBACE,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,mBAAmB;4BACzB,KAAK,EAAE,YAAY;4BACnB,MAAM,EAAE,6BAA6B;yBACtC;qBACF;oBACD,OAAO,EAAE,YAAY;iBACtB;gBACD;oBACE,WAAW,EAAE,yBAAyB;oBACtC,IAAI,EAAE,uBAAuB;oBAC7B,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,YAAY,EAAE;wBACrD,EAAE,IAAI,EAAE,sCAAsC,EAAE,KAAK,EAAE,QAAQ,EAAE;qBAClE;oBACD,OAAO,EAAE,YAAY;oBACrB,WAAW,EAAE,yDAAyD;iBACvE;gBACD;oBACE,WAAW,EAAE,0BAA0B;oBACvC,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,iEAAiE;oBAC9E,cAAc,EAAE;wBACd,IAAI,EAAE;4BACJ,qBAAqB,EAAE,CAAC,YAAY,CAAC;yBACtC;qBACF;iBACF;gBACD;oBACE,WAAW,EAAE,uBAAuB;oBACpC,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,MAAM,EAAE;wBACrD,EAAE,IAAI,EAAE,iCAAiC,EAAE,KAAK,EAAE,aAAa,EAAE;wBACjE,EAAE,IAAI,EAAE,qCAAqC,EAAE,KAAK,EAAE,iBAAiB,EAAE;qBAC1E;oBACD,OAAO,EAAE,MAAM;oBACf,WAAW,EAAE,4IAA4I;oBACzJ,cAAc,EAAE;wBACd,IAAI,EAAE;4BACJ,qBAAqB,EAAE,CAAC,YAAY,CAAC;yBACtC;qBACF;iBACF;gBACD;oBACE,WAAW,EAAE,iCAAiC;oBAC9C,IAAI,EAAE,iBAAiB;oBACvB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,MAAM;oBACf,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,mFAAmF;oBAChG,cAAc,EAAE;wBACd,IAAI,EAAE;4BACJ,qBAAqB,EAAE,CAAC,QAAQ,CAAC;yBAClC;qBACF;iBACF;gBACD;oBACE,WAAW,EAAE,mBAAmB;oBAChC,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,iDAAiD;iBAC/D;gBACD;oBACE,WAAW,EAAE,+BAA+B;oBAC5C,IAAI,EAAE,uBAAuB;oBAC7B,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,8GAA8G;iBAC5H;gBACD;oBACE,WAAW,EAAE,kCAAkC;oBAC/C,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,wEAAwE;oBACrF,cAAc,EAAE;wBACd,IAAI,EAAE;4BACJ,qBAAqB,EAAE,CAAC,IAAI,CAAC;yBAC9B;qBACF;iBACF;aACF;SACF,CAAC;IAiCJ,CAAC;IA/BC,KAAK,CAAC,OAAO;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,UAAU,GAAyB,EAAE,CAAC;QAE5C,IAAI,OAAO,GAAgB,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;QAC7F,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YAC9D,OAAO,GAAG,IAAA,qBAAW,EAAC,WAAsC,CAAC,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,MAAM,kDAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC1E,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAC3D,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EACzF,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAC1B,CAAC;gBACF,UAAU,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;YACpC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;oBAC1B,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBACxF,SAAS;gBACX,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;CACF;AA1KD,8DA0KC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class DatacrazyMetaConversions implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=DatacrazyMetaConversions.node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatacrazyMetaConversions.node.d.ts","sourceRoot":"","sources":["../../../nodes/Datacrazy/DatacrazyMetaConversions.node.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EACrB,MAAM,cAAc,CAAC;AAItB,qBAAa,wBAAyB,YAAW,SAAS;IACxD,WAAW,EAAE,oBAAoB,CAuJ/B;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CAuBxE"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DatacrazyMetaConversions = void 0;
|
|
4
|
+
const metaConversionsApi_handler_1 = require("./automations/metaConversionsApi/metaConversionsApi.handler");
|
|
5
|
+
class DatacrazyMetaConversions {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.description = {
|
|
8
|
+
displayName: 'Datacrazy - Meta Conversions API',
|
|
9
|
+
name: 'datacrazyMetaConversions',
|
|
10
|
+
icon: 'file:icone-meta-capi.png',
|
|
11
|
+
group: ['transform'],
|
|
12
|
+
version: 1,
|
|
13
|
+
description: 'Envia eventos de conversão offline diretamente para o Pixel da Meta (Facebook)',
|
|
14
|
+
defaults: { name: 'Meta Conversions API' },
|
|
15
|
+
inputs: ['main'],
|
|
16
|
+
outputs: ['main'],
|
|
17
|
+
credentials: [
|
|
18
|
+
{
|
|
19
|
+
name: 'metaConversionsApi',
|
|
20
|
+
required: true,
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
properties: [
|
|
24
|
+
{
|
|
25
|
+
displayName: 'Operação',
|
|
26
|
+
name: 'operation',
|
|
27
|
+
type: 'options',
|
|
28
|
+
noDataExpression: true,
|
|
29
|
+
options: [
|
|
30
|
+
{
|
|
31
|
+
name: 'Enviar Evento',
|
|
32
|
+
value: 'sendEvent',
|
|
33
|
+
action: 'Envia um evento de conversão para a API da Meta (Facebook)',
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
default: 'sendEvent',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
displayName: 'Nome do Evento',
|
|
40
|
+
name: 'eventName',
|
|
41
|
+
type: 'string',
|
|
42
|
+
required: true,
|
|
43
|
+
default: 'Lead',
|
|
44
|
+
description: 'Nome do evento (ex: Lead, Purchase, Contact, ViewContent)',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
displayName: 'Action Source',
|
|
48
|
+
name: 'actionSource',
|
|
49
|
+
type: 'options',
|
|
50
|
+
options: [
|
|
51
|
+
{ name: 'App', value: 'app' },
|
|
52
|
+
{ name: 'Chat', value: 'chat' },
|
|
53
|
+
{ name: 'E-mail', value: 'email' },
|
|
54
|
+
{ name: 'Loja Física', value: 'physical_store' },
|
|
55
|
+
{ name: 'Outro', value: 'other' },
|
|
56
|
+
{ name: 'Phone Call', value: 'phone_call' },
|
|
57
|
+
{ name: 'System Generated', value: 'system_generated' },
|
|
58
|
+
{ name: 'Website', value: 'website' },
|
|
59
|
+
],
|
|
60
|
+
default: 'system_generated',
|
|
61
|
+
required: true,
|
|
62
|
+
description: 'Onde a conversão ocorreu. Para CRMs, "System Generated" ou "Chat" são comuns.',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
displayName: 'Event URL',
|
|
66
|
+
name: 'eventSourceUrl',
|
|
67
|
+
type: 'string',
|
|
68
|
+
default: '',
|
|
69
|
+
description: 'A URL onde a conversão ocorreu (opcional se action_source não for website)',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
displayName: 'Dados do Usuário (User Data)',
|
|
73
|
+
name: 'userData',
|
|
74
|
+
type: 'collection',
|
|
75
|
+
placeholder: 'Adicionar Dado',
|
|
76
|
+
default: {},
|
|
77
|
+
options: [
|
|
78
|
+
{
|
|
79
|
+
displayName: 'E-mail',
|
|
80
|
+
name: 'email',
|
|
81
|
+
type: 'string',
|
|
82
|
+
default: '',
|
|
83
|
+
description: 'E-mail do lead (será convertido para hash SHA-256 automaticamente)',
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
displayName: 'Telefone',
|
|
87
|
+
name: 'phone',
|
|
88
|
+
type: 'string',
|
|
89
|
+
default: '',
|
|
90
|
+
description: 'Telefone com código do país (ex: 5511999999999). Será feito hash automaticamente.',
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
displayName: 'FBP (Facebook Browser ID)',
|
|
94
|
+
name: 'fbp',
|
|
95
|
+
type: 'string',
|
|
96
|
+
default: '',
|
|
97
|
+
description: 'Cookie _fbp do usuário',
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
displayName: 'FBC (Facebook Click ID)',
|
|
101
|
+
name: 'fbc',
|
|
102
|
+
type: 'string',
|
|
103
|
+
default: '',
|
|
104
|
+
description: 'Cookie _fbc do usuário',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
displayName: 'Client IP Address',
|
|
108
|
+
name: 'clientIpAddress',
|
|
109
|
+
type: 'string',
|
|
110
|
+
default: '',
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
displayName: 'Client User Agent',
|
|
114
|
+
name: 'clientUserAgent',
|
|
115
|
+
type: 'string',
|
|
116
|
+
default: '',
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
displayName: 'External ID',
|
|
120
|
+
name: 'externalId',
|
|
121
|
+
type: 'string',
|
|
122
|
+
default: '',
|
|
123
|
+
description: 'ID único do lead no seu CRM (será feito hash automaticamente)',
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
displayName: 'Dados Customizados (Custom Data)',
|
|
129
|
+
name: 'customData',
|
|
130
|
+
type: 'collection',
|
|
131
|
+
placeholder: 'Adicionar Dado Customizado',
|
|
132
|
+
default: {},
|
|
133
|
+
options: [
|
|
134
|
+
{
|
|
135
|
+
displayName: 'Valor (Value)',
|
|
136
|
+
name: 'value',
|
|
137
|
+
type: 'number',
|
|
138
|
+
default: 0,
|
|
139
|
+
description: 'Valor monetário da conversão',
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
displayName: 'Moeda (Currency)',
|
|
143
|
+
name: 'currency',
|
|
144
|
+
type: 'string',
|
|
145
|
+
default: 'BRL',
|
|
146
|
+
description: 'Moeda da transação (ex: BRL, USD)',
|
|
147
|
+
},
|
|
148
|
+
],
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
displayName: 'Event Time (Data/Hora)',
|
|
152
|
+
name: 'eventTime',
|
|
153
|
+
type: 'dateTime',
|
|
154
|
+
default: '',
|
|
155
|
+
description: 'Data e hora do evento. Se vazio, usará o momento atual. Deve ser no máximo 7 dias no passado.',
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
async execute() {
|
|
161
|
+
const items = this.getInputData();
|
|
162
|
+
const returnData = [];
|
|
163
|
+
for (let i = 0; i < items.length; i++) {
|
|
164
|
+
try {
|
|
165
|
+
const responseData = await metaConversionsApi_handler_1.executeMetaConversionsApi.call(this, i);
|
|
166
|
+
const executionData = this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray(Array.isArray(responseData) ? responseData : [responseData]), { itemData: { item: i } });
|
|
167
|
+
returnData.push(...executionData);
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
if (this.continueOnFail()) {
|
|
171
|
+
returnData.push({ json: { error: error.message }, pairedItem: { item: i } });
|
|
172
|
+
continue;
|
|
173
|
+
}
|
|
174
|
+
throw error;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
return [returnData];
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
exports.DatacrazyMetaConversions = DatacrazyMetaConversions;
|
|
181
|
+
//# sourceMappingURL=DatacrazyMetaConversions.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatacrazyMetaConversions.node.js","sourceRoot":"","sources":["../../../nodes/Datacrazy/DatacrazyMetaConversions.node.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@growsalesai/n8n-nodes-datacrazy",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.0",
|
|
4
4
|
"description": "n8n community node para o Datacrazy CRM - Growsales IA",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"n8n-community-node-package",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"main": "dist/index.js",
|
|
24
24
|
"scripts": {
|
|
25
25
|
"build": "tsc && npm run copy:assets",
|
|
26
|
-
"copy:assets": "cp nodes/Datacrazy/icone-datacrazy.png dist/nodes/Datacrazy/icone-datacrazy.png && cp nodes/Datacrazy/icone-crm-datacrazy.png dist/nodes/Datacrazy/icone-crm-datacrazy.png",
|
|
26
|
+
"copy:assets": "cp nodes/Datacrazy/icone-datacrazy.png dist/nodes/Datacrazy/icone-datacrazy.png && cp nodes/Datacrazy/icone-crm-datacrazy.png dist/nodes/Datacrazy/icone-crm-datacrazy.png && cp nodes/Datacrazy/icone-assemblyai.png dist/nodes/Datacrazy/icone-assemblyai.png && cp nodes/Datacrazy/icone-meta-capi.png dist/nodes/Datacrazy/icone-meta-capi.png",
|
|
27
27
|
"dev": "tsc --watch",
|
|
28
28
|
"format": "prettier nodes credentials --write",
|
|
29
29
|
"lint": "eslint nodes credentials --ext .ts",
|
|
@@ -42,7 +42,9 @@
|
|
|
42
42
|
],
|
|
43
43
|
"nodes": [
|
|
44
44
|
"dist/nodes/Datacrazy/Datacrazy.node.js",
|
|
45
|
-
"dist/nodes/Datacrazy/DatacrazyUtils.node.js"
|
|
45
|
+
"dist/nodes/Datacrazy/DatacrazyUtils.node.js",
|
|
46
|
+
"dist/nodes/Datacrazy/DatacrazyAudioTranscriber.node.js",
|
|
47
|
+
"dist/nodes/Datacrazy/DatacrazyMetaConversions.node.js"
|
|
46
48
|
]
|
|
47
49
|
},
|
|
48
50
|
"devDependencies": {
|