@camunda/connectors-element-templates 1.0.19 → 1.0.21

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 (116) hide show
  1. package/package.json +2 -2
  2. package/src/connectors-template.js +1 -3
  3. package/src/connectors.js +4 -0
  4. package/src/element-templates/agenticai-a2a-client-outbound-connector.json +1 -1
  5. package/src/element-templates/agenticai-adhoctoolsschema-outbound-connector.json +43 -43
  6. package/src/element-templates/agenticai-aiagent-job-worker.json +2230 -222
  7. package/src/element-templates/agenticai-aiagent-outbound-connector.json +6281 -4356
  8. package/src/element-templates/agenticai-mcp-client-outbound-connector.json +718 -36
  9. package/src/element-templates/agenticai-mcp-remote-client-outbound-connector.json +2394 -949
  10. package/src/element-templates/app-integrations-connector.json +1047 -0
  11. package/src/element-templates/asana-connector.json +943 -109
  12. package/src/element-templates/automation-anywhere-outbound-connector.json +2240 -1747
  13. package/src/element-templates/aws-bedrock-agentcore-long-term-memory-outbound-connector.json +1068 -30
  14. package/src/element-templates/aws-bedrock-agentcore-runtime-outbound-connector.json +386 -5
  15. package/src/element-templates/aws-bedrock-codeinterpreter-outbound-connector.json +442 -5
  16. package/src/element-templates/aws-bedrock-knowledgebase-outbound-connector.json +417 -5
  17. package/src/element-templates/aws-bedrock-outbound-connector.json +2273 -623
  18. package/src/element-templates/aws-comprehend-outbound-connector.json +1573 -1
  19. package/src/element-templates/aws-dynamodb-outbound-connector.json +2950 -162
  20. package/src/element-templates/aws-eventbridge-connector-boundary.json +40 -40
  21. package/src/element-templates/aws-eventbridge-connector-intermediate.json +62 -62
  22. package/src/element-templates/aws-eventbridge-connector-start-event.json +33 -33
  23. package/src/element-templates/aws-eventbridge-outbound-connector.json +838 -424
  24. package/src/element-templates/aws-lambda-outbound-connector.json +495 -96
  25. package/src/element-templates/aws-s3-outbound-connector.json +2238 -44
  26. package/src/element-templates/aws-sagemaker-outbound-connector.json +681 -52
  27. package/src/element-templates/aws-sns-inbound-boundary.json +4 -3
  28. package/src/element-templates/aws-sns-inbound-intermediate.json +341 -340
  29. package/src/element-templates/aws-sns-inbound-message-start.json +241 -240
  30. package/src/element-templates/aws-sns-inbound-receive.json +4 -3
  31. package/src/element-templates/aws-sns-inbound-start-event.json +133 -133
  32. package/src/element-templates/aws-sns-outbound-connector.json +581 -124
  33. package/src/element-templates/aws-sqs-boundary-connector.json +939 -420
  34. package/src/element-templates/aws-sqs-inbound-intermediate-connector.json +851 -332
  35. package/src/element-templates/aws-sqs-outbound-connector.json +589 -136
  36. package/src/element-templates/aws-sqs-receive-connector.json +525 -7
  37. package/src/element-templates/aws-sqs-start-event-connector.json +380 -380
  38. package/src/element-templates/aws-sqs-start-message.json +736 -185
  39. package/src/element-templates/aws-textract-outbound-connector.json +866 -131
  40. package/src/element-templates/azure-blobstorage-outbound-connector.json +1648 -225
  41. package/src/element-templates/azure-open-ai-connector.json +1371 -8
  42. package/src/element-templates/blue-prism-connector.json +609 -30
  43. package/src/element-templates/box-outbound-connector.json +2356 -272
  44. package/src/element-templates/csv-outbound-connector.json +449 -0
  45. package/src/element-templates/easy-post-connector.json +1251 -170
  46. package/src/element-templates/email-outbound-connector.json +3087 -1013
  47. package/src/element-templates/embeddings-vector-database-outbound-connector.json +2161 -1
  48. package/src/element-templates/github-connector.json +18554 -14368
  49. package/src/element-templates/github-webhook-connector-boundary.json +24 -24
  50. package/src/element-templates/github-webhook-connector-intermediate.json +8 -8
  51. package/src/element-templates/github-webhook-connector-message-start.json +8 -8
  52. package/src/element-templates/github-webhook-connector-receive.json +8 -8
  53. package/src/element-templates/github-webhook-connector-start-event.json +58 -58
  54. package/src/element-templates/gitlab-connector.json +3022 -1120
  55. package/src/element-templates/google-cloud-storage-outbound-connector.json +1447 -240
  56. package/src/element-templates/google-drive-outbound-connector.json +2980 -1428
  57. package/src/element-templates/google-gemini-outbound-connector.json +41 -55
  58. package/src/element-templates/google-maps-platform-connector.json +688 -137
  59. package/src/element-templates/google-sheets-outbound-connector.json +3186 -2030
  60. package/src/element-templates/graphql-outbound-connector.json +4149 -1485
  61. package/src/element-templates/http-json-connector.json +6143 -2053
  62. package/src/element-templates/http-polling-boundary-catch-event-connector.json +2426 -364
  63. package/src/element-templates/http-polling-connector.json +3312 -1250
  64. package/src/element-templates/hubspot-outbound-connector.json +2817 -67
  65. package/src/element-templates/hugging-face-connector.json +83 -82
  66. package/src/element-templates/jdbc-outbound-connector.json +506 -9
  67. package/src/element-templates/kafka-inbound-connector-boundary.json +968 -971
  68. package/src/element-templates/kafka-inbound-connector-intermediate.json +53 -56
  69. package/src/element-templates/kafka-inbound-connector-receive.json +9 -12
  70. package/src/element-templates/kafka-inbound-connector-start-message.json +545 -548
  71. package/src/element-templates/kafka-inbound-connector.json +240 -240
  72. package/src/element-templates/kafka-outbound-connector.json +304 -308
  73. package/src/element-templates/microsoft-o365-email-boundary-event-connector.json +7 -10
  74. package/src/element-templates/microsoft-o365-email-intermediate-catch-event-connector.json +7 -10
  75. package/src/element-templates/microsoft-o365-email-message-start-event-connector.json +7 -10
  76. package/src/element-templates/microsoft-office365-mail-connector.json +2077 -35
  77. package/src/element-templates/microsoft-teams-outbound-connector.json +2897 -456
  78. package/src/element-templates/openai-connector.json +701 -207
  79. package/src/element-templates/operate-connector.json +83 -86
  80. package/src/element-templates/orchestration-connector.json +1843 -0
  81. package/src/element-templates/power-automate-connector.json +62 -62
  82. package/src/element-templates/rabbitmq-inbound-connector-boundary.json +772 -774
  83. package/src/element-templates/rabbitmq-inbound-connector-intermediate.json +456 -458
  84. package/src/element-templates/rabbitmq-inbound-connector-message-start.json +573 -575
  85. package/src/element-templates/rabbitmq-inbound-connector-receive.json +5 -7
  86. package/src/element-templates/rabbitmq-inbound-connector-start-event.json +347 -347
  87. package/src/element-templates/rabbitmq-outbound-connector.json +631 -631
  88. package/src/element-templates/rpa-connector.json +6 -6
  89. package/src/element-templates/salesforce-connector.json +653 -19
  90. package/src/element-templates/send-message-connector-intermediate-throw-event.json +301 -1
  91. package/src/element-templates/send-message-connector-message-end-event.json +301 -1
  92. package/src/element-templates/send-message-connector-send-task.json +300 -1
  93. package/src/element-templates/sendgrid-outbound-connector.json +790 -790
  94. package/src/element-templates/servicenow-connector.json +1364 -7
  95. package/src/element-templates/servicenow-flow-starter-connector.json +16 -16
  96. package/src/element-templates/servicenow-incident-connector.json +1075 -29
  97. package/src/element-templates/slack-inbound-boundary.json +493 -493
  98. package/src/element-templates/slack-inbound-intermediate.json +448 -448
  99. package/src/element-templates/slack-inbound-message-start.json +369 -369
  100. package/src/element-templates/slack-inbound-receive.json +2 -2
  101. package/src/element-templates/slack-inbound-start-event.json +328 -328
  102. package/src/element-templates/slack-outbound-connector.json +2365 -1262
  103. package/src/element-templates/soap-outbound-connector.json +113 -117
  104. package/src/element-templates/twilio-connector.json +1186 -373
  105. package/src/element-templates/twilio-webhook-boundary-connector.json +9 -10
  106. package/src/element-templates/twilio-webhook-connector.json +60 -61
  107. package/src/element-templates/twilio-webhook-intermediate-connector.json +31 -32
  108. package/src/element-templates/twilio-webhook-message-start-connector.json +10 -11
  109. package/src/element-templates/twilio-webhook-receive-connector.json +9 -10
  110. package/src/element-templates/uipath-connector.json +668 -50
  111. package/src/element-templates/webhook-connector-boundary.json +1040 -385
  112. package/src/element-templates/webhook-connector-intermediate.json +2100 -1445
  113. package/src/element-templates/webhook-connector-receive.json +659 -5
  114. package/src/element-templates/webhook-connector-start-event.json +1860 -1299
  115. package/src/element-templates/webhook-connector-start-message.json +1535 -848
  116. package/src/element-templates/whatsapp-connector.json +393 -23
