@nyaruka/temba-components 0.129.8 → 0.129.9

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 (203) hide show
  1. package/CHANGELOG.md +27 -3
  2. package/demo/data/flows/sample-flow.json +186 -96
  3. package/dist/temba-components.js +414 -351
  4. package/dist/temba-components.js.map +1 -1
  5. package/out-tsc/src/events.js.map +1 -1
  6. package/out-tsc/src/excellent/helpers.js +2 -2
  7. package/out-tsc/src/excellent/helpers.js.map +1 -1
  8. package/out-tsc/src/flow/CanvasNode.js +25 -7
  9. package/out-tsc/src/flow/CanvasNode.js.map +1 -1
  10. package/out-tsc/src/flow/Editor.js +11 -1
  11. package/out-tsc/src/flow/Editor.js.map +1 -1
  12. package/out-tsc/src/flow/NodeEditor.js +133 -290
  13. package/out-tsc/src/flow/NodeEditor.js.map +1 -1
  14. package/out-tsc/src/flow/actions/add_input_labels.js +40 -0
  15. package/out-tsc/src/flow/actions/add_input_labels.js.map +1 -1
  16. package/out-tsc/src/flow/actions/call_llm.js +56 -3
  17. package/out-tsc/src/flow/actions/call_llm.js.map +1 -1
  18. package/out-tsc/src/flow/actions/call_webhook.js +1 -1
  19. package/out-tsc/src/flow/actions/call_webhook.js.map +1 -1
  20. package/out-tsc/src/flow/actions/open_ticket.js +65 -3
  21. package/out-tsc/src/flow/actions/open_ticket.js.map +1 -1
  22. package/out-tsc/src/flow/actions/set_run_result.js +75 -0
  23. package/out-tsc/src/flow/actions/set_run_result.js.map +1 -1
  24. package/out-tsc/src/flow/config.js +4 -0
  25. package/out-tsc/src/flow/config.js.map +1 -1
  26. package/out-tsc/src/flow/nodes/split_by_llm_categorize.js +227 -0
  27. package/out-tsc/src/flow/nodes/split_by_llm_categorize.js.map +1 -0
  28. package/out-tsc/src/flow/nodes/split_by_ticket.js +18 -0
  29. package/out-tsc/src/flow/nodes/split_by_ticket.js.map +1 -0
  30. package/out-tsc/src/flow/nodes/wait_for_response.js +27 -1
  31. package/out-tsc/src/flow/nodes/wait_for_response.js.map +1 -1
  32. package/out-tsc/src/flow/types.js +0 -65
  33. package/out-tsc/src/flow/types.js.map +1 -1
  34. package/out-tsc/src/form/ArrayEditor.js +18 -61
  35. package/out-tsc/src/form/ArrayEditor.js.map +1 -1
  36. package/out-tsc/src/form/FieldRenderer.js +305 -0
  37. package/out-tsc/src/form/FieldRenderer.js.map +1 -0
  38. package/out-tsc/src/form/FormField.js +3 -3
  39. package/out-tsc/src/form/FormField.js.map +1 -1
  40. package/out-tsc/src/form/TextInput.js +1 -1
  41. package/out-tsc/src/form/TextInput.js.map +1 -1
  42. package/out-tsc/src/form/select/Select.js +48 -20
  43. package/out-tsc/src/form/select/Select.js.map +1 -1
  44. package/out-tsc/src/live/ContactChat.js +39 -13
  45. package/out-tsc/src/live/ContactChat.js.map +1 -1
  46. package/out-tsc/src/markdown.js +13 -11
  47. package/out-tsc/src/markdown.js.map +1 -1
  48. package/out-tsc/test/ActionHelper.js +2 -0
  49. package/out-tsc/test/ActionHelper.js.map +1 -1
  50. package/out-tsc/test/NodeHelper.js +148 -0
  51. package/out-tsc/test/NodeHelper.js.map +1 -0
  52. package/out-tsc/test/actions/call_llm.test.js +103 -0
  53. package/out-tsc/test/actions/call_llm.test.js.map +1 -0
  54. package/out-tsc/test/nodes/split_by_llm_categorize.test.js +532 -0
  55. package/out-tsc/test/nodes/split_by_llm_categorize.test.js.map +1 -0
  56. package/out-tsc/test/nodes/split_by_random.test.js +150 -0
  57. package/out-tsc/test/nodes/split_by_random.test.js.map +1 -0
  58. package/out-tsc/test/nodes/wait_for_digits.test.js +150 -0
  59. package/out-tsc/test/nodes/wait_for_digits.test.js.map +1 -0
  60. package/out-tsc/test/nodes/wait_for_response.test.js +171 -0
  61. package/out-tsc/test/nodes/wait_for_response.test.js.map +1 -0
  62. package/out-tsc/test/temba-add-input-labels.test.js +70 -0
  63. package/out-tsc/test/temba-add-input-labels.test.js.map +1 -0
  64. package/out-tsc/test/temba-field-renderer.test.js +296 -0
  65. package/out-tsc/test/temba-field-renderer.test.js.map +1 -0
  66. package/out-tsc/test/temba-markdown.test.js +1 -1
  67. package/out-tsc/test/temba-markdown.test.js.map +1 -1
  68. package/out-tsc/test/temba-node-editor.test.js +400 -0
  69. package/out-tsc/test/temba-node-editor.test.js.map +1 -1
  70. package/out-tsc/test/temba-select.test.js +6 -3
  71. package/out-tsc/test/temba-select.test.js.map +1 -1
  72. package/out-tsc/test/temba-webchat.test.js +1 -1
  73. package/out-tsc/test/temba-webchat.test.js.map +1 -1
  74. package/package.json +1 -1
  75. package/screenshots/truth/actions/add_contact_groups/editor/descriptive-group-names.png +0 -0
  76. package/screenshots/truth/actions/add_contact_groups/editor/long-group-names.png +0 -0
  77. package/screenshots/truth/actions/add_contact_groups/editor/many-groups.png +0 -0
  78. package/screenshots/truth/actions/call_llm/editor/information-extraction.png +0 -0
  79. package/screenshots/truth/actions/call_llm/editor/sentiment-analysis.png +0 -0
  80. package/screenshots/truth/actions/call_llm/editor/summarization.png +0 -0
  81. package/screenshots/truth/actions/call_llm/editor/translation-task.png +0 -0
  82. package/screenshots/truth/actions/call_llm/render/information-extraction.png +0 -0
  83. package/screenshots/truth/actions/call_llm/render/sentiment-analysis.png +0 -0
  84. package/screenshots/truth/actions/call_llm/render/summarization.png +0 -0
  85. package/screenshots/truth/actions/call_llm/render/translation-task.png +0 -0
  86. package/screenshots/truth/actions/remove_contact_groups/editor/long-descriptive-group-names.png +0 -0
  87. package/screenshots/truth/actions/remove_contact_groups/editor/many-groups.png +0 -0
  88. package/screenshots/truth/actions/remove_contact_groups/editor/remove-from-all-groups.png +0 -0
  89. package/screenshots/truth/actions/send_email/editor/complex-business-email.png +0 -0
  90. package/screenshots/truth/actions/send_email/editor/multiple-recipients.png +0 -0
  91. package/screenshots/truth/actions/send_msg/editor/long-quick-replies.png +0 -0
  92. package/screenshots/truth/actions/send_msg/editor/multiline-text-with-replies.png +0 -0
  93. package/screenshots/truth/actions/send_msg/editor/simple-text.png +0 -0
  94. package/screenshots/truth/actions/send_msg/editor/text-with-linebreaks.png +0 -0
  95. package/screenshots/truth/actions/send_msg/editor/text-with-many-quick-replies.png +0 -0
  96. package/screenshots/truth/actions/send_msg/editor/text-with-quick-replies.png +0 -0
  97. package/screenshots/truth/actions/send_msg/editor/text-without-quick-replies.png +0 -0
  98. package/screenshots/truth/editor/router.png +0 -0
  99. package/screenshots/truth/editor/send_msg.png +0 -0
  100. package/screenshots/truth/editor/set_contact_language.png +0 -0
  101. package/screenshots/truth/editor/set_contact_name.png +0 -0
  102. package/screenshots/truth/editor/set_run_result.png +0 -0
  103. package/screenshots/truth/editor/wait.png +0 -0
  104. package/screenshots/truth/field-renderer/checkbox-checked.png +0 -0
  105. package/screenshots/truth/field-renderer/checkbox-unchecked.png +0 -0
  106. package/screenshots/truth/field-renderer/checkbox-with-errors.png +0 -0
  107. package/screenshots/truth/field-renderer/context-comparison.png +0 -0
  108. package/screenshots/truth/field-renderer/key-value-with-label.png +0 -0
  109. package/screenshots/truth/field-renderer/message-editor-with-label.png +0 -0
  110. package/screenshots/truth/field-renderer/select-multi.png +0 -0
  111. package/screenshots/truth/field-renderer/select-no-label.png +0 -0
  112. package/screenshots/truth/field-renderer/select-with-label.png +0 -0
  113. package/screenshots/truth/field-renderer/text-evaluated.png +0 -0
  114. package/screenshots/truth/field-renderer/text-no-label.png +0 -0
  115. package/screenshots/truth/field-renderer/text-with-errors.png +0 -0
  116. package/screenshots/truth/field-renderer/text-with-label.png +0 -0
  117. package/screenshots/truth/field-renderer/textarea-evaluated.png +0 -0
  118. package/screenshots/truth/field-renderer/textarea-with-label.png +0 -0
  119. package/screenshots/truth/nodes/split_by_llm_categorize/editor/basic-categorization.png +0 -0
  120. package/screenshots/truth/nodes/split_by_llm_categorize/editor/custom-input-and-result-name.png +0 -0
  121. package/screenshots/truth/nodes/split_by_llm_categorize/editor/feedback-categorization.png +0 -0
  122. package/screenshots/truth/nodes/split_by_llm_categorize/editor/many-categories.png +0 -0
  123. package/screenshots/truth/nodes/split_by_llm_categorize/editor/minimal-categories.png +0 -0
  124. package/screenshots/truth/nodes/split_by_llm_categorize/render/basic-categorization.png +0 -0
  125. package/screenshots/truth/nodes/split_by_llm_categorize/render/custom-input-and-result-name.png +0 -0
  126. package/screenshots/truth/nodes/split_by_llm_categorize/render/feedback-categorization.png +0 -0
  127. package/screenshots/truth/nodes/split_by_llm_categorize/render/many-categories.png +0 -0
  128. package/screenshots/truth/nodes/split_by_llm_categorize/render/minimal-categories.png +0 -0
  129. package/screenshots/truth/nodes/split_by_random/editor/ab-test-multiple-variants.png +0 -0
  130. package/screenshots/truth/nodes/split_by_random/editor/sampling-split.png +0 -0
  131. package/screenshots/truth/nodes/split_by_random/editor/three-way-split.png +0 -0
  132. package/screenshots/truth/nodes/split_by_random/editor/two-bucket-split.png +0 -0
  133. package/screenshots/truth/nodes/split_by_random/render/ab-test-multiple-variants.png +0 -0
  134. package/screenshots/truth/nodes/split_by_random/render/sampling-split.png +0 -0
  135. package/screenshots/truth/nodes/split_by_random/render/three-way-split.png +0 -0
  136. package/screenshots/truth/nodes/split_by_random/render/two-bucket-split.png +0 -0
  137. package/screenshots/truth/nodes/wait_for_digits/editor/basic-digits-wait.png +0 -0
  138. package/screenshots/truth/nodes/wait_for_digits/editor/phone-number-collection.png +0 -0
  139. package/screenshots/truth/nodes/wait_for_digits/editor/single-digit-with-timeout.png +0 -0
  140. package/screenshots/truth/nodes/wait_for_digits/editor/verification-code.png +0 -0
  141. package/screenshots/truth/nodes/wait_for_digits/render/basic-digits-wait.png +0 -0
  142. package/screenshots/truth/nodes/wait_for_digits/render/phone-number-collection.png +0 -0
  143. package/screenshots/truth/nodes/wait_for_digits/render/single-digit-with-timeout.png +0 -0
  144. package/screenshots/truth/nodes/wait_for_digits/render/verification-code.png +0 -0
  145. package/screenshots/truth/nodes/wait_for_response/editor/basic-wait.png +0 -0
  146. package/screenshots/truth/nodes/wait_for_response/editor/custom-result-name.png +0 -0
  147. package/screenshots/truth/nodes/wait_for_response/editor/no-timeout.png +0 -0
  148. package/screenshots/truth/nodes/wait_for_response/editor/short-timeout.png +0 -0
  149. package/screenshots/truth/nodes/wait_for_response/render/basic-wait.png +0 -0
  150. package/screenshots/truth/nodes/wait_for_response/render/custom-result-name.png +0 -0
  151. package/screenshots/truth/nodes/wait_for_response/render/no-timeout.png +0 -0
  152. package/screenshots/truth/nodes/wait_for_response/render/short-timeout.png +0 -0
  153. package/screenshots/truth/omnibox/selected.png +0 -0
  154. package/screenshots/truth/select/functions.png +0 -0
  155. package/screenshots/truth/select/multi-with-endpoint.png +0 -0
  156. package/screenshots/truth/select/search-enabled.png +0 -0
  157. package/src/events.ts +8 -1
  158. package/src/excellent/helpers.ts +2 -2
  159. package/src/flow/CanvasNode.ts +22 -1
  160. package/src/flow/Editor.ts +12 -1
  161. package/src/flow/NodeEditor.ts +186 -374
  162. package/src/flow/actions/add_input_labels.ts +45 -0
  163. package/src/flow/actions/call_llm.ts +57 -3
  164. package/src/flow/actions/call_webhook.ts +1 -1
  165. package/src/flow/actions/open_ticket.ts +74 -3
  166. package/src/flow/actions/set_run_result.ts +83 -0
  167. package/src/flow/config.ts +4 -0
  168. package/src/flow/nodes/split_by_llm_categorize.ts +277 -0
  169. package/src/flow/nodes/split_by_ticket.ts +19 -0
  170. package/src/flow/nodes/wait_for_response.ts +28 -1
  171. package/src/flow/types.ts +26 -127
  172. package/src/form/ArrayEditor.ts +34 -82
  173. package/src/form/FieldRenderer.ts +465 -0
  174. package/src/form/FormField.ts +3 -3
  175. package/src/form/TextInput.ts +1 -1
  176. package/src/form/select/Select.ts +51 -20
  177. package/src/live/ContactChat.ts +39 -15
  178. package/src/markdown.ts +19 -11
  179. package/src/store/flow-definition.d.ts +5 -2
  180. package/static/api/labels.json +31 -0
  181. package/static/api/topics.json +24 -9
  182. package/static/api/users.json +35 -16
  183. package/static/css/temba-components.css +3 -3
  184. package/stress-test.js +18 -13
  185. package/test/ActionHelper.ts +2 -0
  186. package/test/NodeHelper.ts +184 -0
  187. package/test/actions/call_llm.test.ts +137 -0
  188. package/test/nodes/README.md +78 -0
  189. package/test/nodes/split_by_llm_categorize.test.ts +698 -0
  190. package/test/nodes/split_by_random.test.ts +177 -0
  191. package/test/nodes/wait_for_digits.test.ts +176 -0
  192. package/test/nodes/wait_for_response.test.ts +206 -0
  193. package/test/temba-add-input-labels.test.ts +87 -0
  194. package/test/temba-field-renderer.test.ts +482 -0
  195. package/test/temba-markdown.test.ts +1 -1
  196. package/test/temba-node-editor.test.ts +496 -0
  197. package/test/temba-select.test.ts +6 -6
  198. package/test/temba-webchat.test.ts +1 -1
  199. package/test-assets/select/llms.json +18 -0
  200. package/web-dev-mock.mjs +96 -6
  201. package/web-dev-server.config.mjs +29 -7
  202. package/test/temba-flow-editor.test.ts.backup +0 -563
  203. package/test/temba-utils-index.test.ts.backup +0 -1737
