@camunda/connectors-element-templates 1.0.17 → 1.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/package.json +2 -2
  2. package/src/connectors.js +12 -2
  3. package/src/element-templates/agenticai-a2a-client-outbound-connector.json +4 -7
  4. package/src/element-templates/agenticai-a2a-client-polling-inbound-connector-intermediate.json +8 -8
  5. package/src/element-templates/agenticai-a2a-client-polling-inbound-connector-receive.json +8 -8
  6. package/src/element-templates/agenticai-a2a-client-webhook-inbound-connector-intermediate.json +8 -8
  7. package/src/element-templates/agenticai-a2a-client-webhook-inbound-connector-receive.json +8 -8
  8. package/src/element-templates/agenticai-adhoctoolsschema-outbound-connector.json +9 -12
  9. package/src/element-templates/agenticai-aiagent-job-worker.json +3770 -29
  10. package/src/element-templates/agenticai-aiagent-outbound-connector.json +6274 -2594
  11. package/src/element-templates/agenticai-mcp-client-outbound-connector.json +549 -552
  12. package/src/element-templates/agenticai-mcp-message-start-event.json +122 -0
  13. package/src/element-templates/agenticai-mcp-remote-client-outbound-connector.json +736 -739
  14. package/src/element-templates/asana-connector.json +759 -48
  15. package/src/element-templates/automation-anywhere-outbound-connector.json +1763 -1759
  16. package/src/element-templates/aws-bedrock-agentcore-long-term-memory-outbound-connector.json +431 -0
  17. package/src/element-templates/aws-bedrock-agentcore-runtime-outbound-connector.json +285 -0
  18. package/src/element-templates/aws-bedrock-codeinterpreter-outbound-connector.json +341 -0
  19. package/src/element-templates/aws-bedrock-knowledgebase-outbound-connector.json +316 -0
  20. package/src/element-templates/aws-bedrock-outbound-connector.json +747 -10
  21. package/src/element-templates/aws-comprehend-outbound-connector.json +10 -5
  22. package/src/element-templates/aws-dynamodb-outbound-connector.json +1358 -1358
  23. package/src/element-templates/aws-eventbridge-connector-boundary.json +383 -18
  24. package/src/element-templates/aws-eventbridge-connector-intermediate.json +377 -12
  25. package/src/element-templates/aws-eventbridge-connector-message-start.json +407 -8
  26. package/src/element-templates/aws-eventbridge-connector-receive.json +364 -0
  27. package/src/element-templates/aws-eventbridge-connector-start-event.json +317 -0
  28. package/src/element-templates/aws-eventbridge-outbound-connector.json +300 -295
  29. package/src/element-templates/aws-lambda-outbound-connector.json +238 -234
  30. package/src/element-templates/aws-s3-outbound-connector.json +646 -5
  31. package/src/element-templates/aws-sagemaker-outbound-connector.json +13 -9
  32. package/src/element-templates/aws-sns-inbound-boundary.json +44 -37
  33. package/src/element-templates/aws-sns-inbound-intermediate.json +210 -203
  34. package/src/element-templates/aws-sns-inbound-message-start.json +125 -118
  35. package/src/element-templates/aws-sns-inbound-receive.json +13 -6
  36. package/src/element-templates/aws-sns-inbound-start-event.json +134 -127
  37. package/src/element-templates/aws-sns-outbound-connector.json +581 -577
  38. package/src/element-templates/aws-sqs-boundary-connector.json +453 -449
  39. package/src/element-templates/aws-sqs-inbound-intermediate-connector.json +530 -526
  40. package/src/element-templates/aws-sqs-outbound-connector.json +711 -709
  41. package/src/element-templates/aws-sqs-receive-connector.json +15 -11
  42. package/src/element-templates/aws-sqs-start-event-connector.json +213 -205
  43. package/src/element-templates/aws-sqs-start-message.json +461 -457
  44. package/src/element-templates/aws-textract-outbound-connector.json +109 -105
  45. package/src/element-templates/azure-blobstorage-outbound-connector.json +676 -19
  46. package/src/element-templates/azure-open-ai-connector.json +1329 -4
  47. package/src/element-templates/blue-prism-connector.json +569 -24
  48. package/src/element-templates/box-outbound-connector.json +924 -12
  49. package/src/element-templates/csv-outbound-connector.json +13 -5
  50. package/src/element-templates/easy-post-connector.json +1077 -109
  51. package/src/element-templates/email-inbound-connector-boundary.json +32 -24
  52. package/src/element-templates/email-inbound-connector-intermediate.json +32 -24
  53. package/src/element-templates/email-inbound-connector-receive.json +564 -0
  54. package/src/element-templates/email-message-start-event-connector.json +58 -50
  55. package/src/element-templates/email-outbound-connector.json +2116 -243
  56. package/src/element-templates/embeddings-vector-database-outbound-connector.json +3 -6
  57. package/src/element-templates/github-connector.json +15257 -11722
  58. package/src/element-templates/github-webhook-connector-boundary.json +27 -29
  59. package/src/element-templates/github-webhook-connector-intermediate.json +36 -38
  60. package/src/element-templates/github-webhook-connector-message-start.json +11 -13
  61. package/src/element-templates/github-webhook-connector-receive.json +13 -15
  62. package/src/element-templates/github-webhook-connector-start-event.json +54 -56
  63. package/src/element-templates/gitlab-connector.json +4177 -2545
  64. package/src/element-templates/google-cloud-storage-outbound-connector.json +562 -13
  65. package/src/element-templates/google-drive-outbound-connector.json +1386 -766
  66. package/src/element-templates/google-gemini-outbound-connector.json +13 -5
  67. package/src/element-templates/google-maps-platform-connector.json +1059 -30
  68. package/src/element-templates/google-sheets-outbound-connector.json +2449 -1455
  69. package/src/element-templates/graphql-outbound-connector.json +1744 -1735
  70. package/src/element-templates/http-json-connector.json +2982 -2332
  71. package/src/element-templates/http-polling-boundary-catch-event-connector.json +752 -741
  72. package/src/element-templates/http-polling-connector.json +1512 -1501
  73. package/src/element-templates/hubspot-outbound-connector.json +2371 -25
  74. package/src/element-templates/hugging-face-connector.json +234 -3
  75. package/src/element-templates/jdbc-outbound-connector.json +20 -6
  76. package/src/element-templates/kafka-inbound-connector-boundary.json +613 -604
  77. package/src/element-templates/kafka-inbound-connector-intermediate.json +528 -519
  78. package/src/element-templates/kafka-inbound-connector-receive.json +15 -6
  79. package/src/element-templates/kafka-inbound-connector-start-message.json +530 -521
  80. package/src/element-templates/kafka-inbound-connector.json +240 -240
  81. package/src/element-templates/kafka-outbound-connector.json +518 -512
  82. package/src/element-templates/microsoft-o365-email-boundary-event-connector.json +18 -6
  83. package/src/element-templates/microsoft-o365-email-intermediate-catch-event-connector.json +18 -6
  84. package/src/element-templates/microsoft-o365-email-message-start-event-connector.json +18 -6
  85. package/src/element-templates/microsoft-office365-mail-connector.json +893 -10
  86. package/src/element-templates/microsoft-teams-outbound-connector.json +5971 -3807
  87. package/src/element-templates/openai-connector.json +550 -87
  88. package/src/element-templates/operate-connector.json +1198 -46
  89. package/src/element-templates/power-automate-connector.json +601 -9
  90. package/src/element-templates/rabbitmq-inbound-connector-boundary.json +444 -435
  91. package/src/element-templates/rabbitmq-inbound-connector-intermediate.json +484 -475
  92. package/src/element-templates/rabbitmq-inbound-connector-message-start.json +367 -358
  93. package/src/element-templates/rabbitmq-inbound-connector-receive.json +15 -6
  94. package/src/element-templates/rabbitmq-inbound-connector-start-event.json +479 -470
  95. package/src/element-templates/rabbitmq-outbound-connector.json +356 -350
  96. package/src/element-templates/rpa-connector.json +346 -0
  97. package/src/element-templates/salesforce-connector.json +544 -0
  98. package/src/element-templates/send-message-connector-intermediate-throw-event.json +10 -5
  99. package/src/element-templates/send-message-connector-message-end-event.json +10 -5
  100. package/src/element-templates/send-message-connector-send-task.json +10 -5
  101. package/src/element-templates/sendgrid-outbound-connector.json +945 -337
  102. package/src/element-templates/servicenow-connector.json +971 -3
  103. package/src/element-templates/servicenow-flow-starter-connector.json +8 -3
  104. package/src/element-templates/servicenow-incident-connector.json +980 -3
  105. package/src/element-templates/slack-inbound-boundary.json +490 -192
  106. package/src/element-templates/slack-inbound-intermediate.json +421 -123
  107. package/src/element-templates/slack-inbound-message-start.json +469 -139
  108. package/src/element-templates/slack-inbound-receive.json +297 -0
  109. package/src/element-templates/slack-inbound-start-event.json +216 -211
  110. package/src/element-templates/slack-outbound-connector.json +2451 -753
  111. package/src/element-templates/soap-outbound-connector.json +812 -2
  112. package/src/element-templates/twilio-connector.json +1573 -93
  113. package/src/element-templates/twilio-webhook-boundary-connector.json +19 -10
  114. package/src/element-templates/twilio-webhook-connector.json +243 -13
  115. package/src/element-templates/twilio-webhook-intermediate-connector.json +34 -25
  116. package/src/element-templates/twilio-webhook-message-start-connector.json +312 -0
  117. package/src/element-templates/twilio-webhook-receive-connector.json +11 -2
  118. package/src/element-templates/uipath-connector.json +594 -2
  119. package/src/element-templates/webhook-connector-boundary.json +580 -570
  120. package/src/element-templates/webhook-connector-intermediate.json +1390 -1380
  121. package/src/element-templates/webhook-connector-receive.json +16 -6
  122. package/src/element-templates/webhook-connector-start-event.json +1382 -1375
  123. package/src/element-templates/webhook-connector-start-message.json +1306 -1296
  124. package/src/element-templates/whatsapp-connector.json +343 -9
  125. package/src/element-templates/http-connector.json.json +0 -654
@@ -500,12 +500,12 @@
500
500
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
501
501
  "name": "Slack Outbound Connector",
502
502
  "id": "io.camunda.connectors.Slack.v1",
503
+ "version": 2,
503
504
  "description": "Create a channel or send a message to a channel or user",
504
- "metadata": {
505
- "keywords": []
506
- },
507
505
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/slack/?slack=outbound",
508
- "version": 7,
506
+ "icon": {
507
+ "contents": "data:image/svg+xml;utf8,%3Csvg%20width%3D%2218%22%20height%3D%2218%22%20%20viewBox%3D%220%200%20127%20127%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cpath%20d%3D%22M27.2%2080c0%207.3-5.9%2013.2-13.2%2013.2C6.7%2093.2.8%2087.3.8%2080c0-7.3%205.9-13.2%2013.2-13.2h13.2V80zm6.6%200c0-7.3%205.9-13.2%2013.2-13.2%207.3%200%2013.2%205.9%2013.2%2013.2v33c0%207.3-5.9%2013.2-13.2%2013.2-7.3%200-13.2-5.9-13.2-13.2V80z%22%20fill%3D%22%23E01E5A%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M47%2027c-7.3%200-13.2-5.9-13.2-13.2C33.8%206.5%2039.7.6%2047%20.6c7.3%200%2013.2%205.9%2013.2%2013.2V27H47zm0%206.7c7.3%200%2013.2%205.9%2013.2%2013.2%200%207.3-5.9%2013.2-13.2%2013.2H13.9C6.6%2060.1.7%2054.2.7%2046.9c0-7.3%205.9-13.2%2013.2-13.2H47z%22%20fill%3D%22%2336C5F0%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M99.9%2046.9c0-7.3%205.9-13.2%2013.2-13.2%207.3%200%2013.2%205.9%2013.2%2013.2%200%207.3-5.9%2013.2-13.2%2013.2H99.9V46.9zm-6.6%200c0%207.3-5.9%2013.2-13.2%2013.2-7.3%200-13.2-5.9-13.2-13.2V13.8C66.9%206.5%2072.8.6%2080.1.6c7.3%200%2013.2%205.9%2013.2%2013.2v33.1z%22%20fill%3D%22%232EB67D%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M80.1%2099.8c7.3%200%2013.2%205.9%2013.2%2013.2%200%207.3-5.9%2013.2-13.2%2013.2-7.3%200-13.2-5.9-13.2-13.2V99.8h13.2zm0-6.6c-7.3%200-13.2-5.9-13.2-13.2%200-7.3%205.9-13.2%2013.2-13.2h33.1c7.3%200%2013.2%205.9%2013.2%2013.2%200%207.3-5.9%2013.2-13.2%2013.2H80.1z%22%20fill%3D%22%23ECB22E%22%2F%3E%0A%3C%2Fsvg%3E%0A"
508
+ },
509
509
  "category": {
510
510
  "id": "connectors",
511
511
  "name": "Connectors"
@@ -514,18 +514,15 @@
514
514
  "elementType": {
515
515
  "value": "bpmn:ServiceTask"
516
516
  },
517
- "engines": {
518
- "camunda": "^8.3"
519
- },
520
517
  "groups": [
521
- {
522
- "id": "authentication",
523
- "label": "Authentication"
524
- },
525
518
  {
526
519
  "id": "method",
527
520
  "label": "Method"
528
521
  },
522
+ {
523
+ "id": "authentication",
524
+ "label": "Authentication"
525
+ },
529
526
  {
530
527
  "id": "message",
531
528
  "label": "Message"
@@ -538,61 +535,30 @@
538
535
  "id": "invite",
539
536
  "label": "Invite"
540
537
  },
541
- {
542
- "id": "reaction",
543
- "label": "Reaction"
544
- },
545
- {
546
- "id": "connector",
547
- "label": "Connector"
548
- },
549
538
  {
550
539
  "id": "output",
551
540
  "label": "Output mapping"
552
541
  },
553
542
  {
554
- "id": "error",
543
+ "id": "errors",
555
544
  "label": "Error handling"
556
- },
557
- {
558
- "id": "retries",
559
- "label": "Retries"
560
545
  }
561
546
  ],
562
547
  "properties": [
563
548
  {
549
+ "type": "Hidden",
564
550
  "value": "io.camunda:slack:1",
565
551
  "binding": {
566
- "property": "type",
567
- "type": "zeebe:taskDefinition"
568
- },
569
- "type": "Hidden"
570
- },
571
- {
572
- "id": "token",
573
- "label": "OAuth token",
574
- "optional": false,
575
- "constraints": {
576
- "notEmpty": true
577
- },
578
- "feel": "optional",
579
- "group": "authentication",
580
- "binding": {
581
- "name": "token",
582
- "type": "zeebe:input"
583
- },
584
- "type": "String"
552
+ "type": "zeebe:taskDefinition",
553
+ "property": "type"
554
+ }
585
555
  },
586
556
  {
587
- "id": "method",
588
557
  "label": "Method",
589
- "value": "chat.postMessage",
590
558
  "group": "method",
591
- "binding": {
592
- "name": "method",
593
- "type": "zeebe:input"
594
- },
559
+ "id": "method",
595
560
  "type": "Dropdown",
561
+ "value": "chat.postMessage",
596
562
  "choices": [
597
563
  {
598
564
  "name": "Post message",
@@ -605,168 +571,56 @@
605
571
  {
606
572
  "name": "Invite to channel",
607
573
  "value": "conversations.invite"
608
- },
609
- {
610
- "name": "Add reaction",
611
- "value": "reactions.add"
612
574
  }
613
- ]
614
- },
615
- {
616
- "id": "data.messageType",
617
- "label": "Message type",
618
- "optional": false,
619
- "value": "plainText",
620
- "group": "message",
575
+ ],
621
576
  "binding": {
622
- "name": "data.messageType",
623
- "type": "zeebe:input"
624
- },
625
- "condition": {
626
- "allMatch": [
627
- {
628
- "property": "method",
629
- "equals": "chat.postMessage",
630
- "type": "simple"
631
- },
632
- {
633
- "property": "method",
634
- "equals": "chat.postMessage",
635
- "type": "simple"
636
- }
637
- ]
638
- },
639
- "type": "Dropdown",
640
- "choices": [
641
- {
642
- "name": "Plain text",
643
- "value": "plainText"
644
- },
645
- {
646
- "name": "Message block",
647
- "value": "messageBlock"
648
- }
649
- ]
577
+ "type": "zeebe:input",
578
+ "name": "method"
579
+ }
650
580
  },
651
581
  {
652
- "id": "data.text",
653
- "label": "Message",
654
- "optional": false,
655
- "constraints": {
656
- "notEmpty": true
657
- },
582
+ "label": "OAuth token",
583
+ "group": "authentication",
584
+ "type": "String",
658
585
  "feel": "optional",
659
- "group": "message",
660
586
  "binding": {
661
- "name": "data.text",
662
- "type": "zeebe:input"
663
- },
664
- "condition": {
665
- "allMatch": [
666
- {
667
- "property": "data.messageType",
668
- "equals": "plainText",
669
- "type": "simple"
670
- },
671
- {
672
- "property": "method",
673
- "equals": "chat.postMessage",
674
- "type": "simple"
675
- }
676
- ]
587
+ "type": "zeebe:input",
588
+ "name": "token"
677
589
  },
678
- "type": "Text"
679
- },
680
- {
681
- "id": "data.blockContent",
682
- "label": "Message block",
683
- "description": "An array of rich message content blocks. Learn more at the <a href=\"https://api.slack.com/reference/surfaces/formatting#stack_of_blocks\" target=\"_blank\">official Slack documentation page</a>",
684
- "optional": false,
685
- "value": "=[\n\t{\n\t\t\"type\": \"header\",\n\t\t\"text\": {\n\t\t\t\"type\": \"plain_text\",\n\t\t\t\"text\": \"New request\"\n\t\t}\n\t},\n\t{\n\t\t\"type\": \"section\",\n\t\t\"fields\": [\n\t\t\t{\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"*Type:*\\nPaid Time Off\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"*Created by:*\\n<example.com|John Doe>\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"type\": \"section\",\n\t\t\"fields\": [\n\t\t\t{\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"*When:*\\nAug 10 - Aug 13\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"type\": \"section\",\n\t\t\"text\": {\n\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\"text\": \"<https://example.com|View request>\"\n\t\t}\n\t}\n]",
686
590
  "constraints": {
687
591
  "notEmpty": true
688
- },
689
- "feel": "required",
690
- "group": "message",
691
- "binding": {
692
- "name": "data.blockContent",
693
- "type": "zeebe:input"
694
- },
695
- "condition": {
696
- "allMatch": [
697
- {
698
- "property": "data.messageType",
699
- "equals": "messageBlock",
700
- "type": "simple"
701
- },
702
- {
703
- "property": "method",
704
- "equals": "chat.postMessage",
705
- "type": "simple"
706
- }
707
- ]
708
- },
709
- "type": "String"
710
- },
711
- {
712
- "id": "data.documents",
713
- "label": "attachments",
714
- "description": "<a href=\"https://docs.camunda.io/docs/apis-tools/camunda-api-rest/specifications/upload-document-alpha/\">Camunda documents</a> can be added as attachments",
715
- "optional": true,
716
- "feel": "required",
717
- "group": "message",
718
- "binding": {
719
- "name": "data.documents",
720
- "type": "zeebe:input"
721
- },
722
- "condition": {
723
- "property": "method",
724
- "equals": "chat.postMessage",
725
- "type": "simple"
726
- },
727
- "type": "String"
592
+ }
728
593
  },
