@replyio/n8n-nodes-reply 0.2.0 → 0.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.
@@ -1,5 +1,10 @@
1
- import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
1
+ import type { IExecuteFunctions, ILoadOptionsFunctions, INodeExecutionData, INodeListSearchResult, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
2
  export declare class Reply implements INodeType {
3
3
  description: INodeTypeDescription;
4
+ methods: {
5
+ listSearch: {
6
+ searchSequences(this: ILoadOptionsFunctions, filter?: string): Promise<INodeListSearchResult>;
7
+ };
8
+ };
4
9
  execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
10
  }
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Reply = void 0;
4
4
  const n8n_workflow_1 = require("n8n-workflow");
5
+ const GenericFunctions_1 = require("./utils/GenericFunctions");
5
6
  const router_1 = require("./actions/router");
6
7
  const contact_1 = require("./actions/contact");
7
8
  const contactStatus_1 = require("./actions/contactStatus");
@@ -55,6 +56,26 @@ class Reply {
55
56
  ...sequence_1.description,
56
57
  ],
57
58
  };
59
+ this.methods = {
60
+ listSearch: {
61
+ async searchSequences(filter) {
62
+ const response = (await GenericFunctions_1.replyApiRequest.call(this, 'GET', '/v3/sequences', undefined, { top: 100 }));
63
+ const sequences = response.items || [];
64
+ const results = sequences
65
+ .filter((seq) => {
66
+ if (!filter)
67
+ return true;
68
+ const name = seq.name || '';
69
+ return name.toLowerCase().includes(filter.toLowerCase());
70
+ })
71
+ .map((seq) => ({
72
+ name: seq.name || `Sequence ${seq.id}`,
73
+ value: seq.id,
74
+ }));
75
+ return { results };
76
+ },
77
+ },
78
+ };
58
79
  }
