@epilot/sdk 2.9.3 → 2.9.4

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 (126) hide show
  1. package/definitions/workflow-runtime.json +1 -1
  2. package/definitions/workflow.json +445 -60
  3. package/dist/apis/access-token.cjs +6 -6
  4. package/dist/apis/access-token.js +1 -1
  5. package/dist/apis/address-suggestions.cjs +6 -6
  6. package/dist/apis/address-suggestions.js +1 -1
  7. package/dist/apis/address.cjs +6 -6
  8. package/dist/apis/address.js +1 -1
  9. package/dist/apis/ai-agents.cjs +6 -6
  10. package/dist/apis/ai-agents.js +1 -1
  11. package/dist/apis/app.cjs +6 -6
  12. package/dist/apis/app.js +1 -1
  13. package/dist/apis/audit-logs.cjs +6 -6
  14. package/dist/apis/audit-logs.js +1 -1
  15. package/dist/apis/automation.cjs +6 -6
  16. package/dist/apis/automation.js +1 -1
  17. package/dist/apis/billing.cjs +6 -6
  18. package/dist/apis/billing.js +1 -1
  19. package/dist/apis/blueprint-manifest.cjs +6 -6
  20. package/dist/apis/blueprint-manifest.js +1 -1
  21. package/dist/apis/calendar.cjs +6 -6
  22. package/dist/apis/calendar.js +1 -1
  23. package/dist/apis/configuration-hub.cjs +6 -6
  24. package/dist/apis/configuration-hub.js +1 -1
  25. package/dist/apis/consent.cjs +6 -6
  26. package/dist/apis/consent.js +1 -1
  27. package/dist/apis/customer-portal.cjs +6 -6
  28. package/dist/apis/customer-portal.js +1 -1
  29. package/dist/apis/dashboard.cjs +6 -6
  30. package/dist/apis/dashboard.js +1 -1
  31. package/dist/apis/data-governance.cjs +6 -6
  32. package/dist/apis/data-governance.js +1 -1
  33. package/dist/apis/deduplication.cjs +6 -6
  34. package/dist/apis/deduplication.js +1 -1
  35. package/dist/apis/design.cjs +6 -6
  36. package/dist/apis/design.js +1 -1
  37. package/dist/apis/document.cjs +6 -6
  38. package/dist/apis/document.js +1 -1
  39. package/dist/apis/email-settings.cjs +6 -6
  40. package/dist/apis/email-settings.js +1 -1
  41. package/dist/apis/email-template.cjs +6 -6
  42. package/dist/apis/email-template.js +1 -1
  43. package/dist/apis/entity-mapping.cjs +6 -6
  44. package/dist/apis/entity-mapping.js +1 -1
  45. package/dist/apis/entity.cjs +6 -6
  46. package/dist/apis/entity.js +1 -1
  47. package/dist/apis/environments.cjs +6 -6
  48. package/dist/apis/environments.js +1 -1
  49. package/dist/apis/event-catalog.cjs +6 -6
  50. package/dist/apis/event-catalog.js +1 -1
  51. package/dist/apis/file.cjs +6 -6
  52. package/dist/apis/file.js +1 -1
  53. package/dist/apis/iban.cjs +6 -6
  54. package/dist/apis/iban.js +1 -1
  55. package/dist/apis/integration-toolkit.cjs +6 -6
  56. package/dist/apis/integration-toolkit.js +1 -1
  57. package/dist/apis/journey.cjs +6 -6
  58. package/dist/apis/journey.js +1 -1
  59. package/dist/apis/kanban.cjs +6 -6
  60. package/dist/apis/kanban.js +1 -1
  61. package/dist/apis/message.cjs +6 -6
  62. package/dist/apis/message.js +1 -1
  63. package/dist/apis/metering.cjs +6 -6
  64. package/dist/apis/metering.js +1 -1
  65. package/dist/apis/notes.cjs +6 -6
  66. package/dist/apis/notes.js +1 -1
  67. package/dist/apis/notification.cjs +6 -6
  68. package/dist/apis/notification.js +1 -1
  69. package/dist/apis/organization.cjs +6 -6
  70. package/dist/apis/organization.js +1 -1
  71. package/dist/apis/partner-directory.cjs +6 -6
  72. package/dist/apis/partner-directory.js +1 -1
  73. package/dist/apis/permissions.cjs +6 -6
  74. package/dist/apis/permissions.js +1 -1
  75. package/dist/apis/pricing-tier.cjs +6 -6
  76. package/dist/apis/pricing-tier.js +1 -1
  77. package/dist/apis/pricing.cjs +6 -6
  78. package/dist/apis/pricing.js +1 -1
  79. package/dist/apis/purpose.cjs +6 -6
  80. package/dist/apis/purpose.js +1 -1
  81. package/dist/apis/query.cjs +6 -6
  82. package/dist/apis/query.js +1 -1
  83. package/dist/apis/sandbox.cjs +6 -6
  84. package/dist/apis/sandbox.js +1 -1
  85. package/dist/apis/sharing.cjs +6 -6
  86. package/dist/apis/sharing.js +1 -1
  87. package/dist/apis/snapshot.cjs +6 -6
  88. package/dist/apis/snapshot.js +1 -1
  89. package/dist/apis/submission.cjs +6 -6
  90. package/dist/apis/submission.js +1 -1
  91. package/dist/apis/target.cjs +6 -6
  92. package/dist/apis/target.js +1 -1
  93. package/dist/apis/targeting.cjs +6 -6
  94. package/dist/apis/targeting.js +1 -1
  95. package/dist/apis/template-variables.cjs +6 -6
  96. package/dist/apis/template-variables.js +1 -1
  97. package/dist/apis/user.cjs +6 -6
  98. package/dist/apis/user.js +1 -1
  99. package/dist/apis/validation-rules.cjs +6 -6
  100. package/dist/apis/validation-rules.js +1 -1
  101. package/dist/apis/webhooks.cjs +6 -6
  102. package/dist/apis/webhooks.js +1 -1
  103. package/dist/apis/workflow-definition.cjs +6 -6
  104. package/dist/apis/workflow-definition.js +1 -1
  105. package/dist/apis/workflow.cjs +8 -8
  106. package/dist/apis/workflow.d.cts +2 -2
  107. package/dist/apis/workflow.d.ts +2 -2
  108. package/dist/apis/workflow.js +2 -2
  109. package/dist/{chunk-KQKBSWGI.js → chunk-522LYPPW.js} +1 -1
  110. package/dist/{chunk-MBVZHZAH.js → chunk-J4ZE3ANW.js} +2 -2
  111. package/dist/{chunk-DCHUVJL4.cjs → chunk-LNVAFYGS.cjs} +2 -2
  112. package/dist/{chunk-QNZPOA54.cjs → chunk-PM25LLET.cjs} +1 -1
  113. package/dist/index.cjs +10 -10
  114. package/dist/index.d.cts +1 -1
  115. package/dist/index.d.ts +1 -1
  116. package/dist/index.js +2 -2
  117. package/dist/workflow-7OU2YEEI.cjs +7 -0
  118. package/dist/workflow-IVKCWS44.js +7 -0
  119. package/dist/{workflow-runtime-DNTQDYPQ.js → workflow-runtime-L5HMFISV.js} +1 -1
  120. package/dist/{workflow-runtime-VKFESVFX.cjs → workflow-runtime-LMGACZP4.cjs} +2 -2
  121. package/dist/{workflow.d-CMSKt8oN.d.cts → workflow.d-eFv0ecBi.d.cts} +745 -81
  122. package/dist/{workflow.d-CMSKt8oN.d.ts → workflow.d-eFv0ecBi.d.ts} +745 -81
  123. package/docs/workflow.md +247 -47
  124. package/package.json +1 -1
  125. package/dist/workflow-3WBD74WR.js +0 -7
  126. package/dist/workflow-WIUZ5TOX.cjs +0 -7