@@ -1,9 +1,458 @@
1
1
  [
2
2
  {
3
3
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
4
- "name": "OpenAI connector",
4
+ "name": "OpenAI Outbound Connector",
5
+ "id": "io.camunda.connectors.OpenAI.v1",
6
+ "version": 7,
7
+ "engines": {
8
+ "camunda": "^8.3"
9
+ },
10
+ "description": "Interact with ChatGPT or moderation API",
11
+ "keywords": [
12
+ "chat",
13
+ "chat completion",
14
+ "moderation",
15
+ "content moderation",
16
+ "AI",
17
+ "LLM",
18
+ "language model",
19
+ "generate text",
20
+ "GPT",
21
+ "generative AI",
22
+ "prompt",
23
+ "text generation"
24
+ ],
25
+ "icon": {
26
+ "contents": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjU2cHgiIGhlaWdodD0iMjYwcHgiIHZpZXdCb3g9IjAgMCAyNTYgMjYwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICAgIDx0aXRsZT5PcGVuQUk8L3RpdGxlPgogICAgPGc+CiAgICAgICAgPHBhdGggZD0iTTIzOS4xODM5MTQsMTA2LjIwMjc4MyBDMjQ1LjA1NDMwNCw4OC41MjQyMDk2IDI0My4wMjIyOCw2OS4xNzMzODA1IDIzMy42MDc1OTksNTMuMDk5ODg2NCBDMjE5LjQ1MTY3OCwyOC40NTg4MDIxIDE5MC45OTk3MDMsMTUuNzgzNjEyOSAxNjMuMjEzMDA3LDIxLjczOTUwNSBDMTQ3LjU1NDA3Nyw0LjMyMTQ1ODgzIDEyMy43OTQ5MDksLTMuNDIzOTg1NTQgMTAwLjg3OTAxLDEuNDE4NzM4OTggQzc3Ljk2MzExMDUsNi4yNjE0NjM0OSA1OS4zNjkwMDkzLDIyLjk1NzI1MzYgNTIuMDk1OTYyMSw0NS4yMjE0MjE5IEMzMy44NDM2NDk0LDQ4Ljk2NDQ4NjcgMTguMDkwMTcyMSw2MC4zOTI3NDkgOC44NjY3MjUxMyw3Ni41ODE4MDMzIEMtNS40NDM0OTEsMTAxLjE4Mjk2MiAtMi4xOTU0NDQzMSwxMzIuMjE1MjU1IDE2Ljg5ODY2NjIsMTUzLjMyMDA5NCBDMTEuMDA2MDg2NSwxNzAuOTkwNjU2IDEzLjAxOTcyODMsMTkwLjM0Mzk5MSAyMi40MjM4MjMxLDIwNi40MjI5OTEgQzM2LjU5NzU1NTMsMjMxLjA3MjM0NCA2NS4wNjgwMzQyLDI0My43NDY1NjYgOTIuODY5NTczOCwyMzcuNzgzMzcyIEMxMDUuMjM1NjM5LDI1MS43MDgyNDkgMTIzLjAwMTExMywyNTkuNjMwOTQyIDE0MS42MjM5NjgsMjU5LjUyNjkyIEMxNzAuMTA1MzU5LDI1OS41NTIxNjkgMTk1LjMzNzYxMSwyNDEuMTY1NzE4IDIwNC4wMzc3NzcsMjE0LjA0NTY2MSBDMjIyLjI4NzM0LDIxMC4yOTYzNTYgMjM4LjAzODQ4OSwxOTguODY5NzgzIDI0Ny4yNjcwMTQsMTgyLjY4NTI4IEMyNjEuNDA0NDUzLDE1OC4xMjc1MTUgMjU4LjE0MjQ5NCwxMjcuMjYyNzc1IDIzOS4xODM5MTQsMTA2LjIwMjc4MyBMMjM5LjE4MzkxNCwxMDYuMjAyNzgzIFogTTE0MS42MjM5NjgsMjQyLjU0MTIwNyBDMTMwLjI1NTY4MiwyNDIuNTU5MTc3IDExOS4yNDM4NzYsMjM4LjU3NDY0MiAxMTAuNTE5MzgxLDIzMS4yODYxOTcgTDExMi4wNTQxNDYsMjMwLjQxNjQ5NiBMMTYzLjcyNDU5NSwyMDAuNTkwODgxIEMxNjYuMzQwNjQ4LDE5OS4wNTY0NDQgMTY3Ljk1NDMyMSwxOTYuMjU2ODE4IDE2Ny45NzA3ODEsMTkzLjIyNDAwNSBMMTY3Ljk3MDc4MSwxMjAuMzczNzg4IEwxODkuODE1NjE0LDEzMy4wMTAwMjYgQzE5MC4wMzQxMzIsMTMzLjEyMTQyMyAxOTAuMTg2MjM1LDEzMy4zMzA1NjQgMTkwLjIyNDg4NSwxMzMuNTcyNzc0IEwxOTAuMjI0ODg1LDE5My45NDAyMjkgQzE5MC4xNjg2MDMsMjIwLjc1ODQyNyAxNjguNDQyMTY2LDI0Mi40ODQ4NjQgMTQxLjYyMzk2OCwyNDIuNTQxMjA3IFogTTM3LjE1NzU3NDksMTk3LjkzMDYyIEMzMS40NTY0OTgsMTg4LjA4NjM1OSAyOS40MDk0ODE4LDE3Ni41NDY5ODQgMzEuMzc2NjIzNywxNjUuMzQyNDI2IEwzMi45MTEzODk1LDE2Ni4yNjMyODUgTDg0LjYzMjk5NzMsMTk2LjA4ODkwMSBDODcuMjM4OTM0OSwxOTcuNjE4MjA3IDkwLjQ2ODI3MTcsMTk3LjYxODIwNyA5My4wNzQyMDkzLDE5Ni4wODg5MDEgTDE1Ni4yNTU0MDIsMTU5LjY2Mzc5MyBMMTU2LjI1NTQwMiwxODQuODg1MTExIEMxNTYuMjQzNTU3LDE4NS4xNDk3NzEgMTU2LjExMTcyNSwxODUuMzk0NjAyIDE1NS44OTcyOSwxODUuNTUwMTc2IEwxMDMuNTYxNzc2LDIxNS43MzM5MDMgQzgwLjMwNTQ5NTMsMjI5LjEzMTYzMiA1MC41OTI0OTU0LDIyMS4xNjU0MzUgMzcuMTU3NTc0OSwxOTcuOTMwNjIgWiBNMjMuNTQ5MzE4MSw4NS4zODExMjczIEMyOS4yODk5ODYxLDc1LjQ3MzMwOTcgMzguMzUxMTkxMSw2Ny45MTYyNjQ4IDQ5LjEyODc0ODIsNjQuMDQ3ODgyNSBMNDkuMTI4NzQ4MiwxMjUuNDM4NTE1IEM0OS4wODkxNDkyLDEyOC40NTk0MjUgNTAuNjk2NTM4NiwxMzEuMjYyNTU2IDUzLjMyMzc3NDgsMTMyLjc1NDIzMiBMMTE2LjE5ODAxNCwxNjkuMDI1ODY0IEw5NC4zNTMxODA4LDE4MS42NjIxMDIgQzk0LjExMzIzMjUsMTgxLjc4OTQzNCA5My44MjU3NDYxLDE4MS43ODk0MzQgOTMuNTg1Nzk3OSwxODEuNjYyMTAyIEw0MS4zNTI2MDE1LDE1MS41Mjk1MzQgQzE4LjE0MTk0MjYsMTM4LjA3NjA5OCAxMC4xODE3NjgxLDEwOC4zODU1NjIgMjMuNTQ5MzE4MSw4NS4xMjUzMzMgTDIzLjU0OTMxODEsODUuMzgxMTI3MyBaIE0yMDMuMDE0NiwxMjcuMDc1NTk4IEwxMzkuOTM1NzI1LDkwLjQ0NTg1NDUgTDE2MS43Mjk0LDc3Ljg2MDc3NDggQzE2MS45NjkzNDgsNzcuNzMzNDQzNCAxNjIuMjU2ODM0LDc3LjczMzQ0MzQgMTYyLjQ5Njc4Myw3Ny44NjA3NzQ4IEwyMTQuNzI5OTc5LDEwOC4wNDQ1MDIgQzIzMS4wMzIzMjksMTE3LjQ1MTc0NyAyNDAuNDM3Mjk0LDEzNS40MjYxMDkgMjM4Ljg3MTUwNCwxNTQuMTgyNzM5IEMyMzcuMzA1NzE0LDE3Mi45MzkzNjggMjI1LjA1MDcxOSwxODkuMTA1NTcyIDIwNy40MTQyNjIsMTk1LjY3OTYzIEwyMDcuNDE0MjYyLDEzNC4yODg5OTggQzIwNy4zMjI1MjEsMTMxLjI3Njg2NyAyMDUuNjUwNjk3LDEyOC41MzU4NTMgMjAzLjAxNDYsMTI3LjA3NTU5OCBaIE0yMjQuNzU3MTE2LDk0LjM4NTA4NjcgTDIyMy4yMjIzNSw5My40NjQyMjcyIEwxNzEuNjAzMDYsNjMuMzgyODE3MyBDMTY4Ljk4MTI5Myw2MS44NDQzNzUxIDE2NS43MzI0NTYsNjEuODQ0Mzc1MSAxNjMuMTEwNjg5LDYzLjM4MjgxNzMgTDk5Ljk4MDY1NTQsOTkuODA3OTI1OSBMOTkuOTgwNjU1NCw3NC41ODY2MDc3IEM5OS45NTMzMDA0LDc0LjMyNTQwODggMTAwLjA3MTA5NSw3NC4wNzAxODY5IDEwMC4yODc2MDksNzMuOTIxNTQyNiBMMTUyLjUyMDgwNSw0My43ODg5NzM4IEMxNjguODYzMDk4LDM0LjM3NDM1MTggMTg5LjE3NDI1NiwzNS4yNTI5MDQzIDIwNC42NDI1NzksNDYuMDQzNDg0MSBDMjIwLjExMDkwMyw1Ni44MzQwNjM4IDIyNy45NDkyNjksNzUuNTkyMzk1OSAyMjQuNzU3MTE2LDk0LjE4MDQ1MTMgTDIyNC43NTcxMTYsOTQuMzg1MDg2NyBaIE04OC4wNjA2NDA5LDEzOS4wOTc5MzEgTDY2LjIxNTgwNzYsMTI2LjUxMjg1MSBDNjUuOTk1MDM5OSwxMjYuMzc5MDkxIDY1Ljg0NTA5NjUsMTI2LjE1NDE3NiA2NS44MDY1MzY3LDEyNS44OTg5NDUgTDY1LjgwNjUzNjcsNjUuNjg0OTY2IEM2NS44MzE0NDk1LDQ2LjgyODUzNjcgNzYuNzUwMDYwNSwyOS42ODQ2MDMyIDkzLjgyNzA4NTIsMjEuNjg4MzA1NSBDMTEwLjkwNDExLDEzLjY5MjAwNzkgMTMxLjA2MzgzMywxNi4yODM1NDYyIDE0NS41NjMyLDI4LjMzODk5OCBMMTQ0LjAyODQzNCwyOS4yMDg2OTg2IEw5Mi4zNTc5ODUyLDU5LjAzNDMxNDIgQzg5Ljc0MTkzMjcsNjAuNTY4NzUxMyA4OC4xMjgyNTk3LDYzLjM2ODM3NjcgODguMTExNzk5OCw2Ni40MDExOTAxIEw4OC4wNjA2NDA5LDEzOS4wOTc5MzEgWiBNOTkuOTI5NDk2NSwxMTMuNTE4NSBMMTI4LjA2Njg3LDk3LjMwMTE0MTcgTDE1Ni4yNTU0MDIsMTEzLjUxODUgTDE1Ni4yNTU0MDIsMTQ1Ljk1MzIxOCBMMTI4LjE2OTE4NywxNjIuMTcwNTc3IEw5OS45ODA2NTU0LDE0NS45NTMyMTggTDk5LjkyOTQ5NjUsMTEzLjUxODUgWiIgZmlsbD0iIzAwMDAwMCI+PC9wYXRoPgogICAgPC9nPgo8L3N2Zz4K"
27
+ },
28
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/openai/",
29
+ "category": {
30
+ "id": "connectors",
31
+ "name": "Connectors"
32
+ },
33
+ "appliesTo": ["bpmn:Task"],
34
+ "elementType": {
35
+ "value": "bpmn:ServiceTask"
36
+ },
37
+ "groups": [
38
+ {
39
+ "id": "authentication",
40
+ "label": "Authentication"
41
+ },
42
+ {
43
+ "id": "input",
44
+ "label": "Payload"
45
+ },
46
+ {
47
+ "id": "connector",
48
+ "label": "Connector"
49
+ },
50
+ {
51
+ "id": "output",
52
+ "label": "Response mapping"
53
+ },
54
+ {
55
+ "id": "errors",
56
+ "label": "Error handling"
57
+ }
58
+ ],
59
+ "properties": [
60
+ {
61
+ "type": "Hidden",
62
+ "value": "io.camunda:http-json:1",
63
+ "binding": {
64
+ "type": "zeebe:taskDefinition",
65
+ "property": "type"
66
+ }
67
+ },
68
+ {
69
+ "id": "authenticationType",
70
+ "value": "bearer",
71
+ "type": "Hidden",
72
+ "binding": {
73
+ "type": "zeebe:input",
74
+ "name": "authentication.type"
75
+ }
76
+ },
77
+ {
78
+ "label": "OpenAI API key",
79
+ "group": "authentication",
80
+ "feel": "optional",
81
+ "description": "Your OpenAI API key",
82
+ "type": "String",
83
+ "binding": {
84
+ "type": "zeebe:input",
85
+ "name": "authentication.token"
86
+ },
87
+ "constraints": {
88
+ "notEmpty": true
89
+ }
90
+ },
91
+ {
92
+ "label": "Organization",
93
+ "group": "authentication",
94
+ "description": "For members of multiple organizations. Details in the <a href=\"https://platform.openai.com/docs/api-reference/requesting-organization\" target=\"_blank\">OpenAI documentation</a>",
95
+ "type": "String",
96
+ "feel": "optional",
97
+ "binding": {
98
+ "type": "zeebe:input",
99
+ "name": "internal_organization"
100
+ },
101
+ "optional": true
102
+ },
103
+ {
104
+ "group": "authentication",
105
+ "type": "Hidden",
106
+ "value": "=if is defined(internal_organization) and internal_organization != null then {\"Content-Type\":\"application/json\", \"OpenAI-Organization\":internal_organization} else {\"Content-Type\":\"application/json\"}",
107
+ "binding": {
108
+ "type": "zeebe:input",
109
+ "name": "headers"
110
+ }
111
+ },
112
+ {
113
+ "label": "Operation",
114
+ "group": "input",
115
+ "description": "OpenAI API operation",
116
+ "type": "Dropdown",
117
+ "id": "operation",
118
+ "value": "chat",
119
+ "choices": [
120
+ {
121
+ "name": "Chat",
122
+ "value": "chat"
123
+ },
124
+ {
125
+ "name": "Moderation",
126
+ "value": "moderation"
127
+ }
128
+ ],
129
+ "binding": {
130
+ "type": "zeebe:input",
131
+ "name": "operation"
132
+ }
133
+ },
134
+ {
135
+ "id": "method",
136
+ "type": "Hidden",
137
+ "value": "post",
138
+ "binding": {
139
+ "type": "zeebe:input",
140
+ "name": "method"
141
+ }
142
+ },
143
+ {
144
+ "type": "Hidden",
145
+ "value": "https://api.openai.com/v1/chat/completions",
146
+ "binding": {
147
+ "type": "zeebe:input",
148
+ "name": "url"
149
+ },
150
+ "condition": {
151
+ "property": "operation",
152
+ "equals": "chat"
153
+ }
154
+ },
155
+ {
156
+ "type": "Hidden",
157
+ "value": "https://api.openai.com/v1/moderations",
158
+ "binding": {
159
+ "type": "zeebe:input",
160
+ "name": "url"
161
+ },
162
+ "condition": {
163
+ "property": "operation",
164
+ "equals": "moderation"
165
+ }
166
+ },
167
+ {
168
+ "label": "Evaluation input",
169
+ "description": "Provide the text to analyze as static value or variable",
170
+ "group": "input",
171
+ "type": "Text",
172
+ "feel": "optional",
173
+ "binding": {
174
+ "type": "zeebe:input",
175
+ "name": "internal_textToAnalyze"
176
+ },
177
+ "condition": {
178
+ "property": "operation",
179
+ "equals": "moderation"
180
+ },
181
+ "constraints": {
182
+ "notEmpty": true
183
+ }
184
+ },
185
+ {
186
+ "label": "Model",
187
+ "id": "model",
188
+ "description": "Select the model (or Custom for free text)",
189
+ "group": "input",
190
+ "type": "Dropdown",
191
+ "value": "gpt-3.5-turbo",
192
+ "choices": [
193
+ {
194
+ "name": "Custom",
195
+ "value": "custom"
196
+ },
197
+ {
198
+ "name": "GPT-3.5-turbo",
199
+ "value": "gpt-3.5-turbo"
200
+ },
201
+ {
202
+ "name": "GPT-4",
203
+ "value": "gpt-4"
204
+ },
205
+ {
206
+ "name": "GPT-4-turbo",
207
+ "value": "gpt-4-turbo"
208
+ },
209
+ {
210
+ "name": "GPT-4o",
211
+ "value": "gpt-4o"
212
+ }
213
+ ],
214
+ "binding": {
215
+ "type": "zeebe:input",
216
+ "name": "internal_model"
217
+ },
218
+ "condition": {
219
+ "property": "operation",
220
+ "equals": "chat"
221
+ }
222
+ },
223
+ {
224
+ "label": "Custom model version",
225
+ "description": "Select the <a href=\"https://platform.openai.com/docs/models/overview\" target=\"_blank\">model</a> version",
226
+ "group": "input",
227
+ "type": "Text",
228
+ "binding": {
229
+ "type": "zeebe:input",
230
+ "name": "internal_custom_model"
231
+ },
232
+ "condition": {
233
+ "property": "model",
234
+ "equals": "custom"
235
+ },
236
+ "constraints": {
237
+ "notEmpty": true
238
+ }
239
+ },
240
+ {
241
+ "label": "Temperature",
242
+ "description": "Select the temperature (between 0 and 2)",
243
+ "group": "input",
244
+ "type": "Text",
245
+ "value": "1",
246
+ "binding": {
247
+ "type": "zeebe:input",
248
+ "name": "internal_temperature"
249
+ },
250
+ "condition": {
251
+ "property": "operation",
252
+ "equals": "chat"
253
+ },
254
+ "constraints": {
255
+ "notEmpty": true,
256
+ "pattern": {
257
+ "value": "^(2|1|0|1\\.\\d{1,2}|0\\.\\d{1,2})$",
258
+ "message": "must be a number between 0 and 2 (e.g. 0, 1.4, 2)"
259
+ }
260
+ }
261
+ },
262
+ {
263
+ "label": "System message",
264
+ "description": "Optional initial instructions for the model",
265
+ "group": "input",
266
+ "type": "Text",
267
+ "optional": true,
268
+ "feel": "optional",
269
+ "binding": {
270
+ "type": "zeebe:input",
271
+ "name": "internal_systemMessage"
272
+ },
273
+ "condition": {
274
+ "property": "operation",
275
+ "equals": "chat"
276
+ }
277
+ },
278
+ {
279
+ "label": "Chat history",
280
+ "description": "Optional chat history, or examples of the desired model behavior",
281
+ "feel": "required",
282
+ "optional": true,
283
+ "type": "String",
284
+ "group": "input",
285
+ "binding": {
286
+ "type": "zeebe:input",
287
+ "name": "internal_chatHistory"
288
+ },
289
+ "condition": {
290
+ "property": "operation",
291
+ "equals": "chat"
292
+ }
293
+ },
294
+ {
295
+ "label": "Prompt",
296
+ "description": "Input to be evaluated",
297
+ "group": "input",
298
+ "type": "Text",
299
+ "feel": "optional",
300
+ "binding": {
301
+ "type": "zeebe:input",
302
+ "name": "internal_prompt"
303
+ },
304
+ "condition": {
305
+ "property": "operation",
306
+ "equals": "chat"
307
+ },
308
+ "constraints": {
309
+ "notEmpty": true
310
+ }
311
+ },
312
+ {
313
+ "label": "Choices to generate",
314
+ "description": "Amount of alternative responses the model will generate",
315
+ "group": "input",
316
+ "type": "String",
317
+ "feel": "optional",
318
+ "optional": false,
319
+ "value": "1",
320
+ "binding": {
321
+ "type": "zeebe:input",
322
+ "name": "internal_choices"
323
+ },
324
+ "condition": {
325
+ "property": "operation",
326
+ "equals": "chat"
327
+ },
328
+ "constraints": {
329
+ "notEmpty": true,
330
+ "pattern": {
331
+ "value": "^[1-9]\\d*$",
332
+ "message": "must be a positive integer number"
333
+ }
334
+ }
335
+ },
336
+ {
337
+ "type": "Hidden",
338
+ "binding": {
339
+ "type": "zeebe:input",
340
+ "name": "internal_messages"
341
+ },
342
+ "condition": {
343
+ "property": "operation",
344
+ "equals": "chat"
345
+ },
346
+ "value": "=append(concatenate(if is defined(internal_systemMessage) then [{\"role\": \"system\", \"content\": internal_systemMessage}] else [], if is defined(internal_chatHistory) then internal_chatHistory else []), {\"role\": \"user\", \"content\": internal_prompt})"
347
+ },
348
+ {
349
+ "type": "Hidden",
350
+ "value": "={\"model\": if is defined(internal_custom_model) then internal_custom_model else internal_model, \"messages\": internal_messages, \"n\": number(internal_choices), \"temperature\": number(internal_temperature)}",
351
+ "binding": {
352
+ "type": "zeebe:input",
353
+ "name": "body"
354
+ },
355
+ "condition": {
356
+ "property": "operation",
357
+ "equals": "chat"
358
+ }
359
+ },
360
+ {
361
+ "type": "Hidden",
362
+ "value": "={\"input\": internal_textToAnalyze}",
363
+ "binding": {
364
+ "type": "zeebe:input",
365
+ "name": "body"
366
+ },
367
+ "condition": {
368
+ "property": "operation",
369
+ "equals": "moderation"
370
+ }
371
+ },
372
+ {
373
+ "label": "Result variable",
374
+ "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>",
375
+ "group": "output",
376
+ "type": "String",
377
+ "binding": {
378
+ "type": "zeebe:taskHeader",
379
+ "key": "resultVariable"
380
+ }
381
+ },
382
+ {
383
+ "label": "Result expression",
384
+ "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>",
385
+ "group": "output",
386
+ "type": "Text",
387
+ "feel": "required",
388
+ "value": "={openAiResponse: response.body}",
389
+ "binding": {
390
+ "type": "zeebe:taskHeader",
391
+ "key": "resultExpression"
392
+ }
393
+ },
394
+ {
395
+ "label": "Connection timeout",
396
+ "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
397
+ "group": "errors",
398
+ "type": "String",
399
+ "value": "30",
400
+ "binding": {
401
+ "type": "zeebe:input",
402
+ "name": "connectionTimeoutInSeconds"
403
+ },
404
+ "optional": true,
405
+ "feel": "optional",
406
+ "constraints": {
407
+ "notEmpty": false,
408
+ "pattern": {
409
+ "value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
410
+ "message": "must be a timeout in seconds (default value is 30 seconds) or a FEEL expression"
411
+ }
412
+ }
413
+ },
414
+ {
415
+ "label": "Error expression",
416
+ "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>",
417
+ "group": "errors",
418
+ "type": "Text",
419
+ "feel": "required",
420
+ "binding": {
421
+ "type": "zeebe:taskHeader",
422
+ "key": "errorExpression"
423
+ }
424
+ },
425
+ {
426
+ "id": "version",
427
+ "label": "Version",
428
+ "description": "Version of the element template",
429
+ "value": "7",
430
+ "group": "connector",
431
+ "binding": {
432
+ "key": "elementTemplateVersion",
433
+ "type": "zeebe:taskHeader"
434
+ },
435
+ "type": "Hidden"
436
+ },
437
+ {
438
+ "id": "id",
439
+ "label": "ID",
440
+ "description": "ID of the element template",
441
+ "value": "io.camunda.connectors.OpenAI.v1",
442
+ "group": "connector",
443
+ "binding": {
444
+ "key": "elementTemplateId",
445
+ "type": "zeebe:taskHeader"
446
+ },
447
+ "type": "Hidden"
448
+ }
449
+ ]
450
+ },
451
+ {
452
+ "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
453
+ "name": "OpenAI Outbound Connector",
5
454
  "id": "io.camunda.connectors.OpenAI.v1",
6
- "version": 2,
455
+ "version": 3,
7
456
  "description": "Interact with ChatGPT or moderation API",
8
457
  "icon": {
9
458
  "contents": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjU2cHgiIGhlaWdodD0iMjYwcHgiIHZpZXdCb3g9IjAgMCAyNTYgMjYwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICAgIDx0aXRsZT5PcGVuQUk8L3RpdGxlPgogICAgPGc+CiAgICAgICAgPHBhdGggZD0iTTIzOS4xODM5MTQsMTA2LjIwMjc4MyBDMjQ1LjA1NDMwNCw4OC41MjQyMDk2IDI0My4wMjIyOCw2OS4xNzMzODA1IDIzMy42MDc1OTksNTMuMDk5ODg2NCBDMjE5LjQ1MTY3OCwyOC40NTg4MDIxIDE5MC45OTk3MDMsMTUuNzgzNjEyOSAxNjMuMjEzMDA3LDIxLjczOTUwNSBDMTQ3LjU1NDA3Nyw0LjMyMTQ1ODgzIDEyMy43OTQ5MDksLTMuNDIzOTg1NTQgMTAwLjg3OTAxLDEuNDE4NzM4OTggQzc3Ljk2MzExMDUsNi4yNjE0NjM0OSA1OS4zNjkwMDkzLDIyLjk1NzI1MzYgNTIuMDk1OTYyMSw0NS4yMjE0MjE5IEMzMy44NDM2NDk0LDQ4Ljk2NDQ4NjcgMTguMDkwMTcyMSw2MC4zOTI3NDkgOC44NjY3MjUxMyw3Ni41ODE4MDMzIEMtNS40NDM0OTEsMTAxLjE4Mjk2MiAtMi4xOTU0NDQzMSwxMzIuMjE1MjU1IDE2Ljg5ODY2NjIsMTUzLjMyMDA5NCBDMTEuMDA2MDg2NSwxNzAuOTkwNjU2IDEzLjAxOTcyODMsMTkwLjM0Mzk5MSAyMi40MjM4MjMxLDIwNi40MjI5OTEgQzM2LjU5NzU1NTMsMjMxLjA3MjM0NCA2NS4wNjgwMzQyLDI0My43NDY1NjYgOTIuODY5NTczOCwyMzcuNzgzMzcyIEMxMDUuMjM1NjM5LDI1MS43MDgyNDkgMTIzLjAwMTExMywyNTkuNjMwOTQyIDE0MS42MjM5NjgsMjU5LjUyNjkyIEMxNzAuMTA1MzU5LDI1OS41NTIxNjkgMTk1LjMzNzYxMSwyNDEuMTY1NzE4IDIwNC4wMzc3NzcsMjE0LjA0NTY2MSBDMjIyLjI4NzM0LDIxMC4yOTYzNTYgMjM4LjAzODQ4OSwxOTguODY5NzgzIDI0Ny4yNjcwMTQsMTgyLjY4NTI4IEMyNjEuNDA0NDUzLDE1OC4xMjc1MTUgMjU4LjE0MjQ5NCwxMjcuMjYyNzc1IDIzOS4xODM5MTQsMTA2LjIwMjc4MyBMMjM5LjE4MzkxNCwxMDYuMjAyNzgzIFogTTE0MS42MjM5NjgsMjQyLjU0MTIwNyBDMTMwLjI1NTY4MiwyNDIuNTU5MTc3IDExOS4yNDM4NzYsMjM4LjU3NDY0MiAxMTAuNTE5MzgxLDIzMS4yODYxOTcgTDExMi4wNTQxNDYsMjMwLjQxNjQ5NiBMMTYzLjcyNDU5NSwyMDAuNTkwODgxIEMxNjYuMzQwNjQ4LDE5OS4wNTY0NDQgMTY3Ljk1NDMyMSwxOTYuMjU2ODE4IDE2Ny45NzA3ODEsMTkzLjIyNDAwNSBMMTY3Ljk3MDc4MSwxMjAuMzczNzg4IEwxODkuODE1NjE0LDEzMy4wMTAwMjYgQzE5MC4wMzQxMzIsMTMzLjEyMTQyMyAxOTAuMTg2MjM1LDEzMy4zMzA1NjQgMTkwLjIyNDg4NSwxMzMuNTcyNzc0IEwxOTAuMjI0ODg1LDE5My45NDAyMjkgQzE5MC4xNjg2MDMsMjIwLjc1ODQyNyAxNjguNDQyMTY2LDI0Mi40ODQ4NjQgMTQxLjYyMzk2OCwyNDIuNTQxMjA3IFogTTM3LjE1NzU3NDksMTk3LjkzMDYyIEMzMS40NTY0OTgsMTg4LjA4NjM1OSAyOS40MDk0ODE4LDE3Ni41NDY5ODQgMzEuMzc2NjIzNywxNjUuMzQyNDI2IEwzMi45MTEzODk1LDE2Ni4yNjMyODUgTDg0LjYzMjk5NzMsMTk2LjA4ODkwMSBDODcuMjM4OTM0OSwxOTcuNjE4MjA3IDkwLjQ2ODI3MTcsMTk3LjYxODIwNyA5My4wNzQyMDkzLDE5Ni4wODg5MDEgTDE1Ni4yNTU0MDIsMTU5LjY2Mzc5MyBMMTU2LjI1NTQwMiwxODQuODg1MTExIEMxNTYuMjQzNTU3LDE4NS4xNDk3NzEgMTU2LjExMTcyNSwxODUuMzk0NjAyIDE1NS44OTcyOSwxODUuNTUwMTc2IEwxMDMuNTYxNzc2LDIxNS43MzM5MDMgQzgwLjMwNTQ5NTMsMjI5LjEzMTYzMiA1MC41OTI0OTU0LDIyMS4xNjU0MzUgMzcuMTU3NTc0OSwxOTcuOTMwNjIgWiBNMjMuNTQ5MzE4MSw4NS4zODExMjczIEMyOS4yODk5ODYxLDc1LjQ3MzMwOTcgMzguMzUxMTkxMSw2Ny45MTYyNjQ4IDQ5LjEyODc0ODIsNjQuMDQ3ODgyNSBMNDkuMTI4NzQ4MiwxMjUuNDM4NTE1IEM0OS4wODkxNDkyLDEyOC40NTk0MjUgNTAuNjk2NTM4NiwxMzEuMjYyNTU2IDUzLjMyMzc3NDgsMTMyLjc1NDIzMiBMMTE2LjE5ODAxNCwxNjkuMDI1ODY0IEw5NC4zNTMxODA4LDE4MS42NjIxMDIgQzk0LjExMzIzMjUsMTgxLjc4OTQzNCA5My44MjU3NDYxLDE4MS43ODk0MzQgOTMuNTg1Nzk3OSwxODEuNjYyMTAyIEw0MS4zNTI2MDE1LDE1MS41Mjk1MzQgQzE4LjE0MTk0MjYsMTM4LjA3NjA5OCAxMC4xODE3NjgxLDEwOC4zODU1NjIgMjMuNTQ5MzE4MSw4NS4xMjUzMzMgTDIzLjU0OTMxODEsODUuMzgxMTI3MyBaIE0yMDMuMDE0NiwxMjcuMDc1NTk4IEwxMzkuOTM1NzI1LDkwLjQ0NTg1NDUgTDE2MS43Mjk0LDc3Ljg2MDc3NDggQzE2MS45NjkzNDgsNzcuNzMzNDQzNCAxNjIuMjU2ODM0LDc3LjczMzQ0MzQgMTYyLjQ5Njc4Myw3Ny44NjA3NzQ4IEwyMTQuNzI5OTc5LDEwOC4wNDQ1MDIgQzIzMS4wMzIzMjksMTE3LjQ1MTc0NyAyNDAuNDM3Mjk0LDEzNS40MjYxMDkgMjM4Ljg3MTUwNCwxNTQuMTgyNzM5IEMyMzcuMzA1NzE0LDE3Mi45MzkzNjggMjI1LjA1MDcxOSwxODkuMTA1NTcyIDIwNy40MTQyNjIsMTk1LjY3OTYzIEwyMDcuNDE0MjYyLDEzNC4yODg5OTggQzIwNy4zMjI1MjEsMTMxLjI3Njg2NyAyMDUuNjUwNjk3LDEyOC41MzU4NTMgMjAzLjAxNDYsMTI3LjA3NTU5OCBaIE0yMjQuNzU3MTE2LDk0LjM4NTA4NjcgTDIyMy4yMjIzNSw5My40NjQyMjcyIEwxNzEuNjAzMDYsNjMuMzgyODE3MyBDMTY4Ljk4MTI5Myw2MS44NDQzNzUxIDE2NS43MzI0NTYsNjEuODQ0Mzc1MSAxNjMuMTEwNjg5LDYzLjM4MjgxNzMgTDk5Ljk4MDY1NTQsOTkuODA3OTI1OSBMOTkuOTgwNjU1NCw3NC41ODY2MDc3IEM5OS45NTMzMDA0LDc0LjMyNTQwODggMTAwLjA3MTA5NSw3NC4wNzAxODY5IDEwMC4yODc2MDksNzMuOTIxNTQyNiBMMTUyLjUyMDgwNSw0My43ODg5NzM4IEMxNjguODYzMDk4LDM0LjM3NDM1MTggMTg5LjE3NDI1NiwzNS4yNTI5MDQzIDIwNC42NDI1NzksNDYuMDQzNDg0MSBDMjIwLjExMDkwMyw1Ni44MzQwNjM4IDIyNy45NDkyNjksNzUuNTkyMzk1OSAyMjQuNzU3MTE2LDk0LjE4MDQ1MTMgTDIyNC43NTcxMTYsOTQuMzg1MDg2NyBaIE04OC4wNjA2NDA5LDEzOS4wOTc5MzEgTDY2LjIxNTgwNzYsMTI2LjUxMjg1MSBDNjUuOTk1MDM5OSwxMjYuMzc5MDkxIDY1Ljg0NTA5NjUsMTI2LjE1NDE3NiA2NS44MDY1MzY3LDEyNS44OTg5NDUgTDY1LjgwNjUzNjcsNjUuNjg0OTY2IEM2NS44MzE0NDk1LDQ2LjgyODUzNjcgNzYuNzUwMDYwNSwyOS42ODQ2MDMyIDkzLjgyNzA4NTIsMjEuNjg4MzA1NSBDMTEwLjkwNDExLDEzLjY5MjAwNzkgMTMxLjA2MzgzMywxNi4yODM1NDYyIDE0NS41NjMyLDI4LjMzODk5OCBMMTQ0LjAyODQzNCwyOS4yMDg2OTg2IEw5Mi4zNTc5ODUyLDU5LjAzNDMxNDIgQzg5Ljc0MTkzMjcsNjAuNTY4NzUxMyA4OC4xMjgyNTk3LDYzLjM2ODM3NjcgODguMTExNzk5OCw2Ni40MDExOTAxIEw4OC4wNjA2NDA5LDEzOS4wOTc5MzEgWiBNOTkuOTI5NDk2NSwxMTMuNTE4NSBMMTI4LjA2Njg3LDk3LjMwMTE0MTcgTDE1Ni4yNTU0MDIsMTEzLjUxODUgTDE1Ni4yNTU0MDIsMTQ1Ljk1MzIxOCBMMTI4LjE2OTE4NywxNjIuMTcwNTc3IEw5OS45ODA2NTU0LDE0NS45NTMyMTggTDk5LjkyOTQ5NjUsMTEzLjUxODUgWiIgZmlsbD0iIzAwMDAwMCI+PC9wYXRoPgogICAgPC9nPgo8L3N2Zz4K"
@@ -336,7 +785,7 @@
336
785
  "constraints": {
337
786
  "notEmpty": false,
338
787
  "pattern": {
339
- "value": "^(=|([0-9]+|secrets\\..+|\\{\\{secrets\\..+\\}\\})$)",
788
+ "value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
340
789
  "message": "Must be a timeout in seconds (default value is 30 seconds) or a FEEL expression"
341
790
  }
342
791
  }
@@ -359,9 +808,12 @@
359
808
  },
360
809
  {
361
810
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
362
- "name": "OpenAI Outbound Connector",
811
+ "name": "OpenAI connector",
363
812
  "id": "io.camunda.connectors.OpenAI.v1",
364
- "version": 5,
813
+ "deprecated": {
814
+ "message": "Replace with 'OpenAI connector' template.",
815
+ "documentationRef": "https://docs.camunda.io/docs/components/modeler/desktop-modeler/element-templates/using-templates/#replacing-templates"
816
+ },
365
817
  "description": "Interact with ChatGPT or moderation API",
366
818
  "icon": {
367
819
  "contents": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjU2cHgiIGhlaWdodD0iMjYwcHgiIHZpZXdCb3g9IjAgMCAyNTYgMjYwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICAgIDx0aXRsZT5PcGVuQUk8L3RpdGxlPgogICAgPGc+CiAgICAgICAgPHBhdGggZD0iTTIzOS4xODM5MTQsMTA2LjIwMjc4MyBDMjQ1LjA1NDMwNCw4OC41MjQyMDk2IDI0My4wMjIyOCw2OS4xNzMzODA1IDIzMy42MDc1OTksNTMuMDk5ODg2NCBDMjE5LjQ1MTY3OCwyOC40NTg4MDIxIDE5MC45OTk3MDMsMTUuNzgzNjEyOSAxNjMuMjEzMDA3LDIxLjczOTUwNSBDMTQ3LjU1NDA3Nyw0LjMyMTQ1ODgzIDEyMy43OTQ5MDksLTMuNDIzOTg1NTQgMTAwLjg3OTAxLDEuNDE4NzM4OTggQzc3Ljk2MzExMDUsNi4yNjE0NjM0OSA1OS4zNjkwMDkzLDIyLjk1NzI1MzYgNTIuMDk1OTYyMSw0NS4yMjE0MjE5IEMzMy44NDM2NDk0LDQ4Ljk2NDQ4NjcgMTguMDkwMTcyMSw2MC4zOTI3NDkgOC44NjY3MjUxMyw3Ni41ODE4MDMzIEMtNS40NDM0OTEsMTAxLjE4Mjk2MiAtMi4xOTU0NDQzMSwxMzIuMjE1MjU1IDE2Ljg5ODY2NjIsMTUzLjMyMDA5NCBDMTEuMDA2MDg2NSwxNzAuOTkwNjU2IDEzLjAxOTcyODMsMTkwLjM0Mzk5MSAyMi40MjM4MjMxLDIwNi40MjI5OTEgQzM2LjU5NzU1NTMsMjMxLjA3MjM0NCA2NS4wNjgwMzQyLDI0My43NDY1NjYgOTIuODY5NTczOCwyMzcuNzgzMzcyIEMxMDUuMjM1NjM5LDI1MS43MDgyNDkgMTIzLjAwMTExMywyNTkuNjMwOTQyIDE0MS42MjM5NjgsMjU5LjUyNjkyIEMxNzAuMTA1MzU5LDI1OS41NTIxNjkgMTk1LjMzNzYxMSwyNDEuMTY1NzE4IDIwNC4wMzc3NzcsMjE0LjA0NTY2MSBDMjIyLjI4NzM0LDIxMC4yOTYzNTYgMjM4LjAzODQ4OSwxOTguODY5NzgzIDI0Ny4yNjcwMTQsMTgyLjY4NTI4IEMyNjEuNDA0NDUzLDE1OC4xMjc1MTUgMjU4LjE0MjQ5NCwxMjcuMjYyNzc1IDIzOS4xODM5MTQsMTA2LjIwMjc4MyBMMjM5LjE4MzkxNCwxMDYuMjAyNzgzIFogTTE0MS42MjM5NjgsMjQyLjU0MTIwNyBDMTMwLjI1NTY4MiwyNDIuNTU5MTc3IDExOS4yNDM4NzYsMjM4LjU3NDY0MiAxMTAuNTE5MzgxLDIzMS4yODYxOTcgTDExMi4wNTQxNDYsMjMwLjQxNjQ5NiBMMTYzLjcyNDU5NSwyMDAuNTkwODgxIEMxNjYuMzQwNjQ4LDE5OS4wNTY0NDQgMTY3Ljk1NDMyMSwxOTYuMjU2ODE4IDE2Ny45NzA3ODEsMTkzLjIyNDAwNSBMMTY3Ljk3MDc4MSwxMjAuMzczNzg4IEwxODkuODE1NjE0LDEzMy4wMTAwMjYgQzE5MC4wMzQxMzIsMTMzLjEyMTQyMyAxOTAuMTg2MjM1LDEzMy4zMzA1NjQgMTkwLjIyNDg4NSwxMzMuNTcyNzc0IEwxOTAuMjI0ODg1LDE5My45NDAyMjkgQzE5MC4xNjg2MDMsMjIwLjc1ODQyNyAxNjguNDQyMTY2LDI0Mi40ODQ4NjQgMTQxLjYyMzk2OCwyNDIuNTQxMjA3IFogTTM3LjE1NzU3NDksMTk3LjkzMDYyIEMzMS40NTY0OTgsMTg4LjA4NjM1OSAyOS40MDk0ODE4LDE3Ni41NDY5ODQgMzEuMzc2NjIzNywxNjUuMzQyNDI2IEwzMi45MTEzODk1LDE2Ni4yNjMyODUgTDg0LjYzMjk5NzMsMTk2LjA4ODkwMSBDODcuMjM4OTM0OSwxOTcuNjE4MjA3IDkwLjQ2ODI3MTcsMTk3LjYxODIwNyA5My4wNzQyMDkzLDE5Ni4wODg5MDEgTDE1Ni4yNTU0MDIsMTU5LjY2Mzc5MyBMMTU2LjI1NTQwMiwxODQuODg1MTExIEMxNTYuMjQzNTU3LDE4NS4xNDk3NzEgMTU2LjExMTcyNSwxODUuMzk0NjAyIDE1NS44OTcyOSwxODUuNTUwMTc2IEwxMDMuNTYxNzc2LDIxNS43MzM5MDMgQzgwLjMwNTQ5NTMsMjI5LjEzMTYzMiA1MC41OTI0OTU0LDIyMS4xNjU0MzUgMzcuMTU3NTc0OSwxOTcuOTMwNjIgWiBNMjMuNTQ5MzE4MSw4NS4zODExMjczIEMyOS4yODk5ODYxLDc1LjQ3MzMwOTcgMzguMzUxMTkxMSw2Ny45MTYyNjQ4IDQ5LjEyODc0ODIsNjQuMDQ3ODgyNSBMNDkuMTI4NzQ4MiwxMjUuNDM4NTE1IEM0OS4wODkxNDkyLDEyOC40NTk0MjUgNTAuNjk2NTM4NiwxMzEuMjYyNTU2IDUzLjMyMzc3NDgsMTMyLjc1NDIzMiBMMTE2LjE5ODAxNCwxNjkuMDI1ODY0IEw5NC4zNTMxODA4LDE4MS42NjIxMDIgQzk0LjExMzIzMjUsMTgxLjc4OTQzNCA5My44MjU3NDYxLDE4MS43ODk0MzQgOTMuNTg1Nzk3OSwxODEuNjYyMTAyIEw0MS4zNTI2MDE1LDE1MS41Mjk1MzQgQzE4LjE0MTk0MjYsMTM4LjA3NjA5OCAxMC4xODE3NjgxLDEwOC4zODU1NjIgMjMuNTQ5MzE4MSw4NS4xMjUzMzMgTDIzLjU0OTMxODEsODUuMzgxMTI3MyBaIE0yMDMuMDE0NiwxMjcuMDc1NTk4IEwxMzkuOTM1NzI1LDkwLjQ0NTg1NDUgTDE2MS43Mjk0LDc3Ljg2MDc3NDggQzE2MS45NjkzNDgsNzcuNzMzNDQzNCAxNjIuMjU2ODM0LDc3LjczMzQ0MzQgMTYyLjQ5Njc4Myw3Ny44NjA3NzQ4IEwyMTQuNzI5OTc5LDEwOC4wNDQ1MDIgQzIzMS4wMzIzMjksMTE3LjQ1MTc0NyAyNDAuNDM3Mjk0LDEzNS40MjYxMDkgMjM4Ljg3MTUwNCwxNTQuMTgyNzM5IEMyMzcuMzA1NzE0LDE3Mi45MzkzNjggMjI1LjA1MDcxOSwxODkuMTA1NTcyIDIwNy40MTQyNjIsMTk1LjY3OTYzIEwyMDcuNDE0MjYyLDEzNC4yODg5OTggQzIwNy4zMjI1MjEsMTMxLjI3Njg2NyAyMDUuNjUwNjk3LDEyOC41MzU4NTMgMjAzLjAxNDYsMTI3LjA3NTU5OCBaIE0yMjQuNzU3MTE2LDk0LjM4NTA4NjcgTDIyMy4yMjIzNSw5My40NjQyMjcyIEwxNzEuNjAzMDYsNjMuMzgyODE3MyBDMTY4Ljk4MTI5Myw2MS44NDQzNzUxIDE2NS43MzI0NTYsNjEuODQ0Mzc1MSAxNjMuMTEwNjg5LDYzLjM4MjgxNzMgTDk5Ljk4MDY1NTQsOTkuODA3OTI1OSBMOTkuOTgwNjU1NCw3NC41ODY2MDc3IEM5OS45NTMzMDA0LDc0LjMyNTQwODggMTAwLjA3MTA5NSw3NC4wNzAxODY5IDEwMC4yODc2MDksNzMuOTIxNTQyNiBMMTUyLjUyMDgwNSw0My43ODg5NzM4IEMxNjguODYzMDk4LDM0LjM3NDM1MTggMTg5LjE3NDI1NiwzNS4yNTI5MDQzIDIwNC42NDI1NzksNDYuMDQzNDg0MSBDMjIwLjExMDkwMyw1Ni44MzQwNjM4IDIyNy45NDkyNjksNzUuNTkyMzk1OSAyMjQuNzU3MTE2LDk0LjE4MDQ1MTMgTDIyNC43NTcxMTYsOTQuMzg1MDg2NyBaIE04OC4wNjA2NDA5LDEzOS4wOTc5MzEgTDY2LjIxNTgwNzYsMTI2LjUxMjg1MSBDNjUuOTk1MDM5OSwxMjYuMzc5MDkxIDY1Ljg0NTA5NjUsMTI2LjE1NDE3NiA2NS44MDY1MzY3LDEyNS44OTg5NDUgTDY1LjgwNjUzNjcsNjUuNjg0OTY2IEM2NS44MzE0NDk1LDQ2LjgyODUzNjcgNzYuNzUwMDYwNSwyOS42ODQ2MDMyIDkzLjgyNzA4NTIsMjEuNjg4MzA1NSBDMTEwLjkwNDExLDEzLjY5MjAwNzkgMTMxLjA2MzgzMywxNi4yODM1NDYyIDE0NS41NjMyLDI4LjMzODk5OCBMMTQ0LjAyODQzNCwyOS4yMDg2OTg2IEw5Mi4zNTc5ODUyLDU5LjAzNDMxNDIgQzg5Ljc0MTkzMjcsNjAuNTY4NzUxMyA4OC4xMjgyNTk3LDYzLjM2ODM3NjcgODguMTExNzk5OCw2Ni40MDExOTAxIEw4OC4wNjA2NDA5LDEzOS4wOTc5MzEgWiBNOTkuOTI5NDk2NSwxMTMuNTE4NSBMMTI4LjA2Njg3LDk3LjMwMTE0MTcgTDE1Ni4yNTU0MDIsMTEzLjUxODUgTDE1Ni4yNTU0MDIsMTQ1Ljk1MzIxOCBMMTI4LjE2OTE4NywxNjIuMTcwNTc3IEw5OS45ODA2NTU0LDE0NS45NTMyMTggTDk5LjkyOTQ5NjUsMTEzLjUxODUgWiIgZmlsbD0iIzAwMDAwMCI+PC9wYXRoPgogICAgPC9nPgo8L3N2Zz4K"
@@ -524,16 +976,11 @@
524
976
  },
525
977
  {
526
978
  "label": "Model",
527
- "id": "model",
528
- "description": "Select the model (or Custom for free text)",
979
+ "description": "Select the model",
529
980
  "group": "input",
530
981
  "type": "Dropdown",
531
982
  "value": "gpt-3.5-turbo",
532
983
  "choices": [
533
- {
534
- "name": "Custom",
535
- "value": "custom"
536
- },
537
984
  {
538
985
  "name": "GPT-3.5-turbo",
539
986
  "value": "gpt-3.5-turbo"
@@ -541,14 +988,6 @@
541
988
  {
542
989
  "name": "GPT-4",
543
990
  "value": "gpt-4"
544
- },
545
- {
546
- "name": "GPT-4-turbo",
547
- "value": "gpt-4-turbo"
548
- },
549
- {
550
- "name": "GPT-4o",
551
- "value": "gpt-4o"
552
991
  }
553
992
  ],
554
993
  "binding": {
@@ -560,45 +999,6 @@
560
999
  "equals": "chat"
561
1000
  }
562
1001
  },
563
- {
564
- "label": "Custom model version",
565
- "description": "Select the <a href=\"https://platform.openai.com/docs/models/overview\" target=\"_blank\">model</a> version",
566
- "group": "input",
567
- "type": "Text",
568
- "binding": {
569
- "type": "zeebe:input",
570
- "name": "internal_custom_model"
571
- },
572
- "condition": {
573
- "property": "model",
574
- "equals": "custom"
575
- },
576
- "constraints": {
577
- "notEmpty": true
578
- }
579
- },
580
- {
581
- "label": "Temperature",
582
- "description": "Select the temperature (between 0 and 2)",
583
- "group": "input",
584
- "type": "Text",
585
- "value": "1",
586
- "binding": {
587
- "type": "zeebe:input",
588
- "name": "internal_temperature"
589
- },
590
- "condition": {
591
- "property": "operation",
592
- "equals": "chat"
593
- },
594
- "constraints": {
595
- "notEmpty": true,
596
- "pattern": {
597
- "value": "^(2|1|0|1\\.\\d{1,2}|0\\.\\d{1,2})$",
598
- "message": "must be a number between 0 and 2 (e.g. 0, 1.4, 2)"
599
- }
600
- }
601
- },
602
1002
  {
603
1003
  "label": "System message",
604
1004
  "description": "Optional initial instructions for the model",
@@ -669,7 +1069,7 @@
669
1069
  "notEmpty": true,
670
1070
  "pattern": {
671
1071
  "value": "^[1-9]\\d*$",
672
- "message": "must be a positive integer number"
1072
+ "message": "Must be a positive integer number"
673
1073
  }
674
1074
  }
675
1075
  },
@@ -687,7 +1087,7 @@
687
1087
  },
688
1088
  {
689
1089
  "type": "Hidden",
690
- "value": "={\"model\": if is defined(internal_custom_model) then internal_custom_model else internal_model, \"messages\": internal_messages, \"n\": number(internal_choices), \"temperature\": number(internal_temperature)}",
1090
+ "value": "={\"model\": internal_model, \"messages\": internal_messages, \"n\": number(internal_choices)}",
691
1091
  "binding": {
692
1092
  "type": "zeebe:input",
693
1093
  "name": "body"
@@ -746,8 +1146,8 @@
746
1146
  "constraints": {
747
1147
  "notEmpty": false,
748
1148
  "pattern": {
749
- "value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
750
- "message": "must be a timeout in seconds (default value is 30 seconds) or a FEEL expression"
1149
+ "value": "^(=|([0-9]+|secrets\\..+)$)",
1150
+ "message": "Must be a timeout in seconds (default value is 30 seconds) or a FEEL expression"
751
1151
  }
752
1152
  }
753
1153
  },
@@ -762,16 +1162,13 @@
762
1162
  "key": "errorExpression"
763
1163
  }
764
1164
  }
765
- ],
766
- "engines": {
767
- "camunda": "^8.6"
768
- }
1165
+ ]
769
1166
  },