package/CHANGELOG.md CHANGED
@@ -4,19 +4,43 @@ All notable changes to this project will be documented in this file. Dates are d
4
4
 
5
5
  Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
6
6
 
7
- #### [v0.129.8](https://github.com/nyaruka/temba-components/compare/v0.129.6...v0.129.8)
7
+ #### [v0.129.9](https://github.com/nyaruka/temba-components/compare/v0.129.8...v0.129.9)
8
+
9
+ - Node helper tests [`#672`](https://github.com/nyaruka/temba-components/pull/672)
10
+ - Node refactor to support split_by_llm_categorize [`#671`](https://github.com/nyaruka/temba-components/pull/671)
11
+ - Implement editor for add_input_labels [`#670`](https://github.com/nyaruka/temba-components/pull/670)
12
+ - Support real call and optin events [`#669`](https://github.com/nyaruka/temba-components/pull/669)
13
+ - Add split_by_ticket node editor for ticket opening functionality [`#666`](https://github.com/nyaruka/temba-components/pull/666)
14
+ - Implement Call AI (LLM) action configuration with dynamic model selection [`#664`](https://github.com/nyaruka/temba-components/pull/664)
15
+ - Select placeholder and input tweaks [`#662`](https://github.com/nyaruka/temba-components/pull/662)
16
+ - Add FieldRenderer [`#661`](https://github.com/nyaruka/temba-components/pull/661)
17
+ - Add NodeHelper tests [`a94d342`](https://github.com/nyaruka/temba-components/commit/a94d342f0ab5b3f1338a733b2fc6e0ca051ec0d7)
18
+ - Add field renderer [`f7c410b`](https://github.com/nyaruka/temba-components/commit/f7c410b7979448c498d33597dabbba22e5ea60b9)
19
+ - Put node in charge of rendering if appropriate [`54b302d`](https://github.com/nyaruka/temba-components/commit/54b302d165ba842542462778f272d69180117835)
20
+
21
+ #### [v0.129.8](https://github.com/nyaruka/temba-components/compare/v0.129.7...v0.129.8)
22
+
23
+ > 20 August 2025
8
24
 
9
25
  - Add support for `run_started` and `run_ended` events in chat history [`#660`](https://github.com/nyaruka/temba-components/pull/660)
10
26
  - Fix completion in dev environment [`#659`](https://github.com/nyaruka/temba-components/pull/659)
11
27
  - Roll our own flow info generator for dev env [`#658`](https://github.com/nyaruka/temba-components/pull/658)
12
28
  - Group updates [`#657`](https://github.com/nyaruka/temba-components/pull/657)
13
29
  - Integrate MessageEditor component with flow editor for send_msg action [`#654`](https://github.com/nyaruka/temba-components/pull/654)
30
+ - Add minio dev support, finish attachment work [`8b1a930`](https://github.com/nyaruka/temba-components/commit/8b1a930ba6f2c87b46cfe7c79af949fe27fa43c8)
31
+ - Add MessageEditor component with tests [`0994c7f`](https://github.com/nyaruka/temba-components/commit/0994c7fa58d8e77741925049934ccca96c85653a)
32
+ - Catch networkidle failure, add stress-test script [`6d102d3`](https://github.com/nyaruka/temba-components/commit/6d102d3cb6f0144e9176c3c60f3243e0d30fc6ff)
33
+
34
+ #### [v0.129.7](https://github.com/nyaruka/temba-components/compare/v0.129.6...v0.129.7)
35
+
36
+ > 13 August 2025
37
+
14
38
  - Fix rendering of airtime transfer events [`#656`](https://github.com/nyaruka/temba-components/pull/656)
15
39
  - Update some flow def, show wa templates, fix exit clicks [`#652`](https://github.com/nyaruka/temba-components/pull/652)
16
40
  - Flow example list page [`#651`](https://github.com/nyaruka/temba-components/pull/651)
17
- - Add minio dev support, finish attachment work [`8b1a930`](https://github.com/nyaruka/temba-components/commit/8b1a930ba6f2c87b46cfe7c79af949fe27fa43c8)
18
- - Add MessageEditor component with tests [`0994c7f`](https://github.com/nyaruka/temba-components/commit/0994c7fa58d8e77741925049934ccca96c85653a)
19
41
  - Support multiple flow examples [`932de08`](https://github.com/nyaruka/temba-components/commit/932de08987089145781dd9756ef9a8752f630ccb)
42
+ - Update screenshots [`7ee7687`](https://github.com/nyaruka/temba-components/commit/7ee76872923341ba310ccfe99cea1a939d72d9f3)
43
+ - Use json for flow list [`208f26e`](https://github.com/nyaruka/temba-components/commit/208f26ead8060ebeedac68f4d50a9ade2f7fc4e6)
20
44
 
21
45
  #### [v0.129.6](https://github.com/nyaruka/temba-components/compare/v0.129.5...v0.129.6)
22
46
 
@@ -17,19 +17,15 @@
17
17
  "image/jpeg:http://localhost:9000/temba-attachments/c4e84ebf-fdd7-439b-a2ca-aeb5e54dfc1d-IMG_3245.jpeg",
18
18
  "image/jpeg:http://localhost:9000/temba-attachments/e7d4d3cd-ec89-45c2-bc0b-4f652f1f7fde-IMG_3262.jpeg",
19
19
  "image/jpeg:http://localhost:9000/temba-attachments/ae831575-0d23-40b7-ae0c-531b8775a6bc-IMG_3282.jpeg",
20
- "image/jpeg:http://localhost:9000/temba-attachments/837ac13b-e524-4a4c-9385-81873c5df138-IMG_3290.jpeg",
21
- "image/jpeg:http://localhost:9000/temba-attachments/761e6345-3a19-49da-8a53-5c772d7739bc-IMG_3339.jpeg",
22
- "image/jpeg:http://localhost:9000/temba-attachments/ea6b336d-4389-4d32-b58a-e5a138d13c84-IMG_3237.jpeg"
20
+ "image/png:http://localhost:9000/temba-attachments/d7b04feb-c74e-43a4-a6de-6a4516a4de59-Screenshot 2025-08-19 at 10.23.24 AM.png",
21
+ "image/jpeg:http://localhost:9000/temba-attachments/d3bdb082-6dab-48ed-9598-f3a7f6b6b06d-IMG_3262.jpeg"
23
22
  ],
24
23
  "quick_replies": [
25
24
  "Red",
26
25
  "Green",
27
26
  "Blue",
28
27
  "Yellow",
29
- "Purple",
30
- "@contact.first_name",
31
- "@contact.uuid",
32
- "@contact.last_name"
28
+ "Purple"
33
29
  ]
34
30
  }
35
31
  ],
@@ -116,11 +112,11 @@
116
112
  },
117
113
  {
118
114
  "uuid": "59a22734-24ab-4ff4-b6a9-ee6e66431d4b",
119
- "destination_uuid": "4efc49e0-ebfe-454d-a1a0-900a911dd5ef"
115
+ "destination_uuid": null
120
116
  },
121
117
  {
122
118
  "uuid": "3dfd68c4-0184-49d8-b2a4-0bbb62425f33",
123
- "destination_uuid": "425c4757-bead-440f-92aa-a1cc3fcd7d35"
119
+ "destination_uuid": null
124
120
  },
125
121
  {
126
122
  "uuid": "ae901cf0-f7a1-491c-a56a-1922e242efa0",
@@ -196,27 +192,18 @@
196
192
  "type": "send_msg",
197
193
  "text": "Excellent choices.",
198
194
  "attachments": [
199
- "audio:http://arst",
200
- "image:@contact.first_name"
195
+ "image:@contact.profile_url"
201
196
  ],
202
197
  "quick_replies": [
203
198
  "Red",
204
199
  "Green",
205
- "Blue",
206
- "@contact.name"
200
+ "Blue"
207
201
  ]
208
202
  },
209
203
  {
210
- "uuid": "ffe1c2d3-4e5f-6a7b-8c9d-e0f1a2b3c4d5",
211
- "type": "remove_contact_groups",
204
+ "uuid": "d1ca86da-f321-4e09-8bb2-981de03f5a90",
205
+ "type": "add_contact_groups",
212
206
  "groups": [
213
- {
214
- "uuid": "f80ed7b6-5e6a-49eb-94b6-4631a9677cd8",
215
- "name": "Reporters",
216
- "query": null,
217
- "status": "ready",
218
- "count": 0
219
- },
220
207
  {
221
208
  "uuid": "a3f2990b-4096-452e-a586-dc06a9434dde",
222
209
  "name": "Empty",
@@ -225,30 +212,24 @@
225
212
  "count": 0
226
213
  },
227
214
  {
228
- "uuid": "76e7a094-22ea-441d-91c4-283d8168e8e3",
229
- "name": "Some Really Long Group Name",
230
- "count": 2028
231
- },
232
- {
233
- "uuid": "66e7a094-22ea-441d-91c4-283d8168e8e4",
234
- "name": "The Poots",
235
- "query": "name ~ \"poots\" OR name ~ \"dave\"",
236
- "status": "ready",
237
- "count": 1028
238
- },
239
- {
240
- "uuid": "94e3ff12-9206-4ce8-87ab-934a864a1819",
241
- "name": "Youth",
242
- "query": "age <= 18",
215
+ "uuid": "f80ed7b6-5e6a-49eb-94b6-4631a9677cd8",
216
+ "name": "Reporters",
217
+ "query": null,
243
218
  "status": "ready",
244
- "count": 174
219
+ "count": 0
245
220
  }
246
- ],
247
- "all_groups": false
221
+ ]
248
222
  },
249
223
  {
250
- "uuid": "d1ca86da-f321-4e09-8bb2-981de03f5a90",
251
- "type": "add_contact_groups",
224
+ "uuid": "b32fe165-e0cc-475c-a7c4-7f484fcce2f4",
225
+ "type": "set_run_result",
226
+ "name": "Make",
227
+ "value": "Rivian",
228
+ "category": "Electric"
229
+ },
230
+ {
231
+ "uuid": "ffe1c2d3-4e5f-6a7b-8c9d-e0f1a2b3c4d5",
232
+ "type": "remove_contact_groups",
252
233
  "groups": [
253
234
  {
254
235
  "uuid": "a3f2990b-4096-452e-a586-dc06a9434dde",
@@ -256,31 +237,30 @@
256
237
  "query": null,
257
238
  "status": "ready",
258
239
  "count": 0
259
- },
260
- {
261
- "uuid": "76e7a094-22ea-441d-91c4-283d8168e8e3",
262
- "name": "Some Really Long Group Name",
263
- "count": 2028
264
240
  }
265
- ]
266
- },
267
- {
268
- "type": "set_run_result",
269
- "name": "Color",
270
- "value": "Black",
271
- "category": "",
272
- "uuid": "b32fe165-e0cc-475c-a7c4-7f484fcce2f4"
241
+ ],
242
+ "all_groups": false
273
243
  },
274
244
  {
245
+ "uuid": "d0d1571c-bf9e-4156-ac7c-984789c71472",
275
246
  "type": "add_input_labels",
276
247
  "labels": [
277
248
  {
278
249
  "uuid": "61cae99b-56e1-4f3e-a2b9-07fb5cf2be9e",
250
+ "name": "Important",
251
+ "count": 234
252
+ },
253
+ {
254
+ "uuid": "76e7a094-22ea-441d-91c4-283d8168e8e3",
255
+ "name": "Follow Up",
256
+ "count": 128
257
+ },
258
+ {
259
+ "uuid": "f80ed7b6-5e6a-49eb-94b6-4631a9677cd8",
279
260
  "name": "Spam",
280
261
  "count": 0
281
262
  }
282
- ],
283
- "uuid": "d0d1571c-bf9e-4156-ac7c-984789c71472"
263
+ ]
284
264
  },
285
265
  {
286
266
  "uuid": "28c288f3-fb46-4c32-8a47-563132a2e8db",
@@ -341,7 +321,7 @@
341
321
  "exits": [
342
322
  {
343
323
  "uuid": "99fbc988-714e-4ea8-bf93-5bdaf397b37c",
344
- "destination_uuid": "2c60c381-487d-42cd-80be-a31f44c36fd9"
324
+ "destination_uuid": null
345
325
  }
346
326
  ]
347
327
  },
@@ -419,11 +399,11 @@
419
399
  "exits": [
420
400
  {
421
401
  "uuid": "7bda8b65-f797-4377-ba93-c92566e87c2e",
422
- "destination_uuid": "66171418-2368-44b9-95db-fdf7cd5cf4fe"
402
+ "destination_uuid": null
423
403
  },
424
404
  {
425
405
  "uuid": "2361f0e4-9ad8-4db3-ba37-d7fb02726307",
426
- "destination_uuid": "66171418-2368-44b9-95db-fdf7cd5cf4fe"
406
+ "destination_uuid": null
427
407
  }
428
408
  ]
429
409
  },
@@ -448,11 +428,11 @@
448
428
  "exits": [
449
429
  {
450
430
  "uuid": "ec491209-44e9-417c-aea7-ca665e9d8441",
451
- "destination_uuid": "66171418-2368-44b9-95db-fdf7cd5cf4fe"
431
+ "destination_uuid": "145eb3d3-b841-4e66-abac-297ae525c7ad"
452
432
  },
453
433
  {
454
434
  "uuid": "bdf64af3-8585-45ce-a3ba-10aab8dcc4fd",
455
- "destination_uuid": "66171418-2368-44b9-95db-fdf7cd5cf4fe"
435
+ "destination_uuid": null
456
436
  }
457
437
  ]
458
438
  },
@@ -671,7 +651,7 @@
671
651
  },
672
652
  {
673
653
  "uuid": "e3314f8b-5598-4592-b5f9-2999c4a28a4f",
674
- "destination_uuid": "66171418-2368-44b9-95db-fdf7cd5cf4fe"
654
+ "destination_uuid": null
675
655
  }
676
656
  ]
677
657
  },
@@ -681,13 +661,12 @@
681
661
  {
682
662
  "uuid": "bb664e68-91ab-4ee9-ab2b-a68b35adc9f0",
683
663
  "type": "call_llm",
664
+ "input": "@input",
684
665
  "llm": {
685
666
  "uuid": "a5f05e3e-4f9c-4f24-96ff-13676b82ac95",
686
667
  "name": "GPT 4o"
687
668
  },
688
- "input": "@input",
689
- "instructions": "Translate to French",
690
- "output_local": "_llm_output"
669
+ "instructions": "Take this cat fact and expand on it. Embellish it with lies. Feel free to make up words or use phrasing to make it sound more scientific, but make sure not to use playful fake words based on furr, purr, kitten, etc. Your result should read as a statement of fact. Do not lead on that you made anything up. Your \"fact\" should not be able to be easily disproven. Your fact can range from one to three sentences. Try to keep it under 70 words."
691
670
  }
692
671
  ],
693
672
  "router": {
@@ -721,7 +700,7 @@
721
700
  "exits": [
722
701
  {
723
702
  "uuid": "9285a0af-c70e-4945-9829-e620069830d2",
724
- "destination_uuid": "425c4757-bead-440f-92aa-a1cc3fcd7d35"
703
+ "destination_uuid": null
725
704
  },
726
705
  {
727
706
  "uuid": "3c3cccef-9865-4246-802f-90d9e76af9bf",
@@ -762,14 +741,14 @@
762
741
  "uuid": "a7f21fc4-8bf1-47ab-a6c7-3e072f88afe7",
763
742
  "type": "open_ticket",
764
743
  "topic": {
765
- "uuid": "bf4b568d-97b8-4d20-aed5-ad8150270af8",
744
+ "uuid": "1b1cb507-e079-4b30-818c-1898edcbd178",
766
745
  "name": "General"
767
746
  },
768
- "note": "This is a note",
769
747
  "assignee": {
770
- "email": "agent1@textit.com",
771
- "name": "Agnes McAgent"
772
- }
748
+ "uuid": "ae79dd5b-8c34-4602-a2c1-1e4db2419f0f",
749
+ "name": "Eric Newcomer"
750
+ },
751
+ "note": ""
773
752
  }
774
753
  ],
775
754
  "router": {
@@ -808,13 +787,124 @@
808
787
  "destination_uuid": null
809
788
  }
810
789
  ]
790
+ },
791
+ {
792
+ "uuid": "145eb3d3-b841-4e66-abac-297ae525c7ad",
793
+ "actions": [
794
+ {
795
+ "type": "call_llm",
796
+ "uuid": "145eb3d3-b841-4e66-abac-297ae525c7ad",
797
+ "llm": {
798
+ "uuid": "4399e7d6-fcdf-4e47-a835-f3bdb7f80938",
799
+ "name": "GPT 5"
800
+ },
801
+ "instructions": "@(prompt(\"categorize\", slice(node.categories, 0, -2)))",
802
+ "input": "@input",
803
+ "output_local": "_llm_output"
804
+ }
805
+ ],
806
+ "router": {
807
+ "type": "switch",
808
+ "categories": [
809
+ {
810
+ "uuid": "96d0d4c4-5830-4a6d-b20b-6730b1e10679",
811
+ "name": "Cat",
812
+ "exit_uuid": "ea2e15d3-d398-421f-bc51-26e094f97325"
813
+ },
814
+ {
815
+ "uuid": "4632b796-f8ab-4a35-80d1-a1b53a6db803",
816
+ "name": "Dog",
817
+ "exit_uuid": "abbdcff7-4296-4f01-907f-f709fa4a1444"
818
+ },
819
+ {
820
+ "uuid": "7091cae1-2677-494a-967c-d9502476d4e4",
821
+ "name": "Oyster",
822
+ "exit_uuid": "377e720a-4815-4fa5-83cc-b6471765a9b4"
823
+ },
824
+ {
825
+ "uuid": "8e4624ee-57fe-43cd-8fa3-fa630c22cd72",
826
+ "name": "Other",
827
+ "exit_uuid": "c7ecba49-7542-4862-a91a-9f2f8a10e222"
828
+ },
829
+ {
830
+ "uuid": "b3a625e7-97f2-461d-a481-20dec52bd609",
831
+ "name": "Failure",
832
+ "exit_uuid": "3484a407-9e62-4a55-be44-a2290270000f"
833
+ }
834
+ ],
835
+ "default_category_uuid": "8e4624ee-57fe-43cd-8fa3-fa630c22cd72",
836
+ "operand": "@locals._llm_output",
837
+ "cases": [
838
+ {
839
+ "uuid": "055e63a4-5eae-4325-b436-ca013e20ae17",
840
+ "type": "has_only_text",
841
+ "arguments": [
842
+ "Cat"
843
+ ],
844
+ "category_uuid": "96d0d4c4-5830-4a6d-b20b-6730b1e10679"
845
+ },
846
+ {
847
+ "uuid": "f0795c37-977e-4d0f-9136-378626a40173",
848
+ "type": "has_only_text",
849
+ "arguments": [
850
+ "Dog"
851
+ ],
852
+ "category_uuid": "4632b796-f8ab-4a35-80d1-a1b53a6db803"
853
+ },
854
+ {
855
+ "uuid": "87a8ccff-c153-4ff6-8a59-4d164b8bb2a8",
856
+ "type": "has_only_text",
857
+ "arguments": [
858
+ "Oyster"
859
+ ],
860
+ "category_uuid": "7091cae1-2677-494a-967c-d9502476d4e4"
861
+ },
862
+ {
863
+ "uuid": "8fd5f13b-0398-4286-b18a-a92b5a2ea19d",
864
+ "type": "has_only_text",
865
+ "arguments": [
866
+ "<ERROR>"
867
+ ],
868
+ "category_uuid": "b3a625e7-97f2-461d-a481-20dec52bd609"
869
+ }
870
+ ]
871
+ },
872
+ "exits": [
873
+ {
874
+ "uuid": "ea2e15d3-d398-421f-bc51-26e094f97325",
875
+ "destination_uuid": "66171418-2368-44b9-95db-fdf7cd5cf4fe"
876
+ },
877
+ {
878
+ "uuid": "abbdcff7-4296-4f01-907f-f709fa4a1444",
879
+ "destination_uuid": null
880
+ },
881
+ {
882
+ "uuid": "377e720a-4815-4fa5-83cc-b6471765a9b4",
883
+ "destination_uuid": null
884
+ },
885
+ {
886
+ "uuid": "c7ecba49-7542-4862-a91a-9f2f8a10e222",
887
+ "destination_uuid": "66171418-2368-44b9-95db-fdf7cd5cf4fe"
888
+ },
889
+ {
890
+ "uuid": "3484a407-9e62-4a55-be44-a2290270000f",
891
+ "destination_uuid": null
892
+ }
893
+ ]
811
894
  }
812
895
  ],
813
896
  "_ui": {
814
897
  "nodes": {
898
+ "145eb3d3-b841-4e66-abac-297ae525c7ad": {
899
+ "position": {
900
+ "left": 720,
901
+ "top": 500
902
+ },
903
+ "type": "split_by_llm_categorize"
904
+ },
815
905
  "a229fa3c-16bb-440b-9ae8-b7ee7a723f44": {
816
906
  "position": {
817
- "left": 240,
907
+ "left": 220,
818
908
  "top": 0
819
909
  },
820
910
  "type": "execute_actions"
@@ -823,7 +913,7 @@
823
913
  "type": "wait_for_response",
824
914
  "position": {
825
915
  "left": 220,
826
- "top": 260
916
+ "top": 200
827
917
  },
828
918
  "config": {
829
919
  "cases": {}
@@ -832,7 +922,7 @@
832
922
  "e1f22e97-a170-44b4-a79b-98ab916f4c34": {
833
923
  "type": "split_by_webhook",
834
924
  "position": {
835
- "left": 700,
925
+ "left": 840,
836
926
  "top": 20
837
927
  },
838
928
  "config": {}
@@ -840,15 +930,15 @@
840
930
  "4efc49e0-ebfe-454d-a1a0-900a911dd5ef": {
841
931
  "position": {
842
932
  "left": 220,
843
- "top": 440
933
+ "top": 380
844
934
  },
845
935
  "type": "execute_actions"
846
936
  },
847
937
  "2c60c381-487d-42cd-80be-a31f44c36fd9": {
848
938
  "type": "split_by_subflow",
849
939
  "position": {
850
- "left": 520,
851
- "top": 680
940
+ "left": 460,
941
+ "top": 740
852
942
  },
853
943
  "config": {}
854
944
  },
@@ -856,7 +946,7 @@
856
946
  "type": "split_by_contact_field",
857
947
  "position": {
858
948
  "left": 1020,
859
- "top": 220
949
+ "top": 140
860
950
  },
861
951
  "config": {
862
952
  "operand": {
@@ -870,8 +960,8 @@
870
960
  "b85000c4-1990-4d86-807a-1318ea512708": {
871
961
  "type": "split_by_expression",
872
962
  "position": {
873
- "left": 720,
874
- "top": 240
963
+ "left": 740,
964
+ "top": 200
875
965
  },
876
966
  "config": {
877
967
  "cases": {}
@@ -880,7 +970,7 @@
880
970
  "8ecec688-f154-4b80-a0b3-3cbff0fac892": {
881
971
  "type": "split_by_random",
882
972
  "position": {
883
- "left": 940,
973
+ "left": 1020,
884
974
  "top": 360
885
975
  },
886
976
  "config": null
@@ -888,8 +978,8 @@
888
978
  "66171418-2368-44b9-95db-fdf7cd5cf4fe": {
889
979
  "type": "split_by_run_result",
890
980
  "position": {
891
- "left": 800,
892
- "top": 600
981
+ "left": 780,
982
+ "top": 660
893
983
  },
894
984
  "config": {
895
985
  "operand": {
@@ -903,7 +993,7 @@
903
993
  "5f1394c1-4b8c-4357-8863-db24817b2aa3": {
904
994
  "type": "split_by_groups",
905
995
  "position": {
906
- "left": 520,
996
+ "left": 480,
907
997
  "top": 380
908
998
  },
909
999
  "config": {
@@ -913,8 +1003,8 @@
913
1003
  "e780a7ef-9dad-45a3-abda-11200a9afbf4": {
914
1004
  "type": "split_by_scheme",
915
1005
  "position": {
916
- "left": 480,
917
- "top": 560
1006
+ "left": 460,
1007
+ "top": 600
918
1008
  },
919
1009
  "config": {
920
1010
  "cases": {}
@@ -923,23 +1013,23 @@
923
1013
  "3dfe9cf2-72d1-496f-8d20-d5743af0f9c8": {
924
1014
  "type": "split_by_llm",
925
1015
  "position": {
926
- "left": 520,
927
- "top": 1020
1016
+ "left": 460,
1017
+ "top": 900
928
1018
  },
929
1019
  "config": {}
930
1020
  },
931
1021
  "425c4757-bead-440f-92aa-a1cc3fcd7d35": {
932
1022
  "position": {
933
- "left": 760,
934
- "top": 840
1023
+ "left": 780,
1024
+ "top": 800
935
1025
  },
936
1026
  "type": "execute_actions"
937
1027
  },
938
1028
  "21ff86c2-5276-4448-afb6-54d1f832ba0c": {
939
1029
  "type": "split_by_ticket",
940
1030
  "position": {
941
- "left": 820,
942
- "top": 980
1031
+ "left": 780,
1032
+ "top": 920
943
1033
  },
944
1034
  "config": {}
945
1035
  }
@@ -957,7 +1047,7 @@
957
1047
  "598a87e4-f20b-48ba-aac5-bb365d8f1509": {
958
1048
  "position": {
959
1049
  "left": 0,
960
- "top": 400
1050
+ "top": 440
961
1051
  },
962
1052
  "title": "Blue Note",
963
1053
  "body": "Did you know stickies can have different colors? I just realized that and I'm pretty happy to report that this expands really nicely. It seems to be working okay I think. This.",
@@ -975,7 +1065,7 @@
975
1065
  "598a87e4-f20b-48ba-aac5-bb365d8f1502": {
976
1066
  "position": {
977
1067
  "left": 0,
978
- "top": 580
1068
+ "top": 640
979
1069
  },
980
1070
  "title": "Pinky Note",
981
1071
  "body": "This is a test. How much do I like writing in pink? Seems pretty nice honestly! I think Imma go with it",
@@ -984,7 +1074,7 @@
984
1074
  "598a87e4-f20b-48ba-aac5-bb365d8f1503": {
985
1075
  "position": {
986
1076
  "left": 0,
987
- "top": 280
1077
+ "top": 320
988
1078
  },
989
1079
  "title": "Gray Note",
990
1080
  "body": "And a nice, little gray message to go with it.",