729
594
  {
730
- "id": "data.channel",
731
595
  "label": "Channel/user name/email",
732
- "optional": false,
733
- "constraints": {
734
- "notEmpty": true
735
- },
736
- "feel": "optional",
737
596
  "group": "channel",
597
+ "type": "String",
598
+ "feel": "optional",
738
599
  "binding": {
739
- "name": "data.channel",
740
- "type": "zeebe:input"
600
+ "type": "zeebe:input",
601
+ "name": "data.channel"
602
+ },
603
+ "constraints": {
604
+ "notEmpty": true,
605
+ "pattern": {
606
+ "value": "(^(#|@|=).*)|(^.+[@].+[.].{2,4}$)",
607
+ "message": "Must be a #channel, @user, email or FEEL expression."
608
+ }
741
609
  },
742
610
  "condition": {
743
611
  "property": "method",
744
- "equals": "chat.postMessage",
745
- "type": "simple"
746
- },
747
- "type": "String"
612
+ "equals": "chat.postMessage"
613
+ }
748
614
  },
749
615
  {
750
- "id": "data.thread",
751
- "label": "Thread",
752
- "optional": true,
753
- "feel": "optional",
616
+ "label": "New channel name",
754
617
  "group": "channel",
618
+ "type": "String",
619
+ "feel": "optional",
755
620
  "binding": {
756
- "name": "data.thread",
757
- "type": "zeebe:input"
758
- },
759
- "condition": {
760
- "property": "method",
761
- "equals": "chat.postMessage",
762
- "type": "simple"
621
+ "type": "zeebe:input",
622
+ "name": "data.newChannelName"
763
623
  },
764
- "type": "String"
765
- },
766
- {
767
- "id": "data.newChannelName",
768
- "label": "Channel name",
769
- "optional": false,
770
624
  "constraints": {
771
625
  "notEmpty": true,
772
626
  "pattern": {
@@ -774,34 +628,1471 @@
774
628
  "message": "May contain up to 80 lowercase letters, digits, underscores, and dashes"
775
629
  }
776
630
  },
777
- "feel": "optional",
778
- "group": "channel",
779
- "binding": {
780
- "name": "data.newChannelName",
781
- "type": "zeebe:input"
782
- },
783
631
  "condition": {
784
632
  "property": "method",
785
- "equals": "conversations.create",
786
- "type": "simple"
787
- },
788
- "type": "String"
633
+ "equals": "conversations.create"
634
+ }
789
635
  },