770
1167
  {
771
1168
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
772
1169
  "name": "OpenAI Outbound Connector",
773
1170
  "id": "io.camunda.connectors.OpenAI.v1",
774
- "version": 4,
1171
+ "version": 5,
775
1172
  "description": "Interact with ChatGPT or moderation API",
776
1173
  "icon": {
777
1174
  "contents": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjU2cHgiIGhlaWdodD0iMjYwcHgiIHZpZXdCb3g9IjAgMCAyNTYgMjYwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICAgIDx0aXRsZT5PcGVuQUk8L3RpdGxlPgogICAgPGc+CiAgICAgICAgPHBhdGggZD0iTTIzOS4xODM5MTQsMTA2LjIwMjc4MyBDMjQ1LjA1NDMwNCw4OC41MjQyMDk2IDI0My4wMjIyOCw2OS4xNzMzODA1IDIzMy42MDc1OTksNTMuMDk5ODg2NCBDMjE5LjQ1MTY3OCwyOC40NTg4MDIxIDE5MC45OTk3MDMsMTUuNzgzNjEyOSAxNjMuMjEzMDA3LDIxLjczOTUwNSBDMTQ3LjU1NDA3Nyw0LjMyMTQ1ODgzIDEyMy43OTQ5MDksLTMuNDIzOTg1NTQgMTAwLjg3OTAxLDEuNDE4NzM4OTggQzc3Ljk2MzExMDUsNi4yNjE0NjM0OSA1OS4zNjkwMDkzLDIyLjk1NzI1MzYgNTIuMDk1OTYyMSw0NS4yMjE0MjE5IEMzMy44NDM2NDk0LDQ4Ljk2NDQ4NjcgMTguMDkwMTcyMSw2MC4zOTI3NDkgOC44NjY3MjUxMyw3Ni41ODE4MDMzIEMtNS40NDM0OTEsMTAxLjE4Mjk2MiAtMi4xOTU0NDQzMSwxMzIuMjE1MjU1IDE2Ljg5ODY2NjIsMTUzLjMyMDA5NCBDMTEuMDA2MDg2NSwxNzAuOTkwNjU2IDEzLjAxOTcyODMsMTkwLjM0Mzk5MSAyMi40MjM4MjMxLDIwNi40MjI5OTEgQzM2LjU5NzU1NTMsMjMxLjA3MjM0NCA2NS4wNjgwMzQyLDI0My43NDY1NjYgOTIuODY5NTczOCwyMzcuNzgzMzcyIEMxMDUuMjM1NjM5LDI1MS43MDgyNDkgMTIzLjAwMTExMywyNTkuNjMwOTQyIDE0MS42MjM5NjgsMjU5LjUyNjkyIEMxNzAuMTA1MzU5LDI1OS41NTIxNjkgMTk1LjMzNzYxMSwyNDEuMTY1NzE4IDIwNC4wMzc3NzcsMjE0LjA0NTY2MSBDMjIyLjI4NzM0LDIxMC4yOTYzNTYgMjM4LjAzODQ4OSwxOTguODY5NzgzIDI0Ny4yNjcwMTQsMTgyLjY4NTI4IEMyNjEuNDA0NDUzLDE1OC4xMjc1MTUgMjU4LjE0MjQ5NCwxMjcuMjYyNzc1IDIzOS4xODM5MTQsMTA2LjIwMjc4MyBMMjM5LjE4MzkxNCwxMDYuMjAyNzgzIFogTTE0MS42MjM5NjgsMjQyLjU0MTIwNyBDMTMwLjI1NTY4MiwyNDIuNTU5MTc3IDExOS4yNDM4NzYsMjM4LjU3NDY0MiAxMTAuNTE5MzgxLDIzMS4yODYxOTcgTDExMi4wNTQxNDYsMjMwLjQxNjQ5NiBMMTYzLjcyNDU5NSwyMDAuNTkwODgxIEMxNjYuMzQwNjQ4LDE5OS4wNTY0NDQgMTY3Ljk1NDMyMSwxOTYuMjU2ODE4IDE2Ny45NzA3ODEsMTkzLjIyNDAwNSBMMTY3Ljk3MDc4MSwxMjAuMzczNzg4IEwxODkuODE1NjE0LDEzMy4wMTAwMjYgQzE5MC4wMzQxMzIsMTMzLjEyMTQyMyAxOTAuMTg2MjM1LDEzMy4zMzA1NjQgMTkwLjIyNDg4NSwxMzMuNTcyNzc0IEwxOTAuMjI0ODg1LDE5My45NDAyMjkgQzE5MC4xNjg2MDMsMjIwLjc1ODQyNyAxNjguNDQyMTY2LDI0Mi40ODQ4NjQgMTQxLjYyMzk2OCwyNDIuNTQxMjA3IFogTTM3LjE1NzU3NDksMTk3LjkzMDYyIEMzMS40NTY0OTgsMTg4LjA4NjM1OSAyOS40MDk0ODE4LDE3Ni41NDY5ODQgMzEuMzc2NjIzNywxNjUuMzQyNDI2IEwzMi45MTEzODk1LDE2Ni4yNjMyODUgTDg0LjYzMjk5NzMsMTk2LjA4ODkwMSBDODcuMjM4OTM0OSwxOTcuNjE4MjA3IDkwLjQ2ODI3MTcsMTk3LjYxODIwNyA5My4wNzQyMDkzLDE5Ni4wODg5MDEgTDE1Ni4yNTU0MDIsMTU5LjY2Mzc5MyBMMTU2LjI1NTQwMiwxODQuODg1MTExIEMxNTYuMjQzNTU3LDE4NS4xNDk3NzEgMTU2LjExMTcyNSwxODUuMzk0NjAyIDE1NS44OTcyOSwxODUuNTUwMTc2IEwxMDMuNTYxNzc2LDIxNS43MzM5MDMgQzgwLjMwNTQ5NTMsMjI5LjEzMTYzMiA1MC41OTI0OTU0LDIyMS4xNjU0MzUgMzcuMTU3NTc0OSwxOTcuOTMwNjIgWiBNMjMuNTQ5MzE4MSw4NS4zODExMjczIEMyOS4yODk5ODYxLDc1LjQ3MzMwOTcgMzguMzUxMTkxMSw2Ny45MTYyNjQ4IDQ5LjEyODc0ODIsNjQuMDQ3ODgyNSBMNDkuMTI4NzQ4MiwxMjUuNDM4NTE1IEM0OS4wODkxNDkyLDEyOC40NTk0MjUgNTAuNjk2NTM4NiwxMzEuMjYyNTU2IDUzLjMyMzc3NDgsMTMyLjc1NDIzMiBMMTE2LjE5ODAxNCwxNjkuMDI1ODY0IEw5NC4zNTMxODA4LDE4MS42NjIxMDIgQzk0LjExMzIzMjUsMTgxLjc4OTQzNCA5My44MjU3NDYxLDE4MS43ODk0MzQgOTMuNTg1Nzk3OSwxODEuNjYyMTAyIEw0MS4zNTI2MDE1LDE1MS41Mjk1MzQgQzE4LjE0MTk0MjYsMTM4LjA3NjA5OCAxMC4xODE3NjgxLDEwOC4zODU1NjIgMjMuNTQ5MzE4MSw4NS4xMjUzMzMgTDIzLjU0OTMxODEsODUuMzgxMTI3MyBaIE0yMDMuMDE0NiwxMjcuMDc1NTk4IEwxMzkuOTM1NzI1LDkwLjQ0NTg1NDUgTDE2MS43Mjk0LDc3Ljg2MDc3NDggQzE2MS45NjkzNDgsNzcuNzMzNDQzNCAxNjIuMjU2ODM0LDc3LjczMzQ0MzQgMTYyLjQ5Njc4Myw3Ny44NjA3NzQ4IEwyMTQuNzI5OTc5LDEwOC4wNDQ1MDIgQzIzMS4wMzIzMjksMTE3LjQ1MTc0NyAyNDAuNDM3Mjk0LDEzNS40MjYxMDkgMjM4Ljg3MTUwNCwxNTQuMTgyNzM5IEMyMzcuMzA1NzE0LDE3Mi45MzkzNjggMjI1LjA1MDcxOSwxODkuMTA1NTcyIDIwNy40MTQyNjIsMTk1LjY3OTYzIEwyMDcuNDE0MjYyLDEzNC4yODg5OTggQzIwNy4zMjI1MjEsMTMxLjI3Njg2NyAyMDUuNjUwNjk3LDEyOC41MzU4NTMgMjAzLjAxNDYsMTI3LjA3NTU5OCBaIE0yMjQuNzU3MTE2LDk0LjM4NTA4NjcgTDIyMy4yMjIzNSw5My40NjQyMjcyIEwxNzEuNjAzMDYsNjMuMzgyODE3MyBDMTY4Ljk4MTI5Myw2MS44NDQzNzUxIDE2NS43MzI0NTYsNjEuODQ0Mzc1MSAxNjMuMTEwNjg5LDYzLjM4MjgxNzMgTDk5Ljk4MDY1NTQsOTkuODA3OTI1OSBMOTkuOTgwNjU1NCw3NC41ODY2MDc3IEM5OS45NTMzMDA0LDc0LjMyNTQwODggMTAwLjA3MTA5NSw3NC4wNzAxODY5IDEwMC4yODc2MDksNzMuOTIxNTQyNiBMMTUyLjUyMDgwNSw0My43ODg5NzM4IEMxNjguODYzMDk4LDM0LjM3NDM1MTggMTg5LjE3NDI1NiwzNS4yNTI5MDQzIDIwNC42NDI1NzksNDYuMDQzNDg0MSBDMjIwLjExMDkwMyw1Ni44MzQwNjM4IDIyNy45NDkyNjksNzUuNTkyMzk1OSAyMjQuNzU3MTE2LDk0LjE4MDQ1MTMgTDIyNC43NTcxMTYsOTQuMzg1MDg2NyBaIE04OC4wNjA2NDA5LDEzOS4wOTc5MzEgTDY2LjIxNTgwNzYsMTI2LjUxMjg1MSBDNjUuOTk1MDM5OSwxMjYuMzc5MDkxIDY1Ljg0NTA5NjUsMTI2LjE1NDE3NiA2NS44MDY1MzY3LDEyNS44OTg5NDUgTDY1LjgwNjUzNjcsNjUuNjg0OTY2IEM2NS44MzE0NDk1LDQ2LjgyODUzNjcgNzYuNzUwMDYwNSwyOS42ODQ2MDMyIDkzLjgyNzA4NTIsMjEuNjg4MzA1NSBDMTEwLjkwNDExLDEzLjY5MjAwNzkgMTMxLjA2MzgzMywxNi4yODM1NDYyIDE0NS41NjMyLDI4LjMzODk5OCBMMTQ0LjAyODQzNCwyOS4yMDg2OTg2IEw5Mi4zNTc5ODUyLDU5LjAzNDMxNDIgQzg5Ljc0MTkzMjcsNjAuNTY4NzUxMyA4OC4xMjgyNTk3LDYzLjM2ODM3NjcgODguMTExNzk5OCw2Ni40MDExOTAxIEw4OC4wNjA2NDA5LDEzOS4wOTc5MzEgWiBNOTkuOTI5NDk2NSwxMTMuNTE4NSBMMTI4LjA2Njg3LDk3LjMwMTE0MTcgTDE1Ni4yNTU0MDIsMTEzLjUxODUgTDE1Ni4yNTU0MDIsMTQ1Ljk1MzIxOCBMMTI4LjE2OTE4NywxNjIuMTcwNTc3IEw5OS45ODA2NTU0LDE0NS45NTMyMTggTDk5LjkyOTQ5NjUsMTEzLjUxODUgWiIgZmlsbD0iIzAwMDAwMCI+PC9wYXRoPgogICAgPC9nPgo8L3N2Zz4K"
@@ -953,8 +1350,12 @@
953
1350
  "value": "gpt-4"
954
1351
  },
955
1352
  {
956
- "name": "GPT-4-turbo-preview",
957
- "value": "gpt-4-turbo-preview"
1353
+ "name": "GPT-4-turbo",
1354
+ "value": "gpt-4-turbo"
1355
+ },
1356
+ {
1357
+ "name": "GPT-4o",
1358
+ "value": "gpt-4o"
958
1359
  }
959
1360
  ],
