@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.
- package/dist/nodes/Reply/Reply.node.d.ts +6 -1
- package/dist/nodes/Reply/Reply.node.js +21 -0
- package/dist/nodes/Reply/Reply.node.js.map +1 -1
- package/dist/nodes/Reply/ReplyTrigger.node.js +281 -126
- package/dist/nodes/Reply/ReplyTrigger.node.js.map +1 -1
- package/dist/nodes/Reply/actions/contactStatus/index.js +1 -2
- package/dist/nodes/Reply/actions/contactStatus/index.js.map +1 -1
- package/dist/nodes/Reply/actions/contactStatus/statusHelper.js +8 -4
- package/dist/nodes/Reply/actions/contactStatus/statusHelper.js.map +1 -1
- package/dist/nodes/Reply/actions/sequence/addContact.operation.js +12 -27
- package/dist/nodes/Reply/actions/sequence/addContact.operation.js.map +1 -1
- package/dist/nodes/Reply/actions/sequence/index.js +23 -41
- package/dist/nodes/Reply/actions/sequence/index.js.map +1 -1
- package/dist/nodes/Reply/utils/constants.d.ts +36 -49
- package/dist/nodes/Reply/utils/constants.js +37 -30
- package/dist/nodes/Reply/utils/constants.js.map +1 -1
- package/dist/nodes/Reply/utils/validation.d.ts +0 -10
- package/dist/nodes/Reply/utils/validation.js +0 -43
- package/dist/nodes/Reply/utils/validation.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/nodes/Reply/triggers/filters.d.ts +0 -6
- package/dist/nodes/Reply/triggers/filters.js +0 -53
- package/dist/nodes/Reply/triggers/filters.js.map +0 -1
|
@@ -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":";;;
|
|
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: '
|
|
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: '
|
|
42
|
-
name: '
|
|
43
|
-
type: '
|
|
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: '
|
|
57
|
-
value:
|
|
58
|
-
description: '
|
|
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: '
|
|
62
|
-
value:
|
|
63
|
-
description: '
|
|
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: '
|
|
67
|
-
value:
|
|
68
|
-
description: '
|
|
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: '
|
|
72
|
-
value:
|
|
73
|
-
description: '
|
|
88
|
+
name: 'LinkedIn Events',
|
|
89
|
+
value: 'LinkedIn',
|
|
90
|
+
description: 'LinkedIn outreach events',
|
|
91
|
+
action: 'On LinkedIn events',
|
|
74
92
|
},
|
|
75
93
|
{
|
|
76
|
-
name: '
|
|
77
|
-
value:
|
|
78
|
-
description: '
|
|
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.
|
|
83
|
-
description: 'Email delivery failed
|
|
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.
|
|
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.
|
|
93
|
-
description: 'Email opened
|
|
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.
|
|
98
|
-
description: 'First reply
|
|
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.
|
|
103
|
-
description: 'Email sent
|
|
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: '
|
|
107
|
-
value: constants_1.
|
|
108
|
-
description: '
|
|
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
|
|
112
|
-
value: constants_1.LINKEDIN_EVENTS.
|
|
113
|
-
description: 'Connection request
|
|
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.
|
|
118
|
-
description: 'First LinkedIn reply
|
|
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.
|
|
123
|
-
|
|
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.
|
|
128
|
-
|
|
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: '
|
|
139
|
-
name: '
|
|
140
|
-
type: '
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
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: '
|
|
153
|
-
name: '
|
|
154
|
-
type: '
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
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: '
|
|
161
|
-
name: '
|
|
162
|
-
type: '
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
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
|
|
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
|
|
196
|
-
|
|
197
|
-
|
|
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
|
|
204
|
-
const
|
|
205
|
-
const
|
|
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
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
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":";;;AAQA,+CAAmD;AAEnD
|
|
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'],
|