790
636
  {
791
- "id": "data.visibility",
792
637
  "label": "Visibility",
793
- "optional": false,
794
- "value": "PUBLIC",
795
- "constraints": {
796
- "notEmpty": true
797
- },
798
638
  "group": "channel",
799
- "binding": {
800
- "name": "data.visibility",
801
- "type": "zeebe:input"
802
- },
803
- "condition": {
804
- "property": "method",
639
+ "type": "Dropdown",
640
+ "value": "PUBLIC",
641
+ "optional": false,
642
+ "choices": [
643
+ {
644
+ "name": "Private",
645
+ "value": "PRIVATE"
646
+ },
647
+ {
648
+ "name": "Public",
649
+ "value": "PUBLIC"
650
+ }
651
+ ],
652
+ "binding": {
653
+ "type": "zeebe:input",
654
+ "name": "data.visibility"
655
+ },
656
+ "condition": {
657
+ "property": "method",
658
+ "equals": "conversations.create"
659
+ }
660
+ },
661
+ {
662
+ "label": "Message",
663
+ "group": "message",
664
+ "type": "Text",
665
+ "feel": "optional",
666
+ "binding": {
667
+ "type": "zeebe:input",
668
+ "name": "data.text"
669
+ },
670
+ "constraints": {
671
+ "notEmpty": true
672
+ },
673
+ "condition": {
674
+ "property": "method",
675
+ "equals": "chat.postMessage"
676
+ }
677
+ },
678
+ {
679
+ "label": "Channel name",
680
+ "group": "invite",
681
+ "type": "String",
682
+ "feel": "optional",
683
+ "binding": {
684
+ "type": "zeebe:input",
685
+ "name": "data.channelName"
686
+ },
687
+ "constraints": {
688
+ "notEmpty": true,
689
+ "pattern": {
690
+ "value": "^(=|[-_a-z0-9]{1,80}$)",
691
+ "message": "May contain up to 80 lowercase letters, digits, underscores, and dashes"
692
+ }
693
+ },
694
+ "condition": {
695
+ "property": "method",
696
+ "equals": "conversations.invite"
697
+ }
698
+ },
699
+ {
700
+ "label": "Users",
701
+ "description": "Comma-separated list of users, e.g., '@user1,@user2' or '=[ \"@user1\", \"user2@company.com\"]'",
702
+ "group": "invite",
703
+ "type": "String",
704
+ "feel": "optional",
705
+ "binding": {
706
+ "type": "zeebe:input",
707
+ "name": "data.users"
708
+ },
709
+ "constraints": {
710
+ "notEmpty": true
711
+ },
712
+ "condition": {
713
+ "property": "method",
714
+ "equals": "conversations.invite"
715
+ }
716
+ },
717
+ {
718
+ "label": "Result variable",
719
+ "description": "Name of variable to store the response in. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-variable\" target=\"_blank\">documentation</a>",
720
+ "group": "output",
721
+ "type": "String",
722
+ "binding": {
723
+ "type": "zeebe:taskHeader",
724
+ "key": "resultVariable"
725
+ }
726
+ },
727
+ {
728
+ "label": "Result expression",
729
+ "description": "Expression to map the response into process variables. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-expression\" target=\"_blank\">documentation</a>",
730
+ "group": "output",
731
+ "type": "Text",
732
+ "feel": "required",
733
+ "binding": {
734
+ "type": "zeebe:taskHeader",
735
+ "key": "resultExpression"
736
+ }
737
+ },
738
+ {
739
+ "label": "Error expression",
740
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#bpmn-errors\" target=\"_blank\">documentation</a>",
741
+ "group": "errors",
742
+ "type": "Text",
743
+ "feel": "required",
744
+ "binding": {
745
+ "type": "zeebe:taskHeader",
746
+ "key": "errorExpression"
747
+ }
748
+ }
749
+ ],
750
+ "engines": {
751
+ "camunda": "^8.2"
752
+ }
753
+ },
754
+ {
755
+ "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
756
+ "name": "Slack connector",
757
+ "id": "io.camunda.connectors.Slack.v1",
758
+ "deprecated": {
759
+ "message": "Replace with 'Slack connector' template.",
760
+ "documentationRef": "https://docs.camunda.io/docs/components/modeler/desktop-modeler/element-templates/using-templates/#replacing-templates"
761
+ },
762
+ "description": "Create a channel or send a message to a channel or user",
763
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/slack/",
764
+ "icon": {
765
+ "contents": "data:image/svg+xml;utf8,%3Csvg%20width%3D%2218%22%20height%3D%2218%22%20%20viewBox%3D%220%200%20127%20127%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cpath%20d%3D%22M27.2%2080c0%207.3-5.9%2013.2-13.2%2013.2C6.7%2093.2.8%2087.3.8%2080c0-7.3%205.9-13.2%2013.2-13.2h13.2V80zm6.6%200c0-7.3%205.9-13.2%2013.2-13.2%207.3%200%2013.2%205.9%2013.2%2013.2v33c0%207.3-5.9%2013.2-13.2%2013.2-7.3%200-13.2-5.9-13.2-13.2V80z%22%20fill%3D%22%23E01E5A%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M47%2027c-7.3%200-13.2-5.9-13.2-13.2C33.8%206.5%2039.7.6%2047%20.6c7.3%200%2013.2%205.9%2013.2%2013.2V27H47zm0%206.7c7.3%200%2013.2%205.9%2013.2%2013.2%200%207.3-5.9%2013.2-13.2%2013.2H13.9C6.6%2060.1.7%2054.2.7%2046.9c0-7.3%205.9-13.2%2013.2-13.2H47z%22%20fill%3D%22%2336C5F0%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M99.9%2046.9c0-7.3%205.9-13.2%2013.2-13.2%207.3%200%2013.2%205.9%2013.2%2013.2%200%207.3-5.9%2013.2-13.2%2013.2H99.9V46.9zm-6.6%200c0%207.3-5.9%2013.2-13.2%2013.2-7.3%200-13.2-5.9-13.2-13.2V13.8C66.9%206.5%2072.8.6%2080.1.6c7.3%200%2013.2%205.9%2013.2%2013.2v33.1z%22%20fill%3D%22%232EB67D%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M80.1%2099.8c7.3%200%2013.2%205.9%2013.2%2013.2%200%207.3-5.9%2013.2-13.2%2013.2-7.3%200-13.2-5.9-13.2-13.2V99.8h13.2zm0-6.6c-7.3%200-13.2-5.9-13.2-13.2%200-7.3%205.9-13.2%2013.2-13.2h33.1c7.3%200%2013.2%205.9%2013.2%2013.2%200%207.3-5.9%2013.2-13.2%2013.2H80.1z%22%20fill%3D%22%23ECB22E%22%2F%3E%0A%3C%2Fsvg%3E%0A"
766
+ },
767
+ "category": {
768
+ "id": "connectors",
769
+ "name": "Connectors"
770
+ },
771
+ "appliesTo": ["bpmn:Task"],
772
+ "elementType": {
773
+ "value": "bpmn:ServiceTask"
774
+ },
775
+ "groups": [
776
+ {
777
+ "id": "method",
778
+ "label": "Method"
779
+ },
780
+ {
781
+ "id": "authentication",
782
+ "label": "Authentication"
783
+ },
784
+ {
785
+ "id": "message",
786
+ "label": "Message"
787
+ },
788
+ {
789
+ "id": "channel",
790
+ "label": "Channel"
791
+ },
792
+ {
793
+ "id": "invite",
794
+ "label": "Invite"
795
+ },
796
+ {
797
+ "id": "output",
798
+ "label": "Output mapping"
799
+ },
800
+ {
801
+ "id": "errors",
802
+ "label": "Error handling"
803
+ }
804
+ ],
805
+ "properties": [
806
+ {
807
+ "type": "Hidden",
808
+ "value": "io.camunda:slack:1",
809
+ "binding": {
810
+ "type": "zeebe:taskDefinition",
811
+ "property": "type"
812
+ }
813
+ },
814
+ {
815
+ "label": "Method",
816
+ "group": "method",
817
+ "id": "method",
818
+ "type": "Dropdown",
819
+ "value": "chat.postMessage",
820
+ "choices": [
821
+ {
822
+ "name": "Post message",
823
+ "value": "chat.postMessage"
824
+ },
825
+ {
826
+ "name": "Create channel",
827
+ "value": "conversations.create"
828
+ },
829
+ {
830
+ "name": "Invite to channel",
831
+ "value": "conversations.invite"
832
+ }
833
+ ],
834
+ "binding": {
835
+ "type": "zeebe:input",
836
+ "name": "method"
837
+ }
838
+ },
839
+ {
840
+ "label": "OAuth token",
841
+ "group": "authentication",
842
+ "type": "String",
843
+ "feel": "optional",
844
+ "binding": {
845
+ "type": "zeebe:input",
846
+ "name": "token"
847
+ },
848
+ "constraints": {
849
+ "notEmpty": true
850
+ }
851
+ },
852
+ {
853
+ "label": "Channel/user name/email",
854
+ "group": "channel",
855
+ "type": "String",
856
+ "feel": "optional",
857
+ "binding": {
858
+ "type": "zeebe:input",
859
+ "name": "data.channel"
860
+ },
861
+ "constraints": {
862
+ "notEmpty": true,
863
+ "pattern": {
864
+ "value": "(^(#|@|=).*)|(^.+[@].+[.].{2,4}$)",
865
+ "message": "Must be a #channel, @user, email or FEEL expression."
866
+ }
867
+ },
868
+ "condition": {
869
+ "property": "method",
870
+ "equals": "chat.postMessage"
871
+ }
872
+ },
873
+ {
874
+ "label": "New channel name",
875
+ "group": "channel",
876
+ "type": "String",
877
+ "feel": "optional",
878
+ "binding": {
879
+ "type": "zeebe:input",
880
+ "name": "data.newChannelName"
881
+ },
882
+ "constraints": {
883
+ "notEmpty": true,
884
+ "pattern": {
885
+ "value": "^(=|([-_a-z0-9]{1,80}$))",
886
+ "message": "May contain up to 80 lowercase letters, digits, underscores, and dashes"
887
+ }
888
+ },
889
+ "condition": {
890
+ "property": "method",
891
+ "equals": "conversations.create"
892
+ }
893
+ },
894
+ {
895
+ "label": "Visibility",
896
+ "group": "channel",
897
+ "type": "Dropdown",
898
+ "value": "PUBLIC",
899
+ "optional": false,
900
+ "choices": [
901
+ {
902
+ "name": "Private",
903
+ "value": "PRIVATE"
904
+ },
905
+ {
906
+ "name": "Public",
907
+ "value": "PUBLIC"
908
+ }
909
+ ],
910
+ "binding": {
911
+ "type": "zeebe:input",
912
+ "name": "data.visibility"
913
+ },
914
+ "condition": {
915
+ "property": "method",
916
+ "equals": "conversations.create"
917
+ }
918
+ },
919
+ {
920
+ "label": "Message",
921
+ "group": "message",
922
+ "type": "Text",
923
+ "feel": "optional",
924
+ "binding": {
925
+ "type": "zeebe:input",
926
+ "name": "data.text"
927
+ },
928
+ "constraints": {
929
+ "notEmpty": true
930
+ },
931
+ "condition": {
932
+ "property": "method",
933
+ "equals": "chat.postMessage"
934
+ }
935
+ },
936
+ {
937
+ "label": "Channel name",
938
+ "group": "invite",
939
+ "type": "String",
940
+ "feel": "optional",
941
+ "binding": {
942
+ "type": "zeebe:input",
943
+ "name": "data.channelName"
944
+ },
945
+ "constraints": {
946
+ "notEmpty": true,
947
+ "pattern": {
948
+ "value": "^(=|([-_a-z0-9]{1,80}$))",
949
+ "message": "May contain up to 80 lowercase letters, digits, underscores, and dashes"
950
+ }
951
+ },
952
+ "condition": {
953
+ "property": "method",
954
+ "equals": "conversations.invite"
955
+ }
956
+ },
957
+ {
958
+ "label": "Users",
959
+ "description": "Comma-separated list of users, e.g., '@user1,@user2' or '=[ \"@user1\", \"user2@company.com\"]'",
960
+ "group": "invite",
961
+ "type": "String",
962
+ "feel": "optional",
963
+ "binding": {
964
+ "type": "zeebe:input",
965
+ "name": "data.users"
966
+ },
967
+ "constraints": {
968
+ "notEmpty": true
969
+ },
970
+ "condition": {
971
+ "property": "method",
972
+ "equals": "conversations.invite"
973
+ }
974
+ },
975
+ {
976
+ "label": "Result variable",
977
+ "description": "Name of variable to store the response in. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-variable\" target=\"_blank\">documentation</a>",
978
+ "group": "output",
979
+ "type": "String",
980
+ "binding": {
981
+ "type": "zeebe:taskHeader",
982
+ "key": "resultVariable"
983
+ }
984
+ },
985
+ {
986
+ "label": "Result expression",
987
+ "description": "Expression to map the response into process variables. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-expression\" target=\"_blank\">documentation</a>",
988
+ "group": "output",
989
+ "type": "Text",
990
+ "feel": "required",
991
+ "binding": {
992
+ "type": "zeebe:taskHeader",
993
+ "key": "resultExpression"
994
+ }
995
+ },
996
+ {
997
+ "label": "Error expression",
998
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#bpmn-errors\" target=\"_blank\">documentation</a>",
999
+ "group": "errors",
1000
+ "type": "Text",
1001
+ "feel": "required",
1002
+ "binding": {
1003
+ "type": "zeebe:taskHeader",
1004
+ "key": "errorExpression"
1005
+ }
1006
+ }
1007
+ ]
1008
+ },
1009
+ {
1010
+ "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1011
+ "name": "Slack Outbound Connector",
1012
+ "id": "io.camunda.connectors.Slack.v1",
1013
+ "description": "Create a channel or send a message to a channel or user",
1014
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/slack/?slack=outbound",
1015
+ "version": 4,
1016
+ "category": {
1017
+ "id": "connectors",
1018
+ "name": "Connectors"
1019
+ },
1020
+ "appliesTo": ["bpmn:Task"],
1021
+ "elementType": {
1022
+ "value": "bpmn:ServiceTask"
1023
+ },
1024
+ "groups": [
1025
+ {
1026
+ "id": "authentication",
1027
+ "label": "Authentication"
1028
+ },
1029
+ {
1030
+ "id": "method",
1031
+ "label": "Method"
1032
+ },
1033
+ {
1034
+ "id": "message",
1035
+ "label": "Message"
1036
+ },
1037
+ {
1038
+ "id": "channel",
1039
+ "label": "Channel"
1040
+ },
1041
+ {
1042
+ "id": "invite",
1043
+ "label": "Invite"
1044
+ },
1045
+ {
1046
+ "id": "output",
1047
+ "label": "Output mapping"
1048
+ },
1049
+ {
1050
+ "id": "error",
1051
+ "label": "Error handling"
1052
+ },
1053
+ {
1054
+ "id": "retries",
1055
+ "label": "Retries"
1056
+ }
1057
+ ],
1058
+ "properties": [
1059
+ {
1060
+ "value": "io.camunda:slack:1",
1061
+ "binding": {
1062
+ "property": "type",
1063
+ "type": "zeebe:taskDefinition"
1064
+ },
1065
+ "type": "Hidden"
1066
+ },
1067
+ {
1068
+ "id": "token",
1069
+ "label": "OAuth token",
1070
+ "optional": false,
1071
+ "constraints": {
1072
+ "notEmpty": true
1073
+ },
1074
+ "feel": "optional",
1075
+ "group": "authentication",
1076
+ "binding": {
1077
+ "name": "token",
1078
+ "type": "zeebe:input"
1079
+ },
1080
+ "type": "String"
1081
+ },
1082
+ {
1083
+ "id": "method",
1084
+ "label": "Method",
1085
+ "value": "chat.postMessage",
1086
+ "group": "method",
1087
+ "binding": {
1088
+ "name": "method",
1089
+ "type": "zeebe:input"
1090
+ },
1091
+ "type": "Dropdown",
1092
+ "choices": [
1093
+ {
1094
+ "name": "Post message",
1095
+ "value": "chat.postMessage"
1096
+ },
1097
+ {
1098
+ "name": "Create channel",
1099
+ "value": "conversations.create"
1100
+ },
1101
+ {
1102
+ "name": "Invite to channel",
1103
+ "value": "conversations.invite"
1104
+ }
1105
+ ]
1106
+ },
1107
+ {
1108
+ "id": "data.messageType",
1109
+ "label": "Message type",
1110
+ "optional": false,
1111
+ "value": "plainText",
1112
+ "group": "message",
1113
+ "binding": {
1114
+ "name": "data.messageType",
1115
+ "type": "zeebe:input"
1116
+ },
1117
+ "condition": {
1118
+ "allMatch": [
1119
+ {
1120
+ "property": "method",
1121
+ "equals": "chat.postMessage",
1122
+ "type": "simple"
1123
+ },
1124
+ {
1125
+ "property": "method",
1126
+ "equals": "chat.postMessage",
1127
+ "type": "simple"
1128
+ }
1129
+ ]
1130
+ },
1131
+ "type": "Dropdown",
1132
+ "choices": [
1133
+ {
1134
+ "name": "Plain text",
1135
+ "value": "plainText"
1136
+ },
1137
+ {
1138
+ "name": "Message block",
1139
+ "value": "messageBlock"
1140
+ }
1141
+ ]
1142
+ },
1143
+ {
1144
+ "id": "data.text",
1145
+ "label": "Message",
1146
+ "optional": false,
1147
+ "constraints": {
1148
+ "notEmpty": true
1149
+ },
1150
+ "feel": "optional",
1151
+ "group": "message",
1152
+ "binding": {
1153
+ "name": "data.text",
1154
+ "type": "zeebe:input"
1155
+ },
1156
+ "condition": {
1157
+ "allMatch": [
1158
+ {
1159
+ "property": "data.messageType",
1160
+ "equals": "plainText",
1161
+ "type": "simple"
1162
+ },
1163
+ {
1164
+ "property": "method",
1165
+ "equals": "chat.postMessage",
1166
+ "type": "simple"
1167
+ }
1168
+ ]
1169
+ },
1170
+ "type": "Text"
1171
+ },
1172
+ {
1173
+ "id": "data.blockContent",
1174
+ "label": "Message block",
1175
+ "description": "An array of rich message content blocks. Learn more at the <a href=\"https://api.slack.com/reference/surfaces/formatting#stack_of_blocks\" target=\"_blank\">official Slack documentation page</a>",
1176
+ "optional": false,
1177
+ "value": "=[\n\t{\n\t\t\"type\": \"header\",\n\t\t\"text\": {\n\t\t\t\"type\": \"plain_text\",\n\t\t\t\"text\": \"New request\"\n\t\t}\n\t},\n\t{\n\t\t\"type\": \"section\",\n\t\t\"fields\": [\n\t\t\t{\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"*Type:*\\nPaid Time Off\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"*Created by:*\\n<example.com|John Doe>\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"type\": \"section\",\n\t\t\"fields\": [\n\t\t\t{\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"*When:*\\nAug 10 - Aug 13\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"type\": \"section\",\n\t\t\"text\": {\n\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\"text\": \"<https://example.com|View request>\"\n\t\t}\n\t}\n]",
1178
+ "constraints": {
1179
+ "notEmpty": true
1180
+ },
1181
+ "feel": "required",
1182
+ "group": "message",
1183
+ "binding": {
1184
+ "name": "data.blockContent",
1185
+ "type": "zeebe:input"
1186
+ },
1187
+ "condition": {
1188
+ "allMatch": [
1189
+ {
1190
+ "property": "data.messageType",
1191
+ "equals": "messageBlock",
1192
+ "type": "simple"
1193
+ },
1194
+ {
1195
+ "property": "method",
1196
+ "equals": "chat.postMessage",
1197
+ "type": "simple"
1198
+ }
1199
+ ]
1200
+ },
1201
+ "type": "String"
1202
+ },
1203
+ {
1204
+ "id": "data.channel",
1205
+ "label": "Channel/user name/email",
1206
+ "optional": false,
1207
+ "constraints": {
1208
+ "notEmpty": true
1209
+ },
1210
+ "feel": "optional",
1211
+ "group": "channel",
1212
+ "binding": {
1213
+ "name": "data.channel",
1214
+ "type": "zeebe:input"
1215
+ },
1216
+ "condition": {
1217
+ "property": "method",
1218
+ "equals": "chat.postMessage",
1219
+ "type": "simple"
1220
+ },
1221
+ "type": "String"
1222
+ },
1223
+ {
1224
+ "id": "data.thread",
1225
+ "label": "Thread",
1226
+ "optional": true,
1227
+ "feel": "optional",
1228
+ "group": "channel",
1229
+ "binding": {
1230
+ "name": "data.thread",
1231
+ "type": "zeebe:input"
1232
+ },
1233
+ "condition": {
1234
+ "property": "method",
1235
+ "equals": "chat.postMessage",
1236
+ "type": "simple"
1237
+ },
1238
+ "type": "String"
1239
+ },
1240
+ {
1241
+ "id": "data.newChannelName",
1242
+ "label": "Channel name",
1243
+ "optional": false,
1244
+ "constraints": {
1245
+ "notEmpty": true,
1246
+ "pattern": {
1247
+ "value": "^(=|([-_a-z0-9]{1,80}$))",
1248
+ "message": "May contain up to 80 lowercase letters, digits, underscores, and dashes"
1249
+ }
1250
+ },
1251
+ "feel": "optional",
1252
+ "group": "channel",
1253
+ "binding": {
1254
+ "name": "data.newChannelName",
1255
+ "type": "zeebe:input"
1256
+ },
1257
+ "condition": {
1258
+ "property": "method",
1259
+ "equals": "conversations.create",
1260
+ "type": "simple"
1261
+ },
1262
+ "type": "String"
1263
+ },
1264
+ {
1265
+ "id": "data.visibility",
1266
+ "label": "Visibility",
1267
+ "optional": false,
1268
+ "value": "PUBLIC",
1269
+ "constraints": {
1270
+ "notEmpty": true
1271
+ },
1272
+ "group": "channel",
1273
+ "binding": {
1274
+ "name": "data.visibility",
1275
+ "type": "zeebe:input"
1276
+ },
1277
+ "condition": {
1278
+ "property": "method",
1279
+ "equals": "conversations.create",
1280
+ "type": "simple"
1281
+ },
1282
+ "type": "Dropdown",
1283
+ "choices": [
1284
+ {
1285
+ "name": "Public",
1286
+ "value": "PUBLIC"
1287
+ },
1288
+ {
1289
+ "name": "Private",
1290
+ "value": "PRIVATE"
1291
+ }
1292
+ ]
1293
+ },
1294
+ {
1295
+ "id": "data.channelName",
1296
+ "label": "Channel name",
1297
+ "optional": false,
1298
+ "constraints": {
1299
+ "notEmpty": true,
1300
+ "pattern": {
1301
+ "value": "^(=|([-_a-z0-9]{1,80}$))",
1302
+ "message": "May contain up to 80 lowercase letters, digits, underscores, and dashes"
1303
+ }
1304
+ },
1305
+ "feel": "optional",
1306
+ "group": "invite",
1307
+ "binding": {
1308
+ "name": "data.channelName",
1309
+ "type": "zeebe:input"
1310
+ },
1311
+ "condition": {
1312
+ "property": "method",
1313
+ "equals": "conversations.invite",
1314
+ "type": "simple"
1315
+ },
1316
+ "type": "String"
1317
+ },
1318
+ {
1319
+ "id": "data.users",
1320
+ "label": "Users",
1321
+ "description": "Comma-separated list of users, e.g., '@user1,@user2' or '=[ \"@user1\", \"user2@company.com\"]'",
1322
+ "optional": false,
1323
+ "constraints": {
1324
+ "notEmpty": true
1325
+ },
1326
+ "feel": "optional",
1327
+ "group": "invite",
1328
+ "binding": {
1329
+ "name": "data.users",
1330
+ "type": "zeebe:input"
1331
+ },
1332
+ "condition": {
1333
+ "property": "method",
1334
+ "equals": "conversations.invite",
1335
+ "type": "simple"
1336
+ },
1337
+ "type": "String"
1338
+ },
1339
+ {
1340
+ "id": "resultVariable",
1341
+ "label": "Result variable",
1342
+ "description": "Name of variable to store the response in",
1343
+ "group": "output",
1344
+ "binding": {
1345
+ "key": "resultVariable",
1346
+ "type": "zeebe:taskHeader"
1347
+ },
1348
+ "type": "String"
1349
+ },
1350
+ {
1351
+ "id": "resultExpression",
1352
+ "label": "Result expression",
1353
+ "description": "Expression to map the response into process variables",
1354
+ "feel": "required",
1355
+ "group": "output",
1356
+ "binding": {
1357
+ "key": "resultExpression",
1358
+ "type": "zeebe:taskHeader"
1359
+ },
1360
+ "type": "Text"
1361
+ },
1362
+ {
1363
+ "id": "errorExpression",
1364
+ "label": "Error expression",
1365
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
1366
+ "feel": "required",
1367
+ "group": "error",
1368
+ "binding": {
1369
+ "key": "errorExpression",
1370
+ "type": "zeebe:taskHeader"
1371
+ },
1372
+ "type": "Text"
1373
+ },
1374
+ {
1375
+ "id": "retryCount",
1376
+ "label": "Retries",
1377
+ "description": "Number of retries",
1378
+ "value": "3",
1379
+ "feel": "optional",
1380
+ "group": "retries",
1381
+ "binding": {
1382
+ "property": "retries",
1383
+ "type": "zeebe:taskDefinition"
1384
+ },
1385
+ "type": "String"
1386
+ },
1387
+ {
1388
+ "id": "retryBackoff",
1389
+ "label": "Retry backoff",
1390
+ "description": "ISO-8601 duration to wait between retries",
1391
+ "value": "PT0S",
1392
+ "feel": "optional",
1393
+ "group": "retries",
1394
+ "binding": {
1395
+ "key": "retryBackoff",
1396
+ "type": "zeebe:taskHeader"
1397
+ },
1398
+ "type": "String"
1399
+ }
1400
+ ],
1401
+ "icon": {
1402
+ "contents": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTI3IiBoZWlnaHQ9IjEyNyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNMjcuMiA4MGMwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjJDNi43IDkzLjIuOCA4Ny4zLjggODBjMC03LjMgNS45LTEzLjIgMTMuMi0xMy4yaDEzLjJWODB6bTYuNiAwYzAtNy4zIDUuOS0xMy4yIDEzLjItMTMuMiA3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjJ2MzNjMCA3LjMtNS45IDEzLjItMTMuMiAxMy4yLTcuMyAwLTEzLjItNS45LTEzLjItMTMuMlY4MHoiIGZpbGw9IiNFMDFFNUEiLz4KICA8cGF0aCBkPSJNNDcgMjdjLTcuMyAwLTEzLjItNS45LTEzLjItMTMuMkMzMy44IDYuNSAzOS43LjYgNDcgLjZjNy4zIDAgMTMuMiA1LjkgMTMuMiAxMy4yVjI3SDQ3em0wIDYuN2M3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjIgMCA3LjMtNS45IDEzLjItMTMuMiAxMy4ySDEzLjlDNi42IDYwLjEuNyA1NC4yLjcgNDYuOWMwLTcuMyA1LjktMTMuMiAxMy4yLTEzLjJINDd6IiBmaWxsPSIjMzZDNUYwIi8+CiAgPHBhdGggZD0iTTk5LjkgNDYuOWMwLTcuMyA1LjktMTMuMiAxMy4yLTEzLjIgNy4zIDAgMTMuMiA1LjkgMTMuMiAxMy4yIDAgNy4zLTUuOSAxMy4yLTEzLjIgMTMuMkg5OS45VjQ2Ljl6bS02LjYgMGMwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjItNy4zIDAtMTMuMi01LjktMTMuMi0xMy4yVjEzLjhDNjYuOSA2LjUgNzIuOC42IDgwLjEuNmM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjJ2MzMuMXoiIGZpbGw9IiMyRUI2N0QiLz4KICA8cGF0aCBkPSJNODAuMSA5OS44YzcuMyAwIDEzLjIgNS45IDEzLjIgMTMuMiAwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjItNy4zIDAtMTMuMi01LjktMTMuMi0xMy4yVjk5LjhoMTMuMnptMC02LjZjLTcuMyAwLTEzLjItNS45LTEzLjItMTMuMiAwLTcuMyA1LjktMTMuMiAxMy4yLTEzLjJoMzMuMWM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjIgMCA3LjMtNS45IDEzLjItMTMuMiAxMy4ySDgwLjF6IiBmaWxsPSIjRUNCMjJFIi8+Cjwvc3ZnPgo="
1403
+ },
1404
+ "engines": {
1405
+ "camunda": "^8.6"
1406
+ }
1407
+ },
1408
+ {
1409
+ "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1410
+ "name": "Slack Outbound Connector",
1411
+ "id": "io.camunda.connectors.Slack.v1",
1412
+ "description": "Create a channel or send a message to a channel or user",
1413
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/slack/?slack=outbound",
1414
+ "version": 3,
1415
+ "category": {
1416
+ "id": "connectors",
1417
+ "name": "Connectors"
1418
+ },
1419
+ "appliesTo": ["bpmn:Task"],
1420
+ "elementType": {
1421
+ "value": "bpmn:ServiceTask"
1422
+ },
1423
+ "groups": [
1424
+ {
1425
+ "id": "authentication",
1426
+ "label": "Authentication"
1427
+ },
1428
+ {
1429
+ "id": "method",
1430
+ "label": "Method"
1431
+ },
1432
+ {
1433
+ "id": "message",
1434
+ "label": "Message"
1435
+ },
1436
+ {
1437
+ "id": "channel",
1438
+ "label": "Channel"
1439
+ },
1440
+ {
1441
+ "id": "invite",
1442
+ "label": "Invite"
1443
+ },
1444
+ {
1445
+ "id": "output",
1446
+ "label": "Output mapping"
1447
+ },
1448
+ {
1449
+ "id": "error",
1450
+ "label": "Error handling"
1451
+ },
1452
+ {
1453
+ "id": "retries",
1454
+ "label": "Retries"
1455
+ }
1456
+ ],
1457
+ "properties": [
1458
+ {
1459
+ "value": "io.camunda:slack:1",
1460
+ "binding": {
1461
+ "property": "type",
1462
+ "type": "zeebe:taskDefinition"
1463
+ },
1464
+ "type": "Hidden"
1465
+ },
1466
+ {
1467
+ "id": "token",
1468
+ "label": "OAuth token",
1469
+ "optional": false,
1470
+ "constraints": {
1471
+ "notEmpty": true
1472
+ },
1473
+ "feel": "optional",
1474
+ "group": "authentication",
1475
+ "binding": {
1476
+ "name": "token",
1477
+ "type": "zeebe:input"
1478
+ },
1479
+ "type": "String"
1480
+ },
1481
+ {
1482
+ "id": "method",
1483
+ "label": "Method",
1484
+ "value": "chat.postMessage",
1485
+ "group": "method",
1486
+ "binding": {
1487
+ "name": "method",
1488
+ "type": "zeebe:input"
1489
+ },
1490
+ "type": "Dropdown",
1491
+ "choices": [
1492
+ {
1493
+ "name": "Post message",
1494
+ "value": "chat.postMessage"
1495
+ },
1496
+ {
1497
+ "name": "Create channel",
1498
+ "value": "conversations.create"
1499
+ },
1500
+ {
1501
+ "name": "Invite to channel",
1502
+ "value": "conversations.invite"
1503
+ }
1504
+ ]
1505
+ },
1506
+ {
1507
+ "id": "data.messageType",
1508
+ "label": "Message type",
1509
+ "optional": false,
1510
+ "value": "plainText",
1511
+ "group": "message",
1512
+ "binding": {
1513
+ "name": "data.messageType",
1514
+ "type": "zeebe:input"
1515
+ },
1516
+ "condition": {
1517
+ "allMatch": [
1518
+ {
1519
+ "property": "method",
1520
+ "equals": "chat.postMessage",
1521
+ "type": "simple"
1522
+ },
1523
+ {
1524
+ "property": "method",
1525
+ "equals": "chat.postMessage",
1526
+ "type": "simple"
1527
+ }
1528
+ ]
1529
+ },
1530
+ "type": "Dropdown",
1531
+ "choices": [
1532
+ {
1533
+ "name": "Plain text",
1534
+ "value": "plainText"
1535
+ },
1536
+ {
1537
+ "name": "Message block",
1538
+ "value": "messageBlock"
1539
+ }
1540
+ ]
1541
+ },
1542
+ {
1543
+ "id": "data.text",
1544
+ "label": "Message",
1545
+ "optional": false,
1546
+ "constraints": {
1547
+ "notEmpty": true
1548
+ },
1549
+ "feel": "optional",
1550
+ "group": "message",
1551
+ "binding": {
1552
+ "name": "data.text",
1553
+ "type": "zeebe:input"
1554
+ },
1555
+ "condition": {
1556
+ "allMatch": [
1557
+ {
1558
+ "property": "data.messageType",
1559
+ "equals": "plainText",
1560
+ "type": "simple"
1561
+ },
1562
+ {
1563
+ "property": "method",
1564
+ "equals": "chat.postMessage",
1565
+ "type": "simple"
1566
+ }
1567
+ ]
1568
+ },
1569
+ "type": "Text"
1570
+ },
1571
+ {
1572
+ "id": "data.blockContent",
1573
+ "label": "Message block",
1574
+ "description": "An array of rich message content blocks. Learn more at the <a href=\"https://api.slack.com/reference/surfaces/formatting#stack_of_blocks\" target=\"_blank\">official Slack documentation page</a>",
1575
+ "optional": false,
1576
+ "value": "=[\n\t{\n\t\t\"type\": \"header\",\n\t\t\"text\": {\n\t\t\t\"type\": \"plain_text\",\n\t\t\t\"text\": \"New request\"\n\t\t}\n\t},\n\t{\n\t\t\"type\": \"section\",\n\t\t\"fields\": [\n\t\t\t{\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"*Type:*\\nPaid Time Off\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"*Created by:*\\n<example.com|John Doe>\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"type\": \"section\",\n\t\t\"fields\": [\n\t\t\t{\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"*When:*\\nAug 10 - Aug 13\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"type\": \"section\",\n\t\t\"text\": {\n\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\"text\": \"<https://example.com|View request>\"\n\t\t}\n\t}\n]",
1577
+ "constraints": {
1578
+ "notEmpty": true
1579
+ },
1580
+ "feel": "required",
1581
+ "group": "message",
1582
+ "binding": {
1583
+ "name": "data.blockContent",
1584
+ "type": "zeebe:input"
1585
+ },
1586
+ "condition": {
1587
+ "allMatch": [
1588
+ {
1589
+ "property": "data.messageType",
1590
+ "equals": "messageBlock",
1591
+ "type": "simple"
1592
+ },
1593
+ {
1594
+ "property": "method",
1595
+ "equals": "chat.postMessage",
1596
+ "type": "simple"
1597
+ }
1598
+ ]
1599
+ },
1600
+ "type": "String"
1601
+ },
1602
+ {
1603
+ "id": "data.channel",
1604
+ "label": "Channel/user name/email",
1605
+ "optional": false,
1606
+ "constraints": {
1607
+ "notEmpty": true
1608
+ },
1609
+ "feel": "optional",
1610
+ "group": "channel",
1611
+ "binding": {
1612
+ "name": "data.channel",
1613
+ "type": "zeebe:input"
1614
+ },
1615
+ "condition": {
1616
+ "property": "method",
1617
+ "equals": "chat.postMessage",
1618
+ "type": "simple"
1619
+ },
1620
+ "type": "String"
1621
+ },
1622
+ {
1623
+ "id": "data.newChannelName",
1624
+ "label": "Channel name",
1625
+ "optional": false,
1626
+ "constraints": {
1627
+ "notEmpty": true,
1628
+ "pattern": {
1629
+ "value": "^(=|[-_a-z0-9]{1,80}$)",
1630
+ "message": "May contain up to 80 lowercase letters, digits, underscores, and dashes"
1631
+ }
1632
+ },
1633
+ "feel": "optional",
1634
+ "group": "channel",
1635
+ "binding": {
1636
+ "name": "data.newChannelName",
1637
+ "type": "zeebe:input"
1638
+ },
1639
+ "condition": {
1640
+ "property": "method",
1641
+ "equals": "conversations.create",
1642
+ "type": "simple"
1643
+ },
1644
+ "type": "String"
1645
+ },
1646
+ {
1647
+ "id": "data.visibility",
1648
+ "label": "Visibility",
1649
+ "optional": false,
1650
+ "value": "PUBLIC",
1651
+ "constraints": {
1652
+ "notEmpty": true
1653
+ },
1654
+ "group": "channel",
1655
+ "binding": {
1656
+ "name": "data.visibility",
1657
+ "type": "zeebe:input"
1658
+ },
1659
+ "condition": {
1660
+ "property": "method",
1661
+ "equals": "conversations.create",
1662
+ "type": "simple"
1663
+ },
1664
+ "type": "Dropdown",
1665
+ "choices": [
1666
+ {
1667
+ "name": "Public",
1668
+ "value": "PUBLIC"
1669
+ },
1670
+ {
1671
+ "name": "Private",
1672
+ "value": "PRIVATE"
1673
+ }
1674
+ ]
1675
+ },
1676
+ {
1677
+ "id": "data.channelName",
1678
+ "label": "Channel name",
1679
+ "optional": false,
1680
+ "constraints": {
1681
+ "notEmpty": true,
1682
+ "pattern": {
1683
+ "value": "^(=|[-_a-z0-9]{1,80}$)",
1684
+ "message": "May contain up to 80 lowercase letters, digits, underscores, and dashes"
1685
+ }
1686
+ },
1687
+ "feel": "optional",
1688
+ "group": "invite",
1689
+ "binding": {
1690
+ "name": "data.channelName",
1691
+ "type": "zeebe:input"
1692
+ },
1693
+ "condition": {
1694
+ "property": "method",
1695
+ "equals": "conversations.invite",
1696
+ "type": "simple"
1697
+ },
1698
+ "type": "String"
1699
+ },
1700
+ {
1701
+ "id": "data.users",
1702
+ "label": "Users",
1703
+ "description": "Comma-separated list of users, e.g., '@user1,@user2' or '=[ \"@user1\", \"user2@company.com\"]'",
1704
+ "optional": false,
1705
+ "constraints": {
1706
+ "notEmpty": true
1707
+ },
1708
+ "feel": "optional",
1709
+ "group": "invite",
1710
+ "binding": {
1711
+ "name": "data.users",
1712
+ "type": "zeebe:input"
1713
+ },
1714
+ "condition": {
1715
+ "property": "method",
1716
+ "equals": "conversations.invite",
1717
+ "type": "simple"
1718
+ },
1719
+ "type": "String"
1720
+ },
1721
+ {
1722
+ "id": "resultVariable",
1723
+ "label": "Result variable",
1724
+ "description": "Name of variable to store the response in",
1725
+ "group": "output",
1726
+ "binding": {
1727
+ "key": "resultVariable",
1728
+ "type": "zeebe:taskHeader"
1729
+ },
1730
+ "type": "String"
1731
+ },
1732
+ {
1733
+ "id": "resultExpression",
1734
+ "label": "Result expression",
1735
+ "description": "Expression to map the response into process variables",
1736
+ "feel": "required",
1737
+ "group": "output",
1738
+ "binding": {
1739
+ "key": "resultExpression",
1740
+ "type": "zeebe:taskHeader"
1741
+ },
1742
+ "type": "Text"
1743
+ },
1744
+ {
1745
+ "id": "errorExpression",
1746
+ "label": "Error expression",
1747
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
1748
+ "feel": "required",
1749
+ "group": "error",
1750
+ "binding": {
1751
+ "key": "errorExpression",
1752
+ "type": "zeebe:taskHeader"
1753
+ },
1754
+ "type": "Text"
1755
+ },
1756
+ {
1757
+ "id": "retryCount",
1758
+ "label": "Retries",
1759
+ "description": "Number of retries",
1760
+ "value": "3",
1761
+ "feel": "optional",
1762
+ "group": "retries",
1763
+ "binding": {
1764
+ "property": "retries",
1765
+ "type": "zeebe:taskDefinition"
1766
+ },
1767
+ "type": "String"
1768
+ },
1769
+ {
1770
+ "id": "retryBackoff",
1771
+ "label": "Retry backoff",
1772
+ "description": "ISO-8601 duration to wait between retries",
1773
+ "value": "PT0S",
1774
+ "feel": "optional",
1775
+ "group": "retries",
1776
+ "binding": {
1777
+ "key": "retryBackoff",
1778
+ "type": "zeebe:taskHeader"
1779
+ },
1780
+ "type": "String"
1781
+ }
1782
+ ],
1783
+ "icon": {
1784
+ "contents": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTI3IiBoZWlnaHQ9IjEyNyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNMjcuMiA4MGMwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjJDNi43IDkzLjIuOCA4Ny4zLjggODBjMC03LjMgNS45LTEzLjIgMTMuMi0xMy4yaDEzLjJWODB6bTYuNiAwYzAtNy4zIDUuOS0xMy4yIDEzLjItMTMuMiA3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjJ2MzNjMCA3LjMtNS45IDEzLjItMTMuMiAxMy4yLTcuMyAwLTEzLjItNS45LTEzLjItMTMuMlY4MHoiIGZpbGw9IiNFMDFFNUEiLz4KICA8cGF0aCBkPSJNNDcgMjdjLTcuMyAwLTEzLjItNS45LTEzLjItMTMuMkMzMy44IDYuNSAzOS43LjYgNDcgLjZjNy4zIDAgMTMuMiA1LjkgMTMuMiAxMy4yVjI3SDQ3em0wIDYuN2M3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjIgMCA3LjMtNS45IDEzLjItMTMuMiAxMy4ySDEzLjlDNi42IDYwLjEuNyA1NC4yLjcgNDYuOWMwLTcuMyA1LjktMTMuMiAxMy4yLTEzLjJINDd6IiBmaWxsPSIjMzZDNUYwIi8+CiAgPHBhdGggZD0iTTk5LjkgNDYuOWMwLTcuMyA1LjktMTMuMiAxMy4yLTEzLjIgNy4zIDAgMTMuMiA1LjkgMTMuMiAxMy4yIDAgNy4zLTUuOSAxMy4yLTEzLjIgMTMuMkg5OS45VjQ2Ljl6bS02LjYgMGMwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjItNy4zIDAtMTMuMi01LjktMTMuMi0xMy4yVjEzLjhDNjYuOSA2LjUgNzIuOC42IDgwLjEuNmM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjJ2MzMuMXoiIGZpbGw9IiMyRUI2N0QiLz4KICA8cGF0aCBkPSJNODAuMSA5OS44YzcuMyAwIDEzLjIgNS45IDEzLjIgMTMuMiAwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjItNy4zIDAtMTMuMi01LjktMTMuMi0xMy4yVjk5LjhoMTMuMnptMC02LjZjLTcuMyAwLTEzLjItNS45LTEzLjItMTMuMiAwLTcuMyA1LjktMTMuMiAxMy4yLTEzLjJoMzMuMWM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjIgMCA3LjMtNS45IDEzLjItMTMuMiAxMy4ySDgwLjF6IiBmaWxsPSIjRUNCMjJFIi8+Cjwvc3ZnPgo="
1785
+ },
1786
+ "engines": {
1787
+ "camunda": "^8.5"
1788
+ }
1789
+ },
1790
+ {
1791
+ "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1792
+ "name": "Slack Outbound Connector",
1793
+ "id": "io.camunda.connectors.Slack.v1",
1794
+ "description": "Create a channel or send a message to a channel or user",
1795
+ "metadata": {
1796
+ "keywords": []
1797
+ },
1798
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/slack/?slack=outbound",
1799
+ "version": 7,
1800
+ "category": {
1801
+ "id": "connectors",
1802
+ "name": "Connectors"
1803
+ },
1804
+ "appliesTo": ["bpmn:Task"],
1805
+ "elementType": {
1806
+ "value": "bpmn:ServiceTask"
1807
+ },
1808
+ "engines": {
1809
+ "camunda": "^8.3"
1810
+ },
1811
+ "groups": [
1812
+ {
1813
+ "id": "authentication",
1814
+ "label": "Authentication"
1815
+ },
1816
+ {
1817
+ "id": "method",
1818
+ "label": "Method"
1819
+ },
1820
+ {
1821
+ "id": "message",
1822
+ "label": "Message"
1823
+ },
1824
+ {
1825
+ "id": "channel",
1826
+ "label": "Channel"
1827
+ },
1828
+ {
1829
+ "id": "invite",
1830
+ "label": "Invite"
1831
+ },
1832
+ {
1833
+ "id": "reaction",
1834
+ "label": "Reaction"
1835
+ },
1836
+ {
1837
+ "id": "connector",
1838
+ "label": "Connector"
1839
+ },
1840
+ {
1841
+ "id": "output",
1842
+ "label": "Output mapping"
1843
+ },
1844
+ {
1845
+ "id": "error",
1846
+ "label": "Error handling"
1847
+ },
1848
+ {
1849
+ "id": "retries",
1850
+ "label": "Retries"
1851
+ }
1852
+ ],
1853
+ "properties": [
1854
+ {
1855
+ "value": "io.camunda:slack:1",
1856
+ "binding": {
1857
+ "property": "type",
1858
+ "type": "zeebe:taskDefinition"
1859
+ },
1860
+ "type": "Hidden"
1861
+ },
1862
+ {
1863
+ "id": "token",
1864
+ "label": "OAuth token",
1865
+ "optional": false,
1866
+ "constraints": {
1867
+ "notEmpty": true
1868
+ },
1869
+ "feel": "optional",
1870
+ "group": "authentication",
1871
+ "binding": {
1872
+ "name": "token",
1873
+ "type": "zeebe:input"
1874
+ },
1875
+ "type": "String"
1876
+ },
1877
+ {
1878
+ "id": "method",
1879
+ "label": "Method",
1880
+ "value": "chat.postMessage",
1881
+ "group": "method",
1882
+ "binding": {
1883
+ "name": "method",
1884
+ "type": "zeebe:input"
1885
+ },
1886
+ "type": "Dropdown",
1887
+ "choices": [
1888
+ {
1889
+ "name": "Post message",
1890
+ "value": "chat.postMessage"
1891
+ },
1892
+ {
1893
+ "name": "Create channel",
1894
+ "value": "conversations.create"
1895
+ },
1896
+ {
1897
+ "name": "Invite to channel",
1898
+ "value": "conversations.invite"
1899
+ },
1900
+ {
1901
+ "name": "Add reaction",
1902
+ "value": "reactions.add"
1903
+ }
1904
+ ]
1905
+ },
1906
+ {
1907
+ "id": "data.messageType",
1908
+ "label": "Message type",
1909
+ "optional": false,
1910
+ "value": "plainText",
1911
+ "group": "message",
1912
+ "binding": {
1913
+ "name": "data.messageType",
1914
+ "type": "zeebe:input"
1915
+ },
1916
+ "condition": {
1917
+ "allMatch": [
1918
+ {
1919
+ "property": "method",
1920
+ "equals": "chat.postMessage",
1921
+ "type": "simple"
1922
+ },
1923
+ {
1924
+ "property": "method",
1925
+ "equals": "chat.postMessage",
1926
+ "type": "simple"
1927
+ }
1928
+ ]
1929
+ },
1930
+ "type": "Dropdown",
1931
+ "choices": [
1932
+ {
1933
+ "name": "Plain text",
1934
+ "value": "plainText"
1935
+ },
1936
+ {
1937
+ "name": "Message block",
1938
+ "value": "messageBlock"
1939
+ }
1940
+ ]
1941
+ },
1942
+ {
1943
+ "id": "data.text",
1944
+ "label": "Message",
1945
+ "optional": false,
1946
+ "constraints": {
1947
+ "notEmpty": true
1948
+ },
1949
+ "feel": "optional",
1950
+ "group": "message",
1951
+ "binding": {
1952
+ "name": "data.text",
1953
+ "type": "zeebe:input"
1954
+ },
1955
+ "condition": {
1956
+ "allMatch": [
1957
+ {
1958
+ "property": "data.messageType",
1959
+ "equals": "plainText",
1960
+ "type": "simple"
1961
+ },
1962
+ {
1963
+ "property": "method",
1964
+ "equals": "chat.postMessage",
1965
+ "type": "simple"
1966
+ }
1967
+ ]
1968
+ },
1969
+ "type": "Text"
1970
+ },
1971
+ {
1972
+ "id": "data.blockContent",
1973
+ "label": "Message block",
1974
+ "description": "An array of rich message content blocks. Learn more at the <a href=\"https://api.slack.com/reference/surfaces/formatting#stack_of_blocks\" target=\"_blank\">official Slack documentation page</a>",
1975
+ "optional": false,
1976
+ "value": "=[\n\t{\n\t\t\"type\": \"header\",\n\t\t\"text\": {\n\t\t\t\"type\": \"plain_text\",\n\t\t\t\"text\": \"New request\"\n\t\t}\n\t},\n\t{\n\t\t\"type\": \"section\",\n\t\t\"fields\": [\n\t\t\t{\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"*Type:*\\nPaid Time Off\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"*Created by:*\\n<example.com|John Doe>\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"type\": \"section\",\n\t\t\"fields\": [\n\t\t\t{\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"*When:*\\nAug 10 - Aug 13\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\t\"type\": \"section\",\n\t\t\"text\": {\n\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\"text\": \"<https://example.com|View request>\"\n\t\t}\n\t}\n]",
1977
+ "constraints": {
1978
+ "notEmpty": true
1979
+ },
1980
+ "feel": "required",
1981
+ "group": "message",
1982
+ "binding": {
1983
+ "name": "data.blockContent",
1984
+ "type": "zeebe:input"
1985
+ },
1986
+ "condition": {
1987
+ "allMatch": [
1988
+ {
1989
+ "property": "data.messageType",
1990
+ "equals": "messageBlock",
1991
+ "type": "simple"
1992
+ },
1993
+ {
1994
+ "property": "method",
1995
+ "equals": "chat.postMessage",
1996
+ "type": "simple"
1997
+ }
1998
+ ]
1999
+ },
2000
+ "type": "String"
2001
+ },
2002
+ {
2003
+ "id": "data.documents",
2004
+ "label": "attachments",
2005
+ "description": "<a href=\"https://docs.camunda.io/docs/apis-tools/camunda-api-rest/specifications/upload-document-alpha/\">Camunda documents</a> can be added as attachments",
2006
+ "optional": true,
2007
+ "feel": "required",
2008
+ "group": "message",
2009
+ "binding": {
2010
+ "name": "data.documents",
2011
+ "type": "zeebe:input"
2012
+ },
2013
+ "condition": {
2014
+ "property": "method",
2015
+ "equals": "chat.postMessage",
2016
+ "type": "simple"
2017
+ },
2018
+ "type": "String"
2019
+ },
2020
+ {
2021
+ "id": "data.channel",
2022
+ "label": "Channel/user name/email",
2023
+ "optional": false,
2024
+ "constraints": {
2025
+ "notEmpty": true
2026
+ },
2027
+ "feel": "optional",
2028
+ "group": "channel",
2029
+ "binding": {
2030
+ "name": "data.channel",
2031
+ "type": "zeebe:input"
2032
+ },
2033
+ "condition": {
2034
+ "property": "method",
2035
+ "equals": "chat.postMessage",
2036
+ "type": "simple"
2037
+ },
2038
+ "type": "String"
2039
+ },
2040
+ {
2041
+ "id": "data.thread",
2042
+ "label": "Thread",
2043
+ "optional": true,
2044
+ "feel": "optional",
2045
+ "group": "channel",
2046
+ "binding": {
2047
+ "name": "data.thread",
2048
+ "type": "zeebe:input"
2049
+ },
2050
+ "condition": {
2051
+ "property": "method",
2052
+ "equals": "chat.postMessage",
2053
+ "type": "simple"
2054
+ },
2055
+ "type": "String"
2056
+ },
2057
+ {
2058
+ "id": "data.newChannelName",
2059
+ "label": "Channel name",
2060
+ "optional": false,
2061
+ "constraints": {
2062
+ "notEmpty": true,
2063
+ "pattern": {
2064
+ "value": "^(=|([-_a-z0-9]{1,80}$))",
2065
+ "message": "May contain up to 80 lowercase letters, digits, underscores, and dashes"
2066
+ }
2067
+ },
2068
+ "feel": "optional",
2069
+ "group": "channel",
2070
+ "binding": {
2071
+ "name": "data.newChannelName",
2072
+ "type": "zeebe:input"
2073
+ },
2074
+ "condition": {
2075
+ "property": "method",
2076
+ "equals": "conversations.create",
2077
+ "type": "simple"
2078
+ },
2079
+ "type": "String"
2080
+ },
2081
+ {
2082
+ "id": "data.visibility",
2083
+ "label": "Visibility",
2084
+ "optional": false,
2085
+ "value": "PUBLIC",
2086
+ "constraints": {
2087
+ "notEmpty": true
2088
+ },
2089
+ "group": "channel",
2090
+ "binding": {
2091
+ "name": "data.visibility",
2092
+ "type": "zeebe:input"
2093
+ },
2094
+ "condition": {
2095
+ "property": "method",
805
2096
  "equals": "conversations.create",
806
2097
  "type": "simple"
807
2098
  },
@@ -1097,8 +2388,11 @@
1097
2388
  "name": "Slack Outbound Connector",
1098
2389
  "id": "io.camunda.connectors.Slack.v1",
1099
2390
  "description": "Create a channel or send a message to a channel or user",
2391
+ "metadata": {
2392
+ "keywords": []
2393
+ },
1100
2394
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/slack/?slack=outbound",
1101
- "version": 3,
2395
+ "version": 8,
1102
2396
  "category": {
1103
2397
  "id": "connectors",
1104
2398
  "name": "Connectors"
@@ -1107,6 +2401,9 @@
1107
2401
  "elementType": {
1108
2402
  "value": "bpmn:ServiceTask"
1109
2403
  },
2404
+ "engines": {
2405
+ "camunda": "^8.3"
2406
+ },
1110
2407
  "groups": [
1111
2408
  {
1112
2409
  "id": "authentication",
@@ -1128,6 +2425,22 @@
1128
2425
  "id": "invite",
1129
2426
  "label": "Invite"
1130
2427
  },
2428
+ {
2429
+ "id": "reaction",
2430
+ "label": "Reaction"
2431
+ },
2432
+ {
2433
+ "id": "pinMessage",
2434
+ "label": "Pin Message"
2435
+ },
2436
+ {
2437
+ "id": "unpinMessage",
2438
+ "label": "Unpin Message"
2439
+ },
2440
+ {
2441
+ "id": "connector",
2442
+ "label": "Connector"
2443
+ },
1131
2444
  {
1132
2445
  "id": "output",
1133
2446
  "label": "Output mapping"
@@ -1187,6 +2500,18 @@
1187
2500
  {
1188
2501
  "name": "Invite to channel",
1189
2502
  "value": "conversations.invite"
2503
+ },
2504
+ {
2505
+ "name": "Add reaction",
2506
+ "value": "reactions.add"
2507
+ },
2508
+ {
2509
+ "name": "Pin Message",
2510
+ "value": "pins.add"
2511
+ },
2512
+ {
2513
+ "name": "Unpin Message",
2514
+ "value": "pins.remove"
1190
2515
  }
1191
2516
  ]
1192
2517
  },
@@ -1286,6 +2611,24 @@
1286
2611
  },
1287
2612
  "type": "String"
1288
2613
  },
2614
+ {
2615
+ "id": "data.documents",
2616
+ "label": "attachments",
2617
+ "description": "<a href=\"https://docs.camunda.io/docs/apis-tools/camunda-api-rest/specifications/upload-document-alpha/\">Camunda documents</a> can be added as attachments",
2618
+ "optional": true,
2619
+ "feel": "required",
2620
+ "group": "message",
2621
+ "binding": {
2622
+ "name": "data.documents",
2623
+ "type": "zeebe:input"
2624
+ },
2625
+ "condition": {
2626
+ "property": "method",
2627
+ "equals": "chat.postMessage",
2628
+ "type": "simple"
2629
+ },
2630
+ "type": "String"
2631
+ },
1289
2632
  {
1290
2633
  "id": "data.channel",
1291
2634
  "label": "Channel/user name/email",
@@ -1306,6 +2649,23 @@
1306
2649
  },
1307
2650
  "type": "String"
1308
2651
  },
2652
+ {
2653
+ "id": "data.thread",
2654
+ "label": "Thread",
2655
+ "optional": true,
2656
+ "feel": "optional",
2657
+ "group": "channel",
2658
+ "binding": {
2659
+ "name": "data.thread",
2660
+ "type": "zeebe:input"
2661
+ },
2662
+ "condition": {
2663
+ "property": "method",
2664
+ "equals": "chat.postMessage",
2665
+ "type": "simple"
2666
+ },
2667
+ "type": "String"
2668
+ },
1309
2669
  {
1310
2670
  "id": "data.newChannelName",
1311
2671
  "label": "Channel name",
@@ -1313,7 +2673,7 @@
1313
2673
  "constraints": {
1314
2674
  "notEmpty": true,
1315
2675
  "pattern": {
1316
- "value": "^(=|[-_a-z0-9]{1,80}$)",
2676
+ "value": "^(=|([-_a-z0-9]{1,80}$))",
1317
2677
  "message": "May contain up to 80 lowercase letters, digits, underscores, and dashes"
1318
2678
  }
1319
2679
  },
@@ -1360,6 +2720,42 @@
1360
2720
  }
1361
2721
  ]