960
1361
  "binding": {
@@ -1159,7 +1560,7 @@
1159
1560
  },
1160
1561
  {
1161
1562
  "label": "Error expression",
1162
- "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>",
1563
+ "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>",
1163
1564
  "group": "errors",
1164
1565
  "type": "Text",
1165
1566
  "feel": "required",
@@ -1170,18 +1571,32 @@
1170
1571
  }
1171
1572
  ],
1172
1573
  "engines": {
1173
- "camunda": "^8.5"
1574
+ "camunda": "^8.6"
1174
1575
  }
1175
1576
  },
1176
1577
  {
1177
1578
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1178
- "name": "OpenAI connector",
1579
+ "name": "OpenAI Outbound Connector",
1179
1580
  "id": "io.camunda.connectors.OpenAI.v1",
1180
- "deprecated": {
1181
- "message": "Replace with 'OpenAI connector' template.",
1182
- "documentationRef": "https://docs.camunda.io/docs/components/modeler/desktop-modeler/element-templates/using-templates/#replacing-templates"
1581
+ "version": 6,
1582
+ "engines": {
1583
+ "camunda": "^8.3"
1183
1584
  },
1184
1585
  "description": "Interact with ChatGPT or moderation API",
1586
+ "keywords": [
1587
+ "chat",
1588
+ "chat completion",
1589
+ "moderation",
1590
+ "content moderation",
1591
+ "AI",
1592
+ "LLM",
1593
+ "language model",
1594
+ "generate text",
1595
+ "GPT",
1596
+ "generative AI",
1597
+ "prompt",
1598
+ "text generation"
1599
+ ],
1185
1600
  "icon": {
1186
1601
  "contents": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjU2cHgiIGhlaWdodD0iMjYwcHgiIHZpZXdCb3g9IjAgMCAyNTYgMjYwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICAgIDx0aXRsZT5PcGVuQUk8L3RpdGxlPgogICAgPGc+CiAgICAgICAgPHBhdGggZD0iTTIzOS4xODM5MTQsMTA2LjIwMjc4MyBDMjQ1LjA1NDMwNCw4OC41MjQyMDk2IDI0My4wMjIyOCw2OS4xNzMzODA1IDIzMy42MDc1OTksNTMuMDk5ODg2NCBDMjE5LjQ1MTY3OCwyOC40NTg4MDIxIDE5MC45OTk3MDMsMTUuNzgzNjEyOSAxNjMuMjEzMDA3LDIxLjczOTUwNSBDMTQ3LjU1NDA3Nyw0LjMyMTQ1ODgzIDEyMy43OTQ5MDksLTMuNDIzOTg1NTQgMTAwLjg3OTAxLDEuNDE4NzM4OTggQzc3Ljk2MzExMDUsNi4yNjE0NjM0OSA1OS4zNjkwMDkzLDIyLjk1NzI1MzYgNTIuMDk1OTYyMSw0NS4yMjE0MjE5IEMzMy44NDM2NDk0LDQ4Ljk2NDQ4NjcgMTguMDkwMTcyMSw2MC4zOTI3NDkgOC44NjY3MjUxMyw3Ni41ODE4MDMzIEMtNS40NDM0OTEsMTAxLjE4Mjk2MiAtMi4xOTU0NDQzMSwxMzIuMjE1MjU1IDE2Ljg5ODY2NjIsMTUzLjMyMDA5NCBDMTEuMDA2MDg2NSwxNzAuOTkwNjU2IDEzLjAxOTcyODMsMTkwLjM0Mzk5MSAyMi40MjM4MjMxLDIwNi40MjI5OTEgQzM2LjU5NzU1NTMsMjMxLjA3MjM0NCA2NS4wNjgwMzQyLDI0My43NDY1NjYgOTIuODY5NTczOCwyMzcuNzgzMzcyIEMxMDUuMjM1NjM5LDI1MS43MDgyNDkgMTIzLjAwMTExMywyNTkuNjMwOTQyIDE0MS42MjM5NjgsMjU5LjUyNjkyIEMxNzAuMTA1MzU5LDI1OS41NTIxNjkgMTk1LjMzNzYxMSwyNDEuMTY1NzE4IDIwNC4wMzc3NzcsMjE0LjA0NTY2MSBDMjIyLjI4NzM0LDIxMC4yOTYzNTYgMjM4LjAzODQ4OSwxOTguODY5NzgzIDI0Ny4yNjcwMTQsMTgyLjY4NTI4IEMyNjEuNDA0NDUzLDE1OC4xMjc1MTUgMjU4LjE0MjQ5NCwxMjcuMjYyNzc1IDIzOS4xODM5MTQsMTA2LjIwMjc4MyBMMjM5LjE4MzkxNCwxMDYuMjAyNzgzIFogTTE0MS42MjM5NjgsMjQyLjU0MTIwNyBDMTMwLjI1NTY4MiwyNDIuNTU5MTc3IDExOS4yNDM4NzYsMjM4LjU3NDY0MiAxMTAuNTE5MzgxLDIzMS4yODYxOTcgTDExMi4wNTQxNDYsMjMwLjQxNjQ5NiBMMTYzLjcyNDU5NSwyMDAuNTkwODgxIEMxNjYuMzQwNjQ4LDE5OS4wNTY0NDQgMTY3Ljk1NDMyMSwxOTYuMjU2ODE4IDE2Ny45NzA3ODEsMTkzLjIyNDAwNSBMMTY3Ljk3MDc4MSwxMjAuMzczNzg4IEwxODkuODE1NjE0LDEzMy4wMTAwMjYgQzE5MC4wMzQxMzIsMTMzLjEyMTQyMyAxOTAuMTg2MjM1LDEzMy4zMzA1NjQgMTkwLjIyNDg4NSwxMzMuNTcyNzc0IEwxOTAuMjI0ODg1LDE5My45NDAyMjkgQzE5MC4xNjg2MDMsMjIwLjc1ODQyNyAxNjguNDQyMTY2LDI0Mi40ODQ4NjQgMTQxLjYyMzk2OCwyNDIuNTQxMjA3IFogTTM3LjE1NzU3NDksMTk3LjkzMDYyIEMzMS40NTY0OTgsMTg4LjA4NjM1OSAyOS40MDk0ODE4LDE3Ni41NDY5ODQgMzEuMzc2NjIzNywxNjUuMzQyNDI2IEwzMi45MTEzODk1LDE2Ni4yNjMyODUgTDg0LjYzMjk5NzMsMTk2LjA4ODkwMSBDODcuMjM4OTM0OSwxOTcuNjE4MjA3IDkwLjQ2ODI3MTcsMTk3LjYxODIwNyA5My4wNzQyMDkzLDE5Ni4wODg5MDEgTDE1Ni4yNTU0MDIsMTU5LjY2Mzc5MyBMMTU2LjI1NTQwMiwxODQuODg1MTExIEMxNTYuMjQzNTU3LDE4NS4xNDk3NzEgMTU2LjExMTcyNSwxODUuMzk0NjAyIDE1NS44OTcyOSwxODUuNTUwMTc2IEwxMDMuNTYxNzc2LDIxNS43MzM5MDMgQzgwLjMwNTQ5NTMsMjI5LjEzMTYzMiA1MC41OTI0OTU0LDIyMS4xNjU0MzUgMzcuMTU3NTc0OSwxOTcuOTMwNjIgWiBNMjMuNTQ5MzE4MSw4NS4zODExMjczIEMyOS4yODk5ODYxLDc1LjQ3MzMwOTcgMzguMzUxMTkxMSw2Ny45MTYyNjQ4IDQ5LjEyODc0ODIsNjQuMDQ3ODgyNSBMNDkuMTI4NzQ4MiwxMjUuNDM4NTE1IEM0OS4wODkxNDkyLDEyOC40NTk0MjUgNTAuNjk2NTM4NiwxMzEuMjYyNTU2IDUzLjMyMzc3NDgsMTMyLjc1NDIzMiBMMTE2LjE5ODAxNCwxNjkuMDI1ODY0IEw5NC4zNTMxODA4LDE4MS42NjIxMDIgQzk0LjExMzIzMjUsMTgxLjc4OTQzNCA5My44MjU3NDYxLDE4MS43ODk0MzQgOTMuNTg1Nzk3OSwxODEuNjYyMTAyIEw0MS4zNTI2MDE1LDE1MS41Mjk1MzQgQzE4LjE0MTk0MjYsMTM4LjA3NjA5OCAxMC4xODE3NjgxLDEwOC4zODU1NjIgMjMuNTQ5MzE4MSw4NS4xMjUzMzMgTDIzLjU0OTMxODEsODUuMzgxMTI3MyBaIE0yMDMuMDE0NiwxMjcuMDc1NTk4IEwxMzkuOTM1NzI1LDkwLjQ0NTg1NDUgTDE2MS43Mjk0LDc3Ljg2MDc3NDggQzE2MS45NjkzNDgsNzcuNzMzNDQzNCAxNjIuMjU2ODM0LDc3LjczMzQ0MzQgMTYyLjQ5Njc4Myw3Ny44NjA3NzQ4IEwyMTQuNzI5OTc5LDEwOC4wNDQ1MDIgQzIzMS4wMzIzMjksMTE3LjQ1MTc0NyAyNDAuNDM3Mjk0LDEzNS40MjYxMDkgMjM4Ljg3MTUwNCwxNTQuMTgyNzM5IEMyMzcuMzA1NzE0LDE3Mi45MzkzNjggMjI1LjA1MDcxOSwxODkuMTA1NTcyIDIwNy40MTQyNjIsMTk1LjY3OTYzIEwyMDcuNDE0MjYyLDEzNC4yODg5OTggQzIwNy4zMjI1MjEsMTMxLjI3Njg2NyAyMDUuNjUwNjk3LDEyOC41MzU4NTMgMjAzLjAxNDYsMTI3LjA3NTU5OCBaIE0yMjQuNzU3MTE2LDk0LjM4NTA4NjcgTDIyMy4yMjIzNSw5My40NjQyMjcyIEwxNzEuNjAzMDYsNjMuMzgyODE3MyBDMTY4Ljk4MTI5Myw2MS44NDQzNzUxIDE2NS43MzI0NTYsNjEuODQ0Mzc1MSAxNjMuMTEwNjg5LDYzLjM4MjgxNzMgTDk5Ljk4MDY1NTQsOTkuODA3OTI1OSBMOTkuOTgwNjU1NCw3NC41ODY2MDc3IEM5OS45NTMzMDA0LDc0LjMyNTQwODggMTAwLjA3MTA5NSw3NC4wNzAxODY5IDEwMC4yODc2MDksNzMuOTIxNTQyNiBMMTUyLjUyMDgwNSw0My43ODg5NzM4IEMxNjguODYzMDk4LDM0LjM3NDM1MTggMTg5LjE3NDI1NiwzNS4yNTI5MDQzIDIwNC42NDI1NzksNDYuMDQzNDg0MSBDMjIwLjExMDkwMyw1Ni44MzQwNjM4IDIyNy45NDkyNjksNzUuNTkyMzk1OSAyMjQuNzU3MTE2LDk0LjE4MDQ1MTMgTDIyNC43NTcxMTYsOTQuMzg1MDg2NyBaIE04OC4wNjA2NDA5LDEzOS4wOTc5MzEgTDY2LjIxNTgwNzYsMTI2LjUxMjg1MSBDNjUuOTk1MDM5OSwxMjYuMzc5MDkxIDY1Ljg0NTA5NjUsMTI2LjE1NDE3NiA2NS44MDY1MzY3LDEyNS44OTg5NDUgTDY1LjgwNjUzNjcsNjUuNjg0OTY2IEM2NS44MzE0NDk1LDQ2LjgyODUzNjcgNzYuNzUwMDYwNSwyOS42ODQ2MDMyIDkzLjgyNzA4NTIsMjEuNjg4MzA1NSBDMTEwLjkwNDExLDEzLjY5MjAwNzkgMTMxLjA2MzgzMywxNi4yODM1NDYyIDE0NS41NjMyLDI4LjMzODk5OCBMMTQ0LjAyODQzNCwyOS4yMDg2OTg2IEw5Mi4zNTc5ODUyLDU5LjAzNDMxNDIgQzg5Ljc0MTkzMjcsNjAuNTY4NzUxMyA4OC4xMjgyNTk3LDYzLjM2ODM3NjcgODguMTExNzk5OCw2Ni40MDExOTAxIEw4OC4wNjA2NDA5LDEzOS4wOTc5MzEgWiBNOTkuOTI5NDk2NSwxMTMuNTE4NSBMMTI4LjA2Njg3LDk3LjMwMTE0MTcgTDE1Ni4yNTU0MDIsMTEzLjUxODUgTDE1Ni4yNTU0MDIsMTQ1Ljk1MzIxOCBMMTI4LjE2OTE4NywxNjIuMTcwNTc3IEw5OS45ODA2NTU0LDE0NS45NTMyMTggTDk5LjkyOTQ5NjUsMTEzLjUxODUgWiIgZmlsbD0iIzAwMDAwMCI+PC9wYXRoPgogICAgPC9nPgo8L3N2Zz4K"
1187
1602
  },
@@ -1343,11 +1758,16 @@
1343
1758
  },
1344
1759
  {
1345
1760
  "label": "Model",
1346
- "description": "Select the model",
1761
+ "id": "model",
1762
+ "description": "Select the model (or Custom for free text)",
1347
1763
  "group": "input",
1348
1764
  "type": "Dropdown",
1349
1765
  "value": "gpt-3.5-turbo",
1350
1766
  "choices": [
1767
+ {
1768
+ "name": "Custom",
1769
+ "value": "custom"
1770
+ },
1351
1771
  {
1352
1772
  "name": "GPT-3.5-turbo",
1353
1773
  "value": "gpt-3.5-turbo"
@@ -1355,15 +1775,62 @@
1355
1775
  {
1356
1776
  "name": "GPT-4",
1357
1777
  "value": "gpt-4"
1778
+ },
1779
+ {
1780
+ "name": "GPT-4-turbo",
1781
+ "value": "gpt-4-turbo"
1782
+ },
1783
+ {
1784
+ "name": "GPT-4o",
1785
+ "value": "gpt-4o"
1358
1786
  }
1359
1787
  ],
1360
1788
  "binding": {
1361
1789
  "type": "zeebe:input",
1362
- "name": "internal_model"
1790
+ "name": "internal_model"
1791
+ },
1792
+ "condition": {
1793
+ "property": "operation",
1794
+ "equals": "chat"
1795
+ }
1796
+ },
1797
+ {
1798
+ "label": "Custom model version",
1799
+ "description": "Select the <a href=\"https://platform.openai.com/docs/models/overview\" target=\"_blank\">model</a> version",
1800
+ "group": "input",
1801
+ "type": "Text",
1802
+ "binding": {
1803
+ "type": "zeebe:input",
1804
+ "name": "internal_custom_model"
1805
+ },
1806
+ "condition": {
1807
+ "property": "model",
1808
+ "equals": "custom"
1809
+ },
1810
+ "constraints": {
1811
+ "notEmpty": true
1812
+ }
1813
+ },
1814
+ {
1815
+ "label": "Temperature",
1816
+ "description": "Select the temperature (between 0 and 2)",
1817
+ "group": "input",
1818
+ "type": "Text",
1819
+ "value": "1",
1820
+ "binding": {
1821
+ "type": "zeebe:input",
1822
+ "name": "internal_temperature"
1363
1823
  },
1364
1824
  "condition": {
1365
1825
  "property": "operation",
1366
1826
  "equals": "chat"
1827
+ },
1828
+ "constraints": {
1829
+ "notEmpty": true,
1830
+ "pattern": {
1831
+ "value": "^(2|1|0|1\\.\\d{1,2}|0\\.\\d{1,2})$",
1832
+ "message": "must be a number between 0 and 2 (e.g. 0, 1.4, 2)"
1833
+ }
1367
1834
  }
1368
1835
  },
1369
1836
  {
@@ -1436,7 +1903,7 @@
1436
1903
  "notEmpty": true,
1437
1904
  "pattern": {
1438
1905
  "value": "^[1-9]\\d*$",
1439
- "message": "Must be a positive integer number"
1906
+ "message": "must be a positive integer number"
1440
1907
  }
1441
1908
  }
1442
1909
  },
@@ -1454,7 +1921,7 @@
1454
1921
  },
