@growsalesai/n8n-nodes-datacrazy 2.0.3 → 2.0.4
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/dist/nodes/Datacrazy/DatacrazyUtils.node.d.ts.map +1 -1
- package/dist/nodes/Datacrazy/DatacrazyUtils.node.js +14 -1
- package/dist/nodes/Datacrazy/DatacrazyUtils.node.js.map +1 -1
- package/dist/nodes/Datacrazy/automations/leadAiStageRouter/leadAiStageRouter.description.d.ts +3 -0
- package/dist/nodes/Datacrazy/automations/leadAiStageRouter/leadAiStageRouter.description.d.ts.map +1 -0
- package/dist/nodes/Datacrazy/automations/leadAiStageRouter/leadAiStageRouter.description.js +54 -0
- package/dist/nodes/Datacrazy/automations/leadAiStageRouter/leadAiStageRouter.description.js.map +1 -0
- package/dist/nodes/Datacrazy/automations/leadAiStageRouter/leadAiStageRouter.handler.d.ts +4 -0
- package/dist/nodes/Datacrazy/automations/leadAiStageRouter/leadAiStageRouter.handler.d.ts.map +1 -0
- package/dist/nodes/Datacrazy/automations/leadAiStageRouter/leadAiStageRouter.handler.js +248 -0
- package/dist/nodes/Datacrazy/automations/leadAiStageRouter/leadAiStageRouter.handler.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatacrazyUtils.node.d.ts","sourceRoot":"","sources":["../../../nodes/Datacrazy/DatacrazyUtils.node.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,SAAS,EACT,oBAAoB,EAErB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"DatacrazyUtils.node.d.ts","sourceRoot":"","sources":["../../../nodes/Datacrazy/DatacrazyUtils.node.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,SAAS,EACT,oBAAoB,EAErB,MAAM,cAAc,CAAC;AA0CtB,qBAAa,cAAe,YAAW,SAAS;IAC9C,WAAW,EAAE,oBAAoB,CAiL/B;IAEF,OAAO;oBAQA,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,qBAAqB,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;MACrG;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CAmGxE"}
|
|
@@ -52,6 +52,7 @@ const firstMessageDetector_description_1 = require("./automations/firstMessageDe
|
|
|
52
52
|
const leadDuplicateChecker_description_1 = require("./automations/leadDuplicateChecker/leadDuplicateChecker.description");
|
|
53
53
|
const businessCreator_description_1 = require("./automations/businessCreator/businessCreator.description");
|
|
54
54
|
const leadUpsert_description_1 = require("./automations/leadUpsert/leadUpsert.description");
|
|
55
|
+
const leadAiStageRouter_description_1 = require("./automations/leadAiStageRouter/leadAiStageRouter.description");
|
|
55
56
|
const webhookParser_handler_1 = require("./automations/webhookParser/webhookParser.handler");
|
|
56
57
|
const webhookExtractor_handler_1 = require("./automations/webhookExtractor/webhookExtractor.handler");
|
|
57
58
|
const providerDetector_handler_1 = require("./automations/providerDetector/providerDetector.handler");
|
|
@@ -69,6 +70,7 @@ const firstMessageDetector_handler_1 = require("./automations/firstMessageDetect
|
|
|
69
70
|
const leadDuplicateChecker_handler_1 = require("./automations/leadDuplicateChecker/leadDuplicateChecker.handler");
|
|
70
71
|
const businessCreator_handler_1 = require("./automations/businessCreator/businessCreator.handler");
|
|
71
72
|
const leadUpsert_handler_1 = require("./automations/leadUpsert/leadUpsert.handler");
|
|
73
|
+
const leadAiStageRouter_handler_1 = require("./automations/leadAiStageRouter/leadAiStageRouter.handler");
|
|
72
74
|
const loadOptions = __importStar(require("./methods/loadOptions"));
|
|
73
75
|
const request_1 = require("./utils/request");
|
|
74
76
|
class DatacrazyUtils {
|
|
@@ -109,7 +111,7 @@ class DatacrazyUtils {
|
|
|
109
111
|
resource: [
|
|
110
112
|
'messageContext', 'leadMover', 'leadIfCondition', 'leadTracker',
|
|
111
113
|
'leadExistsChecker', 'firstMessageDetector', 'leadDuplicateChecker',
|
|
112
|
-
'businessCreator', 'leadUpsert',
|
|
114
|
+
'businessCreator', 'leadUpsert', 'leadAiStageRouter',
|
|
113
115
|
],
|
|
114
116
|
},
|
|
115
117
|
},
|
|
@@ -207,6 +209,11 @@ class DatacrazyUtils {
|
|
|
207
209
|
value: 'phoneFormatter',
|
|
208
210
|
description: 'Normaliza números de telefone para o formato padrão (somente dígitos, com DDI)',
|
|
209
211
|
},
|
|
212
|
+
{
|
|
213
|
+
name: '🤖 Roteador de Etapa para IA',
|
|
214
|
+
value: 'leadAiStageRouter',
|
|
215
|
+
description: 'Move o lead para uma etapa pelo nome (fuzzy) ou comando relativo (próxima/anterior). Ideal para AI Agents: sem IDs, sem configuração prévia.',
|
|
216
|
+
},
|
|
210
217
|
],
|
|
211
218
|
default: 'webhookParser',
|
|
212
219
|
},
|
|
@@ -241,6 +248,7 @@ class DatacrazyUtils {
|
|
|
241
248
|
...leadDuplicateChecker_description_1.leadDuplicateCheckerFields,
|
|
242
249
|
...businessCreator_description_1.businessCreatorFields,
|
|
243
250
|
...leadUpsert_description_1.leadUpsertFields,
|
|
251
|
+
...leadAiStageRouter_description_1.leadAiStageRouterFields,
|
|
244
252
|
],
|
|
245
253
|
};
|
|
246
254
|
this.methods = {
|
|
@@ -328,6 +336,11 @@ class DatacrazyUtils {
|
|
|
328
336
|
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Credenciais do Datacrazy são necessárias para "Mover Lead na Pipeline".');
|
|
329
337
|
responseData = await leadMover_handler_1.executeLeadMover.call(this, baseUrl, i);
|
|
330
338
|
}
|
|
339
|
+
else if (resource === 'leadAiStageRouter') {
|
|
340
|
+
if (typeof baseUrl === 'object' && !baseUrl.crm)
|
|
341
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Credenciais do Datacrazy são necessárias para "Roteador de Etapa para IA".');
|
|
342
|
+
responseData = await leadAiStageRouter_handler_1.executeLeadAiStageRouter.call(this, baseUrl, i);
|
|
343
|
+
}
|
|
331
344
|
else if (resource === 'leadTracker') {
|
|
332
345
|
if (typeof baseUrl === 'object' && !baseUrl.crm)
|
|
333
346
|
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Credenciais do Datacrazy são necessárias para "Tracker do Lead".');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatacrazyUtils.node.js","sourceRoot":"","sources":["../../../nodes/Datacrazy/DatacrazyUtils.node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAQsB;AAEtB,qGAAqH;AACrH,8GAAiI;AACjI,8GAAiI;AACjI,wGAAyH;AACzH,yFAAqG;AACrG,iHAAwG;AACxG,kGAAyF;AACzF,2GAA6H;AAC7H,+FAA6G;AAC7G,iHAAqI;AACrI,wGAAyH;AACzH,0HAAiJ;AACjJ,qGAA4F;AAC5F,0HAAiJ;AACjJ,0HAAiJ;AACjJ,2GAA6H;AAC7H,4FAAyG;
|
|
1
|
+
{"version":3,"file":"DatacrazyUtils.node.js","sourceRoot":"","sources":["../../../nodes/Datacrazy/DatacrazyUtils.node.ts"],"names":[],"mappings":"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"}
|
package/dist/nodes/Datacrazy/automations/leadAiStageRouter/leadAiStageRouter.description.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leadAiStageRouter.description.d.ts","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/automations/leadAiStageRouter/leadAiStageRouter.description.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,eAAO,MAAM,uBAAuB,EAAE,eAAe,EAmDpD,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.leadAiStageRouterFields = void 0;
|
|
4
|
+
exports.leadAiStageRouterFields = [
|
|
5
|
+
{
|
|
6
|
+
displayName: 'Identificador do Lead',
|
|
7
|
+
name: 'leadIdentifier',
|
|
8
|
+
type: 'string',
|
|
9
|
+
default: '',
|
|
10
|
+
required: true,
|
|
11
|
+
description: 'Telefone (WhatsApp), e-mail ou ID do lead. A ferramenta resolve automaticamente qual é qual.',
|
|
12
|
+
placeholder: 'Ex: 5511999999999 | joao@email.com | cluid123...',
|
|
13
|
+
displayOptions: { show: { resource: ['leadAiStageRouter'] } },
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
displayName: 'Nome da Pipeline',
|
|
17
|
+
name: 'pipelineName',
|
|
18
|
+
type: 'string',
|
|
19
|
+
default: '',
|
|
20
|
+
required: true,
|
|
21
|
+
description: 'Nome (ou parte do nome) da pipeline. Não precisa ser exato — a ferramenta faz busca aproximada.',
|
|
22
|
+
placeholder: 'Ex: Vendas WhatsApp',
|
|
23
|
+
displayOptions: { show: { resource: ['leadAiStageRouter'] } },
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
displayName: 'Etapa Destino',
|
|
27
|
+
name: 'targetStage',
|
|
28
|
+
type: 'string',
|
|
29
|
+
default: '',
|
|
30
|
+
required: true,
|
|
31
|
+
description: 'Nome parcial da etapa (ex: "qualificado", "escala humana") ou comando relativo: "próxima", "anterior", "primeiro", "último". Não precisa de acento nem letra maiúscula.',
|
|
32
|
+
placeholder: 'Ex: qualificado | próxima | escala humana | primeiro',
|
|
33
|
+
displayOptions: { show: { resource: ['leadAiStageRouter'] } },
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
displayName: 'Criar Negócio se Não Existir',
|
|
37
|
+
name: 'createBusinessIfNotFound',
|
|
38
|
+
type: 'boolean',
|
|
39
|
+
default: true,
|
|
40
|
+
description: 'Se o lead não tiver negócio aberto nesta pipeline, cria um automaticamente já na etapa destino.',
|
|
41
|
+
displayOptions: { show: { resource: ['leadAiStageRouter'] } },
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
displayName: 'Nota (opcional)',
|
|
45
|
+
name: 'note',
|
|
46
|
+
type: 'string',
|
|
47
|
+
default: '',
|
|
48
|
+
typeOptions: { rows: 3 },
|
|
49
|
+
description: 'Texto da nota a ser registrada no lead após a movimentação. Deixe em branco para não criar nota.',
|
|
50
|
+
placeholder: 'Ex: Lead qualificado pelo agente de IA — confirmou interesse no produto X',
|
|
51
|
+
displayOptions: { show: { resource: ['leadAiStageRouter'] } },
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
//# sourceMappingURL=leadAiStageRouter.description.js.map
|
package/dist/nodes/Datacrazy/automations/leadAiStageRouter/leadAiStageRouter.description.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leadAiStageRouter.description.js","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/automations/leadAiStageRouter/leadAiStageRouter.description.ts"],"names":[],"mappings":";;;AAEa,QAAA,uBAAuB,GAAsB;IACxD;QACE,WAAW,EAAE,uBAAuB;QACpC,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,8FAA8F;QAC3G,WAAW,EAAE,sDAAsD;QACnE,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAAE;KAC9D;IACD;QACE,WAAW,EAAE,kBAAkB;QAC/B,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,iGAAiG;QAC9G,WAAW,EAAE,qBAAqB;QAClC,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAAE;KAC9D;IACD;QACE,WAAW,EAAE,eAAe;QAC5B,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,yKAAyK;QAC3K,WAAW,EAAE,4DAA4D;QACzE,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAAE;KAC9D;IACD;QACE,WAAW,EAAE,8BAA8B;QAC3C,IAAI,EAAE,0BAA0B;QAChC,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI;QACb,WAAW,EACT,iGAAiG;QACnG,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAAE;KAC9D;IACD;QACE,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;QACxB,WAAW,EAAE,kGAAkG;QAC/G,WAAW,EAAE,2EAA2E;QACxF,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAAE;KAC9D;CACF,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { IExecuteFunctions } from 'n8n-workflow';
|
|
2
|
+
import { ApiBaseUrls } from '../../utils/request';
|
|
3
|
+
export declare function executeLeadAiStageRouter(this: IExecuteFunctions, baseUrl: ApiBaseUrls, i: number): Promise<any>;
|
|
4
|
+
//# sourceMappingURL=leadAiStageRouter.handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leadAiStageRouter.handler.d.ts","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/automations/leadAiStageRouter/leadAiStageRouter.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAsB,MAAM,cAAc,CAAC;AACrE,OAAO,EAAe,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAuF/D,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,WAAW,EACpB,CAAC,EAAE,MAAM,GACR,OAAO,CAAC,GAAG,CAAC,CA0Ld"}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.executeLeadAiStageRouter = executeLeadAiStageRouter;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const request_1 = require("../../utils/request");
|
|
6
|
+
const WHATSAPP_PLATFORMS = new Set([
|
|
7
|
+
'whatsapp', 'waba', 'uazap', 'whatsappcloudapi',
|
|
8
|
+
'whatsapp_cloud', 'whatsapp_business', 'whatsappbusiness',
|
|
9
|
+
]);
|
|
10
|
+
function normalize(s) {
|
|
11
|
+
return s
|
|
12
|
+
.toLowerCase()
|
|
13
|
+
.normalize('NFD')
|
|
14
|
+
.replace(/[̀-ͯ]/g, '')
|
|
15
|
+
.replace(/[^a-z0-9\s]/g, '')
|
|
16
|
+
.trim();
|
|
17
|
+
}
|
|
18
|
+
function fuzzyScore(haystack, needle) {
|
|
19
|
+
const h = normalize(haystack);
|
|
20
|
+
const n = normalize(needle);
|
|
21
|
+
if (!h || !n)
|
|
22
|
+
return 0;
|
|
23
|
+
if (h === n)
|
|
24
|
+
return 100;
|
|
25
|
+
if (h.includes(n))
|
|
26
|
+
return 80;
|
|
27
|
+
if (n.includes(h))
|
|
28
|
+
return 70;
|
|
29
|
+
const hWords = h.split(/\s+/);
|
|
30
|
+
const nWords = n.split(/\s+/).filter(w => w.length > 1);
|
|
31
|
+
const overlap = nWords.filter(w => hWords.some(hw => hw.includes(w) || w.includes(hw)));
|
|
32
|
+
return overlap.length > 0 ? Math.round((overlap.length / Math.max(hWords.length, nWords.length)) * 60) : 0;
|
|
33
|
+
}
|
|
34
|
+
const RELATIVE_MAP = {
|
|
35
|
+
next: ['proxima', 'proximo', 'avancar', 'next', 'adelante', 'frente'],
|
|
36
|
+
prev: ['anterior', 'voltar', 'back', 'prev', 'retroceder', 'atras'],
|
|
37
|
+
first: ['primeiro', 'primeira', 'inicio', 'comeco', 'first', 'start'],
|
|
38
|
+
last: ['ultimo', 'ultima', 'final', 'fim', 'last', 'end'],
|
|
39
|
+
};
|
|
40
|
+
function resolveRelative(targetNorm) {
|
|
41
|
+
for (const [cmd, aliases] of Object.entries(RELATIVE_MAP)) {
|
|
42
|
+
if (aliases.some(a => targetNorm === a || targetNorm.includes(a)))
|
|
43
|
+
return cmd;
|
|
44
|
+
}
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
async function findLead(ctx, baseUrl, identifier) {
|
|
48
|
+
var _a;
|
|
49
|
+
const id = identifier.trim();
|
|
50
|
+
// Try by ID (cuid-like: 20+ alphanumeric chars, no @)
|
|
51
|
+
if (/^[a-z0-9]{20,}$/i.test(id) && !id.includes('@')) {
|
|
52
|
+
try {
|
|
53
|
+
const res = await request_1.makeRequest.call(ctx, baseUrl, 'GET', `/api/v1/leads/${id}`);
|
|
54
|
+
if (res === null || res === void 0 ? void 0 : res.id)
|
|
55
|
+
return res;
|
|
56
|
+
}
|
|
57
|
+
catch { /* not a valid ID, fall through */ }
|
|
58
|
+
}
|
|
59
|
+
// Search by text
|
|
60
|
+
const searchRes = await request_1.makeRequest.call(ctx, baseUrl, 'GET', '/api/v1/leads', undefined, { search: id, take: 100 });
|
|
61
|
+
const candidates = (_a = searchRes === null || searchRes === void 0 ? void 0 : searchRes.data) !== null && _a !== void 0 ? _a : (Array.isArray(searchRes) ? searchRes : []);
|
|
62
|
+
// Phone match
|
|
63
|
+
const digits = id.replace(/\D/g, '');
|
|
64
|
+
if (digits.length >= 8) {
|
|
65
|
+
const phoneMatch = (lead) => {
|
|
66
|
+
var _a, _b, _c;
|
|
67
|
+
const check = (p) => {
|
|
68
|
+
const n = p.replace(/\D/g, '');
|
|
69
|
+
return n.length >= 8 && (n === digits || n.endsWith(digits) || digits.endsWith(n));
|
|
70
|
+
};
|
|
71
|
+
if (check(String((_a = lead.phone) !== null && _a !== void 0 ? _a : '')))
|
|
72
|
+
return true;
|
|
73
|
+
if (check(String((_b = lead.rawPhone) !== null && _b !== void 0 ? _b : '')))
|
|
74
|
+
return true;
|
|
75
|
+
return ((_c = lead.contacts) !== null && _c !== void 0 ? _c : []).some((c) => {
|
|
76
|
+
var _a, _b;
|
|
77
|
+
const p = String((_a = c.platform) !== null && _a !== void 0 ? _a : '').toLowerCase().replace(/[^a-z]/g, '');
|
|
78
|
+
return WHATSAPP_PLATFORMS.has(p) && check(String((_b = c.contactId) !== null && _b !== void 0 ? _b : ''));
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
const found = candidates.find(phoneMatch);
|
|
82
|
+
if (found)
|
|
83
|
+
return found;
|
|
84
|
+
}
|
|
85
|
+
// Email match
|
|
86
|
+
if (id.includes('@')) {
|
|
87
|
+
const emailLower = id.toLowerCase();
|
|
88
|
+
const found = candidates.find((l) => { var _a; return String((_a = l.email) !== null && _a !== void 0 ? _a : '').toLowerCase() === emailLower; });
|
|
89
|
+
if (found)
|
|
90
|
+
return found;
|
|
91
|
+
}
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
async function executeLeadAiStageRouter(baseUrl, i) {
|
|
95
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
96
|
+
const leadIdentifier = this.getNodeParameter('leadIdentifier', i).trim();
|
|
97
|
+
const pipelineName = this.getNodeParameter('pipelineName', i).trim();
|
|
98
|
+
const targetStage = this.getNodeParameter('targetStage', i).trim();
|
|
99
|
+
const createBizIfNotFound = this.getNodeParameter('createBusinessIfNotFound', i, true);
|
|
100
|
+
const note = this.getNodeParameter('note', i, '').trim();
|
|
101
|
+
// ── 1. Resolve lead ──────────────────────────────────────────────────────
|
|
102
|
+
const lead = await findLead(this, baseUrl, leadIdentifier);
|
|
103
|
+
if (!lead) {
|
|
104
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Lead não encontrado para o identificador "${leadIdentifier}". Verifique se é um telefone, e-mail ou ID válido.`);
|
|
105
|
+
}
|
|
106
|
+
// ── 2. Resolve pipeline by name (fuzzy) ──────────────────────────────────
|
|
107
|
+
const pipelinesRaw = await request_1.makeRequest.call(this, baseUrl, 'GET', '/api/v1/pipelines');
|
|
108
|
+
const pipelines = Array.isArray(pipelinesRaw) ? pipelinesRaw : ((_a = pipelinesRaw === null || pipelinesRaw === void 0 ? void 0 : pipelinesRaw.data) !== null && _a !== void 0 ? _a : []);
|
|
109
|
+
const pipelineMatches = pipelines
|
|
110
|
+
.map(p => { var _a; return ({ p, score: fuzzyScore((_a = p.name) !== null && _a !== void 0 ? _a : '', pipelineName) }); })
|
|
111
|
+
.filter(x => x.score > 0)
|
|
112
|
+
.sort((a, b) => b.score - a.score);
|
|
113
|
+
if (pipelineMatches.length === 0) {
|
|
114
|
+
const names = pipelines.map(p => p.name).join(', ');
|
|
115
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Nenhuma pipeline encontrada para "${pipelineName}". Disponíveis: [${names}]`);
|
|
116
|
+
}
|
|
117
|
+
const pipeline = pipelineMatches[0].p;
|
|
118
|
+
// ── 3. Fetch stages (ordered) ─────────────────────────────────────────────
|
|
119
|
+
const stagesRaw = await request_1.makeRequest.call(this, baseUrl, 'GET', `/api/v1/pipelines/${pipeline.id}/stages`);
|
|
120
|
+
const stages = (Array.isArray(stagesRaw) ? stagesRaw : ((_b = stagesRaw === null || stagesRaw === void 0 ? void 0 : stagesRaw.data) !== null && _b !== void 0 ? _b : []))
|
|
121
|
+
.sort((a, b) => { var _a, _b; return ((_a = a.order) !== null && _a !== void 0 ? _a : 0) - ((_b = b.order) !== null && _b !== void 0 ? _b : 0); });
|
|
122
|
+
if (stages.length === 0) {
|
|
123
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Pipeline "${pipeline.name}" não tem etapas configuradas.`);
|
|
124
|
+
}
|
|
125
|
+
// ── 4. Fetch lead's businesses in this pipeline ───────────────────────────
|
|
126
|
+
const bizRaw = await request_1.makeRequest.call(this, baseUrl, 'GET', `/api/v1/leads/${lead.id}/businesses`);
|
|
127
|
+
const allBiz = (_c = bizRaw === null || bizRaw === void 0 ? void 0 : bizRaw.data) !== null && _c !== void 0 ? _c : (Array.isArray(bizRaw) ? bizRaw : []);
|
|
128
|
+
const pipelineBiz = allBiz.filter((b) => { var _a, _b, _c, _d; return String((_d = (_c = (_b = (_a = b.stage) === null || _a === void 0 ? void 0 : _a.pipeline) === null || _b === void 0 ? void 0 : _b.id) !== null && _c !== void 0 ? _c : b.pipelineId) !== null && _d !== void 0 ? _d : '') === String(pipeline.id); });
|
|
129
|
+
const activeBusiness = (_d = pipelineBiz.sort((a, b) => {
|
|
130
|
+
var _a, _b;
|
|
131
|
+
return new Date((_a = b.lastMovedAt) !== null && _a !== void 0 ? _a : b.createdAt).getTime() -
|
|
132
|
+
new Date((_b = a.lastMovedAt) !== null && _b !== void 0 ? _b : a.createdAt).getTime();
|
|
133
|
+
})[0]) !== null && _d !== void 0 ? _d : null;
|
|
134
|
+
const currentStage = activeBusiness
|
|
135
|
+
? (_e = stages.find(s => { var _a, _b; return s.id === ((_b = (_a = activeBusiness.stage) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : activeBusiness.stageId); })) !== null && _e !== void 0 ? _e : null
|
|
136
|
+
: null;
|
|
137
|
+
// ── 5. Resolve target stage ───────────────────────────────────────────────
|
|
138
|
+
const targetNorm = normalize(targetStage);
|
|
139
|
+
const relCmd = resolveRelative(targetNorm);
|
|
140
|
+
let resolvedStage = null;
|
|
141
|
+
if (relCmd) {
|
|
142
|
+
if (!currentStage && (relCmd === 'next' || relCmd === 'prev')) {
|
|
143
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `O comando "${targetStage}" requer que o lead já esteja em uma etapa de "${pipeline.name}", mas nenhum negócio foi encontrado nesta pipeline.`);
|
|
144
|
+
}
|
|
145
|
+
const idx = currentStage ? stages.findIndex(s => s.id === currentStage.id) : -1;
|
|
146
|
+
if (relCmd === 'next') {
|
|
147
|
+
resolvedStage = (_f = stages[idx + 1]) !== null && _f !== void 0 ? _f : null;
|
|
148
|
+
if (!resolvedStage)
|
|
149
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Lead já está na última etapa de "${pipeline.name}" — não há próxima etapa.`);
|
|
150
|
+
}
|
|
151
|
+
else if (relCmd === 'prev') {
|
|
152
|
+
resolvedStage = (_g = stages[idx - 1]) !== null && _g !== void 0 ? _g : null;
|
|
153
|
+
if (!resolvedStage)
|
|
154
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Lead já está na primeira etapa de "${pipeline.name}" — não há etapa anterior.`);
|
|
155
|
+
}
|
|
156
|
+
else if (relCmd === 'first') {
|
|
157
|
+
resolvedStage = stages[0];
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
resolvedStage = stages[stages.length - 1];
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
const scored = stages
|
|
165
|
+
.map(s => { var _a; return ({ s, score: fuzzyScore((_a = s.name) !== null && _a !== void 0 ? _a : '', targetStage) }); })
|
|
166
|
+
.filter(x => x.score > 0)
|
|
167
|
+
.sort((a, b) => b.score - a.score);
|
|
168
|
+
if (scored.length === 0) {
|
|
169
|
+
const names = stages.map(s => s.name).join(', ');
|
|
170
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Nenhuma etapa encontrada para "${targetStage}" na pipeline "${pipeline.name}". Etapas disponíveis: [${names}]`);
|
|
171
|
+
}
|
|
172
|
+
// Ambiguity: top 2 have equal score and neither is an exact match
|
|
173
|
+
if (scored.length >= 2 && scored[0].score === scored[1].score && scored[0].score < 100) {
|
|
174
|
+
const opts = scored.slice(0, 4).map(x => x.s.name).join(', ');
|
|
175
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `"${targetStage}" é ambíguo — múltiplas etapas correspondem igualmente: [${opts}]. Use um nome mais específico.`);
|
|
176
|
+
}
|
|
177
|
+
resolvedStage = scored[0].s;
|
|
178
|
+
}
|
|
179
|
+
// ── 6. Execute move or create ─────────────────────────────────────────────
|
|
180
|
+
let action;
|
|
181
|
+
let businessId = null;
|
|
182
|
+
let fromStage = null;
|
|
183
|
+
if (!activeBusiness) {
|
|
184
|
+
if (!createBizIfNotFound) {
|
|
185
|
+
const names = stages.map(s => s.name).join(', ');
|
|
186
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Lead não tem negócio na pipeline "${pipeline.name}" e "Criar Negócio se Não Existir" está desativado. Etapas disponíveis: [${names}]`);
|
|
187
|
+
}
|
|
188
|
+
const createRes = await request_1.makeRequest.call(this, baseUrl, 'POST', '/api/v1/businesses', {
|
|
189
|
+
leadId: lead.id,
|
|
190
|
+
stageId: resolvedStage.id,
|
|
191
|
+
});
|
|
192
|
+
businessId = (_k = (_h = createRes === null || createRes === void 0 ? void 0 : createRes.id) !== null && _h !== void 0 ? _h : (_j = createRes === null || createRes === void 0 ? void 0 : createRes.data) === null || _j === void 0 ? void 0 : _j.id) !== null && _k !== void 0 ? _k : null;
|
|
193
|
+
action = 'created_in_stage';
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
fromStage = currentStage;
|
|
197
|
+
businessId = activeBusiness.id;
|
|
198
|
+
if ((currentStage === null || currentStage === void 0 ? void 0 : currentStage.id) === resolvedStage.id) {
|
|
199
|
+
action = 'already_in_stage';
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
await request_1.makeRequest.call(this, baseUrl, 'PATCH', `/api/v1/businesses/${activeBusiness.id}`, {
|
|
203
|
+
stageId: resolvedStage.id,
|
|
204
|
+
});
|
|
205
|
+
action = 'moved';
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
// ── 7. Add note ───────────────────────────────────────────────────────────
|
|
209
|
+
let noteCreated = false;
|
|
210
|
+
if (note) {
|
|
211
|
+
try {
|
|
212
|
+
await request_1.makeRequest.call(this, baseUrl, 'POST', `/api/v1/leads/${lead.id}/notes`, { content: note });
|
|
213
|
+
noteCreated = true;
|
|
214
|
+
}
|
|
215
|
+
catch { /* note failure is non-fatal */ }
|
|
216
|
+
}
|
|
217
|
+
// ── 8. Build response ─────────────────────────────────────────────────────
|
|
218
|
+
const contextSummary = action === 'moved'
|
|
219
|
+
? `${lead.name} movido: "${fromStage === null || fromStage === void 0 ? void 0 : fromStage.name}" → "${resolvedStage.name}" (pipeline: ${pipeline.name})`
|
|
220
|
+
: action === 'created_in_stage'
|
|
221
|
+
? `Negócio criado para ${lead.name} na etapa "${resolvedStage.name}" (pipeline: ${pipeline.name})`
|
|
222
|
+
: `${lead.name} já estava em "${resolvedStage.name}" (pipeline: ${pipeline.name}) — sem movimentação`;
|
|
223
|
+
return {
|
|
224
|
+
success: true,
|
|
225
|
+
action,
|
|
226
|
+
moved: action === 'moved',
|
|
227
|
+
lead: {
|
|
228
|
+
id: lead.id,
|
|
229
|
+
name: lead.name,
|
|
230
|
+
phone: (_l = lead.phone) !== null && _l !== void 0 ? _l : null,
|
|
231
|
+
email: (_m = lead.email) !== null && _m !== void 0 ? _m : null,
|
|
232
|
+
},
|
|
233
|
+
pipeline: { id: pipeline.id, name: pipeline.name },
|
|
234
|
+
fromStage: fromStage
|
|
235
|
+
? { id: fromStage.id, name: fromStage.name, order: fromStage.order }
|
|
236
|
+
: null,
|
|
237
|
+
toStage: { id: resolvedStage.id, name: resolvedStage.name, order: resolvedStage.order },
|
|
238
|
+
businessId,
|
|
239
|
+
availableStages: stages.map(s => ({
|
|
240
|
+
name: s.name,
|
|
241
|
+
order: s.order,
|
|
242
|
+
isCurrent: s.id === resolvedStage.id,
|
|
243
|
+
})),
|
|
244
|
+
noteCreated,
|
|
245
|
+
contextSummary,
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=leadAiStageRouter.handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leadAiStageRouter.handler.js","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/automations/leadAiStageRouter/leadAiStageRouter.handler.ts"],"names":[],"mappings":"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"}
|