@@ -3,7 +3,7 @@
3
3
  "info": {
4
4
  "title": "Workflows Executions",
5
5
  "version": "1.0.0",
6
- "description": "Service for Workflow Executions which covers executions of processes defined in an Organization\n"
6
+ "description": "## Overview\nThe Workflows Executions API manages the runtime instances of workflow processes within an organization.\nWhile **Workflow Definitions** (managed by the Workflows Definitions API) serve as reusable templates\nthat define the structure, phases, and tasks of a process, **Workflow Executions** are the active\ninstances created from those definitions.\n\n## Key Concepts\n\n### Definitions vs Executions\n- **Definition (Template)**: A blueprint defining workflow structure, phases, tasks, conditions, and automation rules\n- **Execution (Instance)**: A running instance of a definition, tracking actual progress, assignees, and status\n\n### Execution Lifecycle\n1. **STARTED**: Execution is active and tasks can be worked on\n2. **DONE**: All required tasks are completed\n3. **CLOSED**: Execution is terminated (completed successfully or cancelled with closing reasons)\n\n### Task Types\n- **Manual Tasks**: Require human action to complete\n- **Automation Tasks**: Execute configured automations automatically\n- **Decision Tasks**: Evaluate conditions to determine the next path in the workflow\n- **AI Agent Tasks**: Execute AI-powered agents for intelligent task processing\n\n### Contexts\nExecutions are linked to entity contexts (e.g., contacts, opportunities) that provide the data\ncontext for the workflow and allow tracking which entities a workflow operates on.\n\n## API Versions\n- **V1 (`/v1/workflows/`)**: Legacy linear phase/section/step model (deprecated for new integrations)\n- **V2 (`/v2/flows/`)**: Current graph-based model with advanced features like conditional branching,\n loops, and scheduling. **Recommended for all new integrations.**\n"
7
7
  },
