@webzzconnect/n8n-nodes-webzzconnect 0.0.0-stage → 0.5.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.
Files changed (41) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +141 -2
  3. package/dist/credentials/WebzzConnectApi.credentials.d.ts +10 -0
  4. package/dist/credentials/WebzzConnectApi.credentials.js +52 -0
  5. package/dist/credentials/WebzzConnectApi.credentials.js.map +1 -0
  6. package/dist/credentials/WebzzConnectOAuth2Api.credentials.d.ts +9 -0
  7. package/dist/credentials/WebzzConnectOAuth2Api.credentials.js +82 -0
  8. package/dist/credentials/WebzzConnectOAuth2Api.credentials.js.map +1 -0
  9. package/dist/nodes/WebzzConnect/GenericFunctions.d.ts +54 -0
  10. package/dist/nodes/WebzzConnect/GenericFunctions.js +295 -0
  11. package/dist/nodes/WebzzConnect/GenericFunctions.js.map +1 -0
  12. package/dist/nodes/WebzzConnect/WebzzConnect.node.d.ts +20 -0
  13. package/dist/nodes/WebzzConnect/WebzzConnect.node.js +845 -0
  14. package/dist/nodes/WebzzConnect/WebzzConnect.node.js.map +1 -0
  15. package/dist/nodes/WebzzConnect/WebzzConnect.node.json +12 -0
  16. package/dist/nodes/WebzzConnect/descriptions/ConnectionDescription.d.ts +2 -0
  17. package/dist/nodes/WebzzConnect/descriptions/ConnectionDescription.js +22 -0
  18. package/dist/nodes/WebzzConnect/descriptions/ConnectionDescription.js.map +1 -0
  19. package/dist/nodes/WebzzConnect/descriptions/ContactDescription.d.ts +3 -0
  20. package/dist/nodes/WebzzConnect/descriptions/ContactDescription.js +185 -0
  21. package/dist/nodes/WebzzConnect/descriptions/ContactDescription.js.map +1 -0
  22. package/dist/nodes/WebzzConnect/descriptions/ConversationDescription.d.ts +4 -0
  23. package/dist/nodes/WebzzConnect/descriptions/ConversationDescription.js +522 -0
  24. package/dist/nodes/WebzzConnect/descriptions/ConversationDescription.js.map +1 -0
  25. package/dist/nodes/WebzzConnect/descriptions/DealDescription.d.ts +3 -0
  26. package/dist/nodes/WebzzConnect/descriptions/DealDescription.js +282 -0
  27. package/dist/nodes/WebzzConnect/descriptions/DealDescription.js.map +1 -0
  28. package/dist/nodes/WebzzConnect/descriptions/WhatsAppTemplateDescription.d.ts +3 -0
  29. package/dist/nodes/WebzzConnect/descriptions/WhatsAppTemplateDescription.js +106 -0
  30. package/dist/nodes/WebzzConnect/descriptions/WhatsAppTemplateDescription.js.map +1 -0
  31. package/dist/nodes/WebzzConnect/webzzconnect.dark.svg +19 -0
  32. package/dist/nodes/WebzzConnect/webzzconnect.svg +19 -0
  33. package/dist/nodes/WebzzConnectTrigger/WebzzConnectTrigger.node.d.ts +18 -0
  34. package/dist/nodes/WebzzConnectTrigger/WebzzConnectTrigger.node.js +321 -0
  35. package/dist/nodes/WebzzConnectTrigger/WebzzConnectTrigger.node.js.map +1 -0
  36. package/dist/nodes/WebzzConnectTrigger/WebzzConnectTrigger.node.json +12 -0
  37. package/dist/nodes/WebzzConnectTrigger/webzzconnect.dark.svg +19 -0
  38. package/dist/nodes/WebzzConnectTrigger/webzzconnect.svg +19 -0
  39. package/dist/package.json +64 -0
  40. package/dist/tsconfig.tsbuildinfo +1 -0
  41. package/package.json +62 -4