1362
2722
  },
2723
+ {
2724
+ "id": "data.channelType",
2725
+ "label": "Invite By",
2726
+ "optional": false,
2727
+ "value": "channelId",
2728
+ "group": "invite",
2729
+ "binding": {
2730
+ "name": "data.channelType",
2731
+ "type": "zeebe:input"
2732
+ },
2733
+ "condition": {
2734
+ "allMatch": [
2735
+ {
2736
+ "property": "method",
2737
+ "equals": "conversations.invite",
2738
+ "type": "simple"
2739
+ },
2740
+ {
2741
+ "property": "method",
2742
+ "equals": "conversations.invite",
2743
+ "type": "simple"
2744
+ }
2745
+ ]
2746
+ },
2747
+ "type": "Dropdown",
2748
+ "choices": [
2749
+ {
2750
+ "name": "Channel ID",
2751
+ "value": "channelId"
2752
+ },
2753
+ {
2754
+ "name": "Channel name",
2755
+ "value": "channelName"
2756
+ }
2757
+ ]
2758
+ },
1363
2759
  {
1364
2760
  "id": "data.channelName",
1365
2761
  "label": "Channel name",
@@ -1367,7 +2763,7 @@
1367
2763
  "constraints": {
1368
2764
  "notEmpty": true,
1369
2765
  "pattern": {
1370
- "value": "^(=|[-_a-z0-9]{1,80}$)",
2766
+ "value": "^(=|([-_a-z0-9]{1,80}$))",
1371
2767
  "message": "May contain up to 80 lowercase letters, digits, underscores, and dashes"
1372
2768
  }
1373
2769
  },
@@ -1378,9 +2774,51 @@
1378
2774
  "type": "zeebe:input"
1379
2775
  },