59
80
  async execute() {
60
81
  return router_1.router.call(this);
@@ -1 +1 @@
1
- {"version":3,"file":"Reply.node.js","sourceRoot":"","sources":["../../../nodes/Reply/Reply.node.ts"],"names":[],"mappings":";;;AAMA,+CAAmD;AAEnD,6CAA0C;AAC1C,+CAAsE;AACtE,2DAAkF;AAClF,iDAAwE;AAExE,MAAa,KAAK;IAAlB;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,OAAO;YACpB,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,IAAI,EAAE,iCAAiC,EAAE;YACtF,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,8DAA8D;YACxE,WAAW,EAAE,4BAA4B;YACzC,QAAQ,EAAE;gBACT,IAAI,EAAE,OAAO;aACb;YACD,MAAM,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YAClC,OAAO,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YACnC,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,UAAU,EAAE;gBACX;oBACC,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,SAAS;4BACf,KAAK,EAAE,SAAS;yBAChB;wBACD;4BACC,IAAI,EAAE,gBAAgB;4BACtB,KAAK,EAAE,eAAe;yBACtB;wBACD;4BACC,IAAI,EAAE,UAAU;4BAChB,KAAK,EAAE,UAAU;yBACjB;qBACD;oBACD,OAAO,EAAE,SAAS;iBAClB;gBACD,GAAG,qBAAkB;gBACrB,GAAG,2BAAwB;gBAC3B,GAAG,sBAAmB;aACtB;SACD,CAAC;IAKH,CAAC;IAHA,KAAK,CAAC,OAAO;QACZ,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACD;AApDD,sBAoDC"}
1
+ {"version":3,"file":"Reply.node.js","sourceRoot":"","sources":["../../../nodes/Reply/Reply.node.ts"],"names":[],"mappings":";;;AAUA,+CAAmD;AAEnD,+DAA2D;AAE3D,6CAA0C;AAC1C,+CAAsE;AACtE,2DAAkF;AAClF,iDAAwE;AAExE,MAAa,KAAK;IAAlB;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,OAAO;YACpB,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,IAAI,EAAE,iCAAiC,EAAE;YACtF,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,8DAA8D;YACxE,WAAW,EAAE,4BAA4B;YACzC,QAAQ,EAAE;gBACT,IAAI,EAAE,OAAO;aACb;YACD,MAAM,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YAClC,OAAO,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YACnC,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,UAAU,EAAE;gBACX;oBACC,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,SAAS;4BACf,KAAK,EAAE,SAAS;yBAChB;wBACD;4BACC,IAAI,EAAE,gBAAgB;4BACtB,KAAK,EAAE,eAAe;yBACtB;wBACD;4BACC,IAAI,EAAE,UAAU;4BAChB,KAAK,EAAE,UAAU;yBACjB;qBACD;oBACD,OAAO,EAAE,SAAS;iBAClB;gBACD,GAAG,qBAAkB;gBACrB,GAAG,2BAAwB;gBAC3B,GAAG,sBAAmB;aACtB;SACD,CAAC;QAEF,YAAO,GAAG;YACT,UAAU,EAAE;gBACX,KAAK,CAAC,eAAe,CAEpB,MAAe;oBAEf,MAAM,QAAQ,GAAG,CAAC,MAAM,kCAAe,CAAC,IAAI,CAC3C,IAAI,EACJ,KAAK,EACL,eAAe,EACf,SAAS,EACT,EAAE,GAAG,EAAE,GAAG,EAAE,CACZ,CAAgB,CAAC;oBAElB,MAAM,SAAS,GAAI,QAAQ,CAAC,KAAuB,IAAI,EAAE,CAAC;oBAE1D,MAAM,OAAO,GAA2B,SAAS;yBAC/C,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;wBACf,IAAI,CAAC,MAAM;4BAAE,OAAO,IAAI,CAAC;wBACzB,MAAM,IAAI,GAAI,GAAG,CAAC,IAAe,IAAI,EAAE,CAAC;wBACxC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;oBAC1D,CAAC,CAAC;yBACD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;wBACd,IAAI,EAAG,GAAG,CAAC,IAAe,IAAI,YAAY,GAAG,CAAC,EAAE,EAAE;wBAClD,KAAK,EAAE,GAAG,CAAC,EAAY;qBACvB,CAAC,CAAC,CAAC;oBAEL,OAAO,EAAE,OAAO,EAAE,CAAC;gBACpB,CAAC;aACD;SACD,CAAC;IAKH,CAAC;IAHA,KAAK,CAAC,OAAO;QACZ,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACD;AApFD,sBAoFC"}
@@ -2,10 +2,32 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ReplyTrigger = void 0;
4
4
  const n8n_workflow_1 = require("n8n-workflow");
5
- const filters_1 = require("./triggers/filters");
6
5
  const GenericFunctions_1 = require("./utils/GenericFunctions");
7
- const validation_1 = require("./utils/validation");
8
6
  const constants_1 = require("./utils/constants");
7
+ function expandEvents(events) {
8
+ if (events.includes(constants_1.SELECT_ALL_VALUES.ALL)) {
9
+ return [...constants_1.ALL_TRIGGER_EVENTS];
10
+ }
11
+ const expanded = [];
12
+ for (const event of events) {
13
+ if (event === constants_1.SELECT_ALL_VALUES.EMAIL) {
14
+ expanded.push(...constants_1.ALL_EMAIL_EVENTS);
15
+ }
16
+ else if (event === constants_1.SELECT_ALL_VALUES.LINKEDIN) {
17
+ expanded.push(...constants_1.ALL_LINKEDIN_EVENTS);
18
+ }
19
+ else if (event === constants_1.SELECT_ALL_VALUES.SEQUENCE) {
20
+ expanded.push(...constants_1.ALL_SEQUENCE_EVENTS);
21
+ }
22
+ else if (event === constants_1.SELECT_ALL_VALUES.ACCOUNT_HEALTH) {
23
+ expanded.push(...constants_1.ALL_ACCOUNT_HEALTH_EVENTS);
24
+ }
25
+ else {
26
+ expanded.push(event);
27
+ }
28
+ }
29
+ return [...new Set(expanded)];
30
+ }
9
31
  class ReplyTrigger {
10
32
  constructor() {
11
33
  this.description = {
@@ -14,8 +36,8 @@ class ReplyTrigger {
14
36
  icon: { light: 'file:../../icons/reply.svg', dark: 'file:../../icons/reply.dark.svg' },
15
37
  group: ['trigger'],
16
38
  version: 1,
17
- subtitle: '={{$parameter["events"].join(", ")}}',
18
- description: 'Triggers when Reply.io events occur. All events include contact_fields and sequence_fields. See https://apidocs.reply.io for full payload details.',
39
+ subtitle: '={{$parameter["triggerOn"] + ": " + $parameter["events"].join(", ")}}',
40
+ description: 'Starts the workflow when Reply.io events occur',
19
41
  defaults: {
20
42
  name: 'Reply Trigger',
21
43
  },
@@ -38,131 +60,260 @@ class ReplyTrigger {
38
60
  ],
39
61
  properties: [
40
62
  {
41
- displayName: 'Payload Structure',
42
- name: 'payloadNotice',
43
- type: 'notice',
44
- default: '',
45
- description: 'All events include contact_fields (ID, email, name, company) and sequence_fields (ID, step_number). Event-specific fields are listed in each option description below.',
46
- },
47
- {
48
- displayName: 'Events',
49
- name: 'events',
50
- type: 'multiOptions',
63
+ displayName: 'Trigger On',
64
+ name: 'triggerOn',
65
+ type: 'options',
66
+ default: 'All',
51
67
  required: true,
52
- default: [constants_1.EMAIL_EVENTS.REPLIED],
53
- description: 'The events to listen for',
54
68
  options: [
55
69
  {
56
- name: 'Contact Called',
57
- value: constants_1.CONTACT_EVENTS.CALLED,
58
- description: 'Cloud call made or logged. Fields: from_number, duration, recording_url, disposition, resolution.',
70
+ name: 'Account Health Events',
71
+ value: 'AccountHealth',
72
+ description: 'Email account status events',
73
+ action: 'On Account Health events',
59
74
  },
60
75
  {
61
- name: 'Contact Finished',
62
- value: constants_1.CONTACT_EVENTS.FINISHED,
63
- description: 'Prospect finishes sequence. Fields: finished_date, finish_reason (0=Replied, 1=Bounced, 2=Manual, 5=Called, 6=Opt-out, 7=Meeting).',
76
+ name: 'All Events',
77
+ value: 'All',
78
+ description: 'Trigger on any Reply.io event',
79
+ action: 'On All events',
64
80
  },
65
81
  {
66
- name: 'Contact Opted Out',
67
- value: constants_1.CONTACT_EVENTS.OPTED_OUT,
68
- description: 'Person opts out of communication',
82
+ name: 'Email Events',
83
+ value: 'Email',
84
+ description: 'Email sending and tracking events',
85
+ action: 'On Email events',
69
86
  },
70
87
  {
71
- name: 'Email Account Connection Lost',
72
- value: constants_1.ACCOUNT_HEALTH_EVENTS.EMAIL_CONNECTION_LOST,
73
- description: 'Email account connection lost. Fields: email_account_id, email_from.',
88
+ name: 'LinkedIn Events',
89
+ value: 'LinkedIn',
90
+ description: 'LinkedIn outreach events',
91
+ action: 'On LinkedIn events',
74
92
  },
75
93
  {
76
- name: 'Email Account Error',
77
- value: constants_1.ACCOUNT_HEALTH_EVENTS.EMAIL_ERROR,
78
- description: 'Email provider error. Fields: email_account_id, email_account_error.',
94
+ name: 'Sequence Events',
95
+ value: 'Sequence',
96
+ description: 'Contact lifecycle events',
97
+ action: 'On Sequence events',
98
+ },
99
+ ],
100
+ },
101
+ {
102
+ displayName: 'Events',
103
+ name: 'events',
104
+ type: 'multiOptions',
105
+ required: true,
106
+ default: [constants_1.SELECT_ALL_VALUES.ALL],
107
+ displayOptions: {
108
+ show: {
109
+ triggerOn: ['All'],
110
+ },
111
+ },
112
+ options: [
113
+ {
114
+ name: '*',
115
+ value: constants_1.SELECT_ALL_VALUES.ALL,
116
+ description: 'All events across all categories',
117
+ action: 'On All events',
118
+ },
119
+ ],
120
+ },
121
+ {
122
+ displayName: 'Events',
123
+ name: 'events',
124
+ type: 'multiOptions',
125
+ required: true,
126
+ default: [],
127
+ displayOptions: {
128
+ show: {
129
+ triggerOn: ['Email'],
130
+ },
131
+ },
132
+ options: [
133
+ {
134
+ name: '*',
135
+ value: constants_1.SELECT_ALL_VALUES.EMAIL,
136
+ description: 'All email events',
137
+ action: 'On All Email events',
79
138
  },
80
139
  {
81
140
  name: 'Email Bounced',
82
- value: constants_1.EMAIL_EVENTS.BOUNCED,
83
- description: 'Email delivery failed. Fields: bounce_type (Hard/Soft), bounce_date, sent_email_id.',
141
+ value: constants_1.EMAIL_EVENTS.EMAIL_BOUNCED,
142
+ description: 'Email delivery failed',
143
+ action: 'On email bounced',
84
144
  },
85
145
  {
86
146
  name: 'Email Link Clicked',
87
- value: constants_1.EMAIL_EVENTS.LINK_CLICKED,
147
+ value: constants_1.EMAIL_EVENTS.EMAIL_LINK_CLICKED,
88
148
  description: 'Link clicked in email',
149
+ action: 'On email link clicked',
89
150
  },
90
151
  {
91
152
  name: 'Email Opened',
92
- value: constants_1.EMAIL_EVENTS.OPENED,
93
- description: 'Email opened. Fields: email_open_date, sent_email_id, opens_count.',
153
+ value: constants_1.EMAIL_EVENTS.EMAIL_OPENED,
154
+ description: 'Email opened by recipient',
155
+ action: 'On email opened',
94
156
  },
95
157
  {
96
158
  name: 'Email Replied',
97
- value: constants_1.EMAIL_EVENTS.REPLIED,
98
- description: 'First reply or status set to Replied. Fields: reply_message_id, reply_date, reason (1=Email, 2=Manual).',
159
+ value: constants_1.EMAIL_EVENTS.EMAIL_REPLIED,
160
+ description: 'First reply received',
161
+ action: 'On email replied',
99
162
  },
100
163
  {
101
164
  name: 'Email Sent',
102
- value: constants_1.EMAIL_EVENTS.SENT,
103
- description: 'Email sent. Fields: sent_email_date, sent_email_id, email_account_id, sent_message_url.',
165
+ value: constants_1.EMAIL_EVENTS.EMAIL_SENT,
166
+ description: 'Email sent to recipient',
167
+ action: 'On email sent',
104
168
  },
105
169
  {
106
- name: 'LinkedIn Connection Request Accepted',
107
- value: constants_1.LINKEDIN_EVENTS.CONNECTION_REQUEST_ACCEPTED,
108
- description: 'Connection request accepted. Fields: sender_linkedin_account_id.',
170
+ name: 'Reply Categorized',
171
+ value: constants_1.EMAIL_EVENTS.REPLY_CATEGORIZED,
172
+ description: 'Email reply categorized in inbox',
173
+ action: 'On reply categorized',
174
+ },
175
+ ],
176
+ },
177
+ {
178
+ displayName: 'Events',
179
+ name: 'events',
180
+ type: 'multiOptions',
181
+ required: true,
182
+ default: [],
183
+ displayOptions: {
184
+ show: {
185
+ triggerOn: ['LinkedIn'],
186
+ },
187
+ },
188
+ options: [
189
+ {
190
+ name: '*',
191
+ value: constants_1.SELECT_ALL_VALUES.LINKEDIN,
192
+ description: 'All LinkedIn events',
193
+ action: 'On All LinkedIn events',
109
194
  },
110
195
  {
111
- name: 'LinkedIn Connection Request Sent',
112
- value: constants_1.LINKEDIN_EVENTS.CONNECTION_REQUEST_SENT,
113
- description: 'Connection request sent. Fields: sender_linkedin_account_id, initial_message.',
196
+ name: 'LinkedIn Connection Accepted',
197
+ value: constants_1.LINKEDIN_EVENTS.LINKEDIN_CONNECTION_REQUEST_ACCEPTED,
198
+ description: 'Connection request accepted',
199
+ action: 'On LinkedIn connection accepted',
200
+ },
201
+ {
202
+ name: 'LinkedIn Connection Sent',
203
+ value: constants_1.LINKEDIN_EVENTS.LINKEDIN_CONNECTION_REQUEST_SENT,
204
+ description: 'Connection request sent',
205
+ action: 'On LinkedIn connection sent',
114
206
  },
115
207
  {
116
208
  name: 'LinkedIn Message Replied',
117
- value: constants_1.LINKEDIN_EVENTS.MESSAGE_REPLIED,
118
- description: 'First LinkedIn reply. Fields: sender_linkedin_account_id, sequence_name, linkedin_message_id.',
209
+ value: constants_1.LINKEDIN_EVENTS.LINKEDIN_MESSAGE_REPLIED,
210
+ description: 'First LinkedIn reply received',
211
+ action: 'On LinkedIn message replied',
119
212
  },
120
213
  {
121
214
  name: 'LinkedIn Message Sent',
122
- value: constants_1.LINKEDIN_EVENTS.MESSAGE_SENT,
123
- description: 'LinkedIn message sent. Fields: is_inmail (true/false), sender_linkedin_account_id, initial_message.',
215
+ value: constants_1.LINKEDIN_EVENTS.LINKEDIN_MESSAGE_SENT,
216
+ action: 'On LinkedIn message sent',
124
217
  },
125
218
  {
126
219
  name: 'LinkedIn Reply Categorized',
127
- value: constants_1.LINKEDIN_EVENTS.REPLY_CATEGORIZED,
128
- description: 'LinkedIn reply categorized with inbox category',
129
- },
130
- {
131
- name: 'Reply Categorized',
132
- value: constants_1.REPLY_EVENTS.CATEGORIZED,
133
- description: 'Email reply categorized (not for Uncategorized). Note: sequence_fields.ID empty after first reply.',
220
+ value: constants_1.LINKEDIN_EVENTS.LINKEDIN_REPLY_CATEGORIZED,
221
+ action: 'On LinkedIn reply categorized',
134
222
  },
135
223
  ],
136
224
  },
137
225
  {
138
- displayName: 'Include Email URL',
139
- name: 'includeEmailUrl',
140
- type: 'boolean',
141
- default: false,
142
- description: 'Whether to include the email URL in the webhook payload',
143
- },
144
- {
145
- displayName: 'Include Prospect Custom Fields',
146
- name: 'includeProspectCustomFields',
147
- type: 'boolean',
148
- default: false,
149
- description: 'Whether to include prospect custom fields in the webhook payload',
226
+ displayName: 'Events',
227
+ name: 'events',
228
+ type: 'multiOptions',
229
+ required: true,
230
+ default: [],
231
+ displayOptions: {
232
+ show: {
233
+ triggerOn: ['Sequence'],
234
+ },
235
+ },
236
+ options: [
237
+ {
238
+ name: '*',
239
+ value: constants_1.SELECT_ALL_VALUES.SEQUENCE,
240
+ description: 'All sequence events',
241
+ action: 'On All Sequence events',
242
+ },
243
+ {
244
+ name: 'Contact Called',
245
+ value: constants_1.SEQUENCE_EVENTS.CONTACT_CALLED,
246
+ description: 'Cloud call made or logged',
247
+ action: 'On contact called',
248
+ },
249
+ {
250
+ name: 'Contact Finished',
251
+ value: constants_1.SEQUENCE_EVENTS.CONTACT_FINISHED,
252
+ description: 'Contact finished sequence',
253
+ action: 'On contact finished',
254
+ },
255
+ {
256
+ name: 'Contact Opted Out',
257
+ value: constants_1.SEQUENCE_EVENTS.CONTACT_OPTED_OUT,
258
+ description: 'Contact opted out of communication',
259
+ action: 'On contact opted out',
260
+ },
261
+ ],
150
262
  },
151
263
  {
152
- displayName: 'Sequence IDs',
153
- name: 'sequenceIds',
154
- type: 'string',
155
- default: '',
156
- description: 'Filter events by sequence IDs (comma-separated). Leave empty to receive events from all sequences.',
157
- placeholder: 'e.g., 123, 456, 789',
264
+ displayName: 'Events',
265
+ name: 'events',
266
+ type: 'multiOptions',
267
+ required: true,
268
+ default: [],
269
+ displayOptions: {
270
+ show: {
271
+ triggerOn: ['AccountHealth'],
272
+ },
273
+ },
274
+ options: [
275
+ {
276
+ name: '*',
277
+ value: constants_1.SELECT_ALL_VALUES.ACCOUNT_HEALTH,
278
+ description: 'All account health events',
279
+ action: 'On All Account Health events',
280
+ },
281
+ {
282
+ name: 'Email Account Connection Lost',
283
+ value: constants_1.ACCOUNT_HEALTH_EVENTS.EMAIL_CONNECTION_LOST,
284
+ description: 'Email account disconnected',
285
+ action: 'On email account connection lost',
286
+ },
287
+ {
288
+ name: 'Email Account Error',
289
+ value: constants_1.ACCOUNT_HEALTH_EVENTS.EMAIL_ERROR,
290
+ description: 'Email account error occurred',
291
+ action: 'On email account error',
292
+ },
293
+ ],
158
294
  },
159
295
  {
160
- displayName: 'Email Accounts',
161
- name: 'emailAccounts',
162
- type: 'string',
163
- default: '',
164
- description: 'Filter events by email accounts (comma-separated). Leave empty to monitor all accounts.',
165
- placeholder: 'e.g., sales@company.com, outreach@company.com',
296
+ displayName: 'Options',
297
+ name: 'options',
298
+ type: 'collection',
299
+ placeholder: 'Add Option',
300
+ default: {},
301
+ options: [
302
+ {
303
+ displayName: 'Include Email URL',
304
+ name: 'includeEmailUrl',
305
+ type: 'boolean',
306
+ default: false,
307
+ description: 'Whether to include the email URL in the webhook payload',
308
+ },
309
+ {
310
+ displayName: 'Include Prospect Custom Fields',
311
+ name: 'includeProspectCustomFields',
312
+ type: 'boolean',
313
+ default: false,
314
+ description: 'Whether to include prospect custom fields in the webhook payload',
315
+ },
316
+ ],
166
317
  },
167
318
  ],
168
319
  };
@@ -171,7 +322,8 @@ class ReplyTrigger {
171
322
  async checkExists() {
172
323
  const webhookData = this.getWorkflowStaticData('node');
173
324
  const webhookUrl = this.getNodeWebhookUrl('default');
174
- const events = this.getNodeParameter('events', []);
325
+ const rawEvents = this.getNodeParameter('events', []);
326
+ const events = expandEvents(rawEvents);
175
327
  const registeredEvents = webhookData.registeredEvents || [];
176
328
  const registeredWebhookIds = webhookData.webhookIds || [];
177
329
  if (registeredWebhookIds.length === 0 || registeredEvents.length === 0) {
@@ -192,32 +344,59 @@ class ReplyTrigger {
192
344
  catch {
193
345
  return false;
194
346
  }
195
- const existingUrls = existingWebhooks
196
- .filter((wh) => events.includes(String(wh.event)))
197
- .map((wh) => wh.url);
198
- return existingUrls.includes(webhookUrl);
347
+ const activeWebhooksForEvents = existingWebhooks.filter((wh) => events.includes(String(wh.event)) && wh.url === webhookUrl && !wh.isDisabled);
348
+ const eventsWithActiveWebhook = activeWebhooksForEvents.map((wh) => String(wh.event));
349
+ return events.every((e) => eventsWithActiveWebhook.includes(e));
199
350
  },
200
351
  async create() {
201
352
  const webhookData = this.getWorkflowStaticData('node');
202
353
  const webhookUrl = this.getNodeWebhookUrl('default');
203
- const events = this.getNodeParameter('events', []);
204
- const includeEmailUrl = this.getNodeParameter('includeEmailUrl', false);
205
- const includeProspectCustomFields = this.getNodeParameter('includeProspectCustomFields', false);
354
+ const rawEvents = this.getNodeParameter('events', []);
355
+ const events = expandEvents(rawEvents);
356
+ const options = this.getNodeParameter('options', {});
357
+ const includeEmailUrl = options.includeEmailUrl || false;
358
+ const includeProspectCustomFields = options.includeProspectCustomFields || false;
359
+ let existingWebhooks = [];
360
+ try {
361
+ const response = await GenericFunctions_1.replyWebhookApiRequest.call(this, 'GET', '/v2/webhooks');
362
+ existingWebhooks =
363
+ (response === null || response === void 0 ? void 0 : response.items) ||
364
+ response ||
365
+ [];
366
+ }
367
+ catch {
368
+ existingWebhooks = [];
369
+ }
206
370
  const webhookIds = [];
207
371
  for (const event of events) {
208
- const body = {
209
- event,
210
- url: webhookUrl,
211
- isDisabled: false,
212
- payload: {
213
- includeEmailUrl,
214
- includeProspectCustomFields,
215
- },
216
- };
217
- const response = await GenericFunctions_1.replyWebhookApiRequest.call(this, 'POST', '/v2/webhooks', body);
218
- const webhookId = response === null || response === void 0 ? void 0 : response.id;
219
- if (webhookId) {
220
- webhookIds.push(String(webhookId));
372
+ const existingWebhook = existingWebhooks.find((wh) => wh.event === event && wh.url === webhookUrl);
373
+ if (existingWebhook && existingWebhook.id) {
374
+ if (existingWebhook.isDisabled) {
375
+ await GenericFunctions_1.replyWebhookApiRequest.call(this, 'PATCH', `/v2/webhooks/${existingWebhook.id}`, {
376
+ isDisabled: false,
377
+ payload: {
378
+ includeEmailUrl,
379
+ includeProspectCustomFields,
380
+ },
381
+ });
382
+ }
383
+ webhookIds.push(String(existingWebhook.id));
384
+ }
385
+ else {
386
+ const body = {
387
+ event,
388
+ url: webhookUrl,
389
+ isDisabled: false,
390
+ payload: {
391
+ includeEmailUrl,
392
+ includeProspectCustomFields,
393
+ },
394
+ };
395
+ const response = await GenericFunctions_1.replyWebhookApiRequest.call(this, 'POST', '/v2/webhooks', body);
396
+ const webhookId = response === null || response === void 0 ? void 0 : response.id;
397
+ if (webhookId) {
398
+ webhookIds.push(String(webhookId));
399
+ }
221
400
  }
222
401
  }
223
402
  webhookData.webhookIds = webhookIds;
@@ -238,31 +417,7 @@ class ReplyTrigger {
238
417
  };
239
418
  }
240
419
  async webhook() {
241
- var _a;
242
420
  const bodyData = this.getBodyData();
243
- const selectedEvents = this.getNodeParameter('events', []);
244
- const sequenceIdsRaw = this.getNodeParameter('sequenceIds', '');
245
- const emailAccountsRaw = this.getNodeParameter('emailAccounts', '');
246
- const eventType = ((_a = bodyData.event) === null || _a === void 0 ? void 0 : _a.type) || bodyData.eventType || '';
247
- if (selectedEvents.length > 0 && !selectedEvents.includes(eventType)) {
248
- return {
249
- noWebhookResponse: true,
250
- };
251
- }
252
- const sequenceIds = sequenceIdsRaw
253
- .split(',')
254
- .map((s) => parseInt(s.trim(), 10))
255
- .filter((n) => !isNaN(n));
256
- const emailAccounts = emailAccountsRaw
257
- .split(',')
258
- .map((s) => s.trim())
259
- .filter((s) => s.length > 0);
260
- const filters = (0, validation_1.validateTriggerFilters)({ sequenceIds, emailAccounts });
261
- if (!(0, filters_1.matchesTriggerFilters)(bodyData, filters)) {
262
- return {
263
- noWebhookResponse: true,
264
- };
265
- }
266
421
  return {
267
422
  workflowData: [[{ json: bodyData }]],
268
423
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ReplyTrigger.node.js","sourceRoot":"","sources":["../../../nodes/Reply/ReplyTrigger.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReplyTrigger.node.js","sourceRoot":"","sources":["../../../nodes/Reply/ReplyTrigger.node.ts"],"names":[],"mappings":";;;AAQA,+CAAmD;AAEnD,+DAAkE;AAClE,iDAW2B;AAE3B,SAAS,YAAY,CAAC,MAAgB;IACrC,IAAI,MAAM,CAAC,QAAQ,CAAC,6BAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,GAAG,8BAAkB,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,IAAI,KAAK,KAAK,6BAAiB,CAAC,KAAK,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC,GAAG,4BAAgB,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,KAAK,KAAK,6BAAiB,CAAC,QAAQ,EAAE,CAAC;YACjD,QAAQ,CAAC,IAAI,CAAC,GAAG,+BAAmB,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,KAAK,KAAK,6BAAiB,CAAC,QAAQ,EAAE,CAAC;YACjD,QAAQ,CAAC,IAAI,CAAC,GAAG,+BAAmB,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,KAAK,KAAK,6BAAiB,CAAC,cAAc,EAAE,CAAC;YACvD,QAAQ,CAAC,IAAI,CAAC,GAAG,qCAAyB,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACP,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACF,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,MAAa,YAAY;IAAzB;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,eAAe;YAC5B,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,IAAI,EAAE,iCAAiC,EAAE;YACtF,KAAK,EAAE,CAAC,SAAS,CAAC;YAClB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,uEAAuE;YACjF,WAAW,EAAE,gDAAgD;YAC7D,QAAQ,EAAE;gBACT,IAAI,EAAE,eAAe;aACrB;YACD,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YACnC,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,QAAQ,EAAE;gBACT;oBACC,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE,MAAM;oBAClB,YAAY,EAAE,YAAY;oBAC1B,IAAI,EAAE,SAAS;iBACf;aACD;YACD,UAAU,EAAE;gBACX;oBACC,WAAW,EAAE,YAAY;oBACzB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,uBAAuB;4BAC7B,KAAK,EAAE,eAAe;4BACtB,WAAW,EAAE,6BAA6B;4BAC1C,MAAM,EAAE,0BAA0B;yBAClC;wBACD;4BACC,IAAI,EAAE,YAAY;4BAClB,KAAK,EAAE,KAAK;4BACZ,WAAW,EAAE,+BAA+B;4BAC5C,MAAM,EAAE,eAAe;yBACvB;wBACD;4BACC,IAAI,EAAE,cAAc;4BACpB,KAAK,EAAE,OAAO;4BACd,WAAW,EAAE,mCAAmC;4BAChD,MAAM,EAAE,iBAAiB;yBACzB;wBACD;4BACC,IAAI,EAAE,iBAAiB;4BACvB,KAAK,EAAE,UAAU;4BACjB,WAAW,EAAE,0BAA0B;4BACvC,MAAM,EAAE,oBAAoB;yBAC5B;wBACD;4BACC,IAAI,EAAE,iBAAiB;4BACvB,KAAK,EAAE,UAAU;4BACjB,WAAW,EAAE,0BAA0B;4BACvC,MAAM,EAAE,oBAAoB;yBAC5B;qBACD;iBACD;gBACD;oBACC,WAAW,EAAE,QAAQ;oBACrB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,cAAc;oBACpB,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,CAAC,6BAAiB,CAAC,GAAG,CAAC;oBAChC,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,SAAS,EAAE,CAAC,KAAK,CAAC;yBAClB;qBACD;oBACD,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,GAAG;4BACT,KAAK,EAAE,6BAAiB,CAAC,GAAG;4BAC5B,WAAW,EAAE,kCAAkC;4BAC/C,MAAM,EAAE,eAAe;yBACvB;qBACD;iBACD;gBACD;oBACC,WAAW,EAAE,QAAQ;oBACrB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,cAAc;oBACpB,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,EAAE;oBACX,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,SAAS,EAAE,CAAC,OAAO,CAAC;yBACpB;qBACD;oBACD,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,GAAG;4BACT,KAAK,EAAE,6BAAiB,CAAC,KAAK;4BAC9B,WAAW,EAAE,kBAAkB;4BAC/B,MAAM,EAAE,qBAAqB;yBAC7B;wBACD;4BACC,IAAI,EAAE,eAAe;4BACrB,KAAK,EAAE,wBAAY,CAAC,aAAa;4BACjC,WAAW,EAAE,uBAAuB;4BACpC,MAAM,EAAE,kBAAkB;yBAC1B;wBACD;4BACC,IAAI,EAAE,oBAAoB;4BAC1B,KAAK,EAAE,wBAAY,CAAC,kBAAkB;4BACtC,WAAW,EAAE,uBAAuB;4BACpC,MAAM,EAAE,uBAAuB;yBAC/B;wBACD;4BACC,IAAI,EAAE,cAAc;4BACpB,KAAK,EAAE,wBAAY,CAAC,YAAY;4BAChC,WAAW,EAAE,2BAA2B;4BACxC,MAAM,EAAE,iBAAiB;yBACzB;wBACD;4BACC,IAAI,EAAE,eAAe;4BACrB,KAAK,EAAE,wBAAY,CAAC,aAAa;4BACjC,WAAW,EAAE,sBAAsB;4BACnC,MAAM,EAAE,kBAAkB;yBAC1B;wBACD;4BACC,IAAI,EAAE,YAAY;4BAClB,KAAK,EAAE,wBAAY,CAAC,UAAU;4BAC9B,WAAW,EAAE,yBAAyB;4BACtC,MAAM,EAAE,eAAe;yBACvB;wBACD;4BACC,IAAI,EAAE,mBAAmB;4BACzB,KAAK,EAAE,wBAAY,CAAC,iBAAiB;4BACrC,WAAW,EAAE,kCAAkC;4BAC/C,MAAM,EAAE,sBAAsB;yBAC9B;qBACD;iBACD;gBACD;oBACC,WAAW,EAAE,QAAQ;oBACrB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,cAAc;oBACpB,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,EAAE;oBACX,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,SAAS,EAAE,CAAC,UAAU,CAAC;yBACvB;qBACD;oBACD,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,GAAG;4BACT,KAAK,EAAE,6BAAiB,CAAC,QAAQ;4BACjC,WAAW,EAAE,qBAAqB;4BAClC,MAAM,EAAE,wBAAwB;yBAChC;wBACD;4BACC,IAAI,EAAE,8BAA8B;4BACpC,KAAK,EAAE,2BAAe,CAAC,oCAAoC;4BAC3D,WAAW,EAAE,6BAA6B;4BAC1C,MAAM,EAAE,iCAAiC;yBACzC;wBACD;4BACC,IAAI,EAAE,0BAA0B;4BAChC,KAAK,EAAE,2BAAe,CAAC,gCAAgC;4BACvD,WAAW,EAAE,yBAAyB;4BACtC,MAAM,EAAE,6BAA6B;yBACrC;wBACD;4BACC,IAAI,EAAE,0BAA0B;4BAChC,KAAK,EAAE,2BAAe,CAAC,wBAAwB;4BAC/C,WAAW,EAAE,+BAA+B;4BAC5C,MAAM,EAAE,6BAA6B;yBACrC;wBACD;4BACC,IAAI,EAAE,uBAAuB;4BAC7B,KAAK,EAAE,2BAAe,CAAC,qBAAqB;4BAE5C,MAAM,EAAE,0BAA0B;yBAClC;wBACD;4BACC,IAAI,EAAE,4BAA4B;4BAClC,KAAK,EAAE,2BAAe,CAAC,0BAA0B;4BAEjD,MAAM,EAAE,+BAA+B;yBACvC;qBACD;iBACD;gBACD;oBACC,WAAW,EAAE,QAAQ;oBACrB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,cAAc;oBACpB,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,EAAE;oBACX,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,SAAS,EAAE,CAAC,UAAU,CAAC;yBACvB;qBACD;oBACD,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,GAAG;4BACT,KAAK,EAAE,6BAAiB,CAAC,QAAQ;4BACjC,WAAW,EAAE,qBAAqB;4BAClC,MAAM,EAAE,wBAAwB;yBAChC;wBACD;4BACC,IAAI,EAAE,gBAAgB;4BACtB,KAAK,EAAE,2BAAe,CAAC,cAAc;4BACrC,WAAW,EAAE,2BAA2B;4BACxC,MAAM,EAAE,mBAAmB;yBAC3B;wBACD;4BACC,IAAI,EAAE,kBAAkB;4BACxB,KAAK,EAAE,2BAAe,CAAC,gBAAgB;4BACvC,WAAW,EAAE,2BAA2B;4BACxC,MAAM,EAAE,qBAAqB;yBAC7B;wBACD;4BACC,IAAI,EAAE,mBAAmB;4BACzB,KAAK,EAAE,2BAAe,CAAC,iBAAiB;4BACxC,WAAW,EAAE,oCAAoC;4BACjD,MAAM,EAAE,sBAAsB;yBAC9B;qBACD;iBACD;gBACD;oBACC,WAAW,EAAE,QAAQ;oBACrB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,cAAc;oBACpB,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,EAAE;oBACX,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,SAAS,EAAE,CAAC,eAAe,CAAC;yBAC5B;qBACD;oBACD,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,GAAG;4BACT,KAAK,EAAE,6BAAiB,CAAC,cAAc;4BACvC,WAAW,EAAE,2BAA2B;4BACxC,MAAM,EAAE,8BAA8B;yBACtC;wBACD;4BACC,IAAI,EAAE,+BAA+B;4BACrC,KAAK,EAAE,iCAAqB,CAAC,qBAAqB;4BAClD,WAAW,EAAE,4BAA4B;4BACzC,MAAM,EAAE,kCAAkC;yBAC1C;wBACD;4BACC,IAAI,EAAE,qBAAqB;4BAC3B,KAAK,EAAE,iCAAqB,CAAC,WAAW;4BACxC,WAAW,EAAE,8BAA8B;4BAC3C,MAAM,EAAE,wBAAwB;yBAChC;qBACD;iBACD;gBACD;oBACC,WAAW,EAAE,SAAS;oBACtB,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,YAAY;oBACzB,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE;wBACR;4BACC,WAAW,EAAE,mBAAmB;4BAChC,IAAI,EAAE,iBAAiB;4BACvB,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,yDAAyD;yBACtE;wBACD;4BACC,WAAW,EAAE,gCAAgC;4BAC7C,IAAI,EAAE,6BAA6B;4BACnC,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,kEAAkE;yBAC/E;qBACD;iBACD;aACD;SACD,CAAC;QAEF,mBAAc,GAAG;YAChB,OAAO,EAAE;gBACR,KAAK,CAAC,WAAW;oBAChB,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;oBACvD,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;oBACrD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,CAAa,CAAC;oBAClE,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;oBAEvC,MAAM,gBAAgB,GAAI,WAAW,CAAC,gBAA6B,IAAI,EAAE,CAAC;oBAC1E,MAAM,oBAAoB,GAAI,WAAW,CAAC,UAAuB,IAAI,EAAE,CAAC;oBAExE,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACxE,OAAO,KAAK,CAAC;oBACd,CAAC;oBAED,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxE,IAAI,CAAC,aAAa,IAAI,gBAAgB,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;wBACjE,OAAO,KAAK,CAAC;oBACd,CAAC;oBAED,IAAI,gBAAgB,GAAkB,EAAE,CAAC;oBACzC,IAAI,CAAC;wBACJ,MAAM,QAAQ,GAAG,MAAM,yCAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;wBAChF,gBAAgB;4BACf,CAAE,QAAwB,aAAxB,QAAQ,uBAAR,QAAQ,CAAkB,KAAuB;gCAClD,QAA0B;gCAC3B,EAAE,CAAC;oBACL,CAAC;oBAAC,MAAM,CAAC;wBACR,OAAO,KAAK,CAAC;oBACd,CAAC;oBAED,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,MAAM,CACtD,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,CACpF,CAAC;oBAEF,MAAM,uBAAuB,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;oBACtF,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjE,CAAC;gBAED,KAAK,CAAC,MAAM;oBACX,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;oBACvD,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;oBACrD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,CAAa,CAAC;oBAClE,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;oBACvC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAgB,CAAC;oBAEpE,MAAM,eAAe,GAAI,OAAO,CAAC,eAA2B,IAAI,KAAK,CAAC;oBACtE,MAAM,2BAA2B,GAC/B,OAAO,CAAC,2BAAuC,IAAI,KAAK,CAAC;oBAE3D,IAAI,gBAAgB,GAAkB,EAAE,CAAC;oBACzC,IAAI,CAAC;wBACJ,MAAM,QAAQ,GAAG,MAAM,yCAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;wBAChF,gBAAgB;4BACf,CAAE,QAAwB,aAAxB,QAAQ,uBAAR,QAAQ,CAAkB,KAAuB;gCAClD,QAA0B;gCAC3B,EAAE,CAAC;oBACL,CAAC;oBAAC,MAAM,CAAC;wBACR,gBAAgB,GAAG,EAAE,CAAC;oBACvB,CAAC;oBAED,MAAM,UAAU,GAAa,EAAE,CAAC;oBAEhC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;wBAC5B,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAC5C,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,IAAI,EAAE,CAAC,GAAG,KAAK,UAAU,CACnD,CAAC;wBAEF,IAAI,eAAe,IAAI,eAAe,CAAC,EAAE,EAAE,CAAC;4BAC3C,IAAI,eAAe,CAAC,UAAU,EAAE,CAAC;gCAChC,MAAM,yCAAsB,CAAC,IAAI,CAChC,IAAI,EACJ,OAAO,EACP,gBAAgB,eAAe,CAAC,EAAE,EAAE,EACpC;oCACC,UAAU,EAAE,KAAK;oCACjB,OAAO,EAAE;wCACR,eAAe;wCACf,2BAA2B;qCAC3B;iCACD,CACD,CAAC;4BACH,CAAC;4BACD,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC7C,CAAC;6BAAM,CAAC;4BACP,MAAM,IAAI,GAAgB;gCACzB,KAAK;gCACL,GAAG,EAAE,UAAU;gCACf,UAAU,EAAE,KAAK;gCACjB,OAAO,EAAE;oCACR,eAAe;oCACf,2BAA2B;iCAC3B;6BACD,CAAC;4BAEF,MAAM,QAAQ,GAAG,MAAM,yCAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;4BACvF,MAAM,SAAS,GAAI,QAAwB,aAAxB,QAAQ,uBAAR,QAAQ,CAAkB,EAAE,CAAC;4BAChD,IAAI,SAAS,EAAE,CAAC;gCACf,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;4BACpC,CAAC;wBACF,CAAC;oBACF,CAAC;oBAED,WAAW,CAAC,UAAU,GAAG,UAAU,CAAC;oBACpC,WAAW,CAAC,gBAAgB,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;oBAE3C,OAAO,IAAI,CAAC;gBACb,CAAC;gBAED,KAAK,CAAC,MAAM;oBACX,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;oBACvD,MAAM,UAAU,GAAI,WAAW,CAAC,UAAuB,IAAI,EAAE,CAAC;oBAE9D,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;wBAC7B,MAAM,yCAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;oBACzE,CAAC;oBAED,OAAO,WAAW,CAAC,UAAU,CAAC;oBAC9B,OAAO,WAAW,CAAC,gBAAgB,CAAC;oBACpC,OAAO,IAAI,CAAC;gBACb,CAAC;aACD;SACD,CAAC;IAQH,CAAC;IANA,KAAK,CAAC,OAAO;QACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAiB,CAAC;QACnD,OAAO;YACN,YAAY,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;SACpC,CAAC;IACH,CAAC;CACD;AAraD,oCAqaC"}
@@ -163,9 +163,8 @@ exports.description = [
163
163
  displayName: 'Sequence ID',
164
164
  name: 'sequenceId',
165
165
  type: 'number',
166
- required: true,
167
166
  default: 0,
168
- description: 'The ID of the sequence where the status change applies',
167
+ description: 'The ID of the sequence where the status change applies. If not provided, applies globally.',
169
168
  displayOptions: {
170
169
  show: {
171
170
  resource: ['contactStatus'],