1455
1922
  {
1456
1923
  "type": "Hidden",
1457
- "value": "={\"model\": internal_model, \"messages\": internal_messages, \"n\": number(internal_choices)}",
1924
+ "value": "={\"model\": if is defined(internal_custom_model) then internal_custom_model else internal_model, \"messages\": internal_messages, \"n\": number(internal_choices), \"temperature\": number(internal_temperature)}",
1458
1925
  "binding": {
1459
1926
  "type": "zeebe:input",
1460
1927
  "name": "body"
@@ -1513,8 +1980,8 @@
1513
1980
  "constraints": {
1514
1981
  "notEmpty": false,
1515
1982
  "pattern": {
1516
- "value": "^(=|([0-9]+|secrets\\..+)$)",
1517
- "message": "Must be a timeout in seconds (default value is 30 seconds) or a FEEL expression"
1983
+ "value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
1984
+ "message": "must be a timeout in seconds (default value is 30 seconds) or a FEEL expression"
1518
1985
  }
1519
1986
  }
1520
1987
  },
@@ -1528,32 +1995,39 @@
1528
1995
  "type": "zeebe:taskHeader",
1529
1996
  "key": "errorExpression"
1530
1997
  }
1998
+ },
1999
+ {
2000
+ "id": "version",
2001
+ "label": "Version",
2002
+ "description": "Version of the element template",
2003
+ "value": "6",
2004
+ "group": "connector",
2005
+ "binding": {
2006
+ "key": "elementTemplateVersion",
2007
+ "type": "zeebe:taskHeader"
2008
+ },
2009
+ "type": "Hidden"
2010
+ },
2011
+ {
2012
+ "id": "id",
2013
+ "label": "ID",
2014
+ "description": "ID of the element template",
2015
+ "value": "io.camunda.connectors.OpenAI.v1",
2016
+ "group": "connector",
2017
+ "binding": {
2018
+ "key": "elementTemplateId",
2019
+ "type": "zeebe:taskHeader"
2020
+ },
2021
+ "type": "Hidden"
1531
2022
  }
