@camunda/connectors-element-templates 1.0.15 → 1.0.16

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.
@@ -0,0 +1,579 @@
1
+ [
2
+ {
3
+ "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
4
+ "name": "Microsoft O365 Email Message Start Event Connector",
5
+ "id": "io.camunda.connectors.inbound.MSFT.O365.EmailMessageStart.v1",
6
+ "description": "Poll M365 Outlook emails",
7
+ "metadata": {
8
+ "keywords": ["email", "Office365", "Outlook"]
9
+ },
10
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/microsoft-o365-mail-inbound/",
11
+ "version": 1,
12
+ "category": {
13
+ "id": "connectors",
14
+ "name": "Connectors"
15
+ },
16
+ "appliesTo": ["bpmn:StartEvent"],
17
+ "elementType": {
18
+ "value": "bpmn:StartEvent",
19
+ "eventDefinition": "bpmn:MessageEventDefinition"
20
+ },
21
+ "engines": {
22
+ "camunda": "^8.9"
23
+ },
24
+ "groups": [
25
+ {
26
+ "id": "authentication",
27
+ "label": "Authentication"
28
+ },
29
+ {
30
+ "id": "pollingConfig",
31
+ "label": "Listener Information"
32
+ },
33
+ {
34
+ "id": "postprocessing",
35
+ "label": "Postprocessing"
36
+ },
37
+ {
38
+ "id": "activation",
39
+ "label": "Activation"
40
+ },
41
+ {
42
+ "id": "correlation",
43
+ "label": "Correlation",
44
+ "tooltip": "Learn more about message correlation in the <a href=\"https://docs.camunda.io/docs/components/concepts/messages/#message-correlation-overview\">documentation</a>."
45
+ },
46
+ {
47
+ "id": "output",
48
+ "label": "Output mapping"
49
+ }
50
+ ],
51
+ "properties": [
52
+ {
53
+ "value": "io.camunda:connector-o365-email-inbound:1",
54
+ "binding": {
55
+ "name": "inbound.type",
56
+ "type": "zeebe:property"
57
+ },
58
+ "type": "Hidden"
59
+ },
60
+ {
61
+ "id": "authentication.tenantId",
62
+ "label": "Tenant ID",
63
+ "optional": false,
64
+ "constraints": {
65
+ "notEmpty": true
66
+ },
67
+ "feel": "optional",
68
+ "group": "authentication",
69
+ "binding": {
70
+ "name": "authentication.tenantId",
71
+ "type": "zeebe:property"
72
+ },
73
+ "tooltip": "Your Microsoft Entra (Azure AD) tenant ID. Find this in Azure Portal → Microsoft Entra ID → Overview. <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/microsoft-o365-mail-inbound/#authentication\" target=\"_blank\">Learn more</a>",
74
+ "type": "String"
75
+ },
76
+ {
77
+ "id": "authentication.clientId",
78
+ "label": "Client ID",
79
+ "optional": false,
80
+ "constraints": {
81
+ "notEmpty": true
82
+ },
83
+ "feel": "optional",
84
+ "group": "authentication",
85
+ "binding": {
86
+ "name": "authentication.clientId",
87
+ "type": "zeebe:property"
88
+ },
89
+ "tooltip": "The application (client) ID from your app registration. Find this in Azure Portal → App registrations → Your app → Overview. <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/microsoft-o365-mail-inbound/#authentication\" target=\"_blank\">Learn more</a>",
90
+ "type": "String"
91
+ },
92
+ {
93
+ "id": "authentication.clientSecret",
94
+ "label": "Client Secret",
95
+ "optional": false,
96
+ "constraints": {
97
+ "notEmpty": true
98
+ },
99
+ "feel": "optional",
100
+ "group": "authentication",
101
+ "binding": {
102
+ "name": "authentication.clientSecret",
103
+ "type": "zeebe:property"
104
+ },
105
+ "tooltip": "The client secret value from your app registration. Create this in Azure Portal → App registrations → Your app → Certificates & secrets. <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/microsoft-o365-mail-inbound/#authentication\" target=\"_blank\">Learn more</a>",
106
+ "type": "String"
107
+ },
108
+ {
109
+ "id": "pollingConfig.userId",
110
+ "label": "Mailbox Owner",
111
+ "optional": false,
112
+ "constraints": {
113
+ "notEmpty": true
114
+ },
115
+ "feel": "optional",
116
+ "group": "pollingConfig",
117
+ "binding": {
118
+ "name": "pollingConfig.userId",
119
+ "type": "zeebe:property"
120
+ },
121
+ "tooltip": "The email address or user ID of the mailbox to monitor (e.g., user@example.com). <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/microsoft-o365-mail-inbound/#configuration\" target=\"_blank\">Learn more</a>",
122
+ "type": "String"
123
+ },
124
+ {
125
+ "id": "pollingConfig.folder.folderSpecification",
126
+ "label": "Folder Identifier Type",
127
+ "description": "Prefer using a folder ID if you are using a well known folder otherwise use the folder name",
128
+ "value": "byId",
129
+ "group": "pollingConfig",
130
+ "binding": {
131
+ "name": "pollingConfig.folder.folderSpecification",
132
+ "type": "zeebe:property"
133
+ },
134
+ "type": "Dropdown",
135
+ "choices": [
136
+ {
137
+ "name": "Folder ID",
138
+ "value": "byId"
139
+ },
140
+ {
141
+ "name": "Folder Name",
142
+ "value": "byName"
143
+ }
144
+ ]
145
+ },
146
+ {
147
+ "id": "pollingConfig.folder.folderId",
148
+ "label": "Folder ID",
149
+ "optional": false,
150
+ "value": "inbox",
151
+ "constraints": {
152
+ "notEmpty": true
153
+ },
154
+ "feel": "optional",
155
+ "group": "pollingConfig",
156
+ "binding": {
157
+ "name": "pollingConfig.folder.folderId",
158
+ "type": "zeebe:property"
159
+ },
160
+ "condition": {
161
+ "property": "pollingConfig.folder.folderSpecification",
162
+ "equals": "byId",
163
+ "type": "simple"
164
+ },
165
+ "tooltip": "The well-known folder ID or custom folder ID. <a href='https://learn.microsoft.com/en-us/graph/api/resources/mailfolder?view=graph-rest-1.0#properties' target='_blank'>See folder properties in the API</a>",
166
+ "type": "String"
167
+ },
168
+ {
169
+ "id": "pollingConfig.folder.folderName",
170
+ "label": "Folder Name",
171
+ "optional": false,
172
+ "constraints": {
173
+ "notEmpty": true
174
+ },
175
+ "feel": "optional",
176
+ "group": "pollingConfig",
177
+ "binding": {
178
+ "name": "pollingConfig.folder.folderName",
179
+ "type": "zeebe:property"
180
+ },
181
+ "condition": {
182
+ "property": "pollingConfig.folder.folderSpecification",
183
+ "equals": "byName",
184
+ "type": "simple"
185
+ },
186
+ "tooltip": "The display name of the folder. Must be unique within the mailbox.",
187
+ "type": "String"
188
+ },
189
+ {
190
+ "id": "pollingConfig.pollingInterval",
191
+ "label": "Polling interval",
192
+ "optional": false,
193
+ "value": "PT30S",
194
+ "feel": "optional",
195
+ "group": "pollingConfig",
196
+ "binding": {
197
+ "name": "pollingConfig.pollingInterval",
198
+ "type": "zeebe:property"
199
+ },
200
+ "tooltip": "The interval between email polling requests, defined as ISO 8601 duration format. <a href='https://docs.camunda.io/docs/components/modeler/bpmn/timer-events/#time-duration' target='_blank'>How to configure a time duration</a>",
201
+ "type": "String"
202
+ },
203
+ {
204
+ "id": "pollingConfig.filterCriteria.filterSpecification",
205
+ "label": "Filter Specification",
206
+ "description": "Use predefined filter conditions or provide your own OData filter string",
207
+ "value": "simple",
208
+ "group": "pollingConfig",
209
+ "binding": {
210
+ "name": "pollingConfig.filterCriteria.filterSpecification",
211
+ "type": "zeebe:property"
212
+ },
213
+ "type": "Dropdown",
214
+ "choices": [
215
+ {
216
+ "name": "Simple",
217
+ "value": "simple"
218
+ },
219
+ {
220
+ "name": "Advanced",
221
+ "value": "advanced"
222
+ }
223
+ ]
224
+ },
225
+ {
226
+ "id": "pollingConfig.filterCriteria.onlyUnread",
227
+ "label": "Only Unread",
228
+ "optional": false,
229
+ "value": true,
230
+ "feel": "static",
231
+ "group": "pollingConfig",
232
+ "binding": {
233
+ "name": "pollingConfig.filterCriteria.onlyUnread",
234
+ "type": "zeebe:property"
235
+ },
236
+ "condition": {
237
+ "property": "pollingConfig.filterCriteria.filterSpecification",
238
+ "equals": "simple",
239
+ "type": "simple"
240
+ },
241
+ "tooltip": "Only fetch unread emails",
242
+ "type": "Boolean"
243
+ },
244
+ {
245
+ "id": "pollingConfig.filterCriteria.subjectContains",
246
+ "label": "Subject Contains",
247
+ "optional": true,
248
+ "feel": "optional",
249
+ "group": "pollingConfig",
250
+ "binding": {
251
+ "name": "pollingConfig.filterCriteria.subjectContains",
252
+ "type": "zeebe:property"
253
+ },
254
+ "condition": {
255
+ "property": "pollingConfig.filterCriteria.filterSpecification",
256
+ "equals": "simple",
257
+ "type": "simple"
258
+ },
259
+ "tooltip": "Only fetch emails where subject contains this text (case-sensitive)",
260
+ "type": "String"
261
+ },
262
+ {
263
+ "id": "pollingConfig.filterCriteria.fromAddress",
264
+ "label": "From Email Address",
265
+ "optional": true,
266
+ "feel": "optional",
267
+ "group": "pollingConfig",
268
+ "binding": {
269
+ "name": "pollingConfig.filterCriteria.fromAddress",
270
+ "type": "zeebe:property"
271
+ },
272
+ "condition": {
273
+ "property": "pollingConfig.filterCriteria.filterSpecification",
274
+ "equals": "simple",
275
+ "type": "simple"
276
+ },
277
+ "tooltip": "Only fetch emails from this sender address (exact match, e.g. 'invoice@vendor.com')",
278
+ "type": "String"
279
+ },
280
+ {
281
+ "id": "pollingConfig.filterCriteria.filterString",
282
+ "label": "OData Filter String",
283
+ "optional": false,
284
+ "constraints": {
285
+ "notEmpty": true
286
+ },
287
+ "group": "pollingConfig",
288
+ "binding": {
289
+ "name": "pollingConfig.filterCriteria.filterString",
290
+ "type": "zeebe:property"
291
+ },
292
+ "condition": {
293
+ "property": "pollingConfig.filterCriteria.filterSpecification",
294
+ "equals": "advanced",
295
+ "type": "simple"
296
+ },
297
+ "tooltip": "A custom OData filter expression. <a href='https://learn.microsoft.com/en-us/graph/filter-query-parameter' target='_blank'>See OData filter documentation</a>",
298
+ "type": "String"
299
+ },
300
+ {
301
+ "id": "operation.processingOperationDiscriminator",
302
+ "label": "Postprocessing configuration",
303
+ "value": "mark-read",
304
+ "group": "postprocessing",
305
+ "binding": {
306
+ "name": "operation.processingOperationDiscriminator",
307
+ "type": "zeebe:property"
308
+ },
309
+ "type": "Dropdown",
310
+ "choices": [
311
+ {
312
+ "name": "Delete",
313
+ "value": "delete"
314
+ },
315
+ {
316
+ "name": "Mark as Read",
317
+ "value": "mark-read"
318
+ },
319
+ {
320
+ "name": "Move to other folder",
321
+ "value": "move"
322
+ }
323
+ ]
324
+ },
325
+ {
326
+ "id": "operation.force",
327
+ "label": "Force delete (email is permanently deleted)",
328
+ "optional": false,
329
+ "value": false,
330
+ "feel": "static",
331
+ "group": "postprocessing",
332
+ "binding": {
333
+ "name": "operation.force",
334
+ "type": "zeebe:property"
335
+ },
336
+ "condition": {
337
+ "property": "operation.processingOperationDiscriminator",
338
+ "equals": "delete",
339
+ "type": "simple"
340
+ },
341
+ "type": "Boolean"
342
+ },
343
+ {
344
+ "id": "operation.targetFolder.folderSpecification",
345
+ "label": "Folder Identifier Type",
346
+ "description": "Prefer using a folder ID if you are using a well known folder otherwise use the folder name",
347
+ "value": "byId",
348
+ "group": "postprocessing",
349
+ "binding": {
350
+ "name": "operation.targetFolder.folderSpecification",
351
+ "type": "zeebe:property"
352
+ },
353
+ "condition": {
354
+ "property": "operation.processingOperationDiscriminator",
355
+ "equals": "move",
356
+ "type": "simple"
357
+ },
358
+ "type": "Dropdown",
359
+ "choices": [
360
+ {
361
+ "name": "Folder ID",
362
+ "value": "byId"
363
+ },
364
+ {
365
+ "name": "Folder Name",
366
+ "value": "byName"
367
+ }
368
+ ]
369
+ },
370
+ {
371
+ "id": "operation.targetFolder.folderId",
372
+ "label": "Folder ID",
373
+ "optional": false,
374
+ "value": "inbox",
375
+ "constraints": {
376
+ "notEmpty": true
377
+ },
378
+ "feel": "optional",
379
+ "group": "postprocessing",
380
+ "binding": {
381
+ "name": "operation.targetFolder.folderId",
382
+ "type": "zeebe:property"
383
+ },
384
+ "condition": {
385
+ "allMatch": [
386
+ {
387
+ "property": "operation.targetFolder.folderSpecification",
388
+ "equals": "byId",
389
+ "type": "simple"
390
+ },
391
+ {
392
+ "property": "operation.processingOperationDiscriminator",
393
+ "equals": "move",
394
+ "type": "simple"
395
+ }
396
+ ]
397
+ },
398
+ "tooltip": "The well-known folder ID or custom folder ID. <a href='https://learn.microsoft.com/en-us/graph/api/resources/mailfolder?view=graph-rest-1.0#properties' target='_blank'>See folder properties in the API</a>",
399
+ "type": "String"
400
+ },
401
+ {
402
+ "id": "operation.targetFolder.folderName",
403
+ "label": "Folder Name",
404
+ "optional": false,
405
+ "constraints": {
406
+ "notEmpty": true
407
+ },
408
+ "feel": "optional",
409
+ "group": "postprocessing",
410
+ "binding": {
411
+ "name": "operation.targetFolder.folderName",
412
+ "type": "zeebe:property"
413
+ },
414
+ "condition": {
415
+ "allMatch": [
416
+ {
417
+ "property": "operation.targetFolder.folderSpecification",
418
+ "equals": "byName",
419
+ "type": "simple"
420
+ },
421
+ {
422
+ "property": "operation.processingOperationDiscriminator",
423
+ "equals": "move",
424
+ "type": "simple"
425
+ }
426
+ ]
427
+ },
428
+ "tooltip": "The display name of the folder. Must be unique within the mailbox.",
429
+ "type": "String"
430
+ },
431
+ {
432
+ "id": "activationCondition",
433
+ "label": "Activation condition",
434
+ "description": "Condition under which the Connector triggers. Leave empty to catch all events",
435
+ "optional": true,
436
+ "feel": "required",
437
+ "group": "activation",
438
+ "binding": {
439
+ "name": "activationCondition",
440
+ "type": "zeebe:property"
441
+ },
442
+ "type": "String"
443
+ },
444
+ {
445
+ "id": "correlationRequired",
446
+ "label": "Subprocess correlation required",
447
+ "description": "Indicates whether correlation is required. This is needed for event-based subprocess message start events",
448
+ "value": "notRequired",
449
+ "group": "correlation",
450
+ "binding": {
451
+ "name": "correlationRequired",
452
+ "type": "zeebe:property"
453
+ },
454
+ "type": "Dropdown",
455
+ "choices": [
456
+ {
457
+ "name": "Correlation not required",
458
+ "value": "notRequired"
459
+ },
460
+ {
461
+ "name": "Correlation required",
462
+ "value": "required"
463
+ }
464
+ ]
465
+ },
466
+ {
467
+ "id": "correlationKeyProcess",
468
+ "label": "Correlation key (process)",
469
+ "description": "Sets up the correlation key from process variables",
470
+ "constraints": {
471
+ "notEmpty": true
472
+ },
473
+ "feel": "required",
474
+ "group": "correlation",
475
+ "binding": {
476
+ "name": "correlationKey",
477
+ "type": "bpmn:Message#zeebe:subscription#property"
478
+ },
479
+ "condition": {
480
+ "property": "correlationRequired",
481
+ "equals": "required",
482
+ "type": "simple"
483
+ },
484
+ "type": "String"
485
+ },
486
+ {
487
+ "id": "correlationKeyPayload",
488
+ "label": "Correlation key (payload)",
489
+ "description": "Extracts the correlation key from the incoming message payload",
490
+ "constraints": {
491
+ "notEmpty": true
492
+ },
493
+ "feel": "required",
494
+ "group": "correlation",
495
+ "binding": {
496
+ "name": "correlationKeyExpression",
497
+ "type": "zeebe:property"
498
+ },
499
+ "condition": {
500
+ "property": "correlationRequired",
501
+ "equals": "required",
502
+ "type": "simple"
503
+ },
504
+ "type": "String"
505
+ },
506
+ {
507
+ "id": "messageTtl",
508
+ "label": "Message TTL",
509
+ "description": "Time-to-live for the message in the broker (ISO-8601 duration)",
510
+ "optional": true,
511
+ "constraints": {
512
+ "notEmpty": false,
513
+ "pattern": {
514
+ "value": "^(PT.*|)$",
515
+ "message": "must be an ISO-8601 duration"
516
+ }
517
+ },
518
+ "feel": "optional",
519
+ "group": "correlation",
520
+ "binding": {
521
+ "name": "messageTtl",
522
+ "type": "zeebe:property"
523
+ },
524
+ "type": "String"
525
+ },
526
+ {
527
+ "id": "messageIdExpression",
528
+ "label": "Message ID expression",
529
+ "description": "Expression to extract unique identifier of a message",
530
+ "optional": true,
531
+ "feel": "required",
532
+ "group": "correlation",
533
+ "binding": {
534
+ "name": "messageIdExpression",
535
+ "type": "zeebe:property"
536
+ },
537
+ "type": "String"
538
+ },
539
+ {
540
+ "id": "messageNameUuid",
541
+ "generatedValue": {
542
+ "type": "uuid"
543
+ },
544
+ "group": "correlation",
545
+ "binding": {
546
+ "name": "name",
547
+ "type": "bpmn:Message#property"
548
+ },
549
+ "type": "Hidden"
550
+ },
551
+ {
552
+ "id": "resultVariable",
553
+ "label": "Result variable",
554
+ "description": "Name of variable to store the response in",
555
+ "group": "output",
556
+ "binding": {
557
+ "name": "resultVariable",
558
+ "type": "zeebe:property"
559
+ },
560
+ "type": "String"
561
+ },
562
+ {
563
+ "id": "resultExpression",
564
+ "label": "Result expression",
565
+ "description": "Expression to map the response into process variables",
566
+ "feel": "required",
567
+ "group": "output",
568
+ "binding": {
569
+ "name": "resultExpression",
570
+ "type": "zeebe:property"
571
+ },
572
+ "type": "Text"
573
+ }
574
+ ],
575
+ "icon": {
576
+ "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGhlaWdodD0nMTYnIHdpZHRoPScxNicgdmlld0JveD0nLTI3NC42NjI3NSAtNDI1LjgzNCAyMzgwLjQxMDUgMjU1NS4wMDQnPgogICAgPHBhdGggZD0nTTE4MzEuMDgzIDg5NC4yNWE0MC44NzkgNDAuODc5IDAgMDAtMTkuNTAzLTM1LjEzMWgtLjIxM2wtLjc2Ny0uNDI2LTYzNC40OTItMzc1LjU4NWE4Ni4xNzUgODYuMTc1IDAgMDAtOC41MTctNS4wNjcgODUuMTcgODUuMTcgMCAwMC03OC4wOTggMCA4Ni4zNyA4Ni4zNyAwIDAwLTguNTE3IDUuMDY3bC02MzQuNDkgMzc1LjU4NS0uNzY2LjQyNmMtMTkuMzkyIDEyLjA1OS0yNS4zMzcgMzcuNTU2LTEzLjI3OCA1Ni45NDhhNDEuMzQ2IDQxLjM0NiAwIDAwMTQuMjU3IDEzLjg2OGw2MzQuNDkyIDM3NS41ODVhOTUuNjE3IDk1LjYxNyAwIDAwOC41MTcgNS4wNjggODUuMTcgODUuMTcgMCAwMDc4LjA5OCAwIDk1LjUyIDk1LjUyIDAgMDA4LjUxNy01LjA2OGw2MzQuNDkyLTM3NS41ODVhNDAuODQgNDAuODQgMCAwMDIwLjI2OC0zNS42ODV6JyBmaWxsPScjMEEyNzY3Jy8+CiAgICA8cGF0aCBkPSdNNTIwLjQ1MyA2NDMuNDc3aDQxNi4zOHYzODEuNjc0aC00MTYuMzh6TTE3NDUuOTE3IDI1NS41VjgwLjkwOGMxLTQzLjY1Mi0zMy41NTItNzkuODYyLTc3LjIwMy04MC45MDhINTg4LjIwNEM1NDQuNTUyIDEuMDQ2IDUxMCAzNy4yNTYgNTExIDgwLjkwOFYyNTUuNWw2MzguNzUgMTcwLjMzM3onIGZpbGw9JyMwMzY0QjgnLz4KICAgIDxwYXRoIGQ9J001MTEgMjU1LjVoNDI1LjgzM3YzODMuMjVINTExeicgZmlsbD0nIzAwNzhENCcvPgogICAgPHBhdGggZD0nTTEzNjIuNjY3IDI1NS41SDkzNi44MzN2MzgzLjI1TDEzNjIuNjY3IDEwMjJoMzgzLjI1VjYzOC43NXonIGZpbGw9JyMyOEE4RUEnLz4KICAgIDxwYXRoIGQ9J005MzYuODMzIDYzOC43NWg0MjUuODMzVjEwMjJIOTM2LjgzM3onIGZpbGw9JyMwMDc4RDQnLz4KICAgIDxwYXRoIGQ9J005MzYuODMzIDEwMjJoNDI1LjgzM3YzODMuMjVIOTM2LjgzM3onIGZpbGw9JyMwMzY0QjgnLz4KICAgIDxwYXRoIGQ9J001MjAuNDUzIDEwMjUuMTUxaDQxNi4zOHYzNDYuOTY5aC00MTYuMzh6JyBmaWxsPScjMTQ0NDdEJy8+CiAgICA8cGF0aCBkPSdNMTM2Mi42NjcgMTAyMmgzODMuMjV2MzgzLjI1aC0zODMuMjV6JyBmaWxsPScjMDA3OEQ0Jy8+CiAgICA8bGluZWFyR3JhZGllbnQgZ3JhZGllbnRUcmFuc2Zvcm09J21hdHJpeCgxIDAgMCAtMSAwIDE3MDUuMzMzKScgeTI9JzEuOTk4JyB4Mj0nMTEyOC40NTgnIHkxPSc4MTEuMDgzJyB4MT0nMTEyOC40NTgnIGdyYWRpZW50VW5pdHM9J3VzZXJTcGFjZU9uVXNlJyBpZD0nYSc+CiAgICAgICAgPHN0b3Agb2Zmc2V0PScwJyBzdG9wLWNvbG9yPScjMzViOGYxJy8+CiAgICAgICAgPHN0b3Agb2Zmc2V0PScxJyBzdG9wLWNvbG9yPScjMjhhOGVhJy8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPHBhdGggZD0nTTE4MTEuNTggOTI3LjU5M2wtLjgwOS40MjYtNjM0LjQ5MiAzNTYuODQ4Yy0yLjc2OCAxLjcwMy01LjU3OCAzLjMyMS04LjUxNyA0Ljc2OWE4OC40MzcgODguNDM3IDAgMDEtMzQuNDA3IDguNTE3bC0zNC42NjMtMjAuMjdhODYuNzA2IDg2LjcwNiAwIDAxLTguNTE3LTQuODk3TDQ0Ny4xNjcgOTA2LjAwM2gtLjI5OGwtMjEuMDM2LTExLjc1M3Y3MjIuMzg0Yy4zMjggNDguMTk2IDM5LjY1MyA4Ny4wMDYgODcuODQ5IDg2LjdoMTIzMC45MTRjLjcyNCAwIDEuMzYzLS4zNDEgMi4xMjktLjM0MWExMDcuNzkgMTA3Ljc5IDAgMDAyOS44MDgtNi4yMTcgODYuMDY2IDg2LjA2NiAwIDAwMTEuOTY2LTYuMjE3YzIuODUzLTEuNjE4IDcuNzUtNS4xNTIgNy43NS01LjE1MmE4NS45NzQgODUuOTc0IDAgMDAzNC44MzMtNjguNzcyVjg5NC4yNWEzOC4zMjMgMzguMzIzIDAgMDEtMTkuNTAyIDMzLjM0M3onIGZpbGw9J3VybCgjYSknLz4KICAgIDxwYXRoIGQ9J00xNzk3LjAxNyA4OTEuMzk3djQ0LjI4N2wtNjYzLjQ0OCA0NTYuNzkxLTY4Ni44Ny00ODYuMTc0YS40MjYuNDI2IDAgMDAtLjQyNi0uNDI2bC02My4wMjMtMzcuODk5di0zMS45MzhsMjUuOTc2LS40MjYgNTQuOTMyIDMxLjUxMiAxLjI3Ny40MjYgNC42ODQgMi45ODFzNjQ1LjU2MyAzNjguMzQ2IDY0Ny4yNjcgMzY5LjE5N2wyNC42OTggMTQuNDc4YzIuMTI5LS44NTIgNC4yNTgtMS43MDMgNi44MTMtMi41NTUgMS4yNzgtLjg1MiA2NDAuODc5LTM2MC42ODEgNjQwLjg3OS0zNjAuNjgxeicgZmlsbD0nIzBBMjc2Nycgb3BhY2l0eT0nLjUnLz4KICAgIDxwYXRoIGQ9J00xODExLjU4IDkyNy41OTNsLS44MDkuNDY4LTYzNC40OTIgMzU2Ljg0OGMtMi43NjggMS43MDMtNS41NzggMy4zMjEtOC41MTcgNC43NjlhODguOTYgODguOTYgMCAwMS03OC4wOTggMCA5Ni41NzggOTYuNTc4IDAgMDEtOC41MTctNC43NjlsLTYzNC40OS0zNTYuODQ4LS43NjYtLjQ2OGEzOC4zMjYgMzguMzI2IDAgMDEtMjAuMDU3LTMzLjM0M3Y3MjIuMzg0Yy4zMDUgNDguMTg4IDM5LjYxNiA4Ny4wMDQgODcuODAzIDg2LjdoMTIyOS42NGM0OC4xODguMzA3IDg3LjUtMzguNTA5IDg3LjgwNy04Ni42OTYgMC0uMDAxIDAgMCAwIDBWODk0LjI1YTM4LjMzIDM4LjMzIDAgMDEtMTkuNTA0IDMzLjM0M3onIGZpbGw9JyMxNDkwREYnLz4KICAgIDxwYXRoIGQ9J00xMTg1LjUyIDEyNzkuNjI5bC05LjQ5NiA1LjMyM2E5Mi44MDYgOTIuODA2IDAgMDEtOC41MTcgNC44MTIgODguMTczIDg4LjE3MyAwIDAxLTMzLjQ3IDguODU3bDI0MS40MDUgMjg1LjQ3OSA0MjEuMTA3IDEwMS40NzZhODYuNzg1IDg2Ljc4NSAwIDAwMjYuNy0zMy4zNDN6JyBvcGFjaXR5PScuMScvPgogICAgPHBhdGggZD0nTTEyMjguNTI5IDEyNTUuNDQybC01Mi41MDUgMjkuNTFhOTIuODA2IDkyLjgwNiAwIDAxLTguNTE3IDQuODEyIDg4LjE3MyA4OC4xNzMgMCAwMS0zMy40NyA4Ljg1N2wxMTMuMTAxIDMxMS44MzggNTQ5LjUzOCA3NC45ODlhODYuMTA0IDg2LjEwNCAwIDAwMzQuNDA3LTY4LjgxNXYtOS4zMjZ6JyBvcGFjaXR5PScuMDUnLz4KICAgIDxwYXRoIGQ9J001MTQuODMzIDE3MDMuMzMzaDEyMjguMzE2YTg4LjMxNiA4OC4zMTYgMCAwMDUyLjU5LTE3LjAzM2wtNjk3LjA4OS00MDguMzMxYTg2LjcwNiA4Ni43MDYgMCAwMS04LjUxNy00Ljg5N0w0NDcuMTI1IDkwNi4wODhoLS4yOThsLTIwLjk5My0xMS44Mzh2NzE5LjkxNGMtLjA0OCA0OS4yIDM5Ljc5OCA4OS4xMjIgODguOTk5IDg5LjE2OS0uMDAxIDAtLjAwMSAwIDAgMHonIGZpbGw9JyMyOEE4RUEnLz4KICAgIDxwYXRoIGQ9J00xMDIyIDQxOC43MjJ2OTA4LjMwM2MtLjA3NiAzMS44NDYtMTkuNDQgNjAuNDcxLTQ4Ljk3MSA3Mi4zOTJhNzMuMzgyIDczLjM4MiAwIDAxLTI4Ljk1NyA1Ljk2Mkg0MjUuODMzVjM4My4yNUg1MTF2LTQyLjU4M2g0MzMuMDczYzQzLjAxOS4xNjMgNzcuODM0IDM1LjAzNSA3Ny45MjcgNzguMDU1eicgb3BhY2l0eT0nLjEnLz4KICAgIDxwYXRoIGQ9J005NzkuNDE3IDQ2MS4zMDV2OTA4LjMwMmE2OS4zNiA2OS4zNiAwIDAxLTYuMzg4IDI5LjgwOGMtMTEuODI2IDI5LjE0OS00MC4wODMgNDguMjczLTcxLjU0IDQ4LjQxN0g0MjUuODMzVjM4My4yNWg0NzUuNjU2YTcxLjQ5MyA3MS40OTMgMCAwMTM1LjM0NCA4Ljk0M2MyNi4xMDQgMTMuMTUxIDQyLjU3NCAzOS44ODMgNDIuNTg0IDY5LjExMnonIG9wYWNpdHk9Jy4yJy8+CiAgICA8cGF0aCBkPSdNOTc5LjQxNyA0NjEuMzA1djgyMy4xMzZjLS4yMDggNDMtMzQuOTI4IDc3Ljg1My03Ny45MjcgNzguMjI1SDQyNS44MzNWMzgzLjI1aDQ3NS42NTZhNzEuNDkzIDcxLjQ5MyAwIDAxMzUuMzQ0IDguOTQzYzI2LjEwNCAxMy4xNTEgNDIuNTc0IDM5Ljg4MyA0Mi41ODQgNjkuMTEyeicgb3BhY2l0eT0nLjInLz4KICAgIDxwYXRoIGQ9J005MzYuODMzIDQ2MS4zMDV2ODIzLjEzNmMtLjA0NiA0My4wNjctMzQuODYxIDc4LjAxNS03Ny45MjcgNzguMjI1SDQyNS44MzNWMzgzLjI1aDQzMy4wNzJjNDMuMDYyLjAyMyA3Ny45NTEgMzQuOTUxIDc3LjkyNyA3OC4wMTNhLjU4OS41ODkgMCAwMS4wMDEuMDQyeicgb3BhY2l0eT0nLjInLz4KICAgIDxsaW5lYXJHcmFkaWVudCBncmFkaWVudFRyYW5zZm9ybT0nbWF0cml4KDEgMCAwIC0xIDAgMTcwNS4zMzMpJyB5Mj0nMzI0LjI1OScgeDI9Jzc3NC4wODYnIHkxPScxMzgzLjA3NCcgeDE9JzE2Mi43NDcnIGdyYWRpZW50VW5pdHM9J3VzZXJTcGFjZU9uVXNlJyBpZD0nYic+CiAgICAgICAgPHN0b3Agb2Zmc2V0PScwJyBzdG9wLWNvbG9yPScjMTc4NGQ5Jy8+CiAgICAgICAgPHN0b3Agb2Zmc2V0PScuNScgc3RvcC1jb2xvcj0nIzEwN2FkNScvPgogICAgICAgIDxzdG9wIG9mZnNldD0nMScgc3RvcC1jb2xvcj0nIzBhNjNjOScvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxwYXRoIGQ9J003OC4wNTUgMzgzLjI1aDc4MC43MjNjNDMuMTA5IDAgNzguMDU1IDM0Ljk0NyA3OC4wNTUgNzguMDU1djc4MC43MjNjMCA0My4xMDktMzQuOTQ2IDc4LjA1NS03OC4wNTUgNzguMDU1SDc4LjA1NWMtNDMuMTA5IDAtNzguMDU1LTM0Ljk0Ny03OC4wNTUtNzguMDU1VjQ2MS4zMDVjMC00My4xMDggMzQuOTQ3LTc4LjA1NSA3OC4wNTUtNzguMDU1eicgZmlsbD0ndXJsKCNiKScvPgogICAgPHBhdGggZD0nTTI0My45NiA3MTAuNjMxYTIyNy4wNSAyMjcuMDUgMCAwMTg5LjE3LTk4LjQ5NSAyNjkuNTYgMjY5LjU2IDAgMDExNDEuNjc1LTM1LjUxNSAyNTAuOTEgMjUwLjkxIDAgMDExMzEuMTE0IDMzLjY4MyAyMjUuMDE0IDIyNS4wMTQgMCAwMTg2Ljc0MiA5NC4xMDkgMzAzLjc1MSAzMDMuNzUxIDAgMDEzMC40MDUgMTM4LjM5NiAzMjAuNTY3IDMyMC41NjcgMCAwMS0zMS4yOTkgMTQ0Ljc4MyAyMzAuMzcgMjMwLjM3IDAgMDEtODkuNDI1IDk3LjM4OCAyNjAuODY0IDI2MC44NjQgMCAwMS0xMzYuMDExIDM0LjU3OCAyNTYuMzU1IDI1Ni4zNTUgMCAwMS0xMzQuMDEtMzQuMDY3IDIyOC40OTcgMjI4LjQ5NyAwIDAxLTg3Ljg5Mi05NC4yOCAyOTYuNTA3IDI5Ni41MDcgMCAwMS0zMC43NDUtMTM2LjczNSAzMjkuMjkgMzI5LjI5IDAgMDEzMC4yNzYtMTQzLjg0NXptOTUuMDQ2IDIzMS4yMjdhMTQ3LjM4NiAxNDcuMzg2IDAgMDA1MC4xNjMgNjQuODEyIDEzMS4wMjggMTMxLjAyOCAwIDAwNzguMzUzIDIzLjU5MSAxMzcuMjQ0IDEzNy4yNDQgMCAwMDgzLjYzNC0yNC4zNTggMTQxLjE1NiAxNDEuMTU2IDAgMDA0OC43MTUtNjQuODEyIDI1MS41OTQgMjUxLjU5NCAwIDAwMTUuNTQzLTkwLjQwNCAyNzUuMTk4IDI3NS4xOTggMCAwMC0xNC42NDktOTEuNTU0IDE0NC43NzUgMTQ0Ljc3NSAwIDAwLTQ3LjE4Mi02Ny41MzcgMTI5LjU4IDEyOS41OCAwIDAwLTgyLjkxLTI1LjU1IDEzNS4yMDIgMTM1LjIwMiAwIDAwLTgwLjE4NCAyMy44MDQgMTQ4LjYyNiAxNDguNjI2IDAgMDAtNTEuMSA2NS4zNjUgMjU5Ljc1OSAyNTkuNzU5IDAgMDAtLjM0MSAxODYuNzI4eicgZmlsbD0nI0ZGRicvPgogICAgPHBhdGggZD0nTTEzNjIuNjY3IDI1NS41aDM4My4yNXYzODMuMjVoLTM4My4yNXonIGZpbGw9JyM1MEQ5RkYnLz4KPC9zdmc+Cg=="
577
+ }
578
+ }
579
+ ]
@@ -2561,6 +2561,10 @@
2561
2561
  "id": "invite",