8
8
  "servers": [
9
9
  {
@@ -13,16 +13,19 @@
13
13
  "tags": [
14
14
  {
15
15
  "name": "Workflow Executions",
16
- "description": "Interact with workflow executions - start / close / retrieve one or all / search / delete"
16
+ "description": "Manage V1 workflow executions (legacy linear model). Operations include starting new executions\nfrom definitions, retrieving execution details, updating execution status and assignees,\nand deleting executions. Use the Flows V2 endpoints for new integrations.\n"
17
17
  },
18
18
  {
19
- "name": "Workflow Steps"
19
+ "name": "Workflow Steps",
20
+ "description": "Manage individual steps within V1 workflow executions (legacy). Steps represent discrete tasks\nthat can be assigned to users, have due dates, and track completion status. Use the Flows V2\ntask endpoints for new integrations.\n"
20
21
  },
21
22
  {
22
- "name": "Closing Reasons"
23
+ "name": "Closing Reasons",
24
+ "description": "Retrieve closing reasons configured for workflow executions. When a workflow is closed/cancelled,\nusers can select from predefined closing reasons to document why the workflow ended. Closing\nreasons are snapshots from the definition at execution creation time.\n"
23
25
  },
24
26
  {
25
- "name": "Flows V2"
27
+ "name": "Flows V2",
28
+ "description": "**Recommended for new integrations.** Manage V2 flow executions using the graph-based execution model.\nThis API version supports advanced features including:\n- Conditional branching with decision tasks\n- Automation tasks with configurable triggers\n- AI agent tasks for intelligent processing\n- Task scheduling (immediate, delayed, or relative to events)\n- Loop iterations for repeatable task sequences\n- Phase-based organization with progress tracking\n"
26
29
  }
27
30
  ],
28
31
  "security": [
@@ -90,24 +93,61 @@
90
93
  "post": {
91
94
  "operationId": "createExecution",
92
95
  "summary": "createExecution",
93
- "description": "Create a Workflow Execution. Start a new workflow execution, based on a workflow definition (template).",
96
+ "description": "Creates a new V1 Workflow Execution from a workflow definition (template).\n\n**Note:** This is the legacy V1 API. For new integrations, use `POST /v2/flows/executions` instead.\n\nThe workflow definition specifies the structure (sections and steps) of the workflow.\nWhen created, the execution instantiates all steps and begins tracking progress.\n",
94
97
  "tags": [
95
98
  "Workflow Executions"
96
99
  ],
97
100
  "requestBody": {
98
- "description": "Workflow Execution payload",
101
+ "description": "Workflow execution creation payload with definition ID and entity contexts",
99
102
  "required": true,
100
103
  "content": {
101
104
  "application/json": {
102
105
  "schema": {
103
106
  "$ref": "#/components/schemas/WorkflowExecutionCreateReq"
107
+ },
108
+ "examples": {
109
+ "basicCreate": {
110
+ "summary": "Create with single context",
111
+ "description": "Create an execution linked to an opportunity entity",
112
+ "value": {
113
+ "workflowId": "j3f23fh23uif98",
114
+ "trigger": "MANUAL",
115
+ "contexts": [
116
+ {
117
+ "id": "3fa3fa86-0907-4642-a57e-0fe30a19874d",
118
+ "title": "New Opportunity",
119
+ "schema": "opportunity"
120
+ }
121
+ ]
122
+ }
123
+ },
124
+ "automatedTrigger": {
125
+ "summary": "Create from automation",
126
+ "description": "Create an execution triggered automatically by an automation rule",
127
+ "value": {
128
+ "workflowId": "j3f23fh23uif98",
129
+ "trigger": "AUTOMATIC",
130
+ "contexts": [
131
+ {
132
+ "id": "3fa3fa86-0907-4642-a57e-0fe30a19874d",
133
+ "title": "John Doe",
134
+ "schema": "contact"
135
+ },
136
+ {
137
+ "id": "3a6d42fa-5070-4723-b90f-41ead4303e33",
138
+ "title": "Sales Opportunity",
139
+ "schema": "opportunity"
140
+ }
141
+ ]
142
+ }
143
+ }
104
144
  }
105
145
  }
106
146
  }
107
147
  },
108
148
  "responses": {
109
149
  "201": {
110
- "description": "Success - if the execution is created successfully",
150
+ "description": "Execution created successfully. Returns the complete workflow execution\nincluding all sections, steps, and initial status.\n",
111
151
  "content": {
112
152
  "application/json": {
113
153
  "schema": {
@@ -117,31 +157,40 @@
117
157
  }
118
158
  },
119
159
  "400": {
120
- "description": "Validation Errors",
160
+ "description": "Validation error. Common causes include:\n- Missing required workflowId\n- Invalid workflowId (definition not found)\n- Invalid context entity references\n",
121
161
  "content": {
122
162
  "application/json": {
123
163
  "schema": {
124
164
  "$ref": "#/components/schemas/ErrorResp"
165
+ },
166
+ "example": {
167
+ "message": "workflowId is required"
125
168
  }
126
169
  }
127
170
  }
128
171
  },
129
172
  "401": {
130
- "description": "Authentication Errors",
173
+ "description": "Authentication failed. The Bearer token is missing, expired, or invalid.\n",
131
174
  "content": {
132
175
  "application/json": {
133
176
  "schema": {
134
177
  "$ref": "#/components/schemas/ErrorResp"
178
+ },
179
+ "example": {
180
+ "message": "Unauthorized"
135
181
  }
136
182
  }
137
183
  }
138
184
  },
139
185
  "500": {
140
- "description": "Other errors",
186
+ "description": "Internal server error. An unexpected error occurred while processing the request.\n",
141
187
  "content": {
142
188
  "application/json": {
143
189
  "schema": {
144
190
  "$ref": "#/components/schemas/ErrorResp"
191
+ },
192
+ "example": {
193
+ "message": "Internal server error"
145
194
  }
146
195
  }
147
196
  }
@@ -153,7 +202,7 @@
153
202
  "get": {
154
203
  "operationId": "getExecution",
155
204
  "summary": "getExecution",
156
- "description": "Get a full workflow execution, included steps information, by execution id.",
205
+ "description": "Retrieves a complete V1 workflow execution by ID, including all steps information.\n\n**Note:** This is the legacy V1 API. For new integrations, use `GET /v2/flows/executions/{execution_id}` instead.\n",
157
206
  "tags": [
158
207
  "Workflow Executions"
159
208
  ],
@@ -356,7 +405,7 @@
356
405
  "patch": {
357
406
  "operationId": "updateStep",
358
407
  "summary": "updateStep",
359
- "description": "Patches various changes to a workflow execution step.",
408
+ "description": "Updates a workflow execution step with new values for status, assignees, due date, position, and more.\n\n**Note:** This is the legacy V1 API. For new integrations, use `PATCH /v2/flows/executions/{execution_id}/tasks/{task_id}` instead.\n\n**Common use cases:**\n- Mark a step as completed or skipped\n- Assign or reassign users to a step\n- Update step due dates (static or dynamic)\n- Reorder steps within a section\n",
360
409
  "tags": [
361
410
  "Workflow Steps"
362
411
  ],
@@ -368,7 +417,7 @@
368
417
  "type": "string"
369
418
  },
370
419
  "required": true,
371
- "description": "Id of the execution",
420
+ "description": "Unique identifier of the workflow execution",
372
421
  "example": "wd56125gah"
373
422
  },
374
423
  {
@@ -378,12 +427,12 @@
378
427
  "type": "string"
379
428
  },
380
429
  "required": true,
381
- "description": "Short uuid (length 6) to identify the Workflow Execution Step.",
430
+ "description": "Short unique identifier (typically 6 characters) of the step within the execution",
382
431
  "example": "7hj28a"
383
432
  }
384
433
  ],
385
434
  "requestBody": {
386
- "description": "Workflow Execution Step payload",
435
+ "description": "Step update payload with fields to modify",
387
436
  "required": true,
388
437
  "content": {
389
438
  "application/json": {
@@ -391,24 +440,57 @@
391
440
  "$ref": "#/components/schemas/UpdateStepReq"
392
441
  },
393
442
  "examples": {
394
- "dynamicDueDate": {
443
+ "markCompleted": {
444
+ "summary": "Mark step as completed",
445
+ "description": "Complete a step, advancing the workflow",
446
+ "value": {
447
+ "status": "COMPLETED"
448
+ }
449
+ },
450
+ "markInProgress": {
451
+ "summary": "Mark step as in progress",
452
+ "description": "Indicate that work has started on this step",
453
+ "value": {
454
+ "status": "IN_PROGRESS"
455
+ }
456
+ },
457
+ "assignUsers": {
458
+ "summary": "Assign users to step",
459
+ "description": "Assign one or more users to the step",
395
460
  "value": {
396
- "stepId": "string",
397
461
  "assignedTo": [
398
- "10010730"
399
- ],
462
+ "10010730",
463
+ "10010731"
464
+ ]
465
+ }
466
+ },
467
+ "setStaticDueDate": {
468
+ "summary": "Set static due date",
469
+ "description": "Set an explicit due date for the step",
470
+ "value": {
471
+ "dueDate": "2024-06-15T17:00:00.000Z"
472
+ }
473
+ },
474
+ "setDynamicDueDate": {
475
+ "summary": "Set dynamic due date",
476
+ "description": "Configure due date relative to workflow start or another step",
477
+ "value": {
400
478
  "dynamicDueDate": {
401
479
  "numberOfUnits": 2,
402
480
  "timePeriod": "weeks",
403
481
  "actionTypeCondition": "STEP_CLOSED",
404
- "stepId": "optional"
405
- },
406
- "name": "Static Duedate",
482
+ "stepId": "abc123"
483
+ }
484
+ }
485
+ },
486
+ "reorderStep": {
487
+ "summary": "Reorder step position",
488
+ "description": "Move a step to a different position within its section",
489
+ "value": {
407
490
  "position": {
408
- "index": 0
409
- },
410
- "sectionId": "string",
411
- "status": "string"
491
+ "index": 2,
492
+ "sectionId": "section_abc123"
493
+ }
412
494
  }
413
495
  }
414
496
  }
@@ -417,7 +499,7 @@
417
499
  },
418
500
  "responses": {
419
501
  "200": {
420
- "description": "Success - if the step is updated successfully",
502
+ "description": "Step updated successfully. Returns the updated step object with all current values.\n",
421
503
  "content": {
422
504
  "application/json": {
423
505
  "schema": {
@@ -681,24 +763,80 @@
681
763
  "post": {
682
764
  "operationId": "startFlowExecution",
683
765
  "summary": "startFlowExecution",
684
- "description": "Starts a new Flow Execution based on a flow template.",
766
+ "description": "Starts a new Flow Execution based on a flow template (definition).\n\nThe flow template defines the structure of the workflow including phases, tasks, edges (transitions),\nand automation configurations. When started, the execution creates runtime instances of all tasks\nand begins processing from the initial task(s).\n\n**Required fields:**\n- `flow_template_id`: The ID of the flow template to instantiate\n- `contexts`: At least one entity context to link the execution to\n\n**Optional fields:**\n- `trigger`: Specifies how the execution was triggered (manual or automatic)\n- `purposes`: Filter which phases/tasks are included based on taxonomy purposes\n",
685
767
  "tags": [
686
768
  "Flows V2"
687
769
  ],
688
770
  "requestBody": {
689
- "description": "Flow Execution payload",
771
+ "description": "Flow Execution payload containing the template ID and entity contexts",
690
772
  "required": true,
691
773
  "content": {
692
774
  "application/json": {
693
775
  "schema": {
694
776
  "$ref": "#/components/schemas/StartFlowReq"
777
+ },
778
+ "examples": {
779
+ "basicStart": {
780
+ "summary": "Start with single entity context",
781
+ "description": "Start a flow execution linked to an opportunity entity",
782
+ "value": {
783
+ "flow_template_id": "tpl_abc123def456",
784
+ "contexts": [
785
+ {
786
+ "entity_id": "3fa3fa86-0907-4642-a57e-0fe30a19874d",
787
+ "entity_schema": "opportunity",
788
+ "is_primary": true
789
+ }
790
+ ]
791
+ }
792
+ },
793
+ "multipleContexts": {
794
+ "summary": "Start with multiple entity contexts",
795
+ "description": "Start a flow execution linked to both a contact and an opportunity",
796
+ "value": {
797
+ "flow_template_id": "tpl_abc123def456",
798
+ "trigger": {
799
+ "type": "MANUAL"
800
+ },
801
+ "contexts": [
802
+ {
803
+ "entity_id": "3fa3fa86-0907-4642-a57e-0fe30a19874d",
804
+ "entity_schema": "contact",
805
+ "is_primary": true
806
+ },
807
+ {
808
+ "entity_id": "7bc8de90-1234-5678-90ab-cdef12345678",
809
+ "entity_schema": "opportunity",
810
+ "is_primary": false
811
+ }
812
+ ]
813
+ }
814
+ },
815
+ "withPurposes": {
816
+ "summary": "Start with purpose filtering",
817
+ "description": "Start a flow execution with specific purposes to filter applicable phases",
818
+ "value": {
819
+ "flow_template_id": "tpl_abc123def456",
820
+ "contexts": [
821
+ {
822
+ "entity_id": "3fa3fa86-0907-4642-a57e-0fe30a19874d",
823
+ "entity_schema": "opportunity",
824
+ "is_primary": true
825
+ }
826
+ ],
827
+ "purposes": [
828
+ "sales",
829
+ "onboarding"
830
+ ]
831
+ }
832
+ }
695
833
  }
696
834
  }
697
835
  }
698
836
  },
699
837
  "responses": {
700
838
  "201": {
701
- "description": "Success - when the flow execution is started successfully",
839
+ "description": "Flow execution started successfully. Returns the complete execution object including\nall phases, tasks, edges, and initial status.\n",
702
840
  "content": {
703
841
  "application/json": {
704
842
  "schema": {
@@ -708,27 +846,53 @@
708
846
  }
709
847
  },
710
848
  "400": {
711
- "description": "Validation Errors",
849
+ "description": "Validation error. Common causes include:\n- Missing required fields (flow_template_id, contexts)\n- Invalid flow_template_id (template not found)\n- Invalid entity context (entity not found)\n- Empty contexts array\n",
712
850
  "content": {
713
851
  "application/json": {
714
852
  "schema": {
715
853
  "$ref": "#/components/schemas/ErrorResp"
854
+ },
855
+ "example": {
856
+ "message": "flow_template_id is required"
716
857
  }
717
858
  }
718
859
  }
719
860
  },
720
861
  "401": {
721
- "description": "Unauthorized"
862
+ "description": "Authentication failed. The Bearer token is missing, expired, or invalid.\n",
863
+ "content": {
864
+ "application/json": {
865
+ "schema": {
866
+ "$ref": "#/components/schemas/ErrorResp"
867
+ },
868
+ "example": {
869
+ "message": "Unauthorized"
870
+ }
871
+ }
872
+ }
722
873
  },
723
874
  "403": {
724
- "description": "Forbidden"
875
+ "description": "Access forbidden. The authenticated user does not have permission to start\nexecutions for this flow template or organization.\n",
876
+ "content": {
877
+ "application/json": {
878
+ "schema": {
879
+ "$ref": "#/components/schemas/ErrorResp"
880
+ },
881
+ "example": {
882
+ "message": "Forbidden"
883
+ }
884
+ }
885
+ }
725
886
  },
726
887
  "500": {
727
- "description": "Other errors",
888
+ "description": "Internal server error. An unexpected error occurred while processing the request.\n",
728
889
  "content": {
729
890
  "application/json": {
730
891
  "schema": {
731
892
  "$ref": "#/components/schemas/ErrorResp"
893
+ },
894
+ "example": {
895
+ "message": "Internal server error"
732
896
  }
733
897
  }
734
898
  }
@@ -740,7 +904,7 @@
740
904
  "get": {
741
905
  "operationId": "getFlowExecution",
742
906
  "summary": "getFlowExecution",
743
- "description": "Get a full flow execution, included tasks, phases, edges & analytics.",
907
+ "description": "Retrieves a complete flow execution by ID, including all phases, tasks, edges, contexts, and analytics.\n\nThe response includes:\n- **Execution metadata**: ID, name, status, timestamps, assignees\n- **Phases**: Organizational groupings of tasks with progress tracking\n- **Tasks**: Individual work items with their status, assignees, and configurations\n- **Edges**: Connections between tasks defining the workflow graph\n- **Analytics**: Timing information (started, completed, closed timestamps)\n- **Contexts**: Linked entity references\n",
744
908
  "tags": [
745
909
  "Flows V2"
746
910
  ],
@@ -928,7 +1092,7 @@
928
1092
  "patch": {
929
1093
  "operationId": "patchTask",
930
1094
  "summary": "patchTask",
931
- "description": "Changes various attributes of a flow task, like assignees, status, due date, etc.",
1095
+ "description": "Updates attributes of a flow task including status, assignees, due date, and more.\n\n**Common use cases:**\n- Mark a task as completed or skipped\n- Assign or reassign users to a task\n- Update task due dates\n- Enable or disable a task\n- Revert execution to a previous task\n\n**Status transitions:**\n- `PENDING` -> `IN_PROGRESS`: User starts working on the task\n- `IN_PROGRESS` -> `COMPLETED`: User finishes the task\n- `PENDING` or `IN_PROGRESS` -> `SKIPPED`: Task is bypassed\n- `COMPLETED` or `SKIPPED` -> `PENDING`: Task is reopened (with revert_execution flag)\n\n**Reverting execution:**\nWhen updating a task that was already completed/skipped and comes before the current task,\nuse `revert_execution: true` to reset the flow back to that point. All subsequent tasks\nwill be reset to PENDING status.\n",
932
1096
  "tags": [
933
1097
  "Flows V2"
934
1098
  ],
@@ -941,19 +1105,75 @@
941
1105
  }
942
1106
  ],
943
1107
  "requestBody": {
944
- "description": "Patch Task Payload",
1108
+ "description": "Task update payload with fields to modify",
945
1109
  "required": true,
946
1110
  "content": {
947
1111
  "application/json": {
948
1112
  "schema": {
949
1113
  "$ref": "#/components/schemas/PatchTaskReq"
1114
+ },
1115
+ "examples": {
1116
+ "markCompleted": {
1117
+ "summary": "Mark task as completed",
1118
+ "description": "Complete a task, advancing the workflow to the next task",
1119
+ "value": {
1120
+ "status": "COMPLETED"
1121
+ }
1122
+ },
1123
+ "markInProgress": {
1124
+ "summary": "Mark task as in progress",
1125
+ "description": "Indicate that work has started on this task",
1126
+ "value": {
1127
+ "status": "IN_PROGRESS"
1128
+ }
1129
+ },
1130
+ "skipTask": {
1131
+ "summary": "Skip a task",
1132
+ "description": "Bypass a task without completing it",
1133
+ "value": {
1134
+ "status": "SKIPPED"
1135
+ }
1136
+ },
1137
+ "assignUsers": {
1138
+ "summary": "Assign users to task",
1139
+ "description": "Assign one or more users to be responsible for this task",
1140
+ "value": {
1141
+ "assigned_to": [
1142
+ "10010730",
1143
+ "10010731"
1144
+ ]
1145
+ }
1146
+ },
1147
+ "updateDueDate": {
1148
+ "summary": "Set task due date",
1149
+ "description": "Set an explicit due date for the task",
1150
+ "value": {
1151
+ "due_date": "2024-06-15T17:00:00.000Z"
1152
+ }
1153
+ },
1154
+ "revertToPreviousTask": {
1155
+ "summary": "Revert execution to previous task",
1156
+ "description": "Reset workflow back to a previously completed task, clearing all subsequent progress",
1157
+ "value": {
1158
+ "status": "PENDING",
1159
+ "revert_execution": true
1160
+ }
1161
+ },
1162
+ "decisionTaskBranch": {
1163
+ "summary": "Select branch for decision task",
1164
+ "description": "For manual decision tasks, specify which condition/branch to follow",
1165
+ "value": {
1166
+ "status": "COMPLETED",
1167
+ "next_condition_id": "cond_branch_a"
1168
+ }
1169
+ }
950
1170
  }
951
1171
  }
952
1172
  }
953
1173
  },
954
1174
  "responses": {
955
1175
  "200": {
956
- "description": "Success - when task has been successfully updated",
1176
+ "description": "Task updated successfully. Returns the updated task object with all current values.\nIf the status change triggers workflow advancement, the flow execution state is also updated.\n",
957
1177
  "content": {
958
1178
  "application/json": {
959
1179
  "schema": {
@@ -963,31 +1183,53 @@
963
1183
  }
964
1184
  },
965
1185
  "400": {
966
- "description": "Validation Errors",
1186
+ "description": "Validation error. Common causes include:\n- Invalid status transition (e.g., COMPLETED to IN_PROGRESS without revert)\n- Invalid task_id\n- Invalid assigned_to user IDs\n- Invalid due_date format\n",
967
1187
  "content": {
968
1188
  "application/json": {
969
1189
  "schema": {
970
1190
  "$ref": "#/components/schemas/ErrorResp"
1191
+ },
1192
+ "example": {
1193
+ "message": "Invalid status transition from COMPLETED to IN_PROGRESS"
971
1194
  }
972
1195
  }
973
1196
  }
974
1197
  },
975
1198
  "401": {
976
- "description": "Authentication Errors",
1199
+ "description": "Authentication failed. The Bearer token is missing, expired, or invalid.\n",
1200
+ "content": {
1201
+ "application/json": {
1202
+ "schema": {
1203
+ "$ref": "#/components/schemas/ErrorResp"
1204
+ },
1205
+ "example": {
1206
+ "message": "Unauthorized"
1207
+ }
1208
+ }
1209
+ }
1210
+ },
1211
+ "404": {
1212
+ "description": "Task or execution not found. The specified execution_id or task_id does not exist.\n",
977
1213
  "content": {
978
1214
  "application/json": {
979
1215
  "schema": {
980
1216
  "$ref": "#/components/schemas/ErrorResp"
1217
+ },
1218
+ "example": {
1219
+ "message": "Task not found"
981
1220
  }
982
1221
  }
983
1222
  }
984
1223
  },
985
1224
  "500": {
986
- "description": "Other errors",
1225
+ "description": "Internal server error. An unexpected error occurred while processing the request.\n",
987
1226
  "content": {
988
1227
  "application/json": {
989
1228
  "schema": {
990
1229
  "$ref": "#/components/schemas/ErrorResp"
1230
+ },
1231
+ "example": {
1232
+ "message": "Internal server error"
991
1233
  }
992
1234
  }
993
1235
  }
@@ -1317,6 +1559,86 @@
1317
1559
  }
1318
1560
  }
1319
1561
  },
1562
+ "/v2/flows/executions/{execution_id}/tasks/{task_id}/reconcile-automation": {
1563
+ "post": {
1564
+ "operationId": "reconcileAutomationTask",
1565
+ "summary": "reconcileAutomationTask",
1566
+ "description": "Reconciles an automation task's status against its linked automation execution.\n\nLooks the task up by id (whether or not it is currently a `crt_task`),\nfetches its automation execution, and — if the automation has reached a\nterminal state (success/failed/skipped) — corrects the task's `status`,\n`automation_config` and `analytics` to match and persists them. If the\ntask is the current task and the flow is still active, the flow is\nadvanced; otherwise only the task record is corrected.\n\nUsed by the \"Refresh status\" action to recover a task left `IN_PROGRESS`\nafter a missed or clobbered completion event. No-op (returns the\nexecution unchanged) when the task is already terminal or the automation\nis still running.\n",
1567
+ "tags": [
1568
+ "Flows V2"
1569
+ ],
1570
+ "parameters": [
1571
+ {
1572
+ "$ref": "#/components/parameters/ExecutionIdParam"
1573
+ },
1574
+ {
1575
+ "$ref": "#/components/parameters/TaskIdParam"
1576
+ }
1577
+ ],
1578
+ "responses": {
1579
+ "200": {
1580
+ "description": "Success - returns the (possibly updated) flow execution",
1581
+ "content": {
1582
+ "application/json": {
1583
+ "schema": {
1584
+ "$ref": "#/components/schemas/FlowExecution"
1585
+ }
1586
+ }
1587
+ }
1588
+ },
1589
+ "400": {
1590
+ "description": "Validation Errors",
1591
+ "content": {
1592
+ "application/json": {
1593
+ "schema": {
1594
+ "$ref": "#/components/schemas/ErrorResp"
1595
+ }
1596
+ }
1597
+ }
1598
+ },
1599
+ "401": {
1600
+ "description": "Authentication Errors",
1601
+ "content": {
1602
+ "application/json": {
1603
+ "schema": {
1604
+ "$ref": "#/components/schemas/ErrorResp"
1605
+ }
1606
+ }
1607
+ }
1608
+ },
1609
+ "403": {
1610
+ "description": "Forbidden",
1611
+ "content": {
1612
+ "application/json": {
1613
+ "schema": {
1614
+ "$ref": "#/components/schemas/ErrorResp"
1615
+ }
1616
+ }
1617
+ }
1618
+ },
1619
+ "404": {
1620
+ "description": "Not Found",
1621
+ "content": {
1622
+ "application/json": {
1623
+ "schema": {
1624
+ "$ref": "#/components/schemas/ErrorResp"
1625
+ }
1626
+ }
1627
+ }
1628
+ },
1629
+ "500": {
1630
+ "description": "Other errors",
1631
+ "content": {
1632
+ "application/json": {
1633
+ "schema": {
1634
+ "$ref": "#/components/schemas/ErrorResp"
1635
+ }
1636
+ }
1637
+ }
1638
+ }
1639
+ }
1640
+ }
1641
+ },
1320
1642
  "/v2/flows/executions/{execution_id}/tasks/{task_id}/schedule/run-now": {
1321
1643
  "post": {
1322
1644
  "operationId": "runTaskScheduleNow",
@@ -1468,8 +1790,8 @@
1468
1790
  "type": "string"
1469
1791
  },
1470
1792
  "required": true,
1471
- "description": "Id of the execution",
1472
- "example": "wd561"
1793
+ "description": "Unique identifier for the flow execution. This ID is generated when the execution\nis created and remains constant throughout its lifecycle.\n",
1794
+ "example": "exec_abc123def456"
1473
1795
  },
1474
1796
  "TaskIdParam": {
1475
1797
  "in": "path",
@@ -1478,8 +1800,8 @@
1478
1800
  "type": "string"
1479
1801
  },
1480
1802
  "required": true,
1481
- "description": "Id of the task",
1482
- "example": "7hj28a"
1803
+ "description": "Unique identifier for a task within the execution. Each task has a unique ID\nthat distinguishes it from other tasks in the same execution.\n",
1804
+ "example": "task_7hj28a"
1483
1805
  },
1484
1806
  "PhaseIdParam": {
1485
1807
  "in": "path",
@@ -1488,8 +1810,8 @@
1488
1810
  "type": "string"
1489
1811
  },
1490
1812
  "required": true,
1491
- "description": "Id of the phase",
1492
- "example": "9gjs2952j"
1813
+ "description": "Unique identifier for a phase within the execution. Phases group related tasks\ntogether and track collective progress.\n",
1814
+ "example": "phase_9gjs2952j"
1493
1815
  },
1494
1816
  "ScheduleIdParam": {
1495
1817
  "in": "path",
@@ -1498,7 +1820,7 @@
1498
1820
  "type": "string"
1499
1821
  },
1500
1822
  "required": true,
1501
- "description": "Id of the schedule",
1823
+ "description": "Unique identifier for a scheduled task action. Schedules are created when tasks\nare configured with delayed or relative timing.\n",
1502
1824
  "example": "sch_8k2m9n4p"
1503
1825
  },
1504
1826
  "SoftDeleteParam": {
@@ -1509,7 +1831,7 @@
1509
1831
  "default": false
1510
1832
  },
1511
1833
  "required": false,
1512
- "description": "If true, the execution will NOT be deleted permanently, but rather kept for archive purpose.",
1834
+ "description": "When true, the execution is marked as deleted but retained in storage for archival\nand audit purposes. When false (default), the execution is permanently removed.\nSoft-deleted executions do not appear in normal queries.\n",
1513
1835
  "example": true
1514
1836
  }
1515
1837
  },
@@ -2606,11 +2928,17 @@
2606
2928
  },
2607
2929
  "ErrorResp": {
2608
2930
  "type": "object",
2931
+ "description": "Standard error response returned when an API request fails.\nContains a human-readable message describing the error.\n",
2609
2932
  "properties": {
2610
2933
  "message": {
2611
- "type": "string"
2934
+ "type": "string",
2935
+ "description": "Human-readable description of the error that occurred",
2936
+ "example": "Validation failed: workflowId is required"
2612
2937
  }
2613
- }
2938
+ },
2939
+ "required": [
2940
+ "message"
2941
+ ]
2614
2942
  },
2615
2943
  "ClosingReasonResp": {
2616
2944
  "type": "object",
@@ -2944,19 +3272,23 @@
2944
3272
  },
2945
3273
  "StartFlowReq": {
2946
3274
  "type": "object",
3275
+ "description": "Request payload for starting a new flow execution from a template.\n",
2947
3276
  "required": [
2948
3277
  "flow_template_id",
2949
3278
  "contexts"
2950
3279
  ],
2951
3280
  "properties": {
2952
3281
  "flow_template_id": {
2953
- "type": "string"
3282
+ "type": "string",
3283
+ "description": "The unique identifier of the flow template (definition) to instantiate.\nThe template must exist and be accessible within the organization.\n",
3284
+ "example": "tpl_abc123def456"
2954
3285
  },
2955
3286
  "trigger": {
2956
3287
  "$ref": "#/components/schemas/FlowTrigger"
2957
3288
  },
2958
3289
  "contexts": {
2959
3290
  "type": "array",
3291
+ "description": "Entity references that this execution is linked to. At least one context\nis required. The primary context (is_primary: true) is used for condition\nevaluation and data mapping.\n",
2960
3292
  "minItems": 1,
2961
3293
  "items": {
2962
3294
  "$ref": "#/components/schemas/FlowContext"
@@ -2967,7 +3299,7 @@
2967
3299
  "items": {
2968
3300
  "type": "string"
2969
3301
  },
2970
- "description": "An array of purposes to filter workflow phases."
3302
+ "description": "Taxonomy purpose IDs to filter which phases and tasks are included in the execution.\nOnly phases/tasks tagged with matching purposes will be active. If empty or omitted,\nall phases and tasks from the template are included.\n"
2971
3303
  }
2972
3304
  }
2973
3305
  },
@@ -3101,6 +3433,11 @@
3101
3433
  "properties": {
3102
3434
  "id": {
3103
3435
  "$ref": "#/components/schemas/TaskId"
3436
+ },
3437
+ "crt_since": {
3438
+ "type": "string",
3439
+ "format": "date-time",
3440
+ "description": "Timestamp when this task entered crt_tasks (i.e. became current). Used by the flow-healing-service as the authoritative gate for \"has this PENDING task been stuck long enough to heal?\". Using the task's own analytics.status_updated_at as the gate produced false positives because transitioning a task INTO crt_tasks does not change its status — so that timestamp can be hours old for a freshly-current task."
3104
3441
  }
3105
3442
  }
3106
3443
  }
@@ -3410,6 +3747,10 @@
3410
3747
  "schedule_id": {
3411
3748
  "type": "string",
3412
3749
  "description": "The id of the created schedule"
3750
+ },
3751
+ "scheduled_at": {
3752
+ "type": "string",
3753
+ "description": "The resolved absolute timestamp (ISO 8601, UTC) at which the task is\narmed to run. Set by the backend when the schedule is armed and the\ntask transitions to SCHEDULED. Absent while the task is still\npending/unscheduled.\n\nNote: intentionally typed as plain `string` (not\n`format: date-time`). `schedule` is embedded in the AutomationTask /\nDecisionTask schemas; if a future request body ever accepts a task\n(or schedule) and `safeParse`s it, `format: date-time` would make\nopenapi-zod-client emit `z.string().datetime({ offset: true })` and\nreject any round-tripped value that is empty or tz-less — the exact\nmechanism behind the May 2026 due_date incident (513ed597 added the\nformat, ee574b43 activated it via an unrelated regen; see commit\n2c91ff35). This field is server-written via `toISOString()` so it is\nalways a valid UTC instant; the datetime validator adds no\nprotection, only latent risk.\n"
3413
3754
  }
3414
3755
  }
3415
3756
  },
@@ -3467,6 +3808,10 @@
3467
3808
  "schedule_id": {
3468
3809
  "type": "string",
3469
3810
  "description": "The id of the created schedule"
3811
+ },
3812
+ "scheduled_at": {
3813
+ "type": "string",
3814
+ "description": "The resolved absolute timestamp (ISO 8601, UTC) at which the task is\narmed to run. Set by the backend when the schedule is armed and the\ntask transitions to SCHEDULED. Absent while the task is still\npending/unscheduled.\n\nNote: intentionally typed as plain `string` (not\n`format: date-time`). `schedule` is embedded in the AutomationTask /\nDecisionTask schemas; if a future request body ever accepts a task\n(or schedule) and `safeParse`s it, `format: date-time` would make\nopenapi-zod-client emit `z.string().datetime({ offset: true })` and\nreject any round-tripped value that is empty or tz-less — the exact\nmechanism behind the May 2026 due_date incident (513ed597 added the\nformat, ee574b43 activated it via an unrelated regen; see commit\n2c91ff35). This field is server-written via `toISOString()` so it is\nalways a valid UTC instant; the datetime validator adds no\nprotection, only latent risk.\n"
3470
3815
  }
3471
3816
  },
3472
3817
  "required": [
@@ -3576,6 +3921,10 @@
3576
3921
  },
3577
3922
  "error_reason": {
3578
3923
  "type": "string"
3924
+ },
3925
+ "outcome": {
3926
+ "type": "string",
3927
+ "description": "Server-computed outcome read from the agent execution's structured_output (e.g. assigned, recommended, no_eligible_partner, missing_input). When the outcome means the work is not really done (no_eligible_partner, missing_input) the task is held as the current task instead of auto-completing, so the phase does not advance."
3579
3928
  }
3580
3929
  }
3581
3930
  },
@@ -3767,6 +4116,15 @@
3767
4116
  },
3768
4117
  "input_context": {
3769
4118
  "$ref": "#/components/schemas/AutomationInputContext"
4119
+ },
4120
+ "heal_attempts": {
4121
+ "type": "integer",
4122
+ "description": "Internal — number of times flow-healing-service has attempted to re-trigger this task's lost automation dispatch. Used to cap retries and avoid an indefinite heal-on-every-read storm against a deterministically-failing automation flow."
4123
+ },
4124
+ "last_heal_attempted_at": {
4125
+ "type": "string",
4126
+ "format": "date-time",
4127
+ "description": "Internal — timestamp of the most recent heal attempt for this task. flow-healing-service uses this as a per-task debounce gate so the heal cannot fire more than once per HEAL_RETRY_COOLDOWN_MS regardless of how often the flow execution is read."
3770
4128
  }
3771
4129
  },
3772
4130
  "required": [
@@ -3978,6 +4336,22 @@
3978
4336
  "deleted"
3979
4337
  ]
3980
4338
  },
4339
+ "attributes": {
4340
+ "type": "array",
4341
+ "maxItems": 10,
4342
+ "items": {
4343
+ "type": "string"
4344
+ },
4345
+ "description": "Multi-attribute mode. When present and length > 1, the statement is\nevaluated against every listed attribute and combined via\n`attributes_match`. All listed attributes must share the same\n`attribute_type`. Mutually exclusive with `attribute_sub_field`,\n`date_offset`, and `attribute_operation`. When absent or length === 1,\nthe legacy `attribute` field is used.\n"
4346
+ },
4347
+ "attributes_match": {
4348
+ "type": "string",
4349
+ "enum": [
4350
+ "any",
4351
+ "all"
4352
+ ],
4353
+ "description": "Inner connector across `attributes`. `any` (default) means at least\none attribute must satisfy the operator; `all` means every attribute\nmust satisfy it. Ignored when `attributes` is absent or has length < 2.\n"
4354
+ },
3981
4355
  "attribute_sub_field": {
3982
4356
  "type": "string",
3983
4357
  "description": "For complex attribute types, specifies which sub-field to extract (e.g., 'address', 'name', 'email_type')"
@@ -4062,7 +4436,8 @@
4062
4436
  "hours",
4063
4437
  "days",
4064
4438
  "weeks",
4065
- "months"
4439
+ "months",
4440
+ "years"
4066
4441
  ]
4067
4442
  },