1532
2023
  ]
1533
2024
  },
1534
2025
  {
1535
2026
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1536
- "name": "OpenAI Outbound Connector",
2027
+ "name": "OpenAI connector",
1537
2028
  "id": "io.camunda.connectors.OpenAI.v1",
1538
- "version": 6,
1539
- "engines": {
1540
- "camunda": "^8.3"
1541
- },
2029
+ "version": 2,
1542
2030
  "description": "Interact with ChatGPT or moderation API",
1543
- "keywords": [
1544
- "chat",
1545
- "chat completion",
1546
- "moderation",
1547
- "content moderation",
1548
- "AI",
1549
- "LLM",
1550
- "language model",
1551
- "generate text",
1552
- "GPT",
1553
- "generative AI",
1554
- "prompt",
1555
- "text generation"
1556
- ],
1557
2031
  "icon": {
1558
2032
  "contents": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjU2cHgiIGhlaWdodD0iMjYwcHgiIHZpZXdCb3g9IjAgMCAyNTYgMjYwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICAgIDx0aXRsZT5PcGVuQUk8L3RpdGxlPgogICAgPGc+CiAgICAgICAgPHBhdGggZD0iTTIzOS4xODM5MTQsMTA2LjIwMjc4MyBDMjQ1LjA1NDMwNCw4OC41MjQyMDk2IDI0My4wMjIyOCw2OS4xNzMzODA1IDIzMy42MDc1OTksNTMuMDk5ODg2NCBDMjE5LjQ1MTY3OCwyOC40NTg4MDIxIDE5MC45OTk3MDMsMTUuNzgzNjEyOSAxNjMuMjEzMDA3LDIxLjczOTUwNSBDMTQ3LjU1NDA3Nyw0LjMyMTQ1ODgzIDEyMy43OTQ5MDksLTMuNDIzOTg1NTQgMTAwLjg3OTAxLDEuNDE4NzM4OTggQzc3Ljk2MzExMDUsNi4yNjE0NjM0OSA1OS4zNjkwMDkzLDIyLjk1NzI1MzYgNTIuMDk1OTYyMSw0NS4yMjE0MjE5IEMzMy44NDM2NDk0LDQ4Ljk2NDQ4NjcgMTguMDkwMTcyMSw2MC4zOTI3NDkgOC44NjY3MjUxMyw3Ni41ODE4MDMzIEMtNS40NDM0OTEsMTAxLjE4Mjk2MiAtMi4xOTU0NDQzMSwxMzIuMjE1MjU1IDE2Ljg5ODY2NjIsMTUzLjMyMDA5NCBDMTEuMDA2MDg2NSwxNzAuOTkwNjU2IDEzLjAxOTcyODMsMTkwLjM0Mzk5MSAyMi40MjM4MjMxLDIwNi40MjI5OTEgQzM2LjU5NzU1NTMsMjMxLjA3MjM0NCA2NS4wNjgwMzQyLDI0My43NDY1NjYgOTIuODY5NTczOCwyMzcuNzgzMzcyIEMxMDUuMjM1NjM5LDI1MS43MDgyNDkgMTIzLjAwMTExMywyNTkuNjMwOTQyIDE0MS42MjM5NjgsMjU5LjUyNjkyIEMxNzAuMTA1MzU5LDI1OS41NTIxNjkgMTk1LjMzNzYxMSwyNDEuMTY1NzE4IDIwNC4wMzc3NzcsMjE0LjA0NTY2MSBDMjIyLjI4NzM0LDIxMC4yOTYzNTYgMjM4LjAzODQ4OSwxOTguODY5NzgzIDI0Ny4yNjcwMTQsMTgyLjY4NTI4IEMyNjEuNDA0NDUzLDE1OC4xMjc1MTUgMjU4LjE0MjQ5NCwxMjcuMjYyNzc1IDIzOS4xODM5MTQsMTA2LjIwMjc4MyBMMjM5LjE4MzkxNCwxMDYuMjAyNzgzIFogTTE0MS42MjM5NjgsMjQyLjU0MTIwNyBDMTMwLjI1NTY4MiwyNDIuNTU5MTc3IDExOS4yNDM4NzYsMjM4LjU3NDY0MiAxMTAuNTE5MzgxLDIzMS4yODYxOTcgTDExMi4wNTQxNDYsMjMwLjQxNjQ5NiBMMTYzLjcyNDU5NSwyMDAuNTkwODgxIEMxNjYuMzQwNjQ4LDE5OS4wNTY0NDQgMTY3Ljk1NDMyMSwxOTYuMjU2ODE4IDE2Ny45NzA3ODEsMTkzLjIyNDAwNSBMMTY3Ljk3MDc4MSwxMjAuMzczNzg4IEwxODkuODE1NjE0LDEzMy4wMTAwMjYgQzE5MC4wMzQxMzIsMTMzLjEyMTQyMyAxOTAuMTg2MjM1LDEzMy4zMzA1NjQgMTkwLjIyNDg4NSwxMzMuNTcyNzc0IEwxOTAuMjI0ODg1LDE5My45NDAyMjkgQzE5MC4xNjg2MDMsMjIwLjc1ODQyNyAxNjguNDQyMTY2LDI0Mi40ODQ4NjQgMTQxLjYyMzk2OCwyNDIuNTQxMjA3IFogTTM3LjE1NzU3NDksMTk3LjkzMDYyIEMzMS40NTY0OTgsMTg4LjA4NjM1OSAyOS40MDk0ODE4LDE3Ni41NDY5ODQgMzEuMzc2NjIzNywxNjUuMzQyNDI2IEwzMi45MTEzODk1LDE2Ni4yNjMyODUgTDg0LjYzMjk5NzMsMTk2LjA4ODkwMSBDODcuMjM4OTM0OSwxOTcuNjE4MjA3IDkwLjQ2ODI3MTcsMTk3LjYxODIwNyA5My4wNzQyMDkzLDE5Ni4wODg5MDEgTDE1Ni4yNTU0MDIsMTU5LjY2Mzc5MyBMMTU2LjI1NTQwMiwxODQuODg1MTExIEMxNTYuMjQzNTU3LDE4NS4xNDk3NzEgMTU2LjExMTcyNSwxODUuMzk0NjAyIDE1NS44OTcyOSwxODUuNTUwMTc2IEwxMDMuNTYxNzc2LDIxNS43MzM5MDMgQzgwLjMwNTQ5NTMsMjI5LjEzMTYzMiA1MC41OTI0OTU0LDIyMS4xNjU0MzUgMzcuMTU3NTc0OSwxOTcuOTMwNjIgWiBNMjMuNTQ5MzE4MSw4NS4zODExMjczIEMyOS4yODk5ODYxLDc1LjQ3MzMwOTcgMzguMzUxMTkxMSw2Ny45MTYyNjQ4IDQ5LjEyODc0ODIsNjQuMDQ3ODgyNSBMNDkuMTI4NzQ4MiwxMjUuNDM4NTE1IEM0OS4wODkxNDkyLDEyOC40NTk0MjUgNTAuNjk2NTM4NiwxMzEuMjYyNTU2IDUzLjMyMzc3NDgsMTMyLjc1NDIzMiBMMTE2LjE5ODAxNCwxNjkuMDI1ODY0IEw5NC4zNTMxODA4LDE4MS42NjIxMDIgQzk0LjExMzIzMjUsMTgxLjc4OTQzNCA5My44MjU3NDYxLDE4MS43ODk0MzQgOTMuNTg1Nzk3OSwxODEuNjYyMTAyIEw0MS4zNTI2MDE1LDE1MS41Mjk1MzQgQzE4LjE0MTk0MjYsMTM4LjA3NjA5OCAxMC4xODE3NjgxLDEwOC4zODU1NjIgMjMuNTQ5MzE4MSw4NS4xMjUzMzMgTDIzLjU0OTMxODEsODUuMzgxMTI3MyBaIE0yMDMuMDE0NiwxMjcuMDc1NTk4IEwxMzkuOTM1NzI1LDkwLjQ0NTg1NDUgTDE2MS43Mjk0LDc3Ljg2MDc3NDggQzE2MS45NjkzNDgsNzcuNzMzNDQzNCAxNjIuMjU2ODM0LDc3LjczMzQ0MzQgMTYyLjQ5Njc4Myw3Ny44NjA3NzQ4IEwyMTQuNzI5OTc5LDEwOC4wNDQ1MDIgQzIzMS4wMzIzMjksMTE3LjQ1MTc0NyAyNDAuNDM3Mjk0LDEzNS40MjYxMDkgMjM4Ljg3MTUwNCwxNTQuMTgyNzM5IEMyMzcuMzA1NzE0LDE3Mi45MzkzNjggMjI1LjA1MDcxOSwxODkuMTA1NTcyIDIwNy40MTQyNjIsMTk1LjY3OTYzIEwyMDcuNDE0MjYyLDEzNC4yODg5OTggQzIwNy4zMjI1MjEsMTMxLjI3Njg2NyAyMDUuNjUwNjk3LDEyOC41MzU4NTMgMjAzLjAxNDYsMTI3LjA3NTU5OCBaIE0yMjQuNzU3MTE2LDk0LjM4NTA4NjcgTDIyMy4yMjIzNSw5My40NjQyMjcyIEwxNzEuNjAzMDYsNjMuMzgyODE3MyBDMTY4Ljk4MTI5Myw2MS44NDQzNzUxIDE2NS43MzI0NTYsNjEuODQ0Mzc1MSAxNjMuMTEwNjg5LDYzLjM4MjgxNzMgTDk5Ljk4MDY1NTQsOTkuODA3OTI1OSBMOTkuOTgwNjU1NCw3NC41ODY2MDc3IEM5OS45NTMzMDA0LDc0LjMyNTQwODggMTAwLjA3MTA5NSw3NC4wNzAxODY5IDEwMC4yODc2MDksNzMuOTIxNTQyNiBMMTUyLjUyMDgwNSw0My43ODg5NzM4IEMxNjguODYzMDk4LDM0LjM3NDM1MTggMTg5LjE3NDI1NiwzNS4yNTI5MDQzIDIwNC42NDI1NzksNDYuMDQzNDg0MSBDMjIwLjExMDkwMyw1Ni44MzQwNjM4IDIyNy45NDkyNjksNzUuNTkyMzk1OSAyMjQuNzU3MTE2LDk0LjE4MDQ1MTMgTDIyNC43NTcxMTYsOTQuMzg1MDg2NyBaIE04OC4wNjA2NDA5LDEzOS4wOTc5MzEgTDY2LjIxNTgwNzYsMTI2LjUxMjg1MSBDNjUuOTk1MDM5OSwxMjYuMzc5MDkxIDY1Ljg0NTA5NjUsMTI2LjE1NDE3NiA2NS44MDY1MzY3LDEyNS44OTg5NDUgTDY1LjgwNjUzNjcsNjUuNjg0OTY2IEM2NS44MzE0NDk1LDQ2LjgyODUzNjcgNzYuNzUwMDYwNSwyOS42ODQ2MDMyIDkzLjgyNzA4NTIsMjEuNjg4MzA1NSBDMTEwLjkwNDExLDEzLjY5MjAwNzkgMTMxLjA2MzgzMywxNi4yODM1NDYyIDE0NS41NjMyLDI4LjMzODk5OCBMMTQ0LjAyODQzNCwyOS4yMDg2OTg2IEw5Mi4zNTc5ODUyLDU5LjAzNDMxNDIgQzg5Ljc0MTkzMjcsNjAuNTY4NzUxMyA4OC4xMjgyNTk3LDYzLjM2ODM3NjcgODguMTExNzk5OCw2Ni40MDExOTAxIEw4OC4wNjA2NDA5LDEzOS4wOTc5MzEgWiBNOTkuOTI5NDk2NSwxMTMuNTE4NSBMMTI4LjA2Njg3LDk3LjMwMTE0MTcgTDE1Ni4yNTU0MDIsMTEzLjUxODUgTDE1Ni4yNTU0MDIsMTQ1Ljk1MzIxOCBMMTI4LjE2OTE4NywxNjIuMTcwNTc3IEw5OS45ODA2NTU0LDE0NS45NTMyMTggTDk5LjkyOTQ5NjUsMTEzLjUxODUgWiIgZmlsbD0iIzAwMDAwMCI+PC9wYXRoPgogICAgPC9nPgo8L3N2Zz4K"
1559
2033
  },
@@ -1715,16 +2189,11 @@
1715
2189
  },