@@ -0,0 +1,321 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WebzzConnectTrigger = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const n8n_workflow_1 = require("n8n-workflow");
6
+ const GenericFunctions_1 = require("../WebzzConnect/GenericFunctions");
7
+ const INBOX_EVENTS = [
8
+ 'conversation_created',
9
+ 'conversation_handed_off',
10
+ 'conversation_status_changed',
11
+ 'conversation_updated',
12
+ 'message_created',
13
+ ];
14
+ const DEAL_EVENTS = [
15
+ 'deal_created',
16
+ 'deal_deleted',
17
+ 'deal_lost',
18
+ 'deal_stage_changed',
19
+ 'deal_updated',
20
+ 'deal_won',
21
+ ];
22
+ const DIRECTION_HELP = 'Applies to new and updated messages. Keep Incoming for a reply bot: your virtual agent\'s own replies and their status updates also arrive here, and answering them makes the bot talk to itself.';
23
+ const MAX_SKEW_SECONDS = 5 * 60;
24
+ function messageTypeOf(body) {
25
+ const raw = body.message_type;
26
+ if (raw === 0 || raw === '0')
27
+ return 'incoming';
28
+ if (raw === 1 || raw === '1')
29
+ return 'outgoing';
30
+ return String(raw !== null && raw !== void 0 ? raw : '');
31
+ }
32
+ function safeEqual(a, b) {
33
+ const left = Buffer.from(a);
34
+ const right = Buffer.from(b);
35
+ return left.length === right.length && (0, crypto_1.timingSafeEqual)(left, right);
36
+ }
37
+ function remove(ctx, id) {
38
+ return GenericFunctions_1.wzRawRequest.call(ctx, 'DELETE', `/webhook_subscriptions/${GenericFunctions_1.pathId.call(ctx, id)}`);
39
+ }
40
+ function idsOf(ctx, name, shownFor) {
41
+ var _a;
42
+ const events = ctx.getNodeParameter('events');
43
+ if (!events.some((event) => shownFor.includes(event)))
44
+ return undefined;
45
+ const ids = ((_a = ctx.getNodeParameter(name, [])) !== null && _a !== void 0 ? _a : [])
46
+ .map(Number)
47
+ .filter((id) => Number.isInteger(id) && id > 0);
48
+ return ids.length > 0 ? ids : undefined;
49
+ }
50
+ class WebzzConnectTrigger {
51
+ constructor() {
52
+ this.description = {
53
+ displayName: 'WebzzConnect Trigger',
54
+ name: 'webzzConnectTrigger',
55
+ icon: { light: 'file:webzzconnect.svg', dark: 'file:webzzconnect.dark.svg' },
56
+ group: ['trigger'],
57
+ version: [1, 1.1],
58
+ subtitle: '={{$parameter["events"].join(", ")}}',
59
+ description: 'Starts a workflow instantly when something happens in WebzzConnect',
60
+ defaults: { name: 'WebzzConnect Trigger' },
61
+ inputs: [],
62
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
63
+ credentials: [
64
+ {
65
+ name: 'webzzConnectApi',
66
+ required: true,
67
+ displayOptions: { show: { authentication: ['apiKey'] } },
68
+ },
69
+ {
70
+ name: 'webzzConnectOAuth2Api',
71
+ required: true,
72
+ displayOptions: { show: { authentication: ['oAuth2'] } },
73
+ },
74
+ ],
75
+ webhooks: [
76
+ {
77
+ name: 'default',
78
+ httpMethod: 'POST',
79
+ responseMode: 'onReceived',
80
+ responseData: 'noData',
81
+ path: 'webhook',
82
+ },
83
+ ],
84
+ properties: [
85
+ GenericFunctions_1.authenticationProperty,
86
+ {
87
+ displayName: 'With a virtual agent connection, keep this workflow active: it is what keeps the agent listening. While it is off, new conversations go to your team, and each conversation the agent holds goes to your team when the customer writes next. To stop the bot, pause the virtual agent in WebzzConnect. Deactivate the workflow before you switch its credential.',
88
+ name: 'listeningNotice',
89
+ type: 'notice',
90
+ default: '',
91
+ },
92
+ {
93
+ displayName: 'Events',
94
+ name: 'events',
95
+ type: 'multiOptions',
96
+ required: true,
97
+ default: ['message_created'],
98
+ options: [
99
+ { name: 'Contact Created', value: 'contact_created' },
100
+ { name: 'Contact Updated', value: 'contact_updated' },
101
+ {
102
+ name: 'Conversation Handed Off',
103
+ value: 'conversation_handed_off',
104
+ description: 'A virtual agent handed a conversation to a person, another virtual agent or the team. Includes who handed it off (handoff.from), to whom (handoff.to, type agent, person or team), the note (handoff.note) and the customer\'s message still waiting for an answer (handoff.waiting_message). Sent at least once: skip a repeat with the same waiting message ID, when there is one. For the team, handoff.to has no ID or name.',
105
+ },
106
+ { name: 'Conversation Status Changed', value: 'conversation_status_changed' },
107
+ { name: 'Conversation Updated', value: 'conversation_updated' },
108
+ { name: 'Deal Created', value: 'deal_created' },
109
+ { name: 'Deal Deleted', value: 'deal_deleted' },
110
+ { name: 'Deal Lost', value: 'deal_lost' },
111
+ { name: 'Deal Stage Changed', value: 'deal_stage_changed' },
112
+ { name: 'Deal Updated', value: 'deal_updated' },
113
+ { name: 'Deal Won', value: 'deal_won' },
114
+ { name: 'New Conversation', value: 'conversation_created' },
115
+ {
116
+ name: 'New Message',
117
+ value: 'message_created',
118
+ description: 'With a virtual agent connection you receive only the conversations the agent handles. When a person replies from the dashboard or app, they take the conversation over and its events stop. To see who handles a conversation, read its assignee and assignee type. A tap on a reply button or list row arrives with its ID in button_payload; compare it with Equals and keep a fallback, never use it in a Code node, a URL or an ID field. Flows on an account key: a person replied when message_type is outgoing, private is false, content_attributes.automation_rule_id is empty, and sender.type is "user" or content_attributes.external_echo is true. WhatsApp campaign and scheduled template sends arrive with message_type "template", so they never match.',
119
+ },
120
+ ],
121
+ description: 'Events to listen to. The connected person or virtual agent needs access to the data behind each event.',
122
+ },
123
+ {
124
+ displayName: 'Message Direction',
125
+ name: 'messageType',
126
+ type: 'options',
127
+ default: 'any',
128
+ displayOptions: { show: { events: ['message_created'], '@version': [1] } },
129
+ options: [
130
+ { name: 'Any', value: 'any' },
131
+ { name: 'Incoming (From Contacts)', value: 'incoming' },
132
+ { name: 'Outgoing (From Agents and Bots)', value: 'outgoing' },
133
+ ],
134
+ description: DIRECTION_HELP,
135
+ },
136
+ {
137
+ displayName: 'Message Direction',
138
+ name: 'messageType',
139
+ type: 'options',
140
+ default: 'incoming',
141
+ displayOptions: { show: { events: ['message_created'] }, hide: { '@version': [1] } },
142
+ options: [
143
+ { name: 'Any', value: 'any' },
144
+ { name: 'Incoming (From Contacts)', value: 'incoming' },
145
+ { name: 'Outgoing (From Agents and Bots)', value: 'outgoing' },
146
+ ],
147
+ description: DIRECTION_HELP,
148
+ },
149
+ {
150
+ displayName: 'Inbox Names or IDs',
151
+ name: 'inboxIds',
152
+ type: 'multiOptions',
153
+ typeOptions: { loadOptionsMethod: 'getInboxes' },
154
+ default: [],
155
+ displayOptions: { show: { events: INBOX_EVENTS } },
156
+ description: 'Only conversations and messages in these inboxes start the workflow. Leave empty for all inboxes. Choose from the list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
157
+ },
158
+ {
159
+ displayName: 'Pipeline Names or IDs',
160
+ name: 'pipelineIds',
161
+ type: 'multiOptions',
162
+ typeOptions: { loadOptionsMethod: 'getPipelines' },
163
+ default: [],
164
+ displayOptions: { show: { events: DEAL_EVENTS } },
165
+ description: 'Only deals in these pipelines start the workflow. Leave empty for all pipelines. Choose from the list, or specify IDs using an <a href="https://docs.n8n.io/code/expressions/">expression</a>.',
166
+ },
167
+ ],
168
+ };
169
+ this.methods = {
170
+ loadOptions: {
171
+ async getInboxes() {
172
+ const inboxes = (0, GenericFunctions_1.asArray)(await GenericFunctions_1.wzApiRequest.call(this, 'GET', '/inboxes'));
173
+ return inboxes.map((inbox) => ({ name: String(inbox.name), value: String(inbox.id) }));
174
+ },
175
+ async getPipelines() {
176
+ const pipelines = (0, GenericFunctions_1.asArray)(await GenericFunctions_1.wzApiRequest.call(this, 'GET', '/crm/pipelines'));
177
+ return pipelines.map((pipeline) => ({
178
+ name: String(pipeline.name),
179
+ value: String(pipeline.id),
180
+ }));
181
+ },
182
+ },
183
+ };
184
+ this.webhookMethods = {
185
+ default: {
186
+ async checkExists() {
187
+ const stored = this.getWorkflowStaticData('node');
188
+ if (stored.id === undefined || !stored.secret)
189
+ return false;
190
+ let subscription;
191
+ try {
192
+ subscription = (0, GenericFunctions_1.asObject)(await GenericFunctions_1.wzRawRequest.call(this, 'GET', `/webhook_subscriptions/${GenericFunctions_1.pathId.call(this, stored.id)}`));
193
+ }
194
+ catch (error) {
195
+ if ((0, GenericFunctions_1.readErrorInfo)(error).status === 404) {
196
+ delete stored.id;
197
+ delete stored.secret;
198
+ return false;
199
+ }
200
+ return GenericFunctions_1.handleApiError.call(this, error);
201
+ }
202
+ if (subscription.url === this.getNodeWebhookUrl('default'))
203
+ return true;
204
+ await remove(this, stored.id).catch((error) => {
205
+ if ((0, GenericFunctions_1.readErrorInfo)(error).status !== 404)
206
+ return GenericFunctions_1.handleApiError.call(this, error);
207
+ return undefined;
208
+ });
209
+ delete stored.id;
210
+ delete stored.secret;
211
+ return false;
212
+ },
213
+ async create() {
214
+ const stored = this.getWorkflowStaticData('node');
215
+ const url = this.getNodeWebhookUrl('default');
216
+ const body = {
217
+ url,
218
+ subscriptions: this.getNodeParameter('events'),
219
+ };
220
+ const inboxIds = idsOf(this, 'inboxIds', INBOX_EVENTS);
221
+ if (inboxIds)
222
+ body.inbox_ids = inboxIds;
223
+ const pipelineIds = idsOf(this, 'pipelineIds', DEAL_EVENTS);
224
+ if (pipelineIds)
225
+ body.pipeline_ids = pipelineIds;
226
+ const subscribe = async () => {
227
+ try {
228
+ return (0, GenericFunctions_1.asObject)(await GenericFunctions_1.wzRawRequest.call(this, 'POST', '/webhook_subscriptions', { body }));
229
+ }
230
+ catch (error) {
231
+ return GenericFunctions_1.handleApiError.call(this, error);
232
+ }
233
+ };
234
+ let subscription = await subscribe();
235
+ if (!subscription.secret) {
236
+ try {
237
+ subscription = (0, GenericFunctions_1.asObject)(await GenericFunctions_1.wzRawRequest.call(this, 'POST', `/webhook_subscriptions/${GenericFunctions_1.pathId.call(this, subscription.id)}/rotate_secret`));
238
+ }
239
+ catch (error) {
240
+ return GenericFunctions_1.handleApiError.call(this, error);
241
+ }
242
+ }
243
+ if (subscription.id === undefined || !subscription.secret) {
244
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'WebzzConnect did not return a webhook secret. Deactivate and activate the workflow again.');
245
+ }
246
+ stored.id = subscription.id;
247
+ stored.secret = subscription.secret;
248
+ return true;
249
+ },
250
+ async delete() {
251
+ const stored = this.getWorkflowStaticData('node');
252
+ if (stored.id !== undefined) {
253
+ try {
254
+ await remove(this, stored.id);
255
+ }
256
+ catch (error) {
257
+ const status = (0, GenericFunctions_1.readErrorInfo)(error).status;
258
+ if (status === 401) {
259
+ this.logger.warn(`Couldn't remove WebzzConnect webhook subscription ${String(stored.id)}: the credential is no longer valid. It may keep sending events to this URL until it's removed in WebzzConnect → Settings → App webhooks.`);
260
+ }
261
+ else if (status !== 404) {
262
+ return GenericFunctions_1.handleApiError.call(this, error);
263
+ }
264
+ }
265
+ }
266
+ delete stored.id;
267
+ delete stored.secret;
268
+ return true;
269
+ },
270
+ },
271
+ };
272
+ }
273
+ async webhook() {
274
+ var _a, _b;
275
+ const req = this.getRequestObject();
276
+ const res = this.getResponseObject();
277
+ const stored = this.getWorkflowStaticData('node');
278
+ const reject = (reason) => {
279
+ res.status(401).json({ message: reason });
280
+ return { noWebhookResponse: true };
281
+ };
282
+ const headers = this.getHeaderData();
283
+ const signature = String((_a = headers['x-webzzconnect-signature']) !== null && _a !== void 0 ? _a : '');
284
+ const timestamp = String((_b = headers['x-webzzconnect-timestamp']) !== null && _b !== void 0 ? _b : '');
285
+ const rawBody = req.rawBody;
286
+ if (!stored.secret || !signature || !timestamp || rawBody === undefined) {
287
+ return reject('Missing signature');
288
+ }
289
+ const ageSeconds = Math.abs(Date.now() / 1000 - Number(timestamp));
290
+ if (!Number.isFinite(ageSeconds) || ageSeconds > MAX_SKEW_SECONDS) {
291
+ return reject('Stale timestamp');
292
+ }
293
+ const expected = `sha256=${(0, crypto_1.createHmac)('sha256', stored.secret)
294
+ .update(`${timestamp}.`)
295
+ .update(rawBody)
296
+ .digest('hex')}`;
297
+ if (!safeEqual(expected, signature))
298
+ return reject('Invalid signature');
299
+ const body = this.getBodyData();
300
+ const events = this.getNodeParameter('events');
301
+ if (typeof body.event === 'string' && !events.includes(body.event)) {
302
+ return {};
303
+ }
304
+ if (typeof body.event === 'string' && body.event.startsWith('message_')) {
305
+ const wanted = this.getNodeParameter('messageType', 'any');
306
+ if (wanted !== 'any' && messageTypeOf(body) !== wanted) {
307
+ return {};
308
+ }
309
+ }
310
+ const output = (0, GenericFunctions_1.stripInternalKeys)(body);
311
+ if (body.event === 'message_created') {
312
+ const payload = (0, GenericFunctions_1.asObject)(body.content_attributes).button_payload;
313
+ output.button_payload = payload === undefined || payload === null ? null : String(payload);
314
+ }
315
+ return {
316
+ workflowData: [this.helpers.returnJsonArray(output)],
317
+ };
318
+ }
319
+ }
320
+ exports.WebzzConnectTrigger = WebzzConnectTrigger;
321
+ //# sourceMappingURL=WebzzConnectTrigger.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebzzConnectTrigger.node.js","sourceRoot":"","sources":["../../../nodes/WebzzConnectTrigger/WebzzConnectTrigger.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ {
2
+ "node": "n8n-nodes-webzzconnect.webzzConnectTrigger",
3
+ "nodeVersion": "1.0",
4
+ "codexVersion": "1.0",
5
+ "categories": ["Sales", "Communication"],
6
+ "resources": {
7
+ "credentialDocumentation": [
8
+ { "url": "https://github.com/webzz/n8n-nodes-webzzconnect#credentials" }
9
+ ],
10
+ "primaryDocumentation": [{ "url": "https://github.com/webzz/n8n-nodes-webzzconnect#readme" }]
11
+ }
12
+ }
@@ -0,0 +1,19 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="800" height="800" viewBox="0 0 800 800">
2
+ <svg x="60" y="240.8" width="680" height="318.4" viewBox="0 0 739 346">
3
+ <g transform="translate(0,346) scale(0.1,-0.1)" fill="#FFFFFF">
4
+ <path d="M43 3440 c-18 -11 -35 -31 -39 -45 -5 -19 158 -383 752 -1685 416
5
+ -913 766 -1668 777 -1677 18 -17 57 -18 501 -21 455 -2 483 -1 511 16 27 17
6
+ 76 128 449 1013 230 547 422 998 426 1002 4 4 103 -164 220 -375 117 -211 220
7
+ -391 228 -400 8 -10 30 -22 48 -27 66 -18 90 -2 254 171 84 90 229 243 322
8
+ 340 122 128 168 183 168 201 0 13 -162 351 -360 750 -310 627 -364 728 -389
9
+ 742 -44 22 -927 23 -970 0 -32 -16 -4 48 -556 -1262 -170 -403 -311 -733 -315
10
+ -733 -3 0 -194 444 -425 986 -372 875 -423 989 -450 1005 -28 18 -59 19 -575
11
+ 19 -524 0 -546 -1 -577 -20z"/>
12
+ <path d="M4449 3445 c-14 -8 -31 -27 -38 -42 -11 -26 -1 -52 124 -328 75 -165
13
+ 145 -309 156 -320 19 -19 36 -20 625 -25 l605 -5 -856 -905 c-470 -498 -873
14
+ -931 -895 -964 -60 -88 -83 -176 -78 -289 6 -112 32 -184 96 -270 87 -115 219
15
+ -201 387 -254 l90 -28 1275 -3 c1256 -2 1275 -2 1307 18 18 10 35 30 38 43 8
16
+ 28 -244 599 -281 637 l-24 25 -797 5 -796 5 924 974 c526 554 944 1003 971
17
+ 1042 69 101 90 165 96 287 4 100 3 105 -27 167 -54 109 -161 188 -307 225 -75
18
+ 19 -114 20 -1323 20 -1057 -1 -1250 -3 -1272 -15z"/>
19
+ </g></svg></svg>
@@ -0,0 +1,19 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="800" height="800" viewBox="0 0 800 800">
2
+ <svg x="60" y="240.8" width="680" height="318.4" viewBox="0 0 739 346">
3
+ <g transform="translate(0,346) scale(0.1,-0.1)" fill="#2F6BFF">
4
+ <path d="M43 3440 c-18 -11 -35 -31 -39 -45 -5 -19 158 -383 752 -1685 416
5
+ -913 766 -1668 777 -1677 18 -17 57 -18 501 -21 455 -2 483 -1 511 16 27 17
6
+ 76 128 449 1013 230 547 422 998 426 1002 4 4 103 -164 220 -375 117 -211 220
7
+ -391 228 -400 8 -10 30 -22 48 -27 66 -18 90 -2 254 171 84 90 229 243 322
8
+ 340 122 128 168 183 168 201 0 13 -162 351 -360 750 -310 627 -364 728 -389
9
+ 742 -44 22 -927 23 -970 0 -32 -16 -4 48 -556 -1262 -170 -403 -311 -733 -315
10
+ -733 -3 0 -194 444 -425 986 -372 875 -423 989 -450 1005 -28 18 -59 19 -575
11
+ 19 -524 0 -546 -1 -577 -20z"/>
12
+ <path d="M4449 3445 c-14 -8 -31 -27 -38 -42 -11 -26 -1 -52 124 -328 75 -165
13
+ 145 -309 156 -320 19 -19 36 -20 625 -25 l605 -5 -856 -905 c-470 -498 -873
14
+ -931 -895 -964 -60 -88 -83 -176 -78 -289 6 -112 32 -184 96 -270 87 -115 219
15
+ -201 387 -254 l90 -28 1275 -3 c1256 -2 1275 -2 1307 18 18 10 35 30 38 43 8
16
+ 28 -244 599 -281 637 l-24 25 -797 5 -796 5 924 974 c526 554 944 1003 971
17
+ 1042 69 101 90 165 96 287 4 100 3 105 -27 167 -54 109 -161 188 -307 225 -75
18
+ 19 -114 20 -1323 20 -1057 -1 -1250 -3 -1272 -15z"/>
19
+ </g></svg></svg>
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@webzzconnect/n8n-nodes-webzzconnect",
3
+ "version": "0.5.0",
4
+ "description": "n8n community node for WebzzConnect: contacts, deals, conversations, WhatsApp templates and instant triggers.",
5
+ "license": "MIT",
6
+ "homepage": "https://api-connect.webzz.cloud",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/WebzzConnect/n8n-nodes-webzzconnect.git"
10
+ },
11
+ "bugs": {
12
+ "url": "https://github.com/WebzzConnect/n8n-nodes-webzzconnect/issues"
13
+ },
14
+ "keywords": [
15
+ "n8n-community-node-package",
16
+ "webzzconnect",
17
+ "crm",
18
+ "whatsapp",
19
+ "chatbot"
20
+ ],
21
+ "author": {
22
+ "name": "Webzz",
23
+ "email": "support@webzz.cloud"
24
+ },
25
+ "scripts": {
26
+ "build": "n8n-node build",
27
+ "build:watch": "tsc --watch",
28
+ "dev": "n8n-node dev",
29
+ "lint": "n8n-node lint",
30
+ "lint:fix": "n8n-node lint --fix",
31
+ "release": "n8n-node release",
32
+ "prepublishOnly": "n8n-node prerelease",
33
+ "test": "node --test test/"
34
+ },
35
+ "files": [
36
+ "dist"
37
+ ],
38
+ "n8n": {
39
+ "n8nNodesApiVersion": 1,
40
+ "strict": true,
41
+ "credentials": [
42
+ "dist/credentials/WebzzConnectApi.credentials.js",
43
+ "dist/credentials/WebzzConnectOAuth2Api.credentials.js"
44
+ ],
45
+ "nodes": [
46
+ "dist/nodes/WebzzConnect/WebzzConnect.node.js",
47
+ "dist/nodes/WebzzConnectTrigger/WebzzConnectTrigger.node.js"
48
+ ]
49
+ },
50
+ "devDependencies": {
51
+ "@n8n/node-cli": "0.52.3",
52
+ "eslint": "9.32.0",
53
+ "prettier": "3.6.2",
54
+ "release-it": "^21.1.0",
55
+ "typescript": "5.9.2"
56
+ },
57
+ "peerDependencies": {
58
+ "n8n-workflow": "*"
59
+ },
60
+ "publishConfig": {
61
+ "access": "public",
62
+ "provenance": true
63
+ }
64
+ }