@growsalesai/n8n-nodes-datacrazy 3.1.1 → 3.1.2
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/activityGoogleSync/activityGoogleSync.description.d.ts.map +1 -1
- package/dist/nodes/Datacrazy/automations/activityGoogleSync/activityGoogleSync.description.js +25 -23
- package/dist/nodes/Datacrazy/automations/activityGoogleSync/activityGoogleSync.description.js.map +1 -1
- package/dist/nodes/Datacrazy/automations/activityGoogleSync/activityGoogleSync.handler.d.ts.map +1 -1
- package/dist/nodes/Datacrazy/automations/activityGoogleSync/activityGoogleSync.handler.js +50 -23
- package/dist/nodes/Datacrazy/automations/activityGoogleSync/activityGoogleSync.handler.js.map +1 -1
- package/package.json +1 -1
package/dist/nodes/Datacrazy/automations/activityGoogleSync/activityGoogleSync.description.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activityGoogleSync.description.d.ts","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/automations/activityGoogleSync/activityGoogleSync.description.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,eAAO,MAAM,wBAAwB,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"activityGoogleSync.description.d.ts","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/automations/activityGoogleSync/activityGoogleSync.description.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,eAAO,MAAM,wBAAwB,EAAE,eAAe,EAoIrD,CAAC"}
|
package/dist/nodes/Datacrazy/automations/activityGoogleSync/activityGoogleSync.description.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.activityGoogleSyncFields = void 0;
|
|
4
4
|
exports.activityGoogleSyncFields = [
|
|
5
|
+
// ─── Dados da Atividade (Datacrazy) ──────────────────────────────────────────
|
|
5
6
|
{
|
|
6
7
|
displayName: 'Título',
|
|
7
8
|
name: 'title',
|
|
@@ -17,23 +18,16 @@ exports.activityGoogleSyncFields = [
|
|
|
17
18
|
type: 'dateTime',
|
|
18
19
|
required: true,
|
|
19
20
|
default: '',
|
|
20
|
-
description: 'Data e hora de início — usada como dueDate da atividade e
|
|
21
|
+
description: 'Data e hora de início — usada como dueDate da atividade e início do evento no Google Calendar',
|
|
21
22
|
displayOptions: { show: { resource: ['activityGoogleSync'] } },
|
|
22
23
|
},
|
|
23
24
|
{
|
|
24
|
-
displayName: '
|
|
25
|
-
name: '
|
|
26
|
-
type: '
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
displayName: 'Calendário',
|
|
33
|
-
name: 'calendarId',
|
|
34
|
-
type: 'string',
|
|
35
|
-
default: 'primary',
|
|
36
|
-
description: 'ID do calendário Google onde o evento será criado. Use "primary" para o calendário principal.',
|
|
25
|
+
displayName: 'Data/Hora de Término',
|
|
26
|
+
name: 'endDateTime',
|
|
27
|
+
type: 'dateTime',
|
|
28
|
+
required: true,
|
|
29
|
+
default: '',
|
|
30
|
+
description: 'Data e hora de término do evento no Google Calendar',
|
|
37
31
|
displayOptions: { show: { resource: ['activityGoogleSync'] } },
|
|
38
32
|
},
|
|
39
33
|
{
|
|
@@ -80,6 +74,7 @@ exports.activityGoogleSyncFields = [
|
|
|
80
74
|
},
|
|
81
75
|
],
|
|
82
76
|
},
|
|
77
|
+
// ─── Campos Opcionais ─────────────────────────────────────────────────────────
|
|
83
78
|
{
|
|
84
79
|
displayName: 'Campos Adicionais',
|
|
85
80
|
name: 'additionalFields',
|
|
@@ -96,14 +91,7 @@ exports.activityGoogleSyncFields = [
|
|
|
96
91
|
description: 'Descrição da atividade e do evento no Google Calendar',
|
|
97
92
|
},
|
|
98
93
|
{
|
|
99
|
-
displayName: '
|
|
100
|
-
name: 'attendantId',
|
|
101
|
-
type: 'string',
|
|
102
|
-
default: '',
|
|
103
|
-
description: 'ID do atendente responsável pela atividade no Datacrazy',
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
displayName: 'Tipo',
|
|
94
|
+
displayName: 'Tipo da Atividade',
|
|
107
95
|
name: 'type',
|
|
108
96
|
type: 'options',
|
|
109
97
|
options: [
|
|
@@ -115,6 +103,20 @@ exports.activityGoogleSyncFields = [
|
|
|
115
103
|
default: 'task',
|
|
116
104
|
description: 'Tipo da atividade no Datacrazy',
|
|
117
105
|
},
|
|
106
|
+
{
|
|
107
|
+
displayName: 'ID do Atendente',
|
|
108
|
+
name: 'attendantId',
|
|
109
|
+
type: 'string',
|
|
110
|
+
default: '',
|
|
111
|
+
description: 'ID do atendente responsável pela atividade no Datacrazy',
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
displayName: 'Calendário (ID)',
|
|
115
|
+
name: 'calendarId',
|
|
116
|
+
type: 'string',
|
|
117
|
+
default: 'primary',
|
|
118
|
+
description: 'ID do calendário Google onde o evento será criado. Use "primary" para o calendário principal.',
|
|
119
|
+
},
|
|
118
120
|
{
|
|
119
121
|
displayName: 'Localização',
|
|
120
122
|
name: 'location',
|
|
@@ -127,7 +129,7 @@ exports.activityGoogleSyncFields = [
|
|
|
127
129
|
name: 'timeZone',
|
|
128
130
|
type: 'string',
|
|
129
131
|
default: 'America/Sao_Paulo',
|
|
130
|
-
description: 'Fuso horário do evento no Google Calendar (
|
|
132
|
+
description: 'Fuso horário do evento no Google Calendar (ex: America/Sao_Paulo, UTC)',
|
|
131
133
|
},
|
|
132
134
|
],
|
|
133
135
|
},
|
package/dist/nodes/Datacrazy/automations/activityGoogleSync/activityGoogleSync.description.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activityGoogleSync.description.js","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/automations/activityGoogleSync/activityGoogleSync.description.ts"],"names":[],"mappings":";;;AAEa,QAAA,wBAAwB,GAAsB;IACzD;QACE,WAAW,EAAE,QAAQ;QACrB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,iEAAiE;QAC9E,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE;KAC/D;IACD;QACE,WAAW,EAAE,qBAAqB;QAClC,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"activityGoogleSync.description.js","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/automations/activityGoogleSync/activityGoogleSync.description.ts"],"names":[],"mappings":"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"}
|
package/dist/nodes/Datacrazy/automations/activityGoogleSync/activityGoogleSync.handler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activityGoogleSync.handler.d.ts","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/automations/activityGoogleSync/activityGoogleSync.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"activityGoogleSync.handler.d.ts","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/automations/activityGoogleSync/activityGoogleSync.handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAsB,MAAM,cAAc,CAAC;AACrE,OAAO,EAAe,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAoB/D,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,WAAW,EACpB,CAAC,EAAE,MAAM,GACR,OAAO,CAAC,GAAG,CAAC,CA6Ed"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.executeActivityGoogleSync = executeActivityGoogleSync;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
4
5
|
const request_1 = require("../../utils/request");
|
|
5
6
|
function extractId(raw) {
|
|
6
7
|
var _a;
|
|
@@ -10,32 +11,46 @@ function extractId(raw) {
|
|
|
10
11
|
return String((_a = raw.value) !== null && _a !== void 0 ? _a : '');
|
|
11
12
|
return String(raw);
|
|
12
13
|
}
|
|
13
|
-
|
|
14
|
+
// Converte qualquer valor de data para ISO 8601 aceito pelo Google Calendar (RFC 3339)
|
|
15
|
+
function toRFC3339(val) {
|
|
14
16
|
if (typeof val === 'number')
|
|
15
17
|
return new Date(val).toISOString();
|
|
16
18
|
if (typeof val === 'string') {
|
|
17
|
-
|
|
19
|
+
// n8n pode retornar "2026-05-19 15:00:00" (com espaço) ou já ISO
|
|
20
|
+
const normalized = val.trim().replace(' ', 'T');
|
|
18
21
|
const d = new Date(normalized);
|
|
19
22
|
if (!isNaN(d.getTime()))
|
|
20
23
|
return d.toISOString();
|
|
21
24
|
}
|
|
22
|
-
|
|
25
|
+
throw new Error(`Data inválida: "${val}". Use o formato ISO ou selecione pelo campo dateTime.`);
|
|
23
26
|
}
|
|
24
27
|
async function executeActivityGoogleSync(baseUrl, i) {
|
|
25
28
|
var _a, _b;
|
|
26
29
|
const title = this.getNodeParameter('title', i);
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
const calendarId = this.getNodeParameter('calendarId', i, 'primary').trim() || 'primary';
|
|
30
|
+
const startRaw = this.getNodeParameter('startDateTime', i);
|
|
31
|
+
const endRaw = this.getNodeParameter('endDateTime', i);
|
|
30
32
|
const leadId = extractId(this.getNodeParameter('leadId', i, { mode: 'list', value: '' }));
|
|
31
33
|
const businessId = extractId(this.getNodeParameter('businessId', i, { mode: 'list', value: '' }));
|
|
32
34
|
const extra = this.getNodeParameter('additionalFields', i, {});
|
|
33
|
-
const
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
const calendarId = (extra.calendarId || 'primary').trim() || 'primary';
|
|
36
|
+
const timeZone = (extra.timeZone || 'America/Sao_Paulo').trim();
|
|
37
|
+
// Validação e conversão das datas
|
|
38
|
+
let startISO;
|
|
39
|
+
let endISO;
|
|
40
|
+
try {
|
|
41
|
+
startISO = toRFC3339(startRaw);
|
|
42
|
+
endISO = toRFC3339(endRaw);
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), err.message);
|
|
46
|
+
}
|
|
47
|
+
if (new Date(endISO) <= new Date(startISO)) {
|
|
48
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'A Data/Hora de Término deve ser posterior à de Início.');
|
|
49
|
+
}
|
|
50
|
+
// ── 1. Cria a atividade no Datacrazy ─────────────────────────────────────────
|
|
51
|
+
const activityBody = { title };
|
|
52
|
+
if (startISO)
|
|
53
|
+
activityBody.dueDate = startISO;
|
|
39
54
|
if (leadId)
|
|
40
55
|
activityBody.leadId = leadId;
|
|
41
56
|
if (businessId)
|
|
@@ -46,8 +61,15 @@ async function executeActivityGoogleSync(baseUrl, i) {
|
|
|
46
61
|
activityBody.attendantId = extra.attendantId;
|
|
47
62
|
if (extra.type)
|
|
48
63
|
activityBody.type = extra.type;
|
|
49
|
-
|
|
50
|
-
|
|
64
|
+
let activityResult;
|
|
65
|
+
try {
|
|
66
|
+
const res = await request_1.makeRequest.call(this, baseUrl, 'POST', '/api/v1/activities', activityBody);
|
|
67
|
+
activityResult = (_a = res === null || res === void 0 ? void 0 : res.data) !== null && _a !== void 0 ? _a : res;
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Erro ao criar atividade no Datacrazy: ${err.message}`);
|
|
71
|
+
}
|
|
72
|
+
// ── 2. Cria o evento no Google Calendar ──────────────────────────────────────
|
|
51
73
|
const eventBody = {
|
|
52
74
|
summary: title,
|
|
53
75
|
start: { dateTime: startISO, timeZone },
|
|
@@ -57,16 +79,21 @@ async function executeActivityGoogleSync(baseUrl, i) {
|
|
|
57
79
|
eventBody.description = extra.description;
|
|
58
80
|
if (extra.location)
|
|
59
81
|
eventBody.location = extra.location;
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
82
|
+
let gcalResult;
|
|
83
|
+
try {
|
|
84
|
+
gcalResult = await this.helpers.httpRequestWithAuthentication.call(this, 'googleCalendarOAuth2Api', {
|
|
85
|
+
method: 'POST',
|
|
86
|
+
url: `https://www.googleapis.com/calendar/v3/calendars/${encodeURIComponent(calendarId)}/events`,
|
|
87
|
+
body: eventBody,
|
|
88
|
+
json: true,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Atividade criada no Datacrazy (id: ${(_b = activityResult === null || activityResult === void 0 ? void 0 : activityResult.id) !== null && _b !== void 0 ? _b : '?'}), mas erro ao criar evento no Google Calendar: ${err.message}`);
|
|
93
|
+
}
|
|
67
94
|
return {
|
|
68
|
-
activity:
|
|
69
|
-
googleCalendarEvent:
|
|
95
|
+
activity: activityResult,
|
|
96
|
+
googleCalendarEvent: gcalResult,
|
|
70
97
|
};
|
|
71
98
|
}
|
|
72
99
|
//# sourceMappingURL=activityGoogleSync.handler.js.map
|
package/dist/nodes/Datacrazy/automations/activityGoogleSync/activityGoogleSync.handler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activityGoogleSync.handler.js","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/automations/activityGoogleSync/activityGoogleSync.handler.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"activityGoogleSync.handler.js","sourceRoot":"","sources":["../../../../../nodes/Datacrazy/automations/activityGoogleSync/activityGoogleSync.handler.ts"],"names":[],"mappings":"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"}
|