1716
2190
  {
1717
2191
  "label": "Model",
1718
- "id": "model",
1719
- "description": "Select the model (or Custom for free text)",
2192
+ "description": "Select the model",
1720
2193
  "group": "input",
1721
2194
  "type": "Dropdown",
1722
2195
  "value": "gpt-3.5-turbo",
1723
2196
  "choices": [
1724
- {
1725
- "name": "Custom",
1726
- "value": "custom"
1727
- },
1728
2197
  {
1729
2198
  "name": "GPT-3.5-turbo",
1730
2199
  "value": "gpt-3.5-turbo"
@@ -1732,14 +2201,6 @@
1732
2201
  {
1733
2202
  "name": "GPT-4",
1734
2203
  "value": "gpt-4"
1735
- },
1736
- {
1737
- "name": "GPT-4-turbo",
1738
- "value": "gpt-4-turbo"
1739
- },
1740
- {
1741
- "name": "GPT-4o",
1742
- "value": "gpt-4o"
1743
2204
  }
1744
2205
  ],
1745
2206
  "binding": {
@@ -1751,45 +2212,6 @@
1751
2212
  "equals": "chat"
1752
2213
  }
1753
2214
  },
1754
- {
1755
- "label": "Custom model version",
1756
- "description": "Select the <a href=\"https://platform.openai.com/docs/models/overview\" target=\"_blank\">model</a> version",
1757
- "group": "input",
1758
- "type": "Text",
1759
- "binding": {
1760
- "type": "zeebe:input",
1761
- "name": "internal_custom_model"
1762
- },
1763
- "condition": {
1764
- "property": "model",
1765
- "equals": "custom"
1766
- },
1767
- "constraints": {
1768
- "notEmpty": true
1769
- }
1770
- },
1771
- {
1772
- "label": "Temperature",
1773
- "description": "Select the temperature (between 0 and 2)",
1774
- "group": "input",
1775
- "type": "Text",
1776
- "value": "1",
1777
- "binding": {
1778
- "type": "zeebe:input",
1779
- "name": "internal_temperature"
1780
- },
1781
- "condition": {
1782
- "property": "operation",
1783
- "equals": "chat"
1784
- },
1785
- "constraints": {
1786
- "notEmpty": true,
1787
- "pattern": {
1788
- "value": "^(2|1|0|1\\.\\d{1,2}|0\\.\\d{1,2})$",
1789
- "message": "must be a number between 0 and 2 (e.g. 0, 1.4, 2)"
1790
- }
1791
- }
1792
- },
1793
2215
  {
1794
2216
  "label": "System message",
1795
2217
  "description": "Optional initial instructions for the model",
@@ -1860,7 +2282,7 @@
1860
2282
  "notEmpty": true,
1861
2283
  "pattern": {
1862
2284
  "value": "^[1-9]\\d*$",
1863
- "message": "must be a positive integer number"
2285
+ "message": "Must be a positive integer number"
1864
2286
  }
1865
2287
  }
1866
2288
  },
@@ -1878,7 +2300,7 @@
1878
2300
  },
1879
2301
  {
1880
2302
  "type": "Hidden",
1881
- "value": "={\"model\": if is defined(internal_custom_model) then internal_custom_model else internal_model, \"messages\": internal_messages, \"n\": number(internal_choices), \"temperature\": number(internal_temperature)}",
2303
+ "value": "={\"model\": internal_model, \"messages\": internal_messages, \"n\": number(internal_choices)}",
1882
2304
  "binding": {
1883
2305
  "type": "zeebe:input",
1884
2306
  "name": "body"
@@ -1937,8 +2359,8 @@
1937
2359
  "constraints": {
1938
2360
  "notEmpty": false,
1939
2361
  "pattern": {
1940
- "value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
1941
- "message": "must be a timeout in seconds (default value is 30 seconds) or a FEEL expression"
2362
+ "value": "^(=|([0-9]+|secrets\\..+|\\{\\{secrets\\..+\\}\\})$)",
2363
+ "message": "Must be a timeout in seconds (default value is 30 seconds) or a FEEL expression"
1942
2364
  }
1943
2365
  }
1944
2366
  },
@@ -1952,32 +2374,11 @@
1952
2374
  "type": "zeebe:taskHeader",
1953
2375
  "key": "errorExpression"
1954
2376
  }
1955
- },
1956
- {
1957
- "id": "version",
1958
- "label": "Version",
1959
- "description": "Version of the element template",
1960
- "value": "6",
1961
- "group": "connector",
1962
- "binding": {
1963
- "key": "elementTemplateVersion",
1964
- "type": "zeebe:taskHeader"
1965
- },
1966
- "type": "Hidden"
1967
- },
1968
- {
1969
- "id": "id",
1970
- "label": "ID",
1971
- "description": "ID of the element template",
1972
- "value": "io.camunda.connectors.OpenAI.v1",
1973
- "group": "connector",
1974
- "binding": {
1975
- "key": "elementTemplateId",
1976
- "type": "zeebe:taskHeader"
1977
- },
1978
- "type": "Hidden"
1979
2377
  }
1980
- ]
2378
+ ],
2379
+ "engines": {
2380
+ "camunda": "^8.2"
2381
+ }
1981
2382
  },
1982
2383
  {
1983
2384
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
@@ -2341,7 +2742,7 @@
2341
2742
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2342
2743
  "name": "OpenAI Outbound Connector",
2343
2744
  "id": "io.camunda.connectors.OpenAI.v1",
2344
- "version": 3,
2745
+ "version": 4,
2345
2746
  "description": "Interact with ChatGPT or moderation API",
2346
2747
  "icon": {
2347
2748
  "contents": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjU2cHgiIGhlaWdodD0iMjYwcHgiIHZpZXdCb3g9IjAgMCAyNTYgMjYwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICAgIDx0aXRsZT5PcGVuQUk8L3RpdGxlPgogICAgPGc+CiAgICAgICAgPHBhdGggZD0iTTIzOS4xODM5MTQsMTA2LjIwMjc4MyBDMjQ1LjA1NDMwNCw4OC41MjQyMDk2IDI0My4wMjIyOCw2OS4xNzMzODA1IDIzMy42MDc1OTksNTMuMDk5ODg2NCBDMjE5LjQ1MTY3OCwyOC40NTg4MDIxIDE5MC45OTk3MDMsMTUuNzgzNjEyOSAxNjMuMjEzMDA3LDIxLjczOTUwNSBDMTQ3LjU1NDA3Nyw0LjMyMTQ1ODgzIDEyMy43OTQ5MDksLTMuNDIzOTg1NTQgMTAwLjg3OTAxLDEuNDE4NzM4OTggQzc3Ljk2MzExMDUsNi4yNjE0NjM0OSA1OS4zNjkwMDkzLDIyLjk1NzI1MzYgNTIuMDk1OTYyMSw0NS4yMjE0MjE5IEMzMy44NDM2NDk0LDQ4Ljk2NDQ4NjcgMTguMDkwMTcyMSw2MC4zOTI3NDkgOC44NjY3MjUxMyw3Ni41ODE4MDMzIEMtNS40NDM0OTEsMTAxLjE4Mjk2MiAtMi4xOTU0NDQzMSwxMzIuMjE1MjU1IDE2Ljg5ODY2NjIsMTUzLjMyMDA5NCBDMTEuMDA2MDg2NSwxNzAuOTkwNjU2IDEzLjAxOTcyODMsMTkwLjM0Mzk5MSAyMi40MjM4MjMxLDIwNi40MjI5OTEgQzM2LjU5NzU1NTMsMjMxLjA3MjM0NCA2NS4wNjgwMzQyLDI0My43NDY1NjYgOTIuODY5NTczOCwyMzcuNzgzMzcyIEMxMDUuMjM1NjM5LDI1MS43MDgyNDkgMTIzLjAwMTExMywyNTkuNjMwOTQyIDE0MS42MjM5NjgsMjU5LjUyNjkyIEMxNzAuMTA1MzU5LDI1OS41NTIxNjkgMTk1LjMzNzYxMSwyNDEuMTY1NzE4IDIwNC4wMzc3NzcsMjE0LjA0NTY2MSBDMjIyLjI4NzM0LDIxMC4yOTYzNTYgMjM4LjAzODQ4OSwxOTguODY5NzgzIDI0Ny4yNjcwMTQsMTgyLjY4NTI4IEMyNjEuNDA0NDUzLDE1OC4xMjc1MTUgMjU4LjE0MjQ5NCwxMjcuMjYyNzc1IDIzOS4xODM5MTQsMTA2LjIwMjc4MyBMMjM5LjE4MzkxNCwxMDYuMjAyNzgzIFogTTE0MS42MjM5NjgsMjQyLjU0MTIwNyBDMTMwLjI1NTY4MiwyNDIuNTU5MTc3IDExOS4yNDM4NzYsMjM4LjU3NDY0MiAxMTAuNTE5MzgxLDIzMS4yODYxOTcgTDExMi4wNTQxNDYsMjMwLjQxNjQ5NiBMMTYzLjcyNDU5NSwyMDAuNTkwODgxIEMxNjYuMzQwNjQ4LDE5OS4wNTY0NDQgMTY3Ljk1NDMyMSwxOTYuMjU2ODE4IDE2Ny45NzA3ODEsMTkzLjIyNDAwNSBMMTY3Ljk3MDc4MSwxMjAuMzczNzg4IEwxODkuODE1NjE0LDEzMy4wMTAwMjYgQzE5MC4wMzQxMzIsMTMzLjEyMTQyMyAxOTAuMTg2MjM1LDEzMy4zMzA1NjQgMTkwLjIyNDg4NSwxMzMuNTcyNzc0IEwxOTAuMjI0ODg1LDE5My45NDAyMjkgQzE5MC4xNjg2MDMsMjIwLjc1ODQyNyAxNjguNDQyMTY2LDI0Mi40ODQ4NjQgMTQxLjYyMzk2OCwyNDIuNTQxMjA3IFogTTM3LjE1NzU3NDksMTk3LjkzMDYyIEMzMS40NTY0OTgsMTg4LjA4NjM1OSAyOS40MDk0ODE4LDE3Ni41NDY5ODQgMzEuMzc2NjIzNywxNjUuMzQyNDI2IEwzMi45MTEzODk1LDE2Ni4yNjMyODUgTDg0LjYzMjk5NzMsMTk2LjA4ODkwMSBDODcuMjM4OTM0OSwxOTcuNjE4MjA3IDkwLjQ2ODI3MTcsMTk3LjYxODIwNyA5My4wNzQyMDkzLDE5Ni4wODg5MDEgTDE1Ni4yNTU0MDIsMTU5LjY2Mzc5MyBMMTU2LjI1NTQwMiwxODQuODg1MTExIEMxNTYuMjQzNTU3LDE4NS4xNDk3NzEgMTU2LjExMTcyNSwxODUuMzk0NjAyIDE1NS44OTcyOSwxODUuNTUwMTc2IEwxMDMuNTYxNzc2LDIxNS43MzM5MDMgQzgwLjMwNTQ5NTMsMjI5LjEzMTYzMiA1MC41OTI0OTU0LDIyMS4xNjU0MzUgMzcuMTU3NTc0OSwxOTcuOTMwNjIgWiBNMjMuNTQ5MzE4MSw4NS4zODExMjczIEMyOS4yODk5ODYxLDc1LjQ3MzMwOTcgMzguMzUxMTkxMSw2Ny45MTYyNjQ4IDQ5LjEyODc0ODIsNjQuMDQ3ODgyNSBMNDkuMTI4NzQ4MiwxMjUuNDM4NTE1IEM0OS4wODkxNDkyLDEyOC40NTk0MjUgNTAuNjk2NTM4NiwxMzEuMjYyNTU2IDUzLjMyMzc3NDgsMTMyLjc1NDIzMiBMMTE2LjE5ODAxNCwxNjkuMDI1ODY0IEw5NC4zNTMxODA4LDE4MS42NjIxMDIgQzk0LjExMzIzMjUsMTgxLjc4OTQzNCA5My44MjU3NDYxLDE4MS43ODk0MzQgOTMuNTg1Nzk3OSwxODEuNjYyMTAyIEw0MS4zNTI2MDE1LDE1MS41Mjk1MzQgQzE4LjE0MTk0MjYsMTM4LjA3NjA5OCAxMC4xODE3NjgxLDEwOC4zODU1NjIgMjMuNTQ5MzE4MSw4NS4xMjUzMzMgTDIzLjU0OTMxODEsODUuMzgxMTI3MyBaIE0yMDMuMDE0NiwxMjcuMDc1NTk4IEwxMzkuOTM1NzI1LDkwLjQ0NTg1NDUgTDE2MS43Mjk0LDc3Ljg2MDc3NDggQzE2MS45NjkzNDgsNzcuNzMzNDQzNCAxNjIuMjU2ODM0LDc3LjczMzQ0MzQgMTYyLjQ5Njc4Myw3Ny44NjA3NzQ4IEwyMTQuNzI5OTc5LDEwOC4wNDQ1MDIgQzIzMS4wMzIzMjksMTE3LjQ1MTc0NyAyNDAuNDM3Mjk0LDEzNS40MjYxMDkgMjM4Ljg3MTUwNCwxNTQuMTgyNzM5IEMyMzcuMzA1NzE0LDE3Mi45MzkzNjggMjI1LjA1MDcxOSwxODkuMTA1NTcyIDIwNy40MTQyNjIsMTk1LjY3OTYzIEwyMDcuNDE0MjYyLDEzNC4yODg5OTggQzIwNy4zMjI1MjEsMTMxLjI3Njg2NyAyMDUuNjUwNjk3LDEyOC41MzU4NTMgMjAzLjAxNDYsMTI3LjA3NTU5OCBaIE0yMjQuNzU3MTE2LDk0LjM4NTA4NjcgTDIyMy4yMjIzNSw5My40NjQyMjcyIEwxNzEuNjAzMDYsNjMuMzgyODE3MyBDMTY4Ljk4MTI5Myw2MS44NDQzNzUxIDE2NS43MzI0NTYsNjEuODQ0Mzc1MSAxNjMuMTEwNjg5LDYzLjM4MjgxNzMgTDk5Ljk4MDY1NTQsOTkuODA3OTI1OSBMOTkuOTgwNjU1NCw3NC41ODY2MDc3IEM5OS45NTMzMDA0LDc0LjMyNTQwODggMTAwLjA3MTA5NSw3NC4wNzAxODY5IDEwMC4yODc2MDksNzMuOTIxNTQyNiBMMTUyLjUyMDgwNSw0My43ODg5NzM4IEMxNjguODYzMDk4LDM0LjM3NDM1MTggMTg5LjE3NDI1NiwzNS4yNTI5MDQzIDIwNC42NDI1NzksNDYuMDQzNDg0MSBDMjIwLjExMDkwMyw1Ni44MzQwNjM4IDIyNy45NDkyNjksNzUuNTkyMzk1OSAyMjQuNzU3MTE2LDk0LjE4MDQ1MTMgTDIyNC43NTcxMTYsOTQuMzg1MDg2NyBaIE04OC4wNjA2NDA5LDEzOS4wOTc5MzEgTDY2LjIxNTgwNzYsMTI2LjUxMjg1MSBDNjUuOTk1MDM5OSwxMjYuMzc5MDkxIDY1Ljg0NTA5NjUsMTI2LjE1NDE3NiA2NS44MDY1MzY3LDEyNS44OTg5NDUgTDY1LjgwNjUzNjcsNjUuNjg0OTY2IEM2NS44MzE0NDk1LDQ2LjgyODUzNjcgNzYuNzUwMDYwNSwyOS42ODQ2MDMyIDkzLjgyNzA4NTIsMjEuNjg4MzA1NSBDMTEwLjkwNDExLDEzLjY5MjAwNzkgMTMxLjA2MzgzMywxNi4yODM1NDYyIDE0NS41NjMyLDI4LjMzODk5OCBMMTQ0LjAyODQzNCwyOS4yMDg2OTg2IEw5Mi4zNTc5ODUyLDU5LjAzNDMxNDIgQzg5Ljc0MTkzMjcsNjAuNTY4NzUxMyA4OC4xMjgyNTk3LDYzLjM2ODM3NjcgODguMTExNzk5OCw2Ni40MDExOTAxIEw4OC4wNjA2NDA5LDEzOS4wOTc5MzEgWiBNOTkuOTI5NDk2NSwxMTMuNTE4NSBMMTI4LjA2Njg3LDk3LjMwMTE0MTcgTDE1Ni4yNTU0MDIsMTEzLjUxODUgTDE1Ni4yNTU0MDIsMTQ1Ljk1MzIxOCBMMTI4LjE2OTE4NywxNjIuMTcwNTc3IEw5OS45ODA2NTU0LDE0NS45NTMyMTggTDk5LjkyOTQ5NjUsMTEzLjUxODUgWiIgZmlsbD0iIzAwMDAwMCI+PC9wYXRoPgogICAgPC9nPgo8L3N2Zz4K"
@@ -2504,11 +2905,16 @@
2504
2905
  },
2505
2906
  {
2506
2907
  "label": "Model",
2507
- "description": "Select the model",
2908
+ "id": "model",
2909
+ "description": "Select the model (or Custom for free text)",
2508
2910
  "group": "input",
2509
2911
  "type": "Dropdown",
2510
2912
  "value": "gpt-3.5-turbo",
2511
2913
  "choices": [
2914
+ {
2915
+ "name": "Custom",
2916
+ "value": "custom"
2917
+ },
2512
2918
  {
2513
2919
  "name": "GPT-3.5-turbo",
2514
2920
  "value": "gpt-3.5-turbo"
@@ -2516,6 +2922,10 @@
2516
2922
  {
2517
2923
  "name": "GPT-4",
2518
2924
  "value": "gpt-4"
2925
+ },
2926
+ {
2927
+ "name": "GPT-4-turbo-preview",
2928
+ "value": "gpt-4-turbo-preview"
2519
2929
  }
2520
2930
  ],
2521
2931
  "binding": {
@@ -2527,6 +2937,45 @@
2527
2937
  "equals": "chat"
2528
2938
  }
2529
2939
  },
2940
+ {
2941
+ "label": "Custom model version",
2942
+ "description": "Select the <a href=\"https://platform.openai.com/docs/models/overview\" target=\"_blank\">model</a> version",
2943
+ "group": "input",
2944
+ "type": "Text",
2945
+ "binding": {
2946
+ "type": "zeebe:input",
2947
+ "name": "internal_custom_model"
2948
+ },
2949
+ "condition": {
2950
+ "property": "model",
2951
+ "equals": "custom"
2952
+ },
2953
+ "constraints": {
2954
+ "notEmpty": true
2955
+ }
2956
+ },
2957
+ {
2958
+ "label": "Temperature",
2959
+ "description": "Select the temperature (between 0 and 2)",
2960
+ "group": "input",
2961
+ "type": "Text",
2962
+ "value": "1",
2963
+ "binding": {
2964
+ "type": "zeebe:input",
2965
+ "name": "internal_temperature"
2966
+ },
2967
+ "condition": {
2968
+ "property": "operation",
2969
+ "equals": "chat"
2970
+ },
2971
+ "constraints": {
2972
+ "notEmpty": true,
2973
+ "pattern": {
2974
+ "value": "^(2|1|0|1\\.\\d{1,2}|0\\.\\d{1,2})$",
2975
+ "message": "must be a number between 0 and 2 (e.g. 0, 1.4, 2)"
2976
+ }
2977
+ }
2978
+ },
2530
2979
  {
2531
2980
  "label": "System message",
2532
2981
  "description": "Optional initial instructions for the model",
@@ -2597,7 +3046,7 @@
2597
3046
  "notEmpty": true,
2598
3047
  "pattern": {
2599
3048
  "value": "^[1-9]\\d*$",
2600
- "message": "Must be a positive integer number"
3049
+ "message": "must be a positive integer number"
2601
3050
  }
2602
3051
  }
2603
3052
  },
@@ -2615,7 +3064,7 @@
2615
3064
  },
