@growsalesai/n8n-nodes-datacrazy 1.8.3 → 1.8.5
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/automations/leadExistsChecker/leadExistsChecker.handler.d.ts.map +1 -1
- package/dist/nodes/Datacrazy/automations/leadExistsChecker/leadExistsChecker.handler.js +64 -20
- package/dist/nodes/Datacrazy/automations/leadExistsChecker/leadExistsChecker.handler.js.map +1 -1
- package/package.json +1 -1
package/dist/nodes/Datacrazy/automations/leadExistsChecker/leadExistsChecker.handler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leadExistsChecker.handler.d.ts","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/automations/leadExistsChecker/leadExistsChecker.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAe,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAQ/D,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,kBAAkB,EAAE,GAC1B,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"leadExistsChecker.handler.d.ts","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/automations/leadExistsChecker/leadExistsChecker.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAe,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAQ/D,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,kBAAkB,EAAE,GAC1B,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAuJjC"}
|
|
@@ -11,7 +11,7 @@ function extractId(raw) {
|
|
|
11
11
|
return String(raw);
|
|
12
12
|
}
|
|
13
13
|
async function executeLeadExistsChecker(baseUrl, items) {
|
|
14
|
-
var _a, _b, _c, _d, _e;
|
|
14
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
15
15
|
const foundOutput = [];
|
|
16
16
|
const notFoundOutput = [];
|
|
17
17
|
// Cached per execution to avoid redundant requests when processing batches
|
|
@@ -33,25 +33,69 @@ async function executeLeadExistsChecker(baseUrl, items) {
|
|
|
33
33
|
if (searchType === 'whatsapp') {
|
|
34
34
|
const phoneNumber = this.getNodeParameter('phoneNumber', i).trim();
|
|
35
35
|
searchValue = phoneNumber;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
36
|
+
const normalizedInput = phoneNumber.replace(/\D/g, '');
|
|
37
|
+
if (normalizedInput.length >= 8) {
|
|
38
|
+
const WHATSAPP_PLATFORMS = new Set([
|
|
39
|
+
'whatsapp', 'waba', 'uazap', 'whatsappcloudapi',
|
|
40
|
+
'whatsapp_cloud', 'whatsapp_business', 'whatsappbusiness',
|
|
41
|
+
]);
|
|
42
|
+
// phoneMatch: exact match or country-code variation — only when both sides have ≥8 digits
|
|
43
|
+
const phoneMatch = (stored) => {
|
|
44
|
+
const s = stored.replace(/\D/g, '');
|
|
45
|
+
if (s.length < 8)
|
|
46
|
+
return false;
|
|
47
|
+
return s === normalizedInput || s.endsWith(normalizedInput) || normalizedInput.endsWith(s);
|
|
48
|
+
};
|
|
49
|
+
const verifyLead = (lead) => {
|
|
50
|
+
var _a, _b, _c, _d;
|
|
51
|
+
// 1. Direct phone fields on the lead object
|
|
52
|
+
if (phoneMatch(String((_a = lead.phone) !== null && _a !== void 0 ? _a : '')))
|
|
53
|
+
return true;
|
|
54
|
+
if (phoneMatch(String((_b = lead.rawPhone) !== null && _b !== void 0 ? _b : '')))
|
|
55
|
+
return true;
|
|
56
|
+
// 2. Contacts: only trust WhatsApp-platform entries
|
|
57
|
+
const contacts = (_d = (_c = lead.contacts) !== null && _c !== void 0 ? _c : lead.leadContacts) !== null && _d !== void 0 ? _d : [];
|
|
58
|
+
return contacts.some((c) => {
|
|
59
|
+
var _a, _b, _c;
|
|
60
|
+
const platform = String((_a = c.platform) !== null && _a !== void 0 ? _a : '').toLowerCase().replace(/[^a-z]/g, '');
|
|
61
|
+
if (!WHATSAPP_PLATFORMS.has(platform))
|
|
62
|
+
return false;
|
|
63
|
+
return phoneMatch(String((_c = (_b = c.contactId) !== null && _b !== void 0 ? _b : c.phone) !== null && _c !== void 0 ? _c : ''));
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
// Primary: text search by the number (searches name/phone/email in the API)
|
|
67
|
+
const res = await request_1.makeRequest.call(this, baseUrl, 'GET', '/api/v1/leads', undefined, {
|
|
68
|
+
search: normalizedInput,
|
|
69
|
+
take: 200,
|
|
50
70
|
});
|
|
51
|
-
const
|
|
52
|
-
|
|
71
|
+
const leads = (_a = res === null || res === void 0 ? void 0 : res.data) !== null && _a !== void 0 ? _a : (Array.isArray(res) ? res : []);
|
|
72
|
+
const primaryMatch = leads.find(verifyLead);
|
|
73
|
+
if (primaryMatch) {
|
|
53
74
|
found = true;
|
|
54
|
-
leadData =
|
|
75
|
+
leadData = primaryMatch;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
// Fallback: search via conversations (WhatsApp CRMs index by contact phone)
|
|
79
|
+
const convRes = await request_1.makeRequest.call(this, baseUrl, 'GET', '/api/v1/conversations', undefined, {
|
|
80
|
+
search: normalizedInput,
|
|
81
|
+
take: 50,
|
|
82
|
+
});
|
|
83
|
+
const convs = (_b = convRes === null || convRes === void 0 ? void 0 : convRes.data) !== null && _b !== void 0 ? _b : (Array.isArray(convRes) ? convRes : []);
|
|
84
|
+
for (const conv of convs) {
|
|
85
|
+
const convPhone = String((_f = (_e = (_c = conv.contactPhone) !== null && _c !== void 0 ? _c : (_d = conv.contact) === null || _d === void 0 ? void 0 : _d.phone) !== null && _e !== void 0 ? _e : conv.contactId) !== null && _f !== void 0 ? _f : '');
|
|
86
|
+
if (!phoneMatch(convPhone))
|
|
87
|
+
continue;
|
|
88
|
+
const convLeadId = (_g = conv.leadId) !== null && _g !== void 0 ? _g : (_h = conv.lead) === null || _h === void 0 ? void 0 : _h.id;
|
|
89
|
+
if (!convLeadId)
|
|
90
|
+
continue;
|
|
91
|
+
const leadRes = await request_1.makeRequest.call(this, baseUrl, 'GET', `/api/v1/leads/${convLeadId}`);
|
|
92
|
+
const lead = (_j = leadRes === null || leadRes === void 0 ? void 0 : leadRes.data) !== null && _j !== void 0 ? _j : leadRes;
|
|
93
|
+
if (lead === null || lead === void 0 ? void 0 : lead.id) {
|
|
94
|
+
found = true;
|
|
95
|
+
leadData = lead;
|
|
96
|
+
}
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
55
99
|
}
|
|
56
100
|
}
|
|
57
101
|
}
|
|
@@ -73,11 +117,11 @@ async function executeLeadExistsChecker(baseUrl, items) {
|
|
|
73
117
|
search: fieldValue,
|
|
74
118
|
take: 20,
|
|
75
119
|
});
|
|
76
|
-
const candidates = (
|
|
120
|
+
const candidates = (_k = candidatesRes === null || candidatesRes === void 0 ? void 0 : candidatesRes.data) !== null && _k !== void 0 ? _k : (Array.isArray(candidatesRes) ? candidatesRes : []);
|
|
77
121
|
for (const candidate of candidates) {
|
|
78
122
|
try {
|
|
79
123
|
const valueRes = await request_1.makeRequest.call(this, baseUrl, 'GET', `/api/crm/additional-fields/lead/${candidate.id}/${fieldDef.id}`);
|
|
80
|
-
const storedValue = String((
|
|
124
|
+
const storedValue = String((_m = (_l = valueRes === null || valueRes === void 0 ? void 0 : valueRes.value) !== null && _l !== void 0 ? _l : valueRes) !== null && _m !== void 0 ? _m : '').trim();
|
|
81
125
|
if (storedValue === fieldValue) {
|
|
82
126
|
found = true;
|
|
83
127
|
leadData = candidate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leadExistsChecker.handler.js","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/automations/leadExistsChecker/leadExistsChecker.handler.ts"],"names":[],"mappings":";;AASA,
|
|
1
|
+
{"version":3,"file":"leadExistsChecker.handler.js","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/automations/leadExistsChecker/leadExistsChecker.handler.ts"],"names":[],"mappings":"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"}
|