1380
2776
  "condition": {
1381
- "property": "method",
1382
- "equals": "conversations.invite",
1383
- "type": "simple"
2777
+ "allMatch": [
2778
+ {
2779
+ "property": "data.channelType",
2780
+ "equals": "channelName",
2781
+ "type": "simple"
2782
+ },
2783
+ {
2784
+ "property": "method",
2785
+ "equals": "conversations.invite",
2786
+ "type": "simple"
2787
+ }
2788
+ ]
2789
+ },
2790
+ "type": "String"
2791
+ },
2792
+ {
2793
+ "id": "data.channelId",
2794
+ "label": "Channel ID",
2795
+ "optional": false,
2796
+ "constraints": {
2797
+ "notEmpty": true,
2798
+ "pattern": {
2799
+ "value": "^(=|([-_a-z0-9]{1,80}$))",
2800
+ "message": "May contain up to 80 lowercase letters, digits, underscores, and dashes"
2801
+ }
2802
+ },
2803
+ "feel": "optional",
2804
+ "group": "invite",
2805
+ "binding": {
2806
+ "name": "data.channelId",
2807
+ "type": "zeebe:input"
2808
+ },
2809
+ "condition": {
2810
+ "allMatch": [
2811
+ {
2812
+ "property": "data.channelType",
2813
+ "equals": "channelId",
2814
+ "type": "simple"
2815
+ },
2816
+ {
2817
+ "property": "method",
2818
+ "equals": "conversations.invite",
2819
+ "type": "simple"
2820
+ }
2821
+ ]
1384
2822
  },
1385
2823
  "type": "String"
1386
2824
  },
@@ -1406,337 +2844,246 @@
1406
2844
  "type": "String"
1407
2845
  },
1408
2846
  {
1409
- "id": "resultVariable",
1410
- "label": "Result variable",
1411
- "description": "Name of variable to store the response in",
1412
- "group": "output",
1413
- "binding": {
1414
- "key": "resultVariable",
1415
- "type": "zeebe:taskHeader"
1416
- },
1417
- "type": "String"
1418
- },
1419
- {
1420
- "id": "resultExpression",
1421
- "label": "Result expression",
1422
- "description": "Expression to map the response into process variables",
1423
- "feel": "required",
1424
- "group": "output",
1425
- "binding": {
1426
- "key": "resultExpression",
1427
- "type": "zeebe:taskHeader"
1428
- },
1429
- "type": "Text"
1430
- },
1431
- {
1432
- "id": "errorExpression",
1433
- "label": "Error expression",
1434
- "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
1435
- "feel": "required",
1436
- "group": "error",
1437
- "binding": {
1438
- "key": "errorExpression",
1439
- "type": "zeebe:taskHeader"
2847
+ "id": "reaction.channel",
2848
+ "label": "Channel",
2849
+ "description": "Channel ID of the message to react to",
2850
+ "optional": false,
2851
+ "constraints": {
2852
+ "notEmpty": true
1440
2853
  },
1441
- "type": "Text"
1442
- },
1443
- {
1444
- "id": "retryCount",
1445
- "label": "Retries",
1446
- "description": "Number of retries",
1447
- "value": "3",
1448
2854
  "feel": "optional",
1449
- "group": "retries",
2855
+ "group": "reaction",
1450
2856
  "binding": {
1451
- "property": "retries",
1452
- "type": "zeebe:taskDefinition"
2857
+ "name": "data.channel",
2858
+ "type": "zeebe:input"
2859
+ },
2860
+ "condition": {
2861
+ "property": "method",
2862
+ "equals": "reactions.add",
2863
+ "type": "simple"
1453
2864
  },
1454
2865
  "type": "String"
1455
2866
  },
1456
2867
  {
1457
- "id": "retryBackoff",
1458
- "label": "Retry backoff",
1459
- "description": "ISO-8601 duration to wait between retries",
1460
- "value": "PT0S",
2868
+ "id": "data.emoji",
2869
+ "label": "Emoji name",
2870
+ "description": "Emoji name (e.g. eyes)",
2871
+ "optional": false,
2872
+ "constraints": {
2873
+ "notEmpty": true
2874
+ },
1461
2875
  "feel": "optional",
1462
- "group": "retries",
2876
+ "group": "reaction",
1463
2877
  "binding": {
1464
- "key": "retryBackoff",
1465
- "type": "zeebe:taskHeader"
2878
+ "name": "data.emoji",
2879
+ "type": "zeebe:input"
2880
+ },
2881
+ "condition": {
2882
+ "property": "method",
2883
+ "equals": "reactions.add",
2884
+ "type": "simple"
1466
2885
  },
1467
2886
  "type": "String"
1468
- }
1469
- ],
1470
- "icon": {
1471
- "contents": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTI3IiBoZWlnaHQ9IjEyNyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNMjcuMiA4MGMwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjJDNi43IDkzLjIuOCA4Ny4zLjggODBjMC03LjMgNS45LTEzLjIgMTMuMi0xMy4yaDEzLjJWODB6bTYuNiAwYzAtNy4zIDUuOS0xMy4yIDEzLjItMTMuMiA3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjJ2MzNjMCA3LjMtNS45IDEzLjItMTMuMiAxMy4yLTcuMyAwLTEzLjItNS45LTEzLjItMTMuMlY4MHoiIGZpbGw9IiNFMDFFNUEiLz4KICA8cGF0aCBkPSJNNDcgMjdjLTcuMyAwLTEzLjItNS45LTEzLjItMTMuMkMzMy44IDYuNSAzOS43LjYgNDcgLjZjNy4zIDAgMTMuMiA1LjkgMTMuMiAxMy4yVjI3SDQ3em0wIDYuN2M3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjIgMCA3LjMtNS45IDEzLjItMTMuMiAxMy4ySDEzLjlDNi42IDYwLjEuNyA1NC4yLjcgNDYuOWMwLTcuMyA1LjktMTMuMiAxMy4yLTEzLjJINDd6IiBmaWxsPSIjMzZDNUYwIi8+CiAgPHBhdGggZD0iTTk5LjkgNDYuOWMwLTcuMyA1LjktMTMuMiAxMy4yLTEzLjIgNy4zIDAgMTMuMiA1LjkgMTMuMiAxMy4yIDAgNy4zLTUuOSAxMy4yLTEzLjIgMTMuMkg5OS45VjQ2Ljl6bS02LjYgMGMwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjItNy4zIDAtMTMuMi01LjktMTMuMi0xMy4yVjEzLjhDNjYuOSA2LjUgNzIuOC42IDgwLjEuNmM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjJ2MzMuMXoiIGZpbGw9IiMyRUI2N0QiLz4KICA8cGF0aCBkPSJNODAuMSA5OS44YzcuMyAwIDEzLjIgNS45IDEzLjIgMTMuMiAwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjItNy4zIDAtMTMuMi01LjktMTMuMi0xMy4yVjk5LjhoMTMuMnptMC02LjZjLTcuMyAwLTEzLjItNS45LTEzLjItMTMuMiAwLTcuMyA1LjktMTMuMiAxMy4yLTEzLjJoMzMuMWM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjIgMCA3LjMtNS45IDEzLjItMTMuMiAxMy4ySDgwLjF6IiBmaWxsPSIjRUNCMjJFIi8+Cjwvc3ZnPgo="
1472
- },
1473
- "engines": {
1474
- "camunda": "^8.5"
1475
- }
1476
- },
1477
- {
1478
- "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1479
- "name": "Slack Outbound Connector",
1480
- "id": "io.camunda.connectors.Slack.v1",
1481
- "version": 2,
1482
- "description": "Create a channel or send a message to a channel or user",
1483
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/slack/?slack=outbound",
1484
- "icon": {
1485
- "contents": "data:image/svg+xml;utf8,%3Csvg%20width%3D%2218%22%20height%3D%2218%22%20%20viewBox%3D%220%200%20127%20127%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cpath%20d%3D%22M27.2%2080c0%207.3-5.9%2013.2-13.2%2013.2C6.7%2093.2.8%2087.3.8%2080c0-7.3%205.9-13.2%2013.2-13.2h13.2V80zm6.6%200c0-7.3%205.9-13.2%2013.2-13.2%207.3%200%2013.2%205.9%2013.2%2013.2v33c0%207.3-5.9%2013.2-13.2%2013.2-7.3%200-13.2-5.9-13.2-13.2V80z%22%20fill%3D%22%23E01E5A%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M47%2027c-7.3%200-13.2-5.9-13.2-13.2C33.8%206.5%2039.7.6%2047%20.6c7.3%200%2013.2%205.9%2013.2%2013.2V27H47zm0%206.7c7.3%200%2013.2%205.9%2013.2%2013.2%200%207.3-5.9%2013.2-13.2%2013.2H13.9C6.6%2060.1.7%2054.2.7%2046.9c0-7.3%205.9-13.2%2013.2-13.2H47z%22%20fill%3D%22%2336C5F0%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M99.9%2046.9c0-7.3%205.9-13.2%2013.2-13.2%207.3%200%2013.2%205.9%2013.2%2013.2%200%207.3-5.9%2013.2-13.2%2013.2H99.9V46.9zm-6.6%200c0%207.3-5.9%2013.2-13.2%2013.2-7.3%200-13.2-5.9-13.2-13.2V13.8C66.9%206.5%2072.8.6%2080.1.6c7.3%200%2013.2%205.9%2013.2%2013.2v33.1z%22%20fill%3D%22%232EB67D%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M80.1%2099.8c7.3%200%2013.2%205.9%2013.2%2013.2%200%207.3-5.9%2013.2-13.2%2013.2-7.3%200-13.2-5.9-13.2-13.2V99.8h13.2zm0-6.6c-7.3%200-13.2-5.9-13.2-13.2%200-7.3%205.9-13.2%2013.2-13.2h33.1c7.3%200%2013.2%205.9%2013.2%2013.2%200%207.3-5.9%2013.2-13.2%2013.2H80.1z%22%20fill%3D%22%23ECB22E%22%2F%3E%0A%3C%2Fsvg%3E%0A"
1486
- },
1487
- "category": {
1488
- "id": "connectors",
1489
- "name": "Connectors"
1490
- },
1491
- "appliesTo": ["bpmn:Task"],
1492
- "elementType": {
1493
- "value": "bpmn:ServiceTask"
1494
- },
1495
- "groups": [
1496
- {
1497
- "id": "method",
1498
- "label": "Method"
1499
- },
1500
- {
1501
- "id": "authentication",
1502
- "label": "Authentication"
1503
- },
1504
- {
1505
- "id": "message",
1506
- "label": "Message"
1507
- },
1508
- {
1509
- "id": "channel",
1510
- "label": "Channel"
1511
- },
1512
- {
1513
- "id": "invite",
1514
- "label": "Invite"
1515
- },
1516
- {
1517
- "id": "output",
1518
- "label": "Output mapping"
1519
- },
1520
- {
1521
- "id": "errors",
1522
- "label": "Error handling"
1523
- }
1524
- ],
1525
- "properties": [
1526
- {
1527
- "type": "Hidden",
1528
- "value": "io.camunda:slack:1",
1529
- "binding": {
1530
- "type": "zeebe:taskDefinition",
1531
- "property": "type"
1532
- }
1533
- },
1534
- {
1535
- "label": "Method",
1536
- "group": "method",
1537
- "id": "method",
1538
- "type": "Dropdown",
1539
- "value": "chat.postMessage",
1540
- "choices": [
1541
- {
1542
- "name": "Post message",
1543
- "value": "chat.postMessage"
1544
- },
1545
- {
1546
- "name": "Create channel",
1547
- "value": "conversations.create"
1548
- },
1549
- {
1550
- "name": "Invite to channel",
1551
- "value": "conversations.invite"
1552
- }
1553
- ],
1554
- "binding": {
1555
- "type": "zeebe:input",
1556
- "name": "method"
1557
- }
1558
2887
  },
1559
2888
  {
1560
- "label": "OAuth token",
1561
- "group": "authentication",
1562
- "type": "String",
1563
- "feel": "optional",
1564
- "binding": {
1565
- "type": "zeebe:input",
1566
- "name": "token"
1567
- },
2889
+ "id": "data.timestamp",
2890
+ "label": "Message timestamp",
2891
+ "description": "Timestamp of the Slack message to react to",
2892
+ "optional": false,
1568
2893
  "constraints": {
1569
2894
  "notEmpty": true
1570
- }
1571
- },
1572
- {
1573
- "label": "Channel/user name/email",
1574
- "group": "channel",
1575
- "type": "String",
1576
- "feel": "optional",
1577
- "binding": {
1578
- "type": "zeebe:input",
1579
- "name": "data.channel"
1580
2895
  },
1581
- "constraints": {
1582
- "notEmpty": true,
1583
- "pattern": {
1584
- "value": "(^(#|@|=).*)|(^.+[@].+[.].{2,4}$)",
1585
- "message": "Must be a #channel, @user, email or FEEL expression."
1586
- }
2896
+ "feel": "required",
2897
+ "group": "reaction",
2898
+ "binding": {
2899
+ "name": "data.timestamp",
2900
+ "type": "zeebe:input"
1587
2901
  },
1588
2902
  "condition": {
1589
2903
  "property": "method",
1590
- "equals": "chat.postMessage"
1591
- }
2904
+ "equals": "reactions.add",
2905
+ "type": "simple"
2906
+ },
2907
+ "type": "String"
1592
2908
  },
1593
2909
  {
1594
- "label": "New channel name",
1595
- "group": "channel",
1596
- "type": "String",
2910
+ "id": "pinMessage.channel",
2911
+ "label": "Channel",
2912
+ "description": "Channel ID of the message to pin",
2913
+ "optional": false,
2914
+ "constraints": {
2915
+ "notEmpty": true
2916
+ },
1597
2917
  "feel": "optional",
2918
+ "group": "pinMessage",
1598
2919
  "binding": {
1599
- "type": "zeebe:input",
1600
- "name": "data.newChannelName"
1601
- },
1602
- "constraints": {
1603
- "notEmpty": true,
1604
- "pattern": {
1605
- "value": "^(=|([-_a-z0-9]{1,80}$))",
1606
- "message": "May contain up to 80 lowercase letters, digits, underscores, and dashes"
1607
- }
2920
+ "name": "data.channel",
2921
+ "type": "zeebe:input"
1608
2922
  },
1609
2923
  "condition": {
1610
2924
  "property": "method",
1611
- "equals": "conversations.create"
1612
- }
2925
+ "equals": "pins.add",
2926
+ "type": "simple"
2927
+ },
2928
+ "type": "String"
1613
2929
  },
1614
2930
  {
1615
- "label": "Visibility",
1616
- "group": "channel",
1617
- "type": "Dropdown",
1618
- "value": "PUBLIC",
2931
+ "id": "pinMessage.timestamp",
2932
+ "label": "Message timestamp",
2933
+ "description": "Timestamp of the Slack message to pin",
1619
2934
  "optional": false,
1620
- "choices": [
1621
- {
1622
- "name": "Private",
1623
- "value": "PRIVATE"
1624
- },
1625
- {
1626
- "name": "Public",
1627
- "value": "PUBLIC"
1628
- }
1629
- ],
2935
+ "constraints": {
2936
+ "notEmpty": true
2937
+ },
2938
+ "feel": "required",
2939
+ "group": "pinMessage",
1630
2940
  "binding": {
1631
- "type": "zeebe:input",
1632
- "name": "data.visibility"
2941
+ "name": "data.timestamp",
2942
+ "type": "zeebe:input"
1633
2943
  },
1634
2944
  "condition": {
1635
2945
  "property": "method",
1636
- "equals": "conversations.create"
1637
- }
2946
+ "equals": "pins.add",
2947
+ "type": "simple"
2948
+ },
2949
+ "type": "String"
1638
2950
  },
1639
2951
  {
1640
- "label": "Message",
1641
- "group": "message",
1642
- "type": "Text",
1643
- "feel": "optional",
1644
- "binding": {
1645
- "type": "zeebe:input",
1646
- "name": "data.text"
1647
- },
2952
+ "id": "unpinMessage.channel",
2953
+ "label": "Channel",
2954
+ "description": "Channel ID of the message to unpin",
2955
+ "optional": false,
1648
2956
  "constraints": {
1649
2957
  "notEmpty": true
1650
2958
  },
2959
+ "feel": "optional",
2960
+ "group": "unpinMessage",
2961
+ "binding": {
2962
+ "name": "data.channel",
2963
+ "type": "zeebe:input"
2964
+ },
1651
2965
  "condition": {
1652
2966
  "property": "method",
1653
- "equals": "chat.postMessage"
1654
- }
2967
+ "equals": "pins.remove",
2968
+ "type": "simple"
2969
+ },
2970
+ "type": "String"
1655
2971
  },
1656
2972
  {
1657
- "label": "Channel name",
1658
- "group": "invite",
1659
- "type": "String",
1660
- "feel": "optional",
1661
- "binding": {
1662
- "type": "zeebe:input",
1663
- "name": "data.channelName"
1664
- },
2973
+ "id": "unpinMessage.timestamp",
2974
+ "label": "Message timestamp",
2975
+ "description": "Timestamp of the Slack message to unpin",
2976
+ "optional": false,
1665
2977
  "constraints": {
1666
- "notEmpty": true,
1667
- "pattern": {
1668
- "value": "^(=|[-_a-z0-9]{1,80}$)",
1669
- "message": "May contain up to 80 lowercase letters, digits, underscores, and dashes"
1670
- }
2978
+ "notEmpty": true
2979
+ },
2980
+ "feel": "required",
2981
+ "group": "unpinMessage",
2982
+ "binding": {
2983
+ "name": "data.timestamp",
2984
+ "type": "zeebe:input"
1671
2985
  },
1672
2986
  "condition": {
1673
2987
  "property": "method",
1674
- "equals": "conversations.invite"
1675
- }
2988
+ "equals": "pins.remove",
2989
+ "type": "simple"
2990
+ },
2991
+ "type": "String"
1676
2992
  },
1677
2993
  {
1678
- "label": "Users",
1679
- "description": "Comma-separated list of users, e.g., '@user1,@user2' or '=[ \"@user1\", \"user2@company.com\"]'",
1680
- "group": "invite",
1681
- "type": "String",
1682
- "feel": "optional",
2994
+ "id": "version",
2995
+ "label": "Version",
2996
+ "description": "Version of the element template",
2997
+ "value": "8",
2998
+ "group": "connector",
1683
2999
  "binding": {
1684
- "type": "zeebe:input",
1685
- "name": "data.users"
3000
+ "key": "elementTemplateVersion",
3001
+ "type": "zeebe:taskHeader"
1686
3002
  },
1687
- "constraints": {
1688
- "notEmpty": true
3003
+ "type": "Hidden"
3004
+ },
3005
+ {
3006
+ "id": "id",
3007
+ "label": "ID",
3008
+ "description": "ID of the element template",
3009
+ "value": "io.camunda.connectors.Slack.v1",
3010
+ "group": "connector",
3011
+ "binding": {
3012
+ "key": "elementTemplateId",
3013
+ "type": "zeebe:taskHeader"
1689
3014
  },
1690
- "condition": {
1691
- "property": "method",
1692
- "equals": "conversations.invite"
1693
- }
3015
+ "type": "Hidden"
1694
3016
  },
1695
3017
  {
3018
+ "id": "resultVariable",
1696
3019
  "label": "Result variable",
1697
- "description": "Name of variable to store the response in. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-variable\" target=\"_blank\">documentation</a>",
3020
+ "description": "Name of variable to store the response in",
1698
3021
  "group": "output",
1699
- "type": "String",
1700
3022
  "binding": {
1701
- "type": "zeebe:taskHeader",
1702
- "key": "resultVariable"
1703
- }
3023
+ "key": "resultVariable",
3024
+ "type": "zeebe:taskHeader"
3025
+ },
3026
+ "type": "String"
1704
3027
  },
1705
3028
  {
3029
+ "id": "resultExpression",
1706
3030
  "label": "Result expression",
1707
- "description": "Expression to map the response into process variables. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-expression\" target=\"_blank\">documentation</a>",
1708
- "group": "output",
1709
- "type": "Text",
3031
+ "description": "Expression to map the response into process variables",
1710
3032
  "feel": "required",
3033
+ "group": "output",
1711
3034
  "binding": {
1712
- "type": "zeebe:taskHeader",
1713
- "key": "resultExpression"
1714
- }
3035
+ "key": "resultExpression",
3036
+ "type": "zeebe:taskHeader"
3037
+ },
3038
+ "type": "Text"
1715
3039
  },
1716
3040
  {
3041
+ "id": "errorExpression",
1717
3042
  "label": "Error expression",
1718
- "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#bpmn-errors\" target=\"_blank\">documentation</a>",
1719
- "group": "errors",
1720
- "type": "Text",
3043
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
1721
3044
  "feel": "required",
3045
+ "group": "error",
1722
3046
  "binding": {
1723
- "type": "zeebe:taskHeader",
1724
- "key": "errorExpression"
1725
- }
3047
+ "key": "errorExpression",
3048
+ "type": "zeebe:taskHeader"
3049
+ },
3050
+ "type": "Text"
3051
+ },
3052
+ {
3053
+ "id": "retryCount",
3054
+ "label": "Retries",
3055
+ "description": "Number of retries",
3056
+ "value": "3",
3057
+ "feel": "optional",
3058
+ "group": "retries",
3059
+ "binding": {
3060
+ "property": "retries",
3061
+ "type": "zeebe:taskDefinition"
3062
+ },
3063
+ "type": "String"
3064
+ },
3065
+ {
3066
+ "id": "retryBackoff",
3067
+ "label": "Retry backoff",
3068
+ "description": "ISO-8601 duration to wait between retries",
3069
+ "value": "PT0S",
3070
+ "group": "retries",
3071
+ "binding": {
3072
+ "key": "retryBackoff",
3073
+ "type": "zeebe:taskHeader"
3074
+ },
3075
+ "type": "String"
1726
3076
  }
1727
3077
  ],
1728
- "engines": {
1729
- "camunda": "^8.2"
3078
+ "icon": {
3079
+ "contents": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTI3IiBoZWlnaHQ9IjEyNyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNMjcuMiA4MGMwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjJDNi43IDkzLjIuOCA4Ny4zLjggODBjMC03LjMgNS45LTEzLjIgMTMuMi0xMy4yaDEzLjJWODB6bTYuNiAwYzAtNy4zIDUuOS0xMy4yIDEzLjItMTMuMiA3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjJ2MzNjMCA3LjMtNS45IDEzLjItMTMuMiAxMy4yLTcuMyAwLTEzLjItNS45LTEzLjItMTMuMlY4MHoiIGZpbGw9IiNFMDFFNUEiLz4KICA8cGF0aCBkPSJNNDcgMjdjLTcuMyAwLTEzLjItNS45LTEzLjItMTMuMkMzMy44IDYuNSAzOS43LjYgNDcgLjZjNy4zIDAgMTMuMiA1LjkgMTMuMiAxMy4yVjI3SDQ3em0wIDYuN2M3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjIgMCA3LjMtNS45IDEzLjItMTMuMiAxMy4ySDEzLjlDNi42IDYwLjEuNyA1NC4yLjcgNDYuOWMwLTcuMyA1LjktMTMuMiAxMy4yLTEzLjJINDd6IiBmaWxsPSIjMzZDNUYwIi8+CiAgPHBhdGggZD0iTTk5LjkgNDYuOWMwLTcuMyA1LjktMTMuMiAxMy4yLTEzLjIgNy4zIDAgMTMuMiA1LjkgMTMuMiAxMy4yIDAgNy4zLTUuOSAxMy4yLTEzLjIgMTMuMkg5OS45VjQ2Ljl6bS02LjYgMGMwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjItNy4zIDAtMTMuMi01LjktMTMuMi0xMy4yVjEzLjhDNjYuOSA2LjUgNzIuOC42IDgwLjEuNmM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjJ2MzMuMXoiIGZpbGw9IiMyRUI2N0QiLz4KICA8cGF0aCBkPSJNODAuMSA5OS44YzcuMyAwIDEzLjIgNS45IDEzLjIgMTMuMiAwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjItNy4zIDAtMTMuMi01LjktMTMuMi0xMy4yVjk5LjhoMTMuMnptMC02LjZjLTcuMyAwLTEzLjItNS45LTEzLjItMTMuMiAwLTcuMyA1LjktMTMuMiAxMy4yLTEzLjJoMzMuMWM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjIgMCA3LjMtNS45IDEzLjItMTMuMiAxMy4ySDgwLjF6IiBmaWxsPSIjRUNCMjJFIi8+Cjwvc3ZnPgo="
1730
3080
  }
1731
3081
  },
1732
3082
  {
1733
3083
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1734
3084
  "name": "Slack connector",
1735
3085
  "id": "io.camunda.connectors.Slack.v1",
1736
- "deprecated": {
1737
- "message": "Replace with 'Slack connector' template.",
1738
- "documentationRef": "https://docs.camunda.io/docs/components/modeler/desktop-modeler/element-templates/using-templates/#replacing-templates"
1739
- },
3086
+ "version": 1,
1740
3087
  "description": "Create a channel or send a message to a channel or user",
1741
3088
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/slack/",
1742
3089
  "icon": {
@@ -1982,15 +3329,31 @@
1982
3329
  "key": "errorExpression"
1983
3330
  }
1984
3331
  }
1985
- ]
3332
+ ],
3333
+ "engines": {
3334
+ "camunda": "^8.2"
3335
+ }
1986
3336
  },
1987
3337
  {
1988
3338
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1989
3339
  "name": "Slack Outbound Connector",
1990
3340
  "id": "io.camunda.connectors.Slack.v1",
1991
3341
  "description": "Create a channel or send a message to a channel or user",
3342
+ "keywords": [
3343
+ "post message",
3344
+ "create channel",
3345
+ "invite to channel",
3346
+ "add reaction",
3347
+ "pin message",
3348
+ "unpin message",
3349
+ "send message",
3350
+ "channel",
3351
+ "messaging",
3352
+ "chat",
3353
+ "notification"
3354
+ ],
1992
3355
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/slack/?slack=outbound",
1993
- "version": 4,
3356
+ "version": 9,
1994
3357
  "category": {
1995
3358
  "id": "connectors",
1996
3359
  "name": "Connectors"
@@ -1999,6 +3362,9 @@
1999
3362
  "elementType": {
2000
3363
  "value": "bpmn:ServiceTask"
2001
3364
  },
3365
+ "engines": {
3366
+ "camunda": "^8.3"
3367
+ },
2002
3368
  "groups": [
2003
3369
  {
2004
3370
  "id": "authentication",
@@ -2020,6 +3386,22 @@
2020
3386
  "id": "invite",
2021
3387
  "label": "Invite"
2022
3388
  },
3389
+ {
3390
+ "id": "reaction",
3391
+ "label": "Reaction"
3392
+ },
3393
+ {
3394
+ "id": "pinMessage",
3395
+ "label": "Pin Message"
3396
+ },
3397
+ {
3398
+ "id": "unpinMessage",
3399
+ "label": "Unpin Message"
3400
+ },
3401
+ {
3402
+ "id": "connector",
3403
+ "label": "Connector"
3404
+ },
2023
3405
  {
2024
3406
  "id": "output",
2025
3407
  "label": "Output mapping"
@@ -2079,6 +3461,18 @@
2079
3461
  {
2080
3462
  "name": "Invite to channel",
2081
3463
  "value": "conversations.invite"
3464
+ },
3465
+ {
3466
+ "name": "Add reaction",
3467
+ "value": "reactions.add"
3468
+ },
3469
+ {
3470
+ "name": "Pin Message",
3471
+ "value": "pins.add"
3472
+ },
3473
+ {
3474
+ "name": "Unpin Message",
3475
+ "value": "pins.remove"
2082
3476
  }
2083
3477
  ]
2084
3478
  },
@@ -2178,6 +3572,24 @@
2178
3572
  },
2179
3573
  "type": "String"
2180
3574
  },
3575
+ {
3576
+ "id": "data.documents",
3577
+ "label": "attachments",
3578
+ "description": "<a href=\"https://docs.camunda.io/docs/apis-tools/camunda-api-rest/specifications/upload-document-alpha/\">Camunda documents</a> can be added as attachments",
3579
+ "optional": true,
3580
+ "feel": "required",
3581
+ "group": "message",
3582
+ "binding": {
3583
+ "name": "data.documents",
3584
+ "type": "zeebe:input"
3585
+ },
3586
+ "condition": {
3587
+ "property": "method",
3588
+ "equals": "chat.postMessage",
3589
+ "type": "simple"
3590
+ },
3591
+ "type": "String"
3592
+ },
2181
3593
  {
2182
3594
  "id": "data.channel",
2183
3595
  "label": "Channel/user name/email",
@@ -2269,6 +3681,42 @@
2269
3681
  }
2270
3682
  ]
2271
3683
  },
3684
+ {
3685
+ "id": "data.channelType",
3686
+ "label": "Invite By",
3687
+ "optional": false,
3688
+ "value": "channelId",
3689
+ "group": "invite",
3690
+ "binding": {
3691
+ "name": "data.channelType",
3692
+ "type": "zeebe:input"
3693
+ },
3694
+ "condition": {
3695
+ "allMatch": [
3696
+ {
3697
+ "property": "method",
3698
+ "equals": "conversations.invite",
3699
+ "type": "simple"
3700
+ },
3701
+ {
3702
+ "property": "method",
3703
+ "equals": "conversations.invite",
3704
+ "type": "simple"
3705
+ }
3706
+ ]
3707
+ },
3708
+ "type": "Dropdown",
3709
+ "choices": [
3710
+ {
3711
+ "name": "Channel ID",
3712
+ "value": "channelId"
3713
+ },
3714
+ {
3715
+ "name": "Channel name",
3716
+ "value": "channelName"
3717
+ }
3718
+ ]
3719
+ },
2272
3720
  {
2273
3721
  "id": "data.channelName",
2274
3722
  "label": "Channel name",
@@ -2287,355 +3735,310 @@
2287
3735
  "type": "zeebe:input"
2288
3736
  },
2289
3737
  "condition": {
2290
- "property": "method",
2291
- "equals": "conversations.invite",
2292
- "type": "simple"
3738
+ "allMatch": [
3739
+ {
3740
+ "property": "data.channelType",
3741
+ "equals": "channelName",
3742
+ "type": "simple"
3743
+ },
3744
+ {
3745
+ "property": "method",
3746
+ "equals": "conversations.invite",
3747
+ "type": "simple"
3748
+ }
3749
+ ]
2293
3750
  },
2294
3751
  "type": "String"
2295
3752
  },