2616
3065
  {
2617
3066
  "type": "Hidden",
2618
- "value": "={\"model\": internal_model, \"messages\": internal_messages, \"n\": number(internal_choices)}",
3067
+ "value": "={\"model\": if is defined(internal_custom_model) then internal_custom_model else internal_model, \"messages\": internal_messages, \"n\": number(internal_choices), \"temperature\": number(internal_temperature)}",
2619
3068
  "binding": {
2620
3069
  "type": "zeebe:input",
2621
3070
  "name": "body"
@@ -2675,13 +3124,13 @@
2675
3124
  "notEmpty": false,
2676
3125
  "pattern": {
2677
3126
  "value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
2678
- "message": "Must be a timeout in seconds (default value is 30 seconds) or a FEEL expression"
3127
+ "message": "must be a timeout in seconds (default value is 30 seconds) or a FEEL expression"
2679
3128
  }
2680
3129
  }
2681
3130
  },
2682
3131
  {
2683
3132
  "label": "Error expression",
2684
- "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>",
3133
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>",
2685
3134
  "group": "errors",
2686
3135
  "type": "Text",
2687
3136
  "feel": "required",
@@ -2692,14 +3141,14 @@
2692
3141
  }
2693
3142
  ],
2694
3143
  "engines": {
2695
- "camunda": "^8.2"
3144
+ "camunda": "^8.5"
2696
3145
  }
2697
3146
  },
2698
3147
  {
2699
3148
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2700
3149
  "name": "OpenAI Outbound Connector",
2701
3150
  "id": "io.camunda.connectors.OpenAI.v1",
2702
- "version": 7,
3151
+ "version": 8,
2703
3152
  "engines": {
2704
3153
  "camunda": "^8.3"
2705
3154
  },
@@ -2731,6 +3180,10 @@
2731
3180
  "value": "bpmn:ServiceTask"
2732
3181
  },
2733
3182
  "groups": [
3183
+ {
3184
+ "id": "operation",
3185
+ "label": "Operation"
3186
+ },
2734
3187
  {
2735
3188
  "id": "authentication",
2736
3189
  "label": "Authentication"
@@ -2774,7 +3227,6 @@
2774
3227
  "label": "OpenAI API key",
2775
3228
  "group": "authentication",
2776
3229
  "feel": "optional",
2777
- "description": "Your OpenAI API key",
2778
3230
  "type": "String",
2779
3231
  "binding": {
2780
3232
  "type": "zeebe:input",
@@ -2787,7 +3239,7 @@
2787
3239
  {
2788
3240
  "label": "Organization",
2789
3241
  "group": "authentication",
2790
- "description": "For members of multiple organizations. Details in the <a href=\"https://platform.openai.com/docs/api-reference/requesting-organization\" target=\"_blank\">OpenAI documentation</a>",
3242
+ "tooltip": "For members of multiple organizations. <a href=\"https://platform.openai.com/docs/api-reference/requesting-organization\" target=\"_blank\">OpenAI organization documentation</a>",
2791
3243
  "type": "String",
2792
3244
  "feel": "optional",
2793
3245
  "binding": {
@@ -2807,8 +3259,8 @@
2807
3259
  },
2808
3260
  {
2809
3261
  "label": "Operation",
2810
- "group": "input",
2811
- "description": "OpenAI API operation",
3262
+ "group": "operation",
3263
+ "tooltip": "Chat: generate a chat completion. Moderation: classify text for policy-violating content.",
2812
3264
  "type": "Dropdown",
2813
3265
  "id": "operation",
2814
3266
  "value": "chat",
@@ -2862,7 +3314,7 @@
2862
3314
  },
2863
3315
  {
2864
3316
  "label": "Evaluation input",
2865
- "description": "Provide the text to analyze as static value or variable",
3317
+ "tooltip": "Text to classify with the moderation API.",
2866
3318
  "group": "input",
2867
3319
  "type": "Text",
2868
3320
  "feel": "optional",
@@ -2881,7 +3333,7 @@
2881
3333
  {
2882
3334
  "label": "Model",
2883
3335
  "id": "model",
2884
- "description": "Select the model (or Custom for free text)",
3336
+ "tooltip": "Choose a listed model, or Custom to enter a model version as free text.",
2885
3337
  "group": "input",
2886
3338
  "type": "Dropdown",
2887
3339
  "value": "gpt-3.5-turbo",
@@ -2918,7 +3370,8 @@
2918
3370
  },
2919
3371
  {
2920
3372
  "label": "Custom model version",
2921
- "description": "Select the <a href=\"https://platform.openai.com/docs/models/overview\" target=\"_blank\">model</a> version",
3373
+ "tooltip": "Model version to invoke. See the available <a href=\"https://platform.openai.com/docs/models/overview\" target=\"_blank\">OpenAI models</a>.",
3374
+ "placeholder": "gpt-4o-mini",
2922
3375
  "group": "input",
2923
3376
  "type": "Text",
2924
3377
  "binding": {
@@ -2935,7 +3388,8 @@
2935
3388
  },
2936
3389
  {
2937
3390
  "label": "Temperature",
2938
- "description": "Select the temperature (between 0 and 2)",
3391
+ "tooltip": "Sampling temperature: higher values make output more random, lower values more focused and deterministic.",
3392
+ "description": "Between 0 and 2.",
2939
3393
  "group": "input",
2940
3394
  "type": "Text",
2941
3395
  "value": "1",
@@ -2957,7 +3411,7 @@
2957
3411
  },
2958
3412
  {
2959
3413
  "label": "System message",
2960
- "description": "Optional initial instructions for the model",
3414
+ "tooltip": "Optional initial instructions for the model",
2961
3415
  "group": "input",
2962
3416
  "type": "Text",
2963
3417
  "optional": true,
@@ -2973,7 +3427,7 @@
2973
3427
  },
2974
3428
  {
2975
3429
  "label": "Chat history",
2976
- "description": "Optional chat history, or examples of the desired model behavior",
3430
+ "tooltip": "Optional chat history, or examples of the desired model behavior",
2977
3431
  "feel": "required",
2978
3432
  "optional": true,
2979
3433
  "type": "String",
@@ -2989,7 +3443,7 @@
2989
3443
  },
2990
3444
  {
2991
3445
  "label": "Prompt",
2992
- "description": "Input to be evaluated",
3446
+ "tooltip": "Input to be evaluated",
2993
3447
  "group": "input",
2994
3448
  "type": "Text",
2995
3449
  "feel": "optional",
@@ -3007,7 +3461,7 @@
3007
3461
  },
3008
3462
  {
3009
3463
  "label": "Choices to generate",
3010
- "description": "Amount of alternative responses the model will generate",
3464
+ "tooltip": "Number of alternative responses the model will generate",
3011
3465
  "group": "input",
3012
3466
  "type": "String",
3013
3467
  "feel": "optional",
@@ -3067,7 +3521,7 @@
3067
3521
  },
3068
3522
  {
3069
3523
  "label": "Result variable",
3070
- "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>",
3524
+ "tooltip": "Name of variable to store the response in. <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-variable\" target=\"_blank\">result variable documentation</a>",
3071
3525
  "group": "output",
3072
3526
  "type": "String",
3073
3527
  "binding": {
@@ -3077,7 +3531,7 @@
3077
3531
  },
3078
3532
  {
3079
3533
  "label": "Result expression",
3080
- "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>",
3534
+ "tooltip": "Expression to map the response into process variables. <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-expression\" target=\"_blank\">result expression documentation</a>",
3081
3535
  "group": "output",
3082
3536
  "type": "Text",
3083
3537
  "feel": "required",
@@ -3089,7 +3543,7 @@
3089
3543
  },
3090
3544
  {
3091
3545
  "label": "Connection timeout",
3092
- "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
3546
+ "tooltip": "Timeout in seconds to establish a connection, or 0 for an infinite timeout.",
3093
3547
  "group": "errors",
3094
3548
  "type": "String",
3095
3549
  "value": "30",
@@ -3109,7 +3563,7 @@
3109
3563
  },
3110
3564
  {
3111
3565
  "label": "Error expression",
3112
- "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>",
3566
+ "tooltip": "Expression to handle errors. <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#bpmn-errors\" target=\"_blank\">BPMN error handling documentation</a>",
3113
3567
  "group": "errors",
3114
3568
  "type": "Text",
3115
3569
  "feel": "required",
@@ -3122,7 +3576,7 @@
3122
3576
  "id": "version",
3123
3577
  "label": "Version",
3124
3578
  "description": "Version of the element template",
3125
- "value": "6",
3579
+ "value": "8",
3126
3580
  "group": "connector",
3127
3581
  "binding": {
3128
3582
  "key": "elementTemplateVersion",
@@ -3142,6 +3596,46 @@
3142
3596
  },
3143
3597
  "type": "Hidden"
3144
3598
  }
3599
+ ],
3600
+ "steps": [
3601
+ {
3602
+ "name": "Chat",
3603
+ "description": "Generate a chat completion response using OpenAI",
3604
+ "keywords": [
3605
+ "chat completion",
3606
+ "generate text",
3607
+ "GPT",
3608
+ "prompt",
3609
+ "conversation"
3610
+ ],
3611
+ "presetId": "operation_chat"
3612
+ },
3613
+ {
3614
+ "name": "Moderation",
3615
+ "description": "Analyze text for policy violations with OpenAI",
3616
+ "keywords": [
3617
+ "content moderation",
3618
+ "moderate text",
3619
+ "policy check",
3620
+ "flag content",
3621
+ "safety filter"
3622
+ ],
3623
+ "presetId": "operation_moderation"
3624
+ }
3625
+ ],
3626
+ "presets": [
3627
+ {
3628
+ "id": "operation_chat",
3629
+ "properties": {
3630
+ "operation": "chat"
3631
+ }
3632
+ },
3633
+ {
3634
+ "id": "operation_moderation",
3635
+ "properties": {
3636
+ "operation": "moderation"
3637
+ }
3638
+ }
3145
3639
  ]
3146
3640
  }
3147
3641
  ]