4068
4443
  "EnableRequirement": {
@@ -4139,16 +4514,20 @@
4139
4514
  },
4140
4515
  "PatchTaskReq": {
4141
4516
  "type": "object",
4517
+ "description": "Request payload for updating a task within a flow execution.\nAll fields are optional; only provided fields will be updated.\n",
4142
4518
  "properties": {
4143
4519
  "name": {
4144
- "type": "string"
4520
+ "type": "string",
4521
+ "description": "Display name of the task",
4522
+ "example": "Review customer application"
4145
4523
  },
4146
4524
  "status": {
4147
4525
  "$ref": "#/components/schemas/StepStatus"
4148
4526
  },
4149
4527
  "due_date": {
4150
4528
  "type": "string",
4151
- "example": "2021-04-27T12:00:00.000Z"
4529
+ "description": "Explicit due date for the task. Takes precedence over\ndue_date_config if both are provided.\n\nNote: intentionally typed as plain `string` (not\n`format: date-time`). For day/week/month-precision due\ndates the server stores a \"floating\" datetime without a\ntimezone designator (e.g. `2026-05-28T00:00:00.000`) so\nthat the UI can render it as a date in the user's local\ntimezone without shifting the displayed day. Tightening\nthis to `format: date-time` causes openapi-zod-client to\nemit `z.string().datetime({ offset: true })` in\n`validators-generated.ts`, which then trips\n`safeParse(body)` in `patch-task.ts` whenever the\nsidebar sends a stored task back with a tz-less\n`due_date`. See commit 4aca299c (Aug 2024) for the\noriginal date-only display rationale and the May 2026\nincident (513ed597 added the format, ee574b43\nunintentionally activated it via an unrelated regen) for\nthe history. Long-term, day-precision due dates should\nmigrate to a separate `format: date` field.\n",
4530
+ "example": "2026-05-28T00:00:00.000"
4152
4531
  },
4153
4532
  "due_date_config": {
4154
4533
  "$ref": "#/components/schemas/DueDateConfig"
@@ -4158,7 +4537,7 @@
4158
4537
  },
4159
4538
  "enabled": {
4160
4539
  "type": "boolean",
4161
- "description": "flag for controlling enabled/disabled state of the task"
4540
+ "description": "Controls whether the task is enabled (can be worked on) or disabled (grayed out).\nDisabled tasks cannot have their status changed until re-enabled.\n"
4162
4541
  },
4163
4542
  "automation_config": {
4164
4543
  "$ref": "#/components/schemas/AutomationInfo"
@@ -4178,11 +4557,17 @@
4178
4557
  },
4179
4558
  "next_condition_id": {
4180
4559
  "type": "string",
4181
- "description": "Condition to evaluate as true for a decision task with a manual trigger mode"
4560
+ "description": "For decision tasks with manual trigger mode, specifies which condition/branch\nto follow when completing the task. The condition ID must match one of the\nconditions defined on the decision task.\n",
4561
+ "example": "cond_branch_approved"
4182
4562
  },
4183
4563
  "revert_execution": {
4184
4564
  "type": "boolean",
4185
- "description": "When patching an already completed/skipped task that comes before the current task, this flag controls whether to revert the execution:\n- `true`: The patched task becomes the current task AND all succeeding tasks are reset to PENDING (full revert)\n- `false` or omitted (undefined): The task is updated but the current task does not change and no downstream tasks are affected\nThis parameter is silently ignored when patching the current task or future tasks.\n",
4565
+ "description": "Controls behavior when updating a task that was already completed/skipped and\ncomes before the current task in the workflow:\n- `true`: Reverts the execution - the patched task becomes the current task\n and all subsequent tasks are reset to PENDING status\n- `false` (default): Updates only this task without affecting workflow position\n or other tasks\n\n**Important:** This parameter is silently ignored when:\n- Patching the current task\n- Patching future tasks (tasks that haven't been reached yet)\n",
4566
+ "default": false
4567
+ },
4568
+ "completed_via_journey": {
4569
+ "type": "boolean",
4570
+ "description": "Request-only signal indicating the task is being completed as a\nresult of the user submitting the task's linked journey (journey\nauto-completion). When `true` and the task transitions to\n`COMPLETED`, the activity log records a journey-specific message\ninstead of the generic completion message. Not persisted on the task.\n",
4186
4571
  "default": false
4187
4572
  }
4188
4573
  }