2296
3753
  {
2297
- "id": "data.users",
2298
- "label": "Users",
2299
- "description": "Comma-separated list of users, e.g., '@user1,@user2' or '=[ \"@user1\", \"user2@company.com\"]'",
3754
+ "id": "data.channelId",
3755
+ "label": "Channel ID",
2300
3756
  "optional": false,
2301
3757
  "constraints": {
2302
- "notEmpty": true
3758
+ "notEmpty": true,
3759
+ "pattern": {
3760
+ "value": "^(=|([-_a-z0-9]{1,80}$))",
3761
+ "message": "May contain up to 80 lowercase letters, digits, underscores, and dashes"
3762
+ }
2303
3763
  },
2304
3764
  "feel": "optional",
2305
3765
  "group": "invite",
2306
3766
  "binding": {
2307
- "name": "data.users",
3767
+ "name": "data.channelId",
2308
3768
  "type": "zeebe:input"
2309
3769
  },
2310
3770
  "condition": {
2311
- "property": "method",
2312
- "equals": "conversations.invite",
2313
- "type": "simple"
2314
- },
2315
- "type": "String"
2316
- },
2317
- {
2318
- "id": "resultVariable",
2319
- "label": "Result variable",
2320
- "description": "Name of variable to store the response in",
2321
- "group": "output",
2322
- "binding": {
2323
- "key": "resultVariable",
2324
- "type": "zeebe:taskHeader"
3771
+ "allMatch": [
3772
+ {
3773
+ "property": "data.channelType",
3774
+ "equals": "channelId",
3775
+ "type": "simple"
3776
+ },
3777
+ {
3778
+ "property": "method",
3779
+ "equals": "conversations.invite",
3780
+ "type": "simple"
3781
+ }
3782
+ ]
2325
3783
  },
2326
3784
  "type": "String"
2327
3785
  },
2328
3786
  {
2329
- "id": "resultExpression",
2330
- "label": "Result expression",
2331
- "description": "Expression to map the response into process variables",
2332
- "feel": "required",
2333
- "group": "output",
2334
- "binding": {
2335
- "key": "resultExpression",
2336
- "type": "zeebe:taskHeader"
2337
- },
2338
- "type": "Text"
2339
- },
2340
- {
2341
- "id": "errorExpression",
2342
- "label": "Error expression",
2343
- "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
2344
- "feel": "required",
2345
- "group": "error",
2346
- "binding": {
2347
- "key": "errorExpression",
2348
- "type": "zeebe:taskHeader"
2349
- },
2350
- "type": "Text"
2351
- },
2352
- {
2353
- "id": "retryCount",
2354
- "label": "Retries",
2355
- "description": "Number of retries",
2356
- "value": "3",
2357
- "feel": "optional",
2358
- "group": "retries",
2359
- "binding": {
2360
- "property": "retries",
2361
- "type": "zeebe:taskDefinition"
3787
+ "id": "data.users",
3788
+ "label": "Users",
3789
+ "description": "Comma-separated list of users, e.g., '@user1,@user2' or '=[ \"@user1\", \"user2@company.com\"]'",
3790
+ "optional": false,
3791
+ "constraints": {
3792
+ "notEmpty": true
2362
3793
  },
2363
- "type": "String"
2364
- },
2365
- {
2366
- "id": "retryBackoff",
2367
- "label": "Retry backoff",
2368
- "description": "ISO-8601 duration to wait between retries",
2369
- "value": "PT0S",
2370
3794
  "feel": "optional",
2371
- "group": "retries",
3795
+ "group": "invite",
2372
3796
  "binding": {
2373
- "key": "retryBackoff",
2374
- "type": "zeebe:taskHeader"
3797
+ "name": "data.users",
3798
+ "type": "zeebe:input"
2375
3799
  },
2376
- "type": "String"
2377
- }
2378
- ],
2379
- "icon": {
2380
- "contents": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTI3IiBoZWlnaHQ9IjEyNyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNMjcuMiA4MGMwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjJDNi43IDkzLjIuOCA4Ny4zLjggODBjMC03LjMgNS45LTEzLjIgMTMuMi0xMy4yaDEzLjJWODB6bTYuNiAwYzAtNy4zIDUuOS0xMy4yIDEzLjItMTMuMiA3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjJ2MzNjMCA3LjMtNS45IDEzLjItMTMuMiAxMy4yLTcuMyAwLTEzLjItNS45LTEzLjItMTMuMlY4MHoiIGZpbGw9IiNFMDFFNUEiLz4KICA8cGF0aCBkPSJNNDcgMjdjLTcuMyAwLTEzLjItNS45LTEzLjItMTMuMkMzMy44IDYuNSAzOS43LjYgNDcgLjZjNy4zIDAgMTMuMiA1LjkgMTMuMiAxMy4yVjI3SDQ3em0wIDYuN2M3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjIgMCA3LjMtNS45IDEzLjItMTMuMiAxMy4ySDEzLjlDNi42IDYwLjEuNyA1NC4yLjcgNDYuOWMwLTcuMyA1LjktMTMuMiAxMy4yLTEzLjJINDd6IiBmaWxsPSIjMzZDNUYwIi8+CiAgPHBhdGggZD0iTTk5LjkgNDYuOWMwLTcuMyA1LjktMTMuMiAxMy4yLTEzLjIgNy4zIDAgMTMuMiA1LjkgMTMuMiAxMy4yIDAgNy4zLTUuOSAxMy4yLTEzLjIgMTMuMkg5OS45VjQ2Ljl6bS02LjYgMGMwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjItNy4zIDAtMTMuMi01LjktMTMuMi0xMy4yVjEzLjhDNjYuOSA2LjUgNzIuOC42IDgwLjEuNmM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjJ2MzMuMXoiIGZpbGw9IiMyRUI2N0QiLz4KICA8cGF0aCBkPSJNODAuMSA5OS44YzcuMyAwIDEzLjIgNS45IDEzLjIgMTMuMiAwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjItNy4zIDAtMTMuMi01LjktMTMuMi0xMy4yVjk5LjhoMTMuMnptMC02LjZjLTcuMyAwLTEzLjItNS45LTEzLjItMTMuMiAwLTcuMyA1LjktMTMuMiAxMy4yLTEzLjJoMzMuMWM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjIgMCA3LjMtNS45IDEzLjItMTMuMiAxMy4ySDgwLjF6IiBmaWxsPSIjRUNCMjJFIi8+Cjwvc3ZnPgo="
2381
- },
2382
- "engines": {
2383
- "camunda": "^8.6"
2384
- }
2385
- },
2386
- {
2387
- "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2388
- "name": "Slack connector",
2389
- "id": "io.camunda.connectors.Slack.v1",
2390
- "version": 1,
2391
- "description": "Create a channel or send a message to a channel or user",
2392
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/slack/",
2393
- "icon": {
2394
- "contents": "data:image/svg+xml;utf8,%3Csvg%20width%3D%2218%22%20height%3D%2218%22%20%20viewBox%3D%220%200%20127%20127%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cpath%20d%3D%22M27.2%2080c0%207.3-5.9%2013.2-13.2%2013.2C6.7%2093.2.8%2087.3.8%2080c0-7.3%205.9-13.2%2013.2-13.2h13.2V80zm6.6%200c0-7.3%205.9-13.2%2013.2-13.2%207.3%200%2013.2%205.9%2013.2%2013.2v33c0%207.3-5.9%2013.2-13.2%2013.2-7.3%200-13.2-5.9-13.2-13.2V80z%22%20fill%3D%22%23E01E5A%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M47%2027c-7.3%200-13.2-5.9-13.2-13.2C33.8%206.5%2039.7.6%2047%20.6c7.3%200%2013.2%205.9%2013.2%2013.2V27H47zm0%206.7c7.3%200%2013.2%205.9%2013.2%2013.2%200%207.3-5.9%2013.2-13.2%2013.2H13.9C6.6%2060.1.7%2054.2.7%2046.9c0-7.3%205.9-13.2%2013.2-13.2H47z%22%20fill%3D%22%2336C5F0%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M99.9%2046.9c0-7.3%205.9-13.2%2013.2-13.2%207.3%200%2013.2%205.9%2013.2%2013.2%200%207.3-5.9%2013.2-13.2%2013.2H99.9V46.9zm-6.6%200c0%207.3-5.9%2013.2-13.2%2013.2-7.3%200-13.2-5.9-13.2-13.2V13.8C66.9%206.5%2072.8.6%2080.1.6c7.3%200%2013.2%205.9%2013.2%2013.2v33.1z%22%20fill%3D%22%232EB67D%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M80.1%2099.8c7.3%200%2013.2%205.9%2013.2%2013.2%200%207.3-5.9%2013.2-13.2%2013.2-7.3%200-13.2-5.9-13.2-13.2V99.8h13.2zm0-6.6c-7.3%200-13.2-5.9-13.2-13.2%200-7.3%205.9-13.2%2013.2-13.2h33.1c7.3%200%2013.2%205.9%2013.2%2013.2%200%207.3-5.9%2013.2-13.2%2013.2H80.1z%22%20fill%3D%22%23ECB22E%22%2F%3E%0A%3C%2Fsvg%3E%0A"
2395
- },
2396
- "category": {
2397
- "id": "connectors",
2398
- "name": "Connectors"
2399
- },
2400
- "appliesTo": ["bpmn:Task"],
2401
- "elementType": {
2402
- "value": "bpmn:ServiceTask"
2403
- },
2404
- "groups": [
2405
- {
2406
- "id": "method",
2407
- "label": "Method"
2408
- },
2409
- {
2410
- "id": "authentication",
2411
- "label": "Authentication"
2412
- },
2413
- {
2414
- "id": "message",
2415
- "label": "Message"
2416
- },
2417
- {
2418
- "id": "channel",
2419
- "label": "Channel"
2420
- },
2421
- {
2422
- "id": "invite",
2423
- "label": "Invite"
2424
- },
2425
- {
2426
- "id": "output",
2427
- "label": "Output mapping"
2428
- },
2429
- {
2430
- "id": "errors",
2431
- "label": "Error handling"
2432
- }
2433
- ],
2434
- "properties": [
2435
- {
2436
- "type": "Hidden",
2437
- "value": "io.camunda:slack:1",
2438
- "binding": {
2439
- "type": "zeebe:taskDefinition",
2440
- "property": "type"
2441
- }
2442
- },
2443
- {
2444
- "label": "Method",
2445
- "group": "method",
2446
- "id": "method",
2447
- "type": "Dropdown",
2448
- "value": "chat.postMessage",
2449
- "choices": [
2450
- {
2451
- "name": "Post message",
2452
- "value": "chat.postMessage"
2453
- },
2454
- {
2455
- "name": "Create channel",
2456
- "value": "conversations.create"
2457
- },
2458
- {
2459
- "name": "Invite to channel",
2460
- "value": "conversations.invite"
2461
- }
2462
- ],
2463
- "binding": {
2464
- "type": "zeebe:input",
2465
- "name": "method"
2466
- }
3800
+ "condition": {
3801
+ "property": "method",
3802
+ "equals": "conversations.invite",
3803
+ "type": "simple"
3804
+ },
3805
+ "type": "String"
2467
3806
  },
2468
3807
  {
2469
- "label": "OAuth token",
2470
- "group": "authentication",
2471
- "type": "String",
2472
- "feel": "optional",
2473
- "binding": {
2474
- "type": "zeebe:input",
2475
- "name": "token"
2476
- },
3808
+ "id": "reaction.channel",
3809
+ "label": "Channel",
3810
+ "description": "Channel ID of the message to react to",
3811
+ "optional": false,
2477
3812
  "constraints": {
2478
3813
  "notEmpty": true
2479
- }
2480
- },
2481
- {
2482
- "label": "Channel/user name/email",
2483
- "group": "channel",
2484
- "type": "String",
3814
+ },
2485
3815
  "feel": "optional",
3816
+ "group": "reaction",
2486
3817
  "binding": {
2487
- "type": "zeebe:input",
2488
- "name": "data.channel"
2489
- },
2490
- "constraints": {
2491
- "notEmpty": true,
2492
- "pattern": {
2493
- "value": "(^(#|@|=).*)|(^.+[@].+[.].{2,4}$)",
2494
- "message": "Must be a #channel, @user, email or FEEL expression."
2495
- }
3818
+ "name": "data.channel",
3819
+ "type": "zeebe:input"
2496
3820
  },
2497
3821
  "condition": {
2498
3822
  "property": "method",
2499
- "equals": "chat.postMessage"
2500
- }
3823
+ "equals": "reactions.add",
3824
+ "type": "simple"
3825
+ },
3826
+ "type": "String"
2501
3827
  },
2502
3828
  {
2503
- "label": "New channel name",
2504
- "group": "channel",
2505
- "type": "String",
3829
+ "id": "data.emoji",
3830
+ "label": "Emoji name",
3831
+ "description": "Emoji name (e.g. eyes)",
3832
+ "optional": false,
3833
+ "constraints": {
3834
+ "notEmpty": true
3835
+ },
2506
3836
  "feel": "optional",
3837
+ "group": "reaction",
2507
3838
  "binding": {
2508
- "type": "zeebe:input",
2509
- "name": "data.newChannelName"
2510
- },
2511
- "constraints": {
2512
- "notEmpty": true,
2513
- "pattern": {
2514
- "value": "^(=|([-_a-z0-9]{1,80}$))",
2515
- "message": "May contain up to 80 lowercase letters, digits, underscores, and dashes"
2516
- }
3839
+ "name": "data.emoji",
3840
+ "type": "zeebe:input"
2517
3841
  },
2518
3842
  "condition": {
2519
3843
  "property": "method",
2520
- "equals": "conversations.create"
2521
- }
3844
+ "equals": "reactions.add",
3845
+ "type": "simple"
3846
+ },
3847
+ "type": "String"
2522
3848
  },
2523
3849
  {
2524
- "label": "Visibility",
2525
- "group": "channel",
2526
- "type": "Dropdown",
2527
- "value": "PUBLIC",
3850
+ "id": "data.timestamp",
3851
+ "label": "Message timestamp",
3852
+ "description": "Timestamp of the Slack message to react to",
2528
3853
  "optional": false,
2529
- "choices": [
2530
- {
2531
- "name": "Private",
2532
- "value": "PRIVATE"
2533
- },
2534
- {
2535
- "name": "Public",
2536
- "value": "PUBLIC"
2537
- }
2538
- ],
3854
+ "constraints": {
3855
+ "notEmpty": true
3856
+ },
3857
+ "feel": "required",
3858
+ "group": "reaction",
2539
3859
  "binding": {
2540
- "type": "zeebe:input",
2541
- "name": "data.visibility"
3860
+ "name": "data.timestamp",
3861
+ "type": "zeebe:input"
2542
3862
  },
2543
3863
  "condition": {
2544
3864
  "property": "method",
2545
- "equals": "conversations.create"
2546
- }
3865
+ "equals": "reactions.add",
3866
+ "type": "simple"
3867
+ },
3868
+ "type": "String"
2547
3869
  },
2548
3870
  {
2549
- "label": "Message",
2550
- "group": "message",
2551
- "type": "Text",
3871
+ "id": "pinMessage.channel",
3872
+ "label": "Channel",
3873
+ "description": "Channel ID of the message to pin",
3874
+ "optional": false,
3875
+ "constraints": {
3876
+ "notEmpty": true
3877
+ },
2552
3878
  "feel": "optional",
3879
+ "group": "pinMessage",
2553
3880
  "binding": {
2554
- "type": "zeebe:input",
2555
- "name": "data.text"
3881
+ "name": "data.channel",
3882
+ "type": "zeebe:input"
3883
+ },
3884
+ "condition": {
3885
+ "property": "method",
3886
+ "equals": "pins.add",
3887
+ "type": "simple"
2556
3888
  },
3889
+ "type": "String"
3890
+ },
3891
+ {
3892
+ "id": "pinMessage.timestamp",
3893
+ "label": "Message timestamp",
3894
+ "description": "Timestamp of the Slack message to pin",
3895
+ "optional": false,
2557
3896
  "constraints": {
2558
3897
  "notEmpty": true
2559
3898
  },
3899
+ "feel": "required",
3900
+ "group": "pinMessage",
3901
+ "binding": {
3902
+ "name": "data.timestamp",
3903
+ "type": "zeebe:input"
3904
+ },
2560
3905
  "condition": {
2561
3906
  "property": "method",
2562
- "equals": "chat.postMessage"
2563
- }
3907
+ "equals": "pins.add",
3908
+ "type": "simple"
3909
+ },
3910
+ "type": "String"
2564
3911
  },
2565
3912
  {
2566
- "label": "Channel name",
2567
- "group": "invite",
2568
- "type": "String",
3913
+ "id": "unpinMessage.channel",
3914
+ "label": "Channel",
3915
+ "description": "Channel ID of the message to unpin",
3916
+ "optional": false,
3917
+ "constraints": {
3918
+ "notEmpty": true
3919
+ },
2569
3920
  "feel": "optional",
3921
+ "group": "unpinMessage",
2570
3922
  "binding": {
2571
- "type": "zeebe:input",
2572
- "name": "data.channelName"
2573
- },
2574
- "constraints": {
2575
- "notEmpty": true,
2576
- "pattern": {
2577
- "value": "^(=|([-_a-z0-9]{1,80}$))",
2578
- "message": "May contain up to 80 lowercase letters, digits, underscores, and dashes"
2579
- }
3923
+ "name": "data.channel",
3924
+ "type": "zeebe:input"
2580
3925
  },
2581
3926
  "condition": {
2582
3927
  "property": "method",
2583
- "equals": "conversations.invite"
2584
- }
3928
+ "equals": "pins.remove",
3929
+ "type": "simple"
3930
+ },
3931
+ "type": "String"
2585
3932
  },
2586
3933
  {
2587
- "label": "Users",
2588
- "description": "Comma-separated list of users, e.g., '@user1,@user2' or '=[ \"@user1\", \"user2@company.com\"]'",
2589
- "group": "invite",
2590
- "type": "String",
2591
- "feel": "optional",
2592
- "binding": {
2593
- "type": "zeebe:input",
2594
- "name": "data.users"
2595
- },
3934
+ "id": "unpinMessage.timestamp",
3935
+ "label": "Message timestamp",
3936
+ "description": "Timestamp of the Slack message to unpin",
3937
+ "optional": false,
2596
3938
  "constraints": {
2597
3939
  "notEmpty": true
2598
3940
  },
3941
+ "feel": "required",
3942
+ "group": "unpinMessage",
3943
+ "binding": {
3944
+ "name": "data.timestamp",
3945
+ "type": "zeebe:input"
3946
+ },
2599
3947
  "condition": {
2600
3948
  "property": "method",
2601
- "equals": "conversations.invite"
2602
- }
3949
+ "equals": "pins.remove",
3950
+ "type": "simple"
3951
+ },
3952
+ "type": "String"
2603
3953
  },