2562
2562
  "label": "Invite"
2563
2563
  },
2564
+ {
2565
+ "id": "reaction",
2566
+ "label": "Reaction"
2567
+ },
2564
2568
  {
2565
2569
  "id": "connector",
2566
2570
  "label": "Connector"
@@ -2624,6 +2628,10 @@
2624
2628
  {
2625
2629
  "name": "Invite to channel",
2626
2630
  "value": "conversations.invite"
2631
+ },
2632
+ {
2633
+ "name": "Add reaction",
2634
+ "value": "reactions.add"
2627
2635
  }
2628
2636
  ]
2629
2637
  },
@@ -2955,6 +2963,69 @@
2955
2963
  },
2956
2964
  "type": "String"
2957
2965
  },
2966
+ {
2967
+ "id": "reaction.channel",
2968
+ "label": "Channel",
2969
+ "description": "Channel ID of the message to react to",
2970
+ "optional": false,
2971
+ "constraints": {
2972
+ "notEmpty": true
2973
+ },
2974
+ "feel": "optional",
2975
+ "group": "reaction",
2976
+ "binding": {
2977
+ "name": "data.channel",
2978
+ "type": "zeebe:input"
2979
+ },
2980
+ "condition": {
2981
+ "property": "method",
2982
+ "equals": "reactions.add",
2983
+ "type": "simple"
2984
+ },
2985
+ "type": "String"
2986
+ },
2987
+ {
2988
+ "id": "data.emoji",
2989
+ "label": "Emoji name",
2990
+ "description": "Emoji name (e.g. eyes)",
2991
+ "optional": false,
2992
+ "constraints": {
2993
+ "notEmpty": true
2994
+ },
2995
+ "feel": "optional",
2996
+ "group": "reaction",
2997
+ "binding": {
2998
+ "name": "data.emoji",
2999
+ "type": "zeebe:input"
3000
+ },
3001
+ "condition": {
3002
+ "property": "method",
3003
+ "equals": "reactions.add",
3004
+ "type": "simple"
3005
+ },
3006
+ "type": "String"
3007
+ },
3008
+ {
3009
+ "id": "data.timestamp",
3010
+ "label": "Message timestamp",
3011
+ "description": "Timestamp of the Slack message to react to",
3012
+ "optional": false,
3013
+ "constraints": {
3014
+ "notEmpty": true
3015
+ },
3016
+ "feel": "required",
3017
+ "group": "reaction",
3018
+ "binding": {
3019
+ "name": "data.timestamp",
3020
+ "type": "zeebe:input"
3021
+ },
3022
+ "condition": {
3023
+ "property": "method",
3024
+ "equals": "reactions.add",
3025
+ "type": "simple"
3026
+ },
3027
+ "type": "String"
3028
+ },
2958
3029
  {
2959
3030
  "id": "version",
2960
3031
  "label": "Version",