2604
3954
  {
3955
+ "id": "version",
3956
+ "label": "Version",
3957
+ "description": "Version of the element template",
3958
+ "value": "9",
3959
+ "group": "connector",
3960
+ "binding": {
3961
+ "key": "elementTemplateVersion",
3962
+ "type": "zeebe:taskHeader"
3963
+ },
3964
+ "type": "Hidden"
3965
+ },
3966
+ {
3967
+ "id": "id",
3968
+ "label": "ID",
3969
+ "description": "ID of the element template",
3970
+ "value": "io.camunda.connectors.Slack.v1",
3971
+ "group": "connector",
3972
+ "binding": {
3973
+ "key": "elementTemplateId",
3974
+ "type": "zeebe:taskHeader"
3975
+ },
3976
+ "type": "Hidden"
3977
+ },
3978
+ {
3979
+ "id": "resultVariable",
2605
3980
  "label": "Result variable",
2606
- "description": "Name of variable to store the response in. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-variable\" target=\"_blank\">documentation</a>",
3981
+ "description": "Name of variable to store the response in. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-variable\" target=\"_blank\">documentation</a>.",
2607
3982
  "group": "output",
2608
- "type": "String",
2609
3983
  "binding": {
2610
- "type": "zeebe:taskHeader",
2611
- "key": "resultVariable"
2612
- }
3984
+ "key": "resultVariable",
3985
+ "type": "zeebe:taskHeader"
3986
+ },
3987
+ "type": "String"
2613
3988
  },
2614
3989
  {
3990
+ "id": "resultExpression",
2615
3991
  "label": "Result expression",
2616
- "description": "Expression to map the response into process variables. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-expression\" target=\"_blank\">documentation</a>",
3992
+ "description": "Expression to map the response into process variables. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-expression\" target=\"_blank\">documentation</a>.",
3993
+ "value": "{\n myResponse: response\n // Use FEEL to extract values depending on message\n // type, e.g.,: myMessage: response.message.text\n}",
3994
+ "feel": "required",
2617
3995
  "group": "output",
2618
- "type": "Text",
3996
+ "binding": {
3997
+ "key": "resultExpression",
3998
+ "type": "zeebe:taskHeader"
3999
+ },
4000
+ "type": "Text"
4001
+ },
4002
+ {
4003
+ "id": "errorExpression",
4004
+ "label": "Error expression",
4005
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
2619
4006
  "feel": "required",
4007
+ "group": "error",
2620
4008
  "binding": {
2621
- "type": "zeebe:taskHeader",
2622
- "key": "resultExpression"
2623
- }
4009
+ "key": "errorExpression",
4010
+ "type": "zeebe:taskHeader"
4011
+ },
4012
+ "type": "Text"
4013
+ },
4014
+ {
4015
+ "id": "retryCount",
4016
+ "label": "Retries",
4017
+ "description": "Number of retries",
4018
+ "value": "3",
4019
+ "feel": "optional",
4020
+ "group": "retries",
4021
+ "binding": {
4022
+ "property": "retries",
4023
+ "type": "zeebe:taskDefinition"
4024
+ },
4025
+ "type": "String"
2624
4026
  },
2625
4027
  {
2626
- "label": "Error expression",
2627
- "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#bpmn-errors\" target=\"_blank\">documentation</a>",
2628
- "group": "errors",
2629
- "type": "Text",
2630
- "feel": "required",
4028
+ "id": "retryBackoff",
4029
+ "label": "Retry backoff",
4030
+ "description": "ISO-8601 duration to wait between retries",
4031
+ "value": "PT0S",
4032
+ "group": "retries",
2631
4033
  "binding": {
2632
- "type": "zeebe:taskHeader",
2633
- "key": "errorExpression"
2634
- }
4034
+ "key": "retryBackoff",
4035
+ "type": "zeebe:taskHeader"
4036
+ },
4037
+ "type": "String"
2635
4038
  }
2636
4039
  ],
2637
- "engines": {
2638
- "camunda": "^8.2"
4040
+ "icon": {
4041
+ "contents": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTI3IiBoZWlnaHQ9IjEyNyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNMjcuMiA4MGMwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjJDNi43IDkzLjIuOCA4Ny4zLjggODBjMC03LjMgNS45LTEzLjIgMTMuMi0xMy4yaDEzLjJWODB6bTYuNiAwYzAtNy4zIDUuOS0xMy4yIDEzLjItMTMuMiA3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjJ2MzNjMCA3LjMtNS45IDEzLjItMTMuMiAxMy4yLTcuMyAwLTEzLjItNS45LTEzLjItMTMuMlY4MHoiIGZpbGw9IiNFMDFFNUEiLz4KICA8cGF0aCBkPSJNNDcgMjdjLTcuMyAwLTEzLjItNS45LTEzLjItMTMuMkMzMy44IDYuNSAzOS43LjYgNDcgLjZjNy4zIDAgMTMuMiA1LjkgMTMuMiAxMy4yVjI3SDQ3em0wIDYuN2M3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjIgMCA3LjMtNS45IDEzLjItMTMuMiAxMy4ySDEzLjlDNi42IDYwLjEuNyA1NC4yLjcgNDYuOWMwLTcuMyA1LjktMTMuMiAxMy4yLTEzLjJINDd6IiBmaWxsPSIjMzZDNUYwIi8+CiAgPHBhdGggZD0iTTk5LjkgNDYuOWMwLTcuMyA1LjktMTMuMiAxMy4yLTEzLjIgNy4zIDAgMTMuMiA1LjkgMTMuMiAxMy4yIDAgNy4zLTUuOSAxMy4yLTEzLjIgMTMuMkg5OS45VjQ2Ljl6bS02LjYgMGMwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjItNy4zIDAtMTMuMi01LjktMTMuMi0xMy4yVjEzLjhDNjYuOSA2LjUgNzIuOC42IDgwLjEuNmM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjJ2MzMuMXoiIGZpbGw9IiMyRUI2N0QiLz4KICA8cGF0aCBkPSJNODAuMSA5OS44YzcuMyAwIDEzLjIgNS45IDEzLjIgMTMuMiAwIDcuMy01LjkgMTMuMi0xMy4yIDEzLjItNy4zIDAtMTMuMi01LjktMTMuMi0xMy4yVjk5LjhoMTMuMnptMC02LjZjLTcuMyAwLTEzLjItNS45LTEzLjItMTMuMiAwLTcuMyA1LjktMTMuMiAxMy4yLTEzLjJoMzMuMWM3LjMgMCAxMy4yIDUuOSAxMy4yIDEzLjIgMCA3LjMtNS45IDEzLjItMTMuMiAxMy4ySDgwLjF6IiBmaWxsPSIjRUNCMjJFIi8+Cjwvc3ZnPgo="
2639
4042
  }
2640
4043
  },
2641
4044
  {
@@ -3120,11 +4523,21 @@
3120
4523
  "name": "Slack Outbound Connector",
3121
4524
  "id": "io.camunda.connectors.Slack.v1",
3122
4525
  "description": "Create a channel or send a message to a channel or user",
3123
- "metadata": {
3124
- "keywords": []
3125
- },
4526
+ "keywords": [
4527
+ "post message",
4528
+ "create channel",
4529
+ "invite to channel",
4530
+ "add reaction",
4531
+ "pin message",
4532
+ "unpin message",
4533
+ "send message",
4534
+ "channel",
4535
+ "messaging",
4536
+ "chat",
4537
+ "notification"
4538
+ ],
3126
4539
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/slack/?slack=outbound",
3127
- "version": 8,
4540
+ "version": 10,
3128
4541
  "category": {
3129
4542
  "id": "connectors",
3130
4543
  "name": "Connectors"
@@ -3134,7 +4547,7 @@
3134
4547
  "value": "bpmn:ServiceTask"
3135
4548
  },
3136
4549
  "engines": {
3137
- "camunda": "^8.3"
4550
+ "camunda": "^8.10"
3138
4551
  },
3139
4552
  "groups": [
3140
4553
  {
@@ -3344,12 +4757,296 @@
3344
4757
  "type": "String"
3345
4758
  },
3346
4759
  {
3347
- "id": "data.documents",
3348
- "label": "attachments",
4760
+ "id": "data_documents_documentMode",
4761
+ "label": "Number of documents",
3349
4762
  "description": "<a href=\"https://docs.camunda.io/docs/apis-tools/camunda-api-rest/specifications/upload-document-alpha/\">Camunda documents</a> can be added as attachments",
3350
- "optional": true,
4763
+ "value": "none",
4764
+ "group": "message",
4765
+ "binding": {
4766
+ "name": "data.data_documents_documentMode",
4767
+ "type": "zeebe:input"
4768
+ },
4769
+ "condition": {
4770
+ "property": "method",
4771
+ "equals": "chat.postMessage",
4772
+ "type": "simple"
4773
+ },
4774
+ "type": "Dropdown",
4775
+ "choices": [
4776
+ {
4777
+ "name": "None",
4778
+ "value": "none"
4779
+ },
4780
+ {
4781
+ "name": "Single document",
4782
+ "value": "single"
4783
+ },
4784
+ {
4785
+ "name": "Multiple documents",
4786
+ "value": "multiple"
4787
+ }
4788
+ ]
4789
+ },
4790
+ {
4791
+ "id": "data_documents_single_documentSource",
4792
+ "label": "Document source",
4793
+ "value": "camunda",
4794
+ "group": "message",
4795
+ "binding": {
4796
+ "name": "data.data_documents_single_documentSource",
4797
+ "type": "zeebe:input"
4798
+ },
4799
+ "condition": {
4800
+ "allMatch": [
4801
+ {
4802
+ "property": "data_documents_documentMode",
4803
+ "equals": "single",
4804
+ "type": "simple"
4805
+ },
4806
+ {
4807
+ "property": "method",
4808
+ "equals": "chat.postMessage",
4809
+ "type": "simple"
4810
+ }
4811
+ ]
4812
+ },
4813
+ "type": "Dropdown",
4814
+ "choices": [
4815
+ {
4816
+ "name": "Camunda Document",
4817
+ "value": "camunda"
4818
+ },
4819
+ {
4820
+ "name": "Inline Content",
4821
+ "value": "inline"
4822
+ },
4823
+ {
4824
+ "name": "From URL",
4825
+ "value": "external"
4826
+ }
4827
+ ]
4828
+ },
4829
+ {
4830
+ "id": "data_documents_single_camundaReference",
4831
+ "label": "Camunda document",
4832
+ "constraints": {
4833
+ "notEmpty": true
4834
+ },
4835
+ "feel": "required",
4836
+ "group": "message",
4837
+ "binding": {
4838
+ "name": "data.data_documents_single_camundaReference",
4839
+ "type": "zeebe:input"
4840
+ },
4841
+ "condition": {
4842
+ "allMatch": [
4843
+ {
4844
+ "property": "data_documents_documentMode",
4845
+ "equals": "single",
4846
+ "type": "simple"
4847
+ },
4848
+ {
4849
+ "property": "data_documents_single_documentSource",
4850
+ "equals": "camunda",
4851
+ "type": "simple"
4852
+ },
4853
+ {
4854
+ "property": "method",
4855
+ "equals": "chat.postMessage",
4856
+ "type": "simple"
4857
+ }
4858
+ ]
4859
+ },
4860
+ "type": "String"
4861
+ },
4862
+ {
4863
+ "id": "data_documents_single_inline_content",
4864
+ "label": "Content",
4865
+ "constraints": {
4866
+ "notEmpty": true
4867
+ },
4868
+ "feel": "optional",
4869
+ "group": "message",
4870
+ "binding": {
4871
+ "name": "data.data_documents_single_inline_content",
4872
+ "type": "zeebe:input"
4873
+ },
4874
+ "condition": {
4875
+ "allMatch": [
4876
+ {
4877
+ "property": "data_documents_documentMode",
4878
+ "equals": "single",
4879
+ "type": "simple"
4880
+ },
4881
+ {
4882
+ "property": "data_documents_single_documentSource",
4883
+ "equals": "inline",
4884
+ "type": "simple"
4885
+ },
4886
+ {
4887
+ "property": "method",
4888
+ "equals": "chat.postMessage",
4889
+ "type": "simple"
4890
+ }
4891
+ ]
4892
+ },
4893
+ "type": "String"
4894
+ },
4895
+ {
4896
+ "id": "data_documents_single_inline_fileName",
4897
+ "label": "File name",
4898
+ "feel": "optional",
4899
+ "group": "message",
4900
+ "binding": {
4901
+ "name": "data.data_documents_single_inline_fileName",
4902
+ "type": "zeebe:input"
4903
+ },
4904
+ "condition": {
4905
+ "allMatch": [
4906
+ {
4907
+ "property": "data_documents_documentMode",
4908
+ "equals": "single",
4909
+ "type": "simple"
4910
+ },
4911
+ {
4912
+ "property": "data_documents_single_documentSource",
4913
+ "equals": "inline",
4914
+ "type": "simple"
4915
+ },
4916
+ {
4917
+ "property": "method",
4918
+ "equals": "chat.postMessage",
4919
+ "type": "simple"
4920
+ }
4921
+ ]
4922
+ },
4923
+ "type": "String"
4924
+ },
4925
+ {
4926
+ "id": "data_documents_single_inline_contentType",
4927
+ "label": "Content type",
4928
+ "feel": "optional",
4929
+ "group": "message",
4930
+ "binding": {
4931
+ "name": "data.data_documents_single_inline_contentType",
4932
+ "type": "zeebe:input"
4933
+ },
4934
+ "condition": {
4935
+ "allMatch": [
4936
+ {
4937
+ "property": "data_documents_documentMode",
4938
+ "equals": "single",
4939
+ "type": "simple"
4940
+ },
4941
+ {
4942
+ "property": "data_documents_single_documentSource",
4943
+ "equals": "inline",
4944
+ "type": "simple"
4945
+ },
4946
+ {
4947
+ "property": "method",
4948
+ "equals": "chat.postMessage",
4949
+ "type": "simple"
4950
+ }
4951
+ ]
4952
+ },
4953
+ "type": "String"
4954
+ },
4955
+ {
4956
+ "id": "data_documents_single_external_url",
4957
+ "label": "URL",
4958
+ "constraints": {
4959
+ "notEmpty": true
4960
+ },
4961
+ "feel": "optional",
4962
+ "group": "message",
4963
+ "binding": {
4964
+ "name": "data.data_documents_single_external_url",
4965
+ "type": "zeebe:input"
4966
+ },
4967
+ "condition": {
4968
+ "allMatch": [
4969
+ {
4970
+ "property": "data_documents_documentMode",
4971
+ "equals": "single",
4972
+ "type": "simple"
4973
+ },
4974
+ {
4975
+ "property": "data_documents_single_documentSource",
4976
+ "equals": "external",
4977
+ "type": "simple"
4978
+ },
4979
+ {
4980
+ "property": "method",
4981
+ "equals": "chat.postMessage",
4982
+ "type": "simple"
4983
+ }
4984
+ ]
4985
+ },
4986
+ "type": "String"
4987
+ },
4988
+ {
4989
+ "id": "data_documents_single_external_fileName",
4990
+ "label": "File name",
4991
+ "feel": "optional",
4992
+ "group": "message",
4993
+ "binding": {
4994
+ "name": "data.data_documents_single_external_fileName",
4995
+ "type": "zeebe:input"
4996
+ },
4997
+ "condition": {
4998
+ "allMatch": [
4999
+ {
5000
+ "property": "data_documents_documentMode",
5001
+ "equals": "single",
5002
+ "type": "simple"
5003
+ },
5004
+ {
5005
+ "property": "data_documents_single_documentSource",
5006
+ "equals": "external",
5007
+ "type": "simple"
5008
+ },
5009
+ {
5010
+ "property": "method",
5011
+ "equals": "chat.postMessage",
5012
+ "type": "simple"
5013
+ }
5014
+ ]
5015
+ },
5016
+ "type": "String"
5017
+ },
5018
+ {
5019
+ "id": "data_documents_multiple_expression",
5020
+ "label": "Documents",
5021
+ "constraints": {
5022
+ "notEmpty": true
5023
+ },
3351
5024
  "feel": "required",
3352
5025
  "group": "message",
5026
+ "binding": {
5027
+ "name": "data.data_documents_multiple_expression",
5028
+ "type": "zeebe:input"
5029
+ },
5030
+ "condition": {
5031
+ "allMatch": [
5032
+ {
5033
+ "property": "data_documents_documentMode",
5034
+ "equals": "multiple",
5035
+ "type": "simple"
5036
+ },
5037
+ {
5038
+ "property": "method",
5039
+ "equals": "chat.postMessage",
5040
+ "type": "simple"
5041
+ }
5042
+ ]
5043
+ },
5044
+ "type": "String"
5045
+ },
5046
+ {
5047
+ "id": "data.documents",
5048
+ "value": "=if data_documents_documentMode = \"multiple\" then data_documents_multiple_expression else if data_documents_documentMode = \"single\" then (if data_documents_single_documentSource = \"camunda\" then [data_documents_single_camundaReference] else if data_documents_single_documentSource = \"inline\" then [{ \"camunda.document.type\": \"inline\", content: data_documents_single_inline_content, name: data_documents_single_inline_fileName, contentType: data_documents_single_inline_contentType }] else if data_documents_single_documentSource = \"external\" then [{ \"camunda.document.type\": \"external\", url: data_documents_single_external_url, name: data_documents_single_external_fileName }] else null) else null",
5049
+ "group": "message",
3353
5050
  "binding": {
3354
5051
  "name": "data.documents",
3355
5052
  "type": "zeebe:input"
@@ -3359,7 +5056,7 @@
3359
5056
  "equals": "chat.postMessage",
3360
5057
  "type": "simple"
3361
5058
  },
3362
- "type": "String"
5059
+ "type": "Hidden"
3363
5060
  },
3364
5061
  {
3365
5062
  "id": "data.channel",
@@ -3726,7 +5423,7 @@
3726
5423
  "id": "version",
3727
5424
  "label": "Version",
3728
5425
  "description": "Version of the element template",
3729
- "value": "8",
5426
+ "value": "10",
3730
5427
  "group": "connector",
3731
5428
  "binding": {
3732
5429
  "key": "elementTemplateVersion",
@@ -3749,7 +5446,7 @@
3749
5446
  {
3750
5447
  "id": "resultVariable",
3751
5448
  "label": "Result variable",
3752
- "description": "Name of variable to store the response in",
5449
+ "description": "Name of variable to store the response in. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-variable\" target=\"_blank\">documentation</a>.",
3753
5450
  "group": "output",
3754
5451
  "binding": {
3755
5452
  "key": "resultVariable",
@@ -3760,7 +5457,8 @@
3760
5457
  {
3761
5458
  "id": "resultExpression",
3762
5459
  "label": "Result expression",
3763
- "description": "Expression to map the response into process variables",
5460
+ "description": "Expression to map the response into process variables. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-expression\" target=\"_blank\">documentation</a>.",
5461
+ "value": "{\n myResponse: response\n // Use FEEL to extract values depending on message\n // type, e.g.,: myMessage: response.message.text\n}",
3764
5462
  "feel": "required",
3765
5463
  "group": "output",
3766
5464
  "binding": {