@epilot/sdk 2.20.85 → 2.20.86
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.
- package/definitions/automation-runtime.json +1 -1
- package/definitions/automation.json +294 -17
- package/definitions/workflow-definition.json +686 -12
- package/dist/apis/access-token.cjs +6 -6
- package/dist/apis/access-token.js +1 -1
- package/dist/apis/address-suggestions.cjs +6 -6
- package/dist/apis/address-suggestions.js +1 -1
- package/dist/apis/address.cjs +6 -6
- package/dist/apis/address.js +1 -1
- package/dist/apis/ai-agents.cjs +6 -6
- package/dist/apis/ai-agents.js +1 -1
- package/dist/apis/app.cjs +6 -6
- package/dist/apis/app.js +1 -1
- package/dist/apis/audit-logs.cjs +6 -6
- package/dist/apis/audit-logs.js +1 -1
- package/dist/apis/automation.cjs +8 -8
- package/dist/apis/automation.d.cts +2 -2
- package/dist/apis/automation.d.ts +2 -2
- package/dist/apis/automation.js +2 -2
- package/dist/apis/billing.cjs +6 -6
- package/dist/apis/billing.js +1 -1
- package/dist/apis/blueprint-manifest.cjs +6 -6
- package/dist/apis/blueprint-manifest.js +1 -1
- package/dist/apis/calendar.cjs +6 -6
- package/dist/apis/calendar.js +1 -1
- package/dist/apis/chat.cjs +6 -6
- package/dist/apis/chat.js +1 -1
- package/dist/apis/configuration-hub.cjs +6 -6
- package/dist/apis/configuration-hub.js +1 -1
- package/dist/apis/consent.cjs +6 -6
- package/dist/apis/consent.js +1 -1
- package/dist/apis/customer-portal.cjs +6 -6
- package/dist/apis/customer-portal.js +1 -1
- package/dist/apis/dashboard.cjs +6 -6
- package/dist/apis/dashboard.js +1 -1
- package/dist/apis/data-governance.cjs +6 -6
- package/dist/apis/data-governance.js +1 -1
- package/dist/apis/deduplication.cjs +6 -6
- package/dist/apis/deduplication.js +1 -1
- package/dist/apis/design.cjs +6 -6
- package/dist/apis/design.js +1 -1
- package/dist/apis/document.cjs +6 -6
- package/dist/apis/document.js +1 -1
- package/dist/apis/email-settings.cjs +6 -6
- package/dist/apis/email-settings.js +1 -1
- package/dist/apis/email-template.cjs +6 -6
- package/dist/apis/email-template.js +1 -1
- package/dist/apis/entity-mapping.cjs +6 -6
- package/dist/apis/entity-mapping.js +1 -1
- package/dist/apis/entity.cjs +6 -6
- package/dist/apis/entity.js +1 -1
- package/dist/apis/environments.cjs +6 -6
- package/dist/apis/environments.js +1 -1
- package/dist/apis/event-catalog.cjs +6 -6
- package/dist/apis/event-catalog.js +1 -1
- package/dist/apis/external-values.cjs +6 -6
- package/dist/apis/external-values.js +1 -1
- package/dist/apis/file.cjs +6 -6
- package/dist/apis/file.js +1 -1
- package/dist/apis/iban.cjs +6 -6
- package/dist/apis/iban.js +1 -1
- package/dist/apis/identity.cjs +6 -6
- package/dist/apis/identity.js +1 -1
- package/dist/apis/integration-toolkit.cjs +6 -6
- package/dist/apis/integration-toolkit.js +1 -1
- package/dist/apis/journey.cjs +6 -6
- package/dist/apis/journey.js +1 -1
- package/dist/apis/kanban.cjs +6 -6
- package/dist/apis/kanban.js +1 -1
- package/dist/apis/message.cjs +6 -6
- package/dist/apis/message.js +1 -1
- package/dist/apis/metering.cjs +6 -6
- package/dist/apis/metering.js +1 -1
- package/dist/apis/notes.cjs +6 -6
- package/dist/apis/notes.js +1 -1
- package/dist/apis/notification.cjs +6 -6
- package/dist/apis/notification.js +1 -1
- package/dist/apis/organization.cjs +6 -6
- package/dist/apis/organization.js +1 -1
- package/dist/apis/partner-directory.cjs +6 -6
- package/dist/apis/partner-directory.js +1 -1
- package/dist/apis/permissions.cjs +6 -6
- package/dist/apis/permissions.js +1 -1
- package/dist/apis/phone-integration.cjs +6 -6
- package/dist/apis/phone-integration.js +1 -1
- package/dist/apis/pricing-tier.cjs +6 -6
- package/dist/apis/pricing-tier.js +1 -1
- package/dist/apis/pricing.cjs +6 -6
- package/dist/apis/pricing.js +1 -1
- package/dist/apis/purpose.cjs +6 -6
- package/dist/apis/purpose.js +1 -1
- package/dist/apis/query.cjs +6 -6
- package/dist/apis/query.js +1 -1
- package/dist/apis/sandbox.cjs +6 -6
- package/dist/apis/sandbox.js +1 -1
- package/dist/apis/sharing.cjs +6 -6
- package/dist/apis/sharing.js +1 -1
- package/dist/apis/snapshot.cjs +6 -6
- package/dist/apis/snapshot.js +1 -1
- package/dist/apis/submission.cjs +6 -6
- package/dist/apis/submission.js +1 -1
- package/dist/apis/target.cjs +6 -6
- package/dist/apis/target.js +1 -1
- package/dist/apis/targeting.cjs +6 -6
- package/dist/apis/targeting.js +1 -1
- package/dist/apis/template-variables.cjs +6 -6
- package/dist/apis/template-variables.js +1 -1
- package/dist/apis/user.cjs +6 -6
- package/dist/apis/user.js +1 -1
- package/dist/apis/validation-rules.cjs +6 -6
- package/dist/apis/validation-rules.js +1 -1
- package/dist/apis/webhooks.cjs +6 -6
- package/dist/apis/webhooks.js +1 -1
- package/dist/apis/workflow-definition.cjs +6 -6
- package/dist/apis/workflow-definition.d.cts +2 -2
- package/dist/apis/workflow-definition.d.ts +2 -2
- package/dist/apis/workflow-definition.js +1 -1
- package/dist/apis/workflow.cjs +6 -6
- package/dist/apis/workflow.js +1 -1
- package/dist/automation-KNJZDJD7.cjs +7 -0
- package/dist/automation-RKVFGJTO.js +7 -0
- package/dist/{automation-runtime-KLCXZKEC.cjs → automation-runtime-7LXZ343U.cjs} +2 -2
- package/dist/{automation-runtime-Y52HM57N.js → automation-runtime-JZKABTGP.js} +1 -1
- package/dist/{automation.d-B8g3nYp-.d.cts → automation.d-cTvIBxDI.d.cts} +514 -26
- package/dist/{automation.d-B8g3nYp-.d.ts → automation.d-cTvIBxDI.d.ts} +514 -26
- package/dist/{chunk-7T4BNWMN.js → chunk-2AWPRVIH.js} +3 -3
- package/dist/{chunk-WOUASZJW.cjs → chunk-EIT2JFPB.cjs} +1 -1
- package/dist/{chunk-QW3ROE6H.js → chunk-JKCBMHOZ.js} +1 -1
- package/dist/{chunk-ZSZ4IWLQ.cjs → chunk-NMY7ACYO.cjs} +3 -3
- package/dist/index.cjs +10 -10
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/workflow-definition-46NTR2N5.cjs +7 -0
- package/dist/workflow-definition-BSY2BNM2.js +7 -0
- package/dist/{workflow-definition.d-CweGhhBU.d.ts → workflow-definition.d-Be0CM3Py.d.cts} +574 -10
- package/dist/{workflow-definition.d-CweGhhBU.d.cts → workflow-definition.d-Be0CM3Py.d.ts} +574 -10
- package/docs/automation.md +267 -26
- package/docs/workflow-definition.md +840 -138
- package/package.json +1 -1
- package/dist/automation-G2CKAQNB.cjs +0 -7
- package/dist/automation-UPTNUOYO.js +0 -7
- package/dist/workflow-definition-MSO4JDA3.js +0 -7
- package/dist/workflow-definition-XTWO4RMY.cjs +0 -7
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import "./chunk-YPSWSI3M.js";
|
|
2
|
-
|
|
3
|
-
// src/docs/automation.json
|
|
4
|
-
var automation_default = '# Automation API\n\n- **Base URL:** `https://automation.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/automation](https://docs.epilot.io/api/automation)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.automation.searchFlows(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/automation\'\n\nconst automationClient = getClient()\nauthorize(automationClient, () => \'<token>\')\nconst { data } = await automationClient.searchFlows(...)\n```\n\n## Operations\n\n**flows**\n- [`searchFlows`](#searchflows)\n- [`createFlow`](#createflow)\n- [`batchGetFlows`](#batchgetflows)\n- [`getFlow`](#getflow)\n- [`putFlow`](#putflow)\n- [`deleteFlow`](#deleteflow)\n\n**executions**\n- [`getExecutions`](#getexecutions)\n- [`startExecution`](#startexecution)\n- [`searchExecutions`](#searchexecutions)\n- [`getExecution`](#getexecution)\n- [`cancelExecution`](#cancelexecution)\n- [`retriggerAction`](#retriggeraction)\n- [`resumeExecutionWithToken`](#resumeexecutionwithtoken)\n- [`cancelSchedule`](#cancelschedule)\n\n**bulk**\n- [`bulkTriggerExecutions`](#bulktriggerexecutions)\n- [`getBulkJob`](#getbulkjob)\n- [`patchBulkJob`](#patchbulkjob)\n\n**Schemas**\n- [`AutomationFlowId`](#automationflowid)\n- [`AutomationActionId`](#automationactionid)\n- [`AutomationFlow`](#automationflow)\n- [`WorkflowContextRole`](#workflowcontextrole)\n- [`SearchAutomationsResp`](#searchautomationsresp)\n- [`JourneyContextUsagesReq`](#journeycontextusagesreq)\n- [`JourneyContextUsage`](#journeycontextusage)\n- [`JourneyContextUsagesResp`](#journeycontextusagesresp)\n- [`AnyTrigger`](#anytrigger)\n- [`AnyAction`](#anyaction)\n- [`AnyActionConfig`](#anyactionconfig)\n- [`AutomationActionConfig`](#automationactionconfig)\n- [`AutomationLoop`](#automationloop)\n- [`AutomationActionExecutionState`](#automationactionexecutionstate)\n- [`AutomationActionIteration`](#automationactioniteration)\n- [`RetryStrategy`](#retrystrategy)\n- [`AutomationAction`](#automationaction)\n- [`ErrorOutput`](#erroroutput)\n- [`ErrorCode`](#errorcode)\n- [`ErrorDetail`](#errordetail)\n- [`CartCheckoutActionConfig`](#cartcheckoutactionconfig)\n- [`CartCheckoutAction`](#cartcheckoutaction)\n- [`CartCheckoutConfig`](#cartcheckoutconfig)\n- [`MapEntityActionConfig`](#mapentityactionconfig)\n- [`MapEntityAction`](#mapentityaction)\n- [`MapEntityConfig`](#mapentityconfig)\n- [`GraphContextEntry`](#graphcontextentry)\n- [`GraphSeed`](#graphseed)\n- [`GraphDefinition`](#graphdefinition)\n- [`GraphNode`](#graphnode)\n- [`GraphNodeFilter`](#graphnodefilter)\n- [`GraphEdge`](#graphedge)\n- [`MappingConfigRef`](#mappingconfigref)\n- [`RelationAttribute`](#relationattribute)\n- [`MappingAttributeV2`](#mappingattributev2)\n- [`OperationNode`](#operationnode)\n- [`OperationObjectNode`](#operationobjectnode)\n- [`PrimitiveJSONValue`](#primitivejsonvalue)\n- [`MappingAttribute`](#mappingattribute)\n- [`MappingAttributeMode`](#mappingattributemode)\n- [`SetValueMapper`](#setvaluemapper)\n- [`CopyValueMapper`](#copyvaluemapper)\n- [`AppendValueMapper`](#appendvaluemapper)\n- [`MoveThreadAction`](#movethreadaction)\n- [`AssignThreadAction`](#assignthreadaction)\n- [`MoveThreadConfig`](#movethreadconfig)\n- [`AssignThreadConfig`](#assignthreadconfig)\n- [`EntityAssignee`](#entityassignee)\n- [`AssignEntityConfig`](#assignentityconfig)\n- [`AssignEntityActionConfig`](#assignentityactionconfig)\n- [`AssignEntityAction`](#assignentityaction)\n- [`SendEmailActionConfig`](#sendemailactionconfig)\n- [`SendEmailAction`](#sendemailaction)\n- [`ForwardEmailActionConfig`](#forwardemailactionconfig)\n- [`ForwardEmailAction`](#forwardemailaction)\n- [`ForwardEmailConfig`](#forwardemailconfig)\n- [`ReplyEmailActionConfig`](#replyemailactionconfig)\n- [`ReplyEmailAction`](#replyemailaction)\n- [`ReplyEmailConfig`](#replyemailconfig)\n- [`SendEmailConfig`](#sendemailconfig)\n- [`SendEmailCondition`](#sendemailcondition)\n- [`CreateDocumentActionConfig`](#createdocumentactionconfig)\n- [`CreateDocumentAction`](#createdocumentaction)\n- [`CreateDocumentConfig`](#createdocumentconfig)\n- [`TriggerWorkflowActionConfig`](#triggerworkflowactionconfig)\n- [`TriggerWorkflowAction`](#triggerworkflowaction)\n- [`TriggerWorkflowConfig`](#triggerworkflowconfig)\n- [`TriggerWorkflowCondition`](#triggerworkflowcondition)\n- [`TriggerShareEntityActionConfig`](#triggershareentityactionconfig)\n- [`TriggerShareEntityAction`](#triggershareentityaction)\n- [`TriggerShareEntityConfig`](#triggershareentityconfig)\n- [`AssignUsersToStep`](#assignuserstostep)\n- [`CustomAction`](#customaction)\n- [`TriggerWebhookActionConfig`](#triggerwebhookactionconfig)\n- [`TriggerWebhookAction`](#triggerwebhookaction)\n- [`TriggerWebhookConfig`](#triggerwebhookconfig)\n- [`InformERPActionConfig`](#informerpactionconfig)\n- [`InformERPAction`](#informerpaction)\n- [`InformERPConfig`](#informerpconfig)\n- [`TriggerEventActionConfig`](#triggereventactionconfig)\n- [`TriggerEventAction`](#triggereventaction)\n- [`TriggerEventConfig`](#triggereventconfig)\n- [`FlowExecutionCancelActionConfig`](#flowexecutioncancelactionconfig)\n- [`FlowExecutionCancelAction`](#flowexecutioncancelaction)\n- [`FlowExecutionCancelConfig`](#flowexecutioncancelconfig)\n- [`CancellationReason`](#cancellationreason)\n- [`ConditionStatement`](#conditionstatement)\n- [`ActionCondition`](#actioncondition)\n- [`ActionScheduleSource`](#actionschedulesource)\n- [`ActionSchedule`](#actionschedule)\n- [`AutomationExecutionId`](#automationexecutionid)\n- [`AutomationExecution`](#automationexecution)\n- [`AutomationLoopState`](#automationloopstate)\n- [`WorkflowExecutionContext`](#workflowexecutioncontext)\n- [`WorkflowWaitContext`](#workflowwaitcontext)\n- [`ExecutionChain`](#executionchain)\n- [`TriggerEventManual`](#triggereventmanual)\n- [`TriggerEventFlowAutomationTask`](#triggereventflowautomationtask)\n- [`TriggerEventEntityActivity`](#triggerevententityactivity)\n- [`TriggerEventMessaging`](#triggereventmessaging)\n- [`TriggerEventEntityOperation`](#triggerevententityoperation)\n- [`TriggerEventEventCatalog`](#triggereventeventcatalog)\n- [`TriggerEventPayloadRef`](#triggereventpayloadref)\n- [`ApiCallerContext`](#apicallercontext)\n- [`ExecutionStatus`](#executionstatus)\n- [`GetExecutionsResp`](#getexecutionsresp)\n- [`SearchExecutionsReq`](#searchexecutionsreq)\n- [`SearchExecutionsResp`](#searchexecutionsresp)\n- [`StartExecutionRequest`](#startexecutionrequest)\n- [`ActionInputs`](#actioninputs)\n- [`SendEmailInputs`](#sendemailinputs)\n- [`FlowExecutionCancelInputs`](#flowexecutioncancelinputs)\n- [`PatchBulkJobRequest`](#patchbulkjobrequest)\n- [`BulkTriggerRequest`](#bulktriggerrequest)\n- [`EntityRef`](#entityref)\n- [`BulkTriggerJob`](#bulktriggerjob)\n- [`ExecItem`](#execitem)\n- [`JobId`](#jobid)\n- [`EntityId`](#entityid)\n- [`ActivityId`](#activityid)\n- [`OrganizationId`](#organizationid)\n- [`TriggerContext`](#triggercontext)\n- [`AutomationTrigger`](#automationtrigger)\n- [`FlowsTrigger`](#flowstrigger)\n- [`JourneySubmitTrigger`](#journeysubmittrigger)\n- [`FrontendSubmitTrigger`](#frontendsubmittrigger)\n- [`ApiSubmissionTrigger`](#apisubmissiontrigger)\n- [`NewEmailThreadTrigger`](#newemailthreadtrigger)\n- [`ReceivedEmailTrigger`](#receivedemailtrigger)\n- [`EntityOperationTrigger`](#entityoperationtrigger)\n- [`ActivityTrigger`](#activitytrigger)\n- [`EntityOperation`](#entityoperation)\n- [`EntitySearchFilter`](#entitysearchfilter)\n- [`EntitySearchFilterValue`](#entitysearchfiltervalue)\n- [`EntityManualTrigger`](#entitymanualtrigger)\n- [`EventCatalogTrigger`](#eventcatalogtrigger)\n- [`TriggerCondition`](#triggercondition)\n- [`Comparison`](#comparison)\n- [`FilterConditionOnEvent`](#filterconditiononevent)\n- [`EqualsIgnoreCaseCondition`](#equalsignorecasecondition)\n- [`AnythingButCondition`](#anythingbutcondition)\n- [`NumericCondition`](#numericcondition)\n- [`ExistsCondition`](#existscondition)\n- [`PrefixCondition`](#prefixcondition)\n- [`SuffixCondition`](#suffixcondition)\n- [`WildcardCondition`](#wildcardcondition)\n- [`OrCondition`](#orcondition)\n- [`DiffAdded`](#diffadded)\n- [`DiffUpdated`](#diffupdated)\n- [`DiffDeleted`](#diffdeleted)\n- [`OrConditionForDiff`](#orconditionfordiff)\n- [`EntityItemSnapshot`](#entityitemsnapshot)\n- [`RetryReq`](#retryreq)\n- [`ResumeToken`](#resumetoken)\n- [`ResumeReq`](#resumereq)\n- [`ResumeResp`](#resumeresp)\n- [`ErrorObject`](#errorobject)\n\n### `searchFlows`\n\nSearch available automation flows\n\n`GET /v1/automation/flows`\n\n```ts\nconst { data } = await client.searchFlows({\n schema: \'example\',\n size: 1,\n from: 1,\n trigger_source_id: \'example\',\n target_workflow: \'example\',\n trigger_event_name: \'example\',\n include_flows: true,\n})\n```\n\n---\n\n### `createFlow`\n\nCreate new automation flow\n\n`POST /v1/automation/flows`\n\n```ts\nconst { data } = await client.createFlow()\n```\n\n---\n\n### `batchGetFlows`\n\nGet multiple automation flows by their IDs\n\n`POST /v1/automation/flows:batchGet`\n\n```ts\nconst { data } = await client.batchGetFlows(\n null,\n {\n ids: [\'7791b04a-16d2-44a2-9af9-2d59c25c512f\']\n },\n)\n```\n\n---\n\n### `getFlow`\n\nList available automation flows\n\n`GET /v1/automation/flows/{flow_id}`\n\n```ts\nconst { data } = await client.getFlow({\n flow_id: \'example\',\n})\n```\n\n---\n\n### `putFlow`\n\nUpdate automation flow by id\n\n`PUT /v1/automation/flows/{flow_id}`\n\n```ts\nconst { data } = await client.putFlow({\n flow_id: \'example\',\n})\n```\n\n---\n\n### `deleteFlow`\n\nUpdate automation flow by id\n\n`DELETE /v1/automation/flows/{flow_id}`\n\n```ts\nconst { data } = await client.deleteFlow({\n flow_id: \'example\',\n})\n```\n\n---\n\n### `getExecutions`\n\nList automation executions\n\n`GET /v1/automation/executions`\n\n```ts\nconst { data } = await client.getExecutions({\n entity_id: \'example\',\n size: 1,\n from: 1,\n include_flows: true,\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "total": 0,\n "results": [\n {\n "id": "9baf184f-bc81-4128-bca3-d974c90a12c4",\n "execution_status": "pending",\n "entity_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "activity_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "entity_snapshot": {},\n "org_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "flow_id": "7791b04a-16d2-44a2-9af9-2d59c25c512f",\n "flow_name": "Handle contact form",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "current_action_id": "9ec3711b-db63-449c-b894-54d5bb622a8f",\n "conditions": [],\n "schedules": [],\n "actions": [],\n "action_inputs": {},\n "resume_token": "eyJraWQiOiJrZXkifQ==",\n "trigger_context": {},\n "version": 2,\n "trigger_event": {},\n "workflow_context": {},\n "workflow_wait_context": {},\n "loops": [],\n "loop_state": {},\n "chain": ["string"]\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `startExecution`\n\nStart new automation execution\n\n`POST /v1/automation/executions`\n\n```ts\nconst { data } = await client.startExecution(\n null,\n {\n entity_id: \'e3d3ebac-baab-4395-abf4-50b5bf1f8b74\',\n flow_id: \'7791b04a-16d2-44a2-9af9-2d59c25c512f\',\n workflow_context: {\n workflow_exec_id: \'string\',\n workflow_exec_task_id: \'string\',\n workflow_role: \'trigger_workflow\',\n _execution_chain: {\n parent_execution_id: \'string\',\n parent_task_id: \'string\',\n depth: 0\n },\n _automation_chain: [\'string\'],\n entity_contexts: [\n {\n entity_id: \'string\',\n entity_schema: \'string\',\n is_primary: true\n }\n ],\n trigger_user_id: \'10006129\'\n },\n flow_execution_id: \'string\',\n flow_automation_task_id: \'string\',\n action_inputs: {\n \'cancel-flow-execution\': {\n selected_reasons: [\n {\n id: \'_6kITMwkv_0Uo4i7fO7Ja\',\n title: \'Process completed successfully\'\n }\n ],\n extra_description: \'string\'\n },\n \'send-email\': {\n subject: \'string\',\n body: \'string\',\n attachment_entity_ids: [\'string\']\n }\n }\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "9baf184f-bc81-4128-bca3-d974c90a12c4",\n "execution_status": "pending",\n "entity_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "activity_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "entity_snapshot": {\n "_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "_title": "string",\n "_org": "string",\n "_schema": "string",\n "_tags": ["string"],\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z"\n },\n "org_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "flow_id": "7791b04a-16d2-44a2-9af9-2d59c25c512f",\n "flow_name": "Handle contact form",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "current_action_id": "9ec3711b-db63-449c-b894-54d5bb622a8f",\n "conditions": [\n {\n "id": "string",\n "schedule_id": "string",\n "evaluation_order": "AFTER_SCHEDULE",\n "evaluationResult": true,\n "error_output": {},\n "allow_failure": true,\n "statements": []\n }\n ],\n "schedules": [\n {\n "id": "string",\n "scheduleApiId": "string",\n "numberOfUnits": 0,\n "timePeriod": "minutes",\n "timeRelation": "after",\n "source": {}\n }\n ],\n "actions": [\n {\n "id": "9ec3711b-db63-449c-b894-54d5bb622a8f",\n "flow_action_id": "9ec3711b-db63-449c-b894-54d5bb622a8f",\n "name": "string",\n "type": "map-entity",\n "config": {},\n "allow_failure": true,\n "created_automatically": true,\n "is_bulk_action": true,\n "reason": {},\n "condition_id": "string",\n "schedule_id": "string",\n "loop_id": "string",\n "execution_status": "pending",\n "started_at": "string",\n "updated_at": "string",\n "outputs": {},\n "error_output": {},\n "retry_strategy": "RETRY_AND_RESUME",\n "iterations": []\n },\n {\n "id": "9ec3711b-db63-449c-b894-54d5bb622a8f",\n "flow_action_id": "9ec3711b-db63-449c-b894-54d5bb622a8f",\n "name": "string",\n "type": "trigger-workflow",\n "config": {},\n "allow_failure": true,\n "created_automatically": true,\n "is_bulk_action": true,\n "reason": {},\n "condition_id": "string",\n "schedule_id": "string",\n "loop_id": "string",\n "execution_status": "pending",\n "started_at": "string",\n "updated_at": "string",\n "outputs": {},\n "error_output": {},\n "retry_strategy": "RETRY_AND_RESUME",\n "iterations": []\n }\n ],\n "action_inputs": {\n "cancel-flow-execution": {\n "selected_reasons": [],\n "extra_description": "string"\n },\n "send-email": {\n "subject": "string",\n "body": "string",\n "attachment_entity_ids": ["string"]\n }\n },\n "resume_token": "eyJraWQiOiJrZXkifQ==",\n "trigger_context": {\n "entity_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef"\n },\n "version": 2,\n "trigger_event": {\n "type": "manual",\n "org_id": "123",\n "entity_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "caller": {\n "EpilotAuth": {}\n }\n },\n "workflow_context": {\n "workflow_exec_id": "string",\n "workflow_exec_task_id": "string",\n "workflow_role": "trigger_workflow",\n "_execution_chain": {\n "parent_execution_id": "string",\n "parent_task_id": "string",\n "depth": 0\n },\n "_automation_chain": ["string"],\n "entity_contexts": [\n {}\n ],\n "trigger_user_id": "10006129"\n },\n "workflow_wait_context": {\n "workflow_execution_id": "string",\n "workflow_task_id": "string",\n "source": "journey_submission"\n },\n "loops": [\n {\n "id": "loop_contracts",\n "source_path": "submission.steps[0][\'Contracts\']",\n "source_type": "journey-multi-select",\n "filter_tags": ["_hidden_ 2a4b1c3d-0000-4000-8000-000000000000 - Dokumente"],\n "length": 0\n }\n ],\n "loop_state": {},\n "chain": ["string"]\n}\n```\n\n</details>\n\n---\n\n### `searchExecutions`\n\nSearch automation executions of an entity with cursor-based pagination.\nReturns pages of up to 100 executions, newest first.\nPrefer this over GET /v1/automation/executions, which returns the full\nexec\n\n`POST /v1/automation/executions:search`\n\n```ts\nconst { data } = await client.searchExecutions(\n null,\n {\n entity_id: \'e3d3ebac-baab-4395-abf4-50b5bf1f8b74\',\n include_flows: false,\n size: 25,\n cursor: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "total": 0,\n "results": [\n {\n "id": "9baf184f-bc81-4128-bca3-d974c90a12c4",\n "execution_status": "pending",\n "entity_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "activity_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "entity_snapshot": {},\n "org_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "flow_id": "7791b04a-16d2-44a2-9af9-2d59c25c512f",\n "flow_name": "Handle contact form",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "current_action_id": "9ec3711b-db63-449c-b894-54d5bb622a8f",\n "conditions": [],\n "schedules": [],\n "actions": [],\n "action_inputs": {},\n "resume_token": "eyJraWQiOiJrZXkifQ==",\n "trigger_context": {},\n "version": 2,\n "trigger_event": {},\n "workflow_context": {},\n "workflow_wait_context": {},\n "loops": [],\n "loop_state": {},\n "chain": ["string"]\n }\n ],\n "next_cursor": "string"\n}\n```\n\n</details>\n\n---\n\n### `bulkTriggerExecutions`\n\nCreate a bulk job that triggers multiple automation executions\n\n`POST /v1/automation/executions/bulk-jobs`\n\n```ts\nconst { data } = await client.bulkTriggerExecutions(\n null,\n {\n flow_id: \'7791b04a-16d2-44a2-9af9-2d59c25c512f\',\n entities_refs: [\n {\n entity_id: \'e3d3ebac-baab-4395-abf4-50b5bf1f8b74\',\n entity_schema: \'string\'\n }\n ],\n trigger_context: {\n entity_id: \'a1b2c3d4-e5f6-7890-1234-567890abcdef\'\n }\n },\n)\n```\n\n---\n\n### `getBulkJob`\n\nGet the status of a bulk job that triggers multiple automation executions\n\n`GET /v1/automation/executions/bulk-jobs/{job_id}`\n\n```ts\nconst { data } = await client.getBulkJob({\n job_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "job_id": "8c086140-f33e-4bb7-a993-50c0f2402c7b",\n "org_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "flow_id": "7791b04a-16d2-44a2-9af9-2d59c25c512f",\n "status": "approval",\n "created_by": "1234",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "approved_at": "1970-01-01T00:00:00.000Z",\n "trigger_context": {\n "entity_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef"\n },\n "task_token": "8c086140-f33e-4bb7-a993-50c0f2402c7b",\n "report_file_entity_id": "string",\n "entity_query": {\n "type": "refs",\n "data": [\n {\n "entity_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "entity_schema": "string"\n }\n ]\n },\n "pagination_state": {\n "page_size": 0,\n "pages_processed": 0,\n "total_processed": 0,\n "stable_query_id": "string",\n "search_after": ["string"],\n "has_more": true\n },\n "execution_summary": [\n {\n "entity_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "entity_schema": "string",\n "execution_id": "9baf184f-bc81-4128-bca3-d974c90a12c4",\n "execution_status": "pending",\n "timestamp": "2025-10-30T15:56:47.842Z",\n "error": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `patchBulkJob`\n\nApprove / Cancel bulk job that triggers multiple automation executions\n\n`PATCH /v1/automation/executions/bulk-jobs/{job_id}`\n\n```ts\nconst { data } = await client.patchBulkJob(\n {\n job_id: \'example\',\n },\n {\n action: \'APPROVE\',\n task_token: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "job_id": "8c086140-f33e-4bb7-a993-50c0f2402c7b",\n "org_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "flow_id": "7791b04a-16d2-44a2-9af9-2d59c25c512f",\n "status": "approval",\n "created_by": "1234",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "approved_at": "1970-01-01T00:00:00.000Z",\n "trigger_context": {\n "entity_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef"\n },\n "task_token": "8c086140-f33e-4bb7-a993-50c0f2402c7b",\n "report_file_entity_id": "string",\n "entity_query": {\n "type": "refs",\n "data": [\n {\n "entity_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "entity_schema": "string"\n }\n ]\n },\n "pagination_state": {\n "page_size": 0,\n "pages_processed": 0,\n "total_processed": 0,\n "stable_query_id": "string",\n "search_after": ["string"],\n "has_more": true\n },\n "execution_summary": [\n {\n "entity_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "entity_schema": "string",\n "execution_id": "9baf184f-bc81-4128-bca3-d974c90a12c4",\n "execution_status": "pending",\n "timestamp": "2025-10-30T15:56:47.842Z",\n "error": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getExecution`\n\nGet automation execution\n\n`GET /v1/automation/executions/{execution_id}`\n\n```ts\nconst { data } = await client.getExecution({\n execution_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "9baf184f-bc81-4128-bca3-d974c90a12c4",\n "execution_status": "pending",\n "entity_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "activity_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "entity_snapshot": {\n "_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "_title": "string",\n "_org": "string",\n "_schema": "string",\n "_tags": ["string"],\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z"\n },\n "org_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "flow_id": "7791b04a-16d2-44a2-9af9-2d59c25c512f",\n "flow_name": "Handle contact form",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "current_action_id": "9ec3711b-db63-449c-b894-54d5bb622a8f",\n "conditions": [\n {\n "id": "string",\n "schedule_id": "string",\n "evaluation_order": "AFTER_SCHEDULE",\n "evaluationResult": true,\n "error_output": {},\n "allow_failure": true,\n "statements": []\n }\n ],\n "schedules": [\n {\n "id": "string",\n "scheduleApiId": "string",\n "numberOfUnits": 0,\n "timePeriod": "minutes",\n "timeRelation": "after",\n "source": {}\n }\n ],\n "actions": [\n {\n "id": "9ec3711b-db63-449c-b894-54d5bb622a8f",\n "flow_action_id": "9ec3711b-db63-449c-b894-54d5bb622a8f",\n "name": "string",\n "type": "map-entity",\n "config": {},\n "allow_failure": true,\n "created_automatically": true,\n "is_bulk_action": true,\n "reason": {},\n "condition_id": "string",\n "schedule_id": "string",\n "loop_id": "string",\n "execution_status": "pending",\n "started_at": "string",\n "updated_at": "string",\n "outputs": {},\n "error_output": {},\n "retry_strategy": "RETRY_AND_RESUME",\n "iterations": []\n },\n {\n "id": "9ec3711b-db63-449c-b894-54d5bb622a8f",\n "flow_action_id": "9ec3711b-db63-449c-b894-54d5bb622a8f",\n "name": "string",\n "type": "trigger-workflow",\n "config": {},\n "allow_failure": true,\n "created_automatically": true,\n "is_bulk_action": true,\n "reason": {},\n "condition_id": "string",\n "schedule_id": "string",\n "loop_id": "string",\n "execution_status": "pending",\n "started_at": "string",\n "updated_at": "string",\n "outputs": {},\n "error_output": {},\n "retry_strategy": "RETRY_AND_RESUME",\n "iterations": []\n }\n ],\n "action_inputs": {\n "cancel-flow-execution": {\n "selected_reasons": [],\n "extra_description": "string"\n },\n "send-email": {\n "subject": "string",\n "body": "string",\n "attachment_entity_ids": ["string"]\n }\n },\n "resume_token": "eyJraWQiOiJrZXkifQ==",\n "trigger_context": {\n "entity_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef"\n },\n "version": 2,\n "trigger_event": {\n "type": "manual",\n "org_id": "123",\n "entity_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "caller": {\n "EpilotAuth": {}\n }\n },\n "workflow_context": {\n "workflow_exec_id": "string",\n "workflow_exec_task_id": "string",\n "workflow_role": "trigger_workflow",\n "_execution_chain": {\n "parent_execution_id": "string",\n "parent_task_id": "string",\n "depth": 0\n },\n "_automation_chain": ["string"],\n "entity_contexts": [\n {}\n ],\n "trigger_user_id": "10006129"\n },\n "workflow_wait_context": {\n "workflow_execution_id": "string",\n "workflow_task_id": "string",\n "source": "journey_submission"\n },\n "loops": [\n {\n "id": "loop_contracts",\n "source_path": "submission.steps[0][\'Contracts\']",\n "source_type": "journey-multi-select",\n "filter_tags": ["_hidden_ 2a4b1c3d-0000-4000-8000-000000000000 - Dokumente"],\n "length": 0\n }\n ],\n "loop_state": {},\n "chain": ["string"]\n}\n```\n\n</details>\n\n---\n\n### `cancelExecution`\n\nCancel automation execution\n\n`DELETE /v1/automation/executions/{execution_id}`\n\n```ts\nconst { data } = await client.cancelExecution({\n execution_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "9baf184f-bc81-4128-bca3-d974c90a12c4",\n "execution_status": "pending",\n "entity_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "activity_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "entity_snapshot": {\n "_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "_title": "string",\n "_org": "string",\n "_schema": "string",\n "_tags": ["string"],\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z"\n },\n "org_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "flow_id": "7791b04a-16d2-44a2-9af9-2d59c25c512f",\n "flow_name": "Handle contact form",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "current_action_id": "9ec3711b-db63-449c-b894-54d5bb622a8f",\n "conditions": [\n {\n "id": "string",\n "schedule_id": "string",\n "evaluation_order": "AFTER_SCHEDULE",\n "evaluationResult": true,\n "error_output": {},\n "allow_failure": true,\n "statements": []\n }\n ],\n "schedules": [\n {\n "id": "string",\n "scheduleApiId": "string",\n "numberOfUnits": 0,\n "timePeriod": "minutes",\n "timeRelation": "after",\n "source": {}\n }\n ],\n "actions": [\n {\n "id": "9ec3711b-db63-449c-b894-54d5bb622a8f",\n "flow_action_id": "9ec3711b-db63-449c-b894-54d5bb622a8f",\n "name": "string",\n "type": "map-entity",\n "config": {},\n "allow_failure": true,\n "created_automatically": true,\n "is_bulk_action": true,\n "reason": {},\n "condition_id": "string",\n "schedule_id": "string",\n "loop_id": "string",\n "execution_status": "pending",\n "started_at": "string",\n "updated_at": "string",\n "outputs": {},\n "error_output": {},\n "retry_strategy": "RETRY_AND_RESUME",\n "iterations": []\n },\n {\n "id": "9ec3711b-db63-449c-b894-54d5bb622a8f",\n "flow_action_id": "9ec3711b-db63-449c-b894-54d5bb622a8f",\n "name": "string",\n "type": "trigger-workflow",\n "config": {},\n "allow_failure": true,\n "created_automatically": true,\n "is_bulk_action": true,\n "reason": {},\n "condition_id": "string",\n "schedule_id": "string",\n "loop_id": "string",\n "execution_status": "pending",\n "started_at": "string",\n "updated_at": "string",\n "outputs": {},\n "error_output": {},\n "retry_strategy": "RETRY_AND_RESUME",\n "iterations": []\n }\n ],\n "action_inputs": {\n "cancel-flow-execution": {\n "selected_reasons": [],\n "extra_description": "string"\n },\n "send-email": {\n "subject": "string",\n "body": "string",\n "attachment_entity_ids": ["string"]\n }\n },\n "resume_token": "eyJraWQiOiJrZXkifQ==",\n "trigger_context": {\n "entity_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef"\n },\n "version": 2,\n "trigger_event": {\n "type": "manual",\n "org_id": "123",\n "entity_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "caller": {\n "EpilotAuth": {}\n }\n },\n "workflow_context": {\n "workflow_exec_id": "string",\n "workflow_exec_task_id": "string",\n "workflow_role": "trigger_workflow",\n "_execution_chain": {\n "parent_execution_id": "string",\n "parent_task_id": "string",\n "depth": 0\n },\n "_automation_chain": ["string"],\n "entity_contexts": [\n {}\n ],\n "trigger_user_id": "10006129"\n },\n "workflow_wait_context": {\n "workflow_execution_id": "string",\n "workflow_task_id": "string",\n "source": "journey_submission"\n },\n "loops": [\n {\n "id": "loop_contracts",\n "source_path": "submission.steps[0][\'Contracts\']",\n "source_type": "journey-multi-select",\n "filter_tags": ["_hidden_ 2a4b1c3d-0000-4000-8000-000000000000 - Dokumente"],\n "length": 0\n }\n ],\n "loop_state": {},\n "chain": ["string"]\n}\n```\n\n</details>\n\n---\n\n### `retriggerAction`\n\nRetry a specific automation execution action which failed / is stuck.\n\n`POST /v1/automation/executions/{execution_id}/{action_id}/retrigger`\n\n```ts\nconst { data } = await client.retriggerAction(\n {\n execution_id: \'example\',\n action_id: \'example\',\n },\n {\n condition_id: \'string\',\n retry_strategy: \'RETRY_AND_RESUME\'\n },\n)\n```\n\n---\n\n### `resumeExecutionWithToken`\n\nResume a paused automation execution using a unique resume token.\n\n`POST /v1/automation/public/executions:resume`\n\n```ts\nconst { data } = await client.resumeExecutionWithToken(\n null,\n {\n resume_token: \'eyJraWQiOiJrZXkifQ==\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "execution": {\n "id": "9baf184f-bc81-4128-bca3-d974c90a12c4",\n "execution_status": "pending",\n "entity_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "activity_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "entity_snapshot": {\n "_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "_title": "string",\n "_org": "string",\n "_schema": "string",\n "_tags": ["string"],\n "_created_at": "1970-01-01T00:00:00.000Z",\n "_updated_at": "1970-01-01T00:00:00.000Z"\n },\n "org_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "flow_id": "7791b04a-16d2-44a2-9af9-2d59c25c512f",\n "flow_name": "Handle contact form",\n "created_at": "1970-01-01T00:00:00.000Z",\n "updated_at": "1970-01-01T00:00:00.000Z",\n "current_action_id": "9ec3711b-db63-449c-b894-54d5bb622a8f",\n "conditions": [\n {}\n ],\n "schedules": [\n {}\n ],\n "actions": [\n {},\n {}\n ],\n "action_inputs": {\n "cancel-flow-execution": {},\n "send-email": {}\n },\n "resume_token": "eyJraWQiOiJrZXkifQ==",\n "trigger_context": {\n "entity_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef"\n },\n "version": 2,\n "trigger_event": {\n "type": "manual",\n "org_id": "123",\n "entity_id": "e3d3ebac-baab-4395-abf4-50b5bf1f8b74",\n "caller": {}\n },\n "workflow_context": {\n "workflow_exec_id": "string",\n "workflow_exec_task_id": "string",\n "workflow_role": "trigger_workflow",\n "_execution_chain": {},\n "_automation_chain": ["string"],\n "entity_contexts": [],\n "trigger_user_id": "10006129"\n },\n "workflow_wait_context": {\n "workflow_execution_id": "string",\n "workflow_task_id": "string",\n "source": "journey_submission"\n },\n "loops": [\n {}\n ],\n "loop_state": {},\n "chain": ["string"]\n },\n "resumedAction": {\n "id": "9ec3711b-db63-449c-b894-54d5bb622a8f",\n "flow_action_id": "9ec3711b-db63-449c-b894-54d5bb622a8f",\n "name": "string",\n "type": "map-entity",\n "config": {\n "mapping_config": {},\n "target_schema": "string",\n "use_uniqueness_criteria": true,\n "target_unique": ["string"],\n "mapping_attributes": [],\n "relation_attributes": [],\n "linkback_relation_attribute": "mapped_entities",\n "linkback_relation_tags": ["string"],\n "graph_context": []\n },\n "allow_failure": true,\n "created_automatically": true,\n "is_bulk_action": true,\n "reason": {\n "message": "There are no registered portal users for the given emails, hence skipping the action",\n "payload": {}\n },\n "condition_id": "string",\n "schedule_id": "string",\n "loop_id": "string",\n "execution_status": "pending",\n "started_at": "string",\n "updated_at": "string",\n "outputs": {},\n "error_output": {\n "error_code": "MAPPING_ERROR",\n "error_reason": "string",\n "error_info": {}\n },\n "retry_strategy": "RETRY_AND_RESUME",\n "iterations": [\n {}\n ]\n }\n}\n```\n\n</details>\n\n---\n\n### `cancelSchedule`\n\nCancel a scheduled automation\n\n`DELETE /v1/automation/executions/{execution_id}/schedules/{schedule_id}`\n\n```ts\nconst { data } = await client.cancelSchedule({\n execution_id: \'example\',\n schedule_id: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "scheduleApiId": "string",\n "numberOfUnits": 0,\n "timePeriod": "minutes",\n "timeRelation": "after",\n "source": {\n "id": "string",\n "origin": "trigger",\n "schema": "string",\n "attribute": "string"\n }\n}\n```\n\n</details>\n\n---\n\n## Schemas\n\n### `AutomationFlowId`\n\nID of the Automation Flow\n\n```ts\ntype AutomationFlowId = string\n```\n\n### `AutomationActionId`\n\n```ts\ntype AutomationActionId = string\n```\n\n### `AutomationFlow`\n\n```ts\ntype AutomationFlow = {\n id?: string\n flow_name: string\n enabled?: boolean\n disable_details?: {\n disabled_at: string // date-time\n disabled_by: "system" | "user"\n blame?: string\n }\n triggers: Array<{\n id?: string // uuid\n type: "frontend_submission"\n configuration: {\n source_id?: { ... }\n }\n } | {\n id?: string // uuid\n type: "journey_submission"\n configuration: {\n source_id: { ... }\n }\n } | {\n id?: string // uuid\n type: "api_submission"\n configuration: {\n source_id?: { ... }\n }\n } | {\n id?: string // uuid\n type: "entity_operation"\n configuration: {\n schema?: { ... }\n operations?: { ... }\n include_activities?: { ... }\n exclude_activities?: { ... }\n filter_config?: { ... }\n ecp_config?: { ... }\n }\n } | {\n id?: string // uuid\n type: "activity"\n configuration: {\n schema?: { ... }\n types?: { ... }\n }\n } | {\n id?: string // uuid\n type: "entity_manual"\n configuration: {\n schema?: { ... }\n }\n } | {\n id?: string // uuid\n type: "received_email"\n configuration: {\n message_type?: { ... }\n }\n } | {\n id?: string // uuid\n type: "new_email_thread"\n configuration: {\n shared_inbox_ids?: { ... }\n direction: { ... }\n }\n } | {\n id?: string // uuid\n type: "flows_trigger"\n configuration?: {\n journey_id?: { ... }\n }\n } | {\n id?: string // uuid\n type: "event_catalog"\n configuration: {\n event_name: { ... }\n event_version: { ... }\n entity_node_id: { ... }\n entity_schema: { ... }\n ignore_automation_triggered?: { ... }\n }\n }>\n trigger_conditions?: Array<{\n source: string\n comparison: "equals" | "any_of" | "not_empty" | "is_empty"\n value?: string | number | string[] | number[]\n }>\n entity_schema?: string\n conditions?: Array<{\n id?: string\n schedule_id?: string\n evaluation_order?: "AFTER_SCHEDULE" | "BEFORE_SCHEDULE"\n evaluationResult?: boolean\n error_output?: {\n error_code: { ... }\n error_reason: { ... }\n error_info?: { ... }\n }\n allow_failure?: boolean\n statements?: Array<{\n id?: { ... }\n // ...\n}\n```\n\n### `WorkflowContextRole`\n\nThe role this automation plays in the workflow.\n\n```ts\ntype WorkflowContextRole = "trigger_workflow" | "run_task_automation"\n```\n\n### `SearchAutomationsResp`\n\n```ts\ntype SearchAutomationsResp = {\n total: number\n results: Array<{\n id?: string\n flow_name: string\n enabled?: boolean\n disable_details?: {\n disabled_at: { ... }\n disabled_by: { ... }\n blame?: { ... }\n }\n triggers: Array<{\n id?: { ... }\n type: { ... }\n configuration: { ... }\n } | {\n id?: { ... }\n type: { ... }\n configuration: { ... }\n } | {\n id?: { ... }\n type: { ... }\n configuration: { ... }\n } | {\n id?: { ... }\n type: { ... }\n configuration: { ... }\n } | {\n id?: { ... }\n type: { ... }\n configuration: { ... }\n } | {\n id?: { ... }\n type: { ... }\n configuration: { ... }\n } | {\n id?: { ... }\n type: { ... }\n configuration: { ... }\n } | {\n id?: { ... }\n type: { ... }\n configuration: { ... }\n } | {\n id?: { ... }\n type: { ... }\n configuration?: { ... }\n } | {\n id?: { ... }\n type: { ... }\n configuration: { ... }\n }>\n trigger_conditions?: Array<{\n source: { ... }\n comparison: { ... }\n value?: { ... }\n }>\n entity_schema?: string\n conditions?: Array<{\n id?: { ... }\n schedule_id?: { ... }\n evaluation_order?: { ... }\n evaluationResult?: { ... }\n error_output?: { ... }\n allow_failure?: { ... }\n statements?: { ... }\n }>\n schedules?: Array<{\n id: { ... }\n scheduleApiId?: { ... }\n numberOfUnits?: { ... }\n timePeriod?: { ... }\n timeRelation?: { ... }\n source: { ... }\n }>\n loops?: Array<{\n id: { ... }\n source_path: { ... }\n source_type?: { ... }\n filter_tags?: { ... }\n length?: { ... }\n }>\n actions: Array<{\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n // ...\n}\n```\n\n### `JourneyContextUsagesReq`\n\n```ts\ntype JourneyContextUsagesReq = {\n journey_id: string // uuid\n param_keys: string[]\n param_ids?: string[]\n}\n```\n\n### `JourneyContextUsage`\n\n```ts\ntype JourneyContextUsage = {\n kind: "automation"\n resource: {\n type: "automation_flow"\n id: string\n name?: string\n }\n location?: {\n action_id?: string\n action_type?: string\n }\n matched_as: {\n dialect: "name"\n token: string\n at: string\n }\n link_hint: {\n route: "automation-flow"\n params: Record<string, string>\n }\n}\n```\n\n### `JourneyContextUsagesResp`\n\n```ts\ntype JourneyContextUsagesResp = {\n usages: Array<{\n kind: "automation"\n resource: {\n type: { ... }\n id: { ... }\n name?: { ... }\n }\n location?: {\n action_id?: { ... }\n action_type?: { ... }\n }\n matched_as: {\n dialect: { ... }\n token: { ... }\n at: { ... }\n }\n link_hint: {\n route: { ... }\n params: { ... }\n }\n }>\n status: "ok" | "partial"\n scanned: number\n}\n```\n\n### `AnyTrigger`\n\n```ts\ntype AnyTrigger = {\n id?: string // uuid\n type: "frontend_submission"\n configuration: {\n source_id?: string\n }\n} | {\n id?: string // uuid\n type: "journey_submission"\n configuration: {\n source_id: string // uuid\n }\n} | {\n id?: string // uuid\n type: "api_submission"\n configuration: {\n source_id?: string\n }\n} | {\n id?: string // uuid\n type: "entity_operation"\n configuration: {\n schema?: string\n operations?: "createEntity" | "updateEntity" | "deleteEntity" | "softDeleteEntity" | "restoreEntity" | "relationsAdded" | "relationsRemoved" | "relationsSoftDeleted" | "relationsRestored" | "relationsDeleted"[]\n include_activities?: string[]\n exclude_activities?: string[]\n filter_config?: {\n operation?: { ... }\n activity?: { ... }\n }\n ecp_config?: {\n origin?: { ... }\n portal_id?: { ... }\n file_config?: { ... }\n }\n }\n} | {\n id?: string // uuid\n type: "activity"\n configuration: {\n schema?: string\n types?: "CreateMeterReading" | "UpdateMeterReading" | "DocDownloadedFromPortal" | "PortalUserResetPassword" | "PortalUserResetForgotPassword" | "SelfAssignmentFromPortal" | string[]\n }\n} | {\n id?: string // uuid\n type: "entity_manual"\n configuration: {\n schema?: string\n }\n} | {\n id?: string // uuid\n type: "received_email"\n configuration: {\n message_type?: "RECEIVED"\n }\n} | {\n id?: string // uuid\n type: "new_email_thread"\n configuration: {\n shared_inbox_ids?: string[]\n direction: "INBOUND" | "OUTBOUND" | "BOTH"\n }\n} | {\n id?: string // uuid\n type: "flows_trigger"\n configuration?: {\n journey_id?: string // uuid\n }\n} | {\n id?: string // uuid\n type: "event_catalog"\n configuration: {\n event_name: string\n event_version: string\n entity_node_id: string\n entity_schema: string\n ignore_automation_triggered?: boolean\n }\n}\n```\n\n### `AnyAction`\n\n```ts\ntype AnyAction = {\n type?: "map-entity"\n config?: {\n mapping_config?: {\n config_id: { ... }\n target_id: { ... }\n version?: { ... }\n }\n target_schema: string\n use_uniqueness_criteria?: boolean\n target_unique?: string[]\n mapping_attributes?: Array<{\n target?: { ... }\n operation: { ... }\n } | {\n mode: { ... }\n target: { ... }\n value: { ... }\n } | {\n mode: { ... }\n target: { ... }\n source: { ... }\n } | {\n mode: { ... }\n target: { ... }\n source?: { ... }\n value_json: { ... }\n target_unique?: { ... }\n }>\n relation_attributes?: Array<{\n target: { ... }\n target_tags?: { ... }\n target_tags_include_source?: { ... }\n source_filter?: { ... }\n related_to?: { ... }\n mode: { ... }\n }>\n linkback_relation_attribute?: string\n linkback_relation_tags?: string[]\n graph_context?: Array<{\n seed: { ... }\n graph: { ... }\n }>\n }\n} | {\n type?: "trigger-workflow"\n config?: {\n target_workflow?: string\n conditions?: Array<{\n source: { ... }\n comparison: { ... }\n value?: { ... }\n schema?: { ... }\n }>\n assignees?: string[]\n assign_steps?: Array<{\n step_id?: { ... }\n step_name?: { ... }\n user_ids?: { ... }\n }>\n filter_with_purposes?: boolean\n }\n} | {\n type?: "trigger-share-entity"\n config?: {\n partner_org_ids?: string[]\n }\n} | {\n type?: "trigger-webhook"\n config?: {\n event_id?: string\n entity_sources?: string[]\n target_webhook_id?: string\n sync?: boolean\n }\n} | {\n type?: "inform-erp"\n config?: {\n entity_sources?: string[]\n target_webhook_id?: string\n sync?: boolean\n }\n} | {\n type?: "trigger-event"\n config?: {\n event_name: string\n event_inputs?: Record<string, unknown>\n }\n} | {\n type?: "create-document"\n config?: {\n template_id?: string\n filename?: string\n }\n} | {\n type?: "send-email"\n config?: {\n email_template_id?: string\n language_code?: string\n notify_portal_user_only?: boolean\n // ...\n}\n```\n\n### `AnyActionConfig`\n\n```ts\ntype AnyActionConfig = {\n id?: string\n flow_action_id?: string\n name?: string\n type?: "map-entity"\n config?: {\n mapping_config?: {\n config_id: { ... }\n target_id: { ... }\n version?: { ... }\n }\n target_schema: string\n use_uniqueness_criteria?: boolean\n target_unique?: string[]\n mapping_attributes?: Array<{\n target?: { ... }\n operation: { ... }\n } | {\n mode: { ... }\n target: { ... }\n value: { ... }\n } | {\n mode: { ... }\n target: { ... }\n source: { ... }\n } | {\n mode: { ... }\n target: { ... }\n source?: { ... }\n value_json: { ... }\n target_unique?: { ... }\n }>\n relation_attributes?: Array<{\n target: { ... }\n target_tags?: { ... }\n target_tags_include_source?: { ... }\n source_filter?: { ... }\n related_to?: { ... }\n mode: { ... }\n }>\n linkback_relation_attribute?: string\n linkback_relation_tags?: string[]\n graph_context?: Array<{\n seed: { ... }\n graph: { ... }\n }>\n }\n allow_failure?: boolean\n created_automatically?: boolean\n is_bulk_action?: boolean\n reason?: {\n message?: string\n payload?: Record<string, unknown>\n }\n condition_id?: string\n schedule_id?: string\n loop_id?: string\n} | {\n id?: string\n flow_action_id?: string\n name?: string\n type?: "trigger-workflow"\n config?: {\n target_workflow?: string\n conditions?: Array<{\n source: { ... }\n comparison: { ... }\n value?: { ... }\n schema?: { ... }\n }>\n assignees?: string[]\n assign_steps?: Array<{\n step_id?: { ... }\n step_name?: { ... }\n user_ids?: { ... }\n }>\n filter_with_purposes?: boolean\n }\n allow_failure?: boolean\n created_automatically?: boolean\n is_bulk_action?: boolean\n reason?: {\n message?: string\n payload?: Record<string, unknown>\n }\n condition_id?: string\n schedule_id?: string\n loop_id?: string\n} | {\n id?: string\n flow_action_id?: string\n name?: string\n type?: "trigger-workflow"\n config?: {\n partner_org_ids?: string[]\n }\n allow_failure?: boolean\n created_automatically?: boolean\n is_bulk_action?: boolean\n reason?: {\n // ...\n}\n```\n\n### `AutomationActionConfig`\n\n```ts\ntype AutomationActionConfig = {\n id?: string\n flow_action_id?: string\n name?: string\n type?: string\n config?: Record<string, unknown>\n allow_failure?: boolean\n created_automatically?: boolean\n is_bulk_action?: boolean\n reason?: {\n message?: string\n payload?: Record<string, unknown>\n }\n condition_id?: string\n schedule_id?: string\n loop_id?: string\n}\n```\n\n### `AutomationLoop`\n\nA loop scope on an automation flow.\n\n```ts\ntype AutomationLoop = {\n id: string\n source_path: string\n source_type?: "journey-multi-select" | "journey-file-upload" | "previous-action-outputs" | "entity-relation"\n filter_tags?: string[]\n length?: number\n}\n```\n\n### `AutomationActionExecutionState`\n\n```ts\ntype AutomationActionExecutionState = {\n execution_status?: "pending" | "starting" | "in_progress" | "paused" | "success" | "failed" | "cancelled" | "skipped" | "scheduled" | "hot"\n started_at?: string\n updated_at?: string\n outputs?: Record<string, unknown>\n error_output?: {\n error_code: "MAPPING_ERROR" | "REFRESH_RELATIONS_ERROR" | "DUPLICATE_ENTITY_ERROR" | "TRIGGER_WORKFLOW_ERROR" | "TIMEOUT_ERROR" | "BAD_CONFIG" | "INTERNAL_ERROR" | "TRIGGER_WEBHOOK_ERROR" | "TEMPLATE_ERROR" | "INVALID_PAYLOAD" | "INVALID_SCHEDULE_CONFIG" | "CUSTOM_ACTION_ERROR" | "ORDER_CREATION_ERROR" | "DOCUMENT_GENERATION_ERROR" | "BULK_EMAIL_ERROR" | "SHARING_ERROR" | "CANCEL_FLOW_EXECUTION_ERROR" | "METER_READING_NOT_FOUND" | "ENTITY_NOT_FOUND"\n error_reason: string\n error_info?: {\n details?: { ... }\n }\n }\n retry_strategy?: "RETRY_AND_RESUME" | "RETRY_AND_STOP" | "RETRY_ALL_PARENT_CONDITION_ACTIONS"\n iterations?: Array<{\n index: number\n execution_status: "pending" | "starting" | "in_progress" | "paused" | "success" | "failed" | "cancelled" | "skipped" | "scheduled" | "hot"\n started_at?: string // date-time\n ended_at?: string // date-time\n outputs?: Record<string, unknown>\n error_output?: {\n error_code: { ... }\n error_reason: { ... }\n error_info?: { ... }\n }\n }>\n}\n```\n\n### `AutomationActionIteration`\n\nA snapshot of a single completed pass through a looped action.\n\n```ts\ntype AutomationActionIteration = {\n index: number\n execution_status: "pending" | "starting" | "in_progress" | "paused" | "success" | "failed" | "cancelled" | "skipped" | "scheduled" | "hot"\n started_at?: string // date-time\n ended_at?: string // date-time\n outputs?: Record<string, unknown>\n error_output?: {\n error_code: "MAPPING_ERROR" | "REFRESH_RELATIONS_ERROR" | "DUPLICATE_ENTITY_ERROR" | "TRIGGER_WORKFLOW_ERROR" | "TIMEOUT_ERROR" | "BAD_CONFIG" | "INTERNAL_ERROR" | "TRIGGER_WEBHOOK_ERROR" | "TEMPLATE_ERROR" | "INVALID_PAYLOAD" | "INVALID_SCHEDULE_CONFIG" | "CUSTOM_ACTION_ERROR" | "ORDER_CREATION_ERROR" | "DOCUMENT_GENERATION_ERROR" | "BULK_EMAIL_ERROR" | "SHARING_ERROR" | "CANCEL_FLOW_EXECUTION_ERROR" | "METER_READING_NOT_FOUND" | "ENTITY_NOT_FOUND"\n error_reason: string\n error_info?: {\n details?: { ... }\n }\n }\n}\n```\n\n### `RetryStrategy`\n\ndifferent behaviors for retrying failed execution actions.\n\n```ts\ntype RetryStrategy = "RETRY_AND_RESUME" | "RETRY_AND_STOP" | "RETRY_ALL_PARENT_CONDITION_ACTIONS"\n```\n\n### `AutomationAction`\n\n```ts\ntype AutomationAction = {\n id?: string\n flow_action_id?: string\n name?: string\n type?: string\n config?: Record<string, unknown>\n allow_failure?: boolean\n created_automatically?: boolean\n is_bulk_action?: boolean\n reason?: {\n message?: string\n payload?: Record<string, unknown>\n }\n condition_id?: string\n schedule_id?: string\n loop_id?: string\n execution_status?: "pending" | "starting" | "in_progress" | "paused" | "success" | "failed" | "cancelled" | "skipped" | "scheduled" | "hot"\n started_at?: string\n updated_at?: string\n outputs?: Record<string, unknown>\n error_output?: {\n error_code: "MAPPING_ERROR" | "REFRESH_RELATIONS_ERROR" | "DUPLICATE_ENTITY_ERROR" | "TRIGGER_WORKFLOW_ERROR" | "TIMEOUT_ERROR" | "BAD_CONFIG" | "INTERNAL_ERROR" | "TRIGGER_WEBHOOK_ERROR" | "TEMPLATE_ERROR" | "INVALID_PAYLOAD" | "INVALID_SCHEDULE_CONFIG" | "CUSTOM_ACTION_ERROR" | "ORDER_CREATION_ERROR" | "DOCUMENT_GENERATION_ERROR" | "BULK_EMAIL_ERROR" | "SHARING_ERROR" | "CANCEL_FLOW_EXECUTION_ERROR" | "METER_READING_NOT_FOUND" | "ENTITY_NOT_FOUND"\n error_reason: string\n error_info?: {\n details?: { ... }\n }\n }\n retry_strategy?: "RETRY_AND_RESUME" | "RETRY_AND_STOP" | "RETRY_ALL_PARENT_CONDITION_ACTIONS"\n iterations?: Array<{\n index: number\n execution_status: "pending" | "starting" | "in_progress" | "paused" | "success" | "failed" | "cancelled" | "skipped" | "scheduled" | "hot"\n started_at?: string // date-time\n ended_at?: string // date-time\n outputs?: Record<string, unknown>\n error_output?: {\n error_code: { ... }\n error_reason: { ... }\n error_info?: { ... }\n }\n }>\n}\n```\n\n### `ErrorOutput`\n\n```ts\ntype ErrorOutput = {\n error_code: "MAPPING_ERROR" | "REFRESH_RELATIONS_ERROR" | "DUPLICATE_ENTITY_ERROR" | "TRIGGER_WORKFLOW_ERROR" | "TIMEOUT_ERROR" | "BAD_CONFIG" | "INTERNAL_ERROR" | "TRIGGER_WEBHOOK_ERROR" | "TEMPLATE_ERROR" | "INVALID_PAYLOAD" | "INVALID_SCHEDULE_CONFIG" | "CUSTOM_ACTION_ERROR" | "ORDER_CREATION_ERROR" | "DOCUMENT_GENERATION_ERROR" | "BULK_EMAIL_ERROR" | "SHARING_ERROR" | "CANCEL_FLOW_EXECUTION_ERROR" | "METER_READING_NOT_FOUND" | "ENTITY_NOT_FOUND"\n error_reason: string\n error_info?: {\n details?: Array<{\n explanation: { ... }\n context?: { ... }\n id?: { ... }\n }>\n }\n}\n```\n\n### `ErrorCode`\n\n```ts\ntype ErrorCode = "MAPPING_ERROR" | "REFRESH_RELATIONS_ERROR" | "DUPLICATE_ENTITY_ERROR" | "TRIGGER_WORKFLOW_ERROR" | "TIMEOUT_ERROR" | "BAD_CONFIG" | "INTERNAL_ERROR" | "TRIGGER_WEBHOOK_ERROR" | "TEMPLATE_ERROR" | "INVALID_PAYLOAD" | "INVALID_SCHEDULE_CONFIG" | "CUSTOM_ACTION_ERROR" | "ORDER_CREATION_ERROR" | "DOCUMENT_GENERATION_ERROR" | "BULK_EMAIL_ERROR" | "SHARING_ERROR" | "CANCEL_FLOW_EXECUTION_ERROR" | "METER_READING_NOT_FOUND" | "ENTITY_NOT_FOUND"\n```\n\n### `ErrorDetail`\n\n```ts\ntype ErrorDetail = {\n explanation: string\n context?: string\n id?: string\n}\n```\n\n### `CartCheckoutActionConfig`\n\n```ts\ntype CartCheckoutActionConfig = {\n id?: string\n flow_action_id?: string\n name?: string\n type?: "cart-checkout"\n config?: {\n version?: string\n mapping_config?: {\n config_id: { ... }\n target_id: { ... }\n version?: { ... }\n }\n relation_attributes?: Array<{\n target: { ... }\n target_tags?: { ... }\n target_tags_include_source?: { ... }\n source_filter?: { ... }\n related_to?: { ... }\n mode: { ... }\n }>\n mapping_attributes?: Array<{\n target?: { ... }\n operation: { ... }\n } | {\n mode: { ... }\n target: { ... }\n value: { ... }\n } | {\n mode: { ... }\n target: { ... }\n source: { ... }\n } | {\n mode: { ... }\n target: { ... }\n source?: { ... }\n value_json: { ... }\n target_unique?: { ... }\n }>\n linkback_relation_attribute?: string\n linkback_relation_tags?: string[]\n target_unique?: string[]\n }\n allow_failure?: boolean\n created_automatically?: boolean\n is_bulk_action?: boolean\n reason?: {\n message?: string\n payload?: Record<string, unknown>\n }\n condition_id?: string\n schedule_id?: string\n loop_id?: string\n}\n```\n\n### `CartCheckoutAction`\n\n```ts\ntype CartCheckoutAction = {\n type?: "cart-checkout"\n config?: {\n version?: string\n mapping_config?: {\n config_id: { ... }\n target_id: { ... }\n version?: { ... }\n }\n relation_attributes?: Array<{\n target: { ... }\n target_tags?: { ... }\n target_tags_include_source?: { ... }\n source_filter?: { ... }\n related_to?: { ... }\n mode: { ... }\n }>\n mapping_attributes?: Array<{\n target?: { ... }\n operation: { ... }\n } | {\n mode: { ... }\n target: { ... }\n value: { ... }\n } | {\n mode: { ... }\n target: { ... }\n source: { ... }\n } | {\n mode: { ... }\n target: { ... }\n source?: { ... }\n value_json: { ... }\n target_unique?: { ... }\n }>\n linkback_relation_attribute?: string\n linkback_relation_tags?: string[]\n target_unique?: string[]\n }\n}\n```\n\n### `CartCheckoutConfig`\n\n```ts\ntype CartCheckoutConfig = {\n version?: string\n mapping_config?: {\n config_id: string\n target_id: string\n version?: number\n }\n relation_attributes?: Array<{\n target: string\n target_tags?: string[]\n target_tags_include_source?: boolean\n source_filter?: {\n limit?: { ... }\n schema?: { ... }\n attribute?: { ... }\n relation_tag?: { ... }\n tag?: { ... }\n self?: { ... }\n }\n related_to?: Record<string, unknown>\n mode: "append" | "prepend" | "set"\n }>\n mapping_attributes?: Array<{\n target?: string\n operation: {\n _set?: { ... }\n _append?: { ... }\n _uniq?: { ... }\n _copy?: { ... }\n } | unknown\n } | {\n mode: "copy_if_exists" | "append_if_exists" | "set_value"\n target: string\n value: unknown\n } | {\n mode: "copy_if_exists" | "append_if_exists" | "set_value"\n target: string\n source: string\n } | {\n mode: "copy_if_exists" | "append_if_exists" | "set_value"\n target: string\n source?: string\n value_json: string\n target_unique?: string[]\n }>\n linkback_relation_attribute?: string\n linkback_relation_tags?: string[]\n target_unique?: string[]\n}\n```\n\n### `MapEntityActionConfig`\n\n```ts\ntype MapEntityActionConfig = {\n id?: string\n flow_action_id?: string\n name?: string\n type?: "map-entity"\n config?: {\n mapping_config?: {\n config_id: { ... }\n target_id: { ... }\n version?: { ... }\n }\n target_schema: string\n use_uniqueness_criteria?: boolean\n target_unique?: string[]\n mapping_attributes?: Array<{\n target?: { ... }\n operation: { ... }\n } | {\n mode: { ... }\n target: { ... }\n value: { ... }\n } | {\n mode: { ... }\n target: { ... }\n source: { ... }\n } | {\n mode: { ... }\n target: { ... }\n source?: { ... }\n value_json: { ... }\n target_unique?: { ... }\n }>\n relation_attributes?: Array<{\n target: { ... }\n target_tags?: { ... }\n target_tags_include_source?: { ... }\n source_filter?: { ... }\n related_to?: { ... }\n mode: { ... }\n }>\n linkback_relation_attribute?: string\n linkback_relation_tags?: string[]\n graph_context?: Array<{\n seed: { ... }\n graph: { ... }\n }>\n }\n allow_failure?: boolean\n created_automatically?: boolean\n is_bulk_action?: boolean\n reason?: {\n message?: string\n payload?: Record<string, unknown>\n }\n condition_id?: string\n schedule_id?: string\n loop_id?: string\n}\n```\n\n### `MapEntityAction`\n\n```ts\ntype MapEntityAction = {\n type?: "map-entity"\n config?: {\n mapping_config?: {\n config_id: { ... }\n target_id: { ... }\n version?: { ... }\n }\n target_schema: string\n use_uniqueness_criteria?: boolean\n target_unique?: string[]\n mapping_attributes?: Array<{\n target?: { ... }\n operation: { ... }\n } | {\n mode: { ... }\n target: { ... }\n value: { ... }\n } | {\n mode: { ... }\n target: { ... }\n source: { ... }\n } | {\n mode: { ... }\n target: { ... }\n source?: { ... }\n value_json: { ... }\n target_unique?: { ... }\n }>\n relation_attributes?: Array<{\n target: { ... }\n target_tags?: { ... }\n target_tags_include_source?: { ... }\n source_filter?: { ... }\n related_to?: { ... }\n mode: { ... }\n }>\n linkback_relation_attribute?: string\n linkback_relation_tags?: string[]\n graph_context?: Array<{\n seed: { ... }\n graph: { ... }\n }>\n }\n}\n```\n\n### `MapEntityConfig`\n\n```ts\ntype MapEntityConfig = {\n mapping_config?: {\n config_id: string\n target_id: string\n version?: number\n }\n target_schema: string\n use_uniqueness_criteria?: boolean\n target_unique?: string[]\n mapping_attributes?: Array<{\n target?: string\n operation: {\n _set?: { ... }\n _append?: { ... }\n _uniq?: { ... }\n _copy?: { ... }\n } | unknown\n } | {\n mode: "copy_if_exists" | "append_if_exists" | "set_value"\n target: string\n value: unknown\n } | {\n mode: "copy_if_exists" | "append_if_exists" | "set_value"\n target: string\n source: string\n } | {\n mode: "copy_if_exists" | "append_if_exists" | "set_value"\n target: string\n source?: string\n value_json: string\n target_unique?: string[]\n }>\n relation_attributes?: Array<{\n target: string\n target_tags?: string[]\n target_tags_include_source?: boolean\n source_filter?: {\n limit?: { ... }\n schema?: { ... }\n attribute?: { ... }\n relation_tag?: { ... }\n tag?: { ... }\n self?: { ... }\n }\n related_to?: Record<string, unknown>\n mode: "append" | "prepend" | "set"\n }>\n linkback_relation_attribute?: string\n linkback_relation_tags?: string[]\n graph_context?: Array<{\n seed: {\n entity_id: { ... }\n node_id: { ... }\n }\n graph: {\n nodes: { ... }\n edges: { ... }\n }\n }>\n}\n```\n\n### `GraphContextEntry`\n\nOne multi-hop graph query to run against entity-api\'s `POST /v1/entity:graph`. Every node\nin `graph.nodes` is merged into the mapping\'s source context under its own `id`, so\nlisting multiple nodes here costs one entity-api call, not one per node. A node\'s value\noverwrites any existing source-context\n\n```ts\ntype GraphContextEntry = {\n seed: {\n entity_id: string // uuid\n node_id: string\n }\n graph: {\n nodes: Array<{\n id: { ... }\n schema: { ... }\n cardinality?: { ... }\n fields?: { ... }\n filter?: { ... }\n optional?: { ... }\n }>\n edges: Array<{\n from: { ... }\n to: { ... }\n }>\n }\n}\n```\n\n### `GraphSeed`\n\n```ts\ntype GraphSeed = {\n entity_id: string // uuid\n node_id: string\n}\n```\n\n### `GraphDefinition`\n\n```ts\ntype GraphDefinition = {\n nodes: Array<{\n id: string\n schema: string\n cardinality?: "one" | "many"\n fields?: string[]\n filter?: Array<{\n attribute: { ... }\n value: { ... }\n }>\n optional?: boolean\n }>\n edges: Array<{\n from: string\n to: string\n }>\n}\n```\n\n### `GraphNode`\n\n```ts\ntype GraphNode = {\n id: string\n schema: string\n cardinality?: "one" | "many"\n fields?: string[]\n filter?: Array<{\n attribute: string\n value: string | number | boolean\n }>\n optional?: boolean\n}\n```\n\n### `GraphNodeFilter`\n\nEntities are included in this node\'s result only if `attribute` exactly equals the literal `value`.\n\n```ts\ntype GraphNodeFilter = {\n attribute: string\n value: string | number | boolean\n}\n```\n\n### `GraphEdge`\n\n```ts\ntype GraphEdge = {\n from: string\n to: string\n}\n```\n\n### `MappingConfigRef`\n\n```ts\ntype MappingConfigRef = {\n config_id: string\n target_id: string\n version?: number\n}\n```\n\n### `RelationAttribute`\n\n```ts\ntype RelationAttribute = {\n target: string\n target_tags?: string[]\n target_tags_include_source?: boolean\n source_filter?: {\n limit?: number\n schema?: string\n attribute?: string\n relation_tag?: string\n tag?: string\n self?: boolean\n }\n related_to?: Record<string, unknown>\n mode: "append" | "prepend" | "set"\n}\n```\n\n### `MappingAttributeV2`\n\n```ts\ntype MappingAttributeV2 = {\n target?: string\n operation: {\n _set?: unknown\n _append?: unknown\n _uniq?: boolean | string[]\n _copy?: string\n } | unknown\n}\n```\n\n### `OperationNode`\n\nMapping operation nodes are either primitive values or operation node objects\n\n```ts\ntype OperationNode = {\n _set?: unknown\n _append?: unknown\n _uniq?: boolean | string[]\n _copy?: string\n} | unknown\n```\n\n### `OperationObjectNode`\n\n```ts\ntype OperationObjectNode = {\n _set?: unknown\n _append?: unknown\n _uniq?: boolean | string[]\n _copy?: string\n}\n```\n\n### `PrimitiveJSONValue`\n\n```ts\ntype PrimitiveJSONValue = unknown\n```\n\n### `MappingAttribute`\n\n```ts\ntype MappingAttribute = {\n mode: "copy_if_exists" | "append_if_exists" | "set_value"\n target: string\n value: unknown\n} | {\n mode: "copy_if_exists" | "append_if_exists" | "set_value"\n target: string\n source: string\n} | {\n mode: "copy_if_exists" | "append_if_exists" | "set_value"\n target: string\n source?: string\n value_json: string\n target_unique?: string[]\n}\n```\n\n### `MappingAttributeMode`\n\n- copy_if_exists - it replaces the target attribute with the source value - append_if_exists - it currently replaces target attribute with array like values. Useful when you have multiple values to be added into one attribute. - set_value - it sets a value to a predefined value. Must be used togethe\n\n```ts\ntype MappingAttributeMode = "copy_if_exists" | "append_if_exists" | "set_value"\n```\n\n### `SetValueMapper`\n\n```ts\ntype SetValueMapper = {\n mode: "copy_if_exists" | "append_if_exists" | "set_value"\n target: string\n value: unknown\n}\n```\n\n### `CopyValueMapper`\n\n```ts\ntype CopyValueMapper = {\n mode: "copy_if_exists" | "append_if_exists" | "set_value"\n target: string\n source: string\n}\n```\n\n### `AppendValueMapper`\n\n```ts\ntype AppendValueMapper = {\n mode: "copy_if_exists" | "append_if_exists" | "set_value"\n target: string\n source?: string\n value_json: string\n target_unique?: string[]\n}\n```\n\n### `MoveThreadAction`\n\n```ts\ntype MoveThreadAction = {\n type?: "move-thread"\n config?: {\n target_inbox_id?: string\n }\n}\n```\n\n### `AssignThreadAction`\n\n```ts\ntype AssignThreadAction = {\n type?: "assign-thread"\n config?: {\n remove?: string[]\n add?: string[]\n assignment_type?: "direct" | "even_distribution" | "sequential"\n only_available_users?: boolean\n hold_until_available?: boolean\n match_user_skills?: boolean\n required_skill_categories?: string[]\n skill_match_mode?: "require_all" | "prefer"\n fallback?: "leave_unassigned" | "assign_to_fallback"\n fallback_assignees?: string[]\n }\n}\n```\n\n### `MoveThreadConfig`\n\n```ts\ntype MoveThreadConfig = {\n target_inbox_id?: string\n}\n```\n\n### `AssignThreadConfig`\n\n```ts\ntype AssignThreadConfig = {\n remove?: string[]\n add?: string[]\n assignment_type?: "direct" | "even_distribution" | "sequential"\n only_available_users?: boolean\n hold_until_available?: boolean\n match_user_skills?: boolean\n required_skill_categories?: string[]\n skill_match_mode?: "require_all" | "prefer"\n fallback?: "leave_unassigned" | "assign_to_fallback"\n fallback_assignees?: string[]\n}\n```\n\n### `EntityAssignee`\n\nA single assignee as stored in a user-relation attribute. Written through\nverbatim by the assign-entity worker. Note this object encoding differs\ndeliberately from AssignThreadConfig, which stores bare id strings \u2014\neach matches what its own target accepts.\n\n\n```ts\ntype EntityAssignee = {\n type: "user" | "partner_user" | "partner_organization" | "group"\n user_id?: string\n group_id?: string\n org_id?: string\n partner_id?: string\n display_name?: string\n email?: string\n}\n```\n\n### `AssignEntityConfig`\n\n```ts\ntype AssignEntityConfig = {\n attribute?: string\n assignees?: Array<{\n type: "user" | "partner_user" | "partner_organization" | "group"\n user_id?: string\n group_id?: string\n org_id?: string\n partner_id?: string\n display_name?: string\n email?: string\n }>\n write_mode?: "replace" | "append"\n assignment_type?: "direct" | "sequential" | "even_distribution"\n candidate_group?: {\n type: "user" | "partner_user" | "partner_organization" | "group"\n user_id?: string\n group_id?: string\n org_id?: string\n partner_id?: string\n display_name?: string\n email?: string\n }\n reset_interval?: "daily" | "weekly" | "monthly" | "never"\n workload_filter?: {\n attribute?: string\n values?: string[]\n }\n match_user_skills?: boolean\n required_skill_categories?: string[]\n skill_match_mode?: "require_all" | "prefer"\n fallback?: "leave_unassigned" | "assign_to_fallback"\n fallback_assignees?: Array<{\n type: "user" | "partner_user" | "partner_organization" | "group"\n user_id?: string\n group_id?: string\n org_id?: string\n partner_id?: string\n display_name?: string\n email?: string\n }>\n source?: {\n id?: string\n origin?: "trigger" | "action"\n schema?: string\n }\n}\n```\n\n### `AssignEntityActionConfig`\n\n```ts\ntype AssignEntityActionConfig = {\n id?: string\n flow_action_id?: string\n name?: string\n type?: "assign-entity"\n config?: {\n attribute?: string\n assignees?: Array<{\n type: { ... }\n user_id?: { ... }\n group_id?: { ... }\n org_id?: { ... }\n partner_id?: { ... }\n display_name?: { ... }\n email?: { ... }\n }>\n write_mode?: "replace" | "append"\n assignment_type?: "direct" | "sequential" | "even_distribution"\n candidate_group?: {\n type: { ... }\n user_id?: { ... }\n group_id?: { ... }\n org_id?: { ... }\n partner_id?: { ... }\n display_name?: { ... }\n email?: { ... }\n }\n reset_interval?: "daily" | "weekly" | "monthly" | "never"\n workload_filter?: {\n attribute?: { ... }\n values?: { ... }\n }\n match_user_skills?: boolean\n required_skill_categories?: string[]\n skill_match_mode?: "require_all" | "prefer"\n fallback?: "leave_unassigned" | "assign_to_fallback"\n fallback_assignees?: Array<{\n type: { ... }\n user_id?: { ... }\n group_id?: { ... }\n org_id?: { ... }\n partner_id?: { ... }\n display_name?: { ... }\n email?: { ... }\n }>\n source?: {\n id?: { ... }\n origin?: { ... }\n schema?: { ... }\n }\n }\n allow_failure?: boolean\n created_automatically?: boolean\n is_bulk_action?: boolean\n reason?: {\n message?: string\n payload?: Record<string, unknown>\n }\n condition_id?: string\n schedule_id?: string\n loop_id?: string\n}\n```\n\n### `AssignEntityAction`\n\n```ts\ntype AssignEntityAction = {\n type?: "assign-entity"\n config?: {\n attribute?: string\n assignees?: Array<{\n type: { ... }\n user_id?: { ... }\n group_id?: { ... }\n org_id?: { ... }\n partner_id?: { ... }\n display_name?: { ... }\n email?: { ... }\n }>\n write_mode?: "replace" | "append"\n assignment_type?: "direct" | "sequential" | "even_distribution"\n candidate_group?: {\n type: { ... }\n user_id?: { ... }\n group_id?: { ... }\n org_id?: { ... }\n partner_id?: { ... }\n display_name?: { ... }\n email?: { ... }\n }\n reset_interval?: "daily" | "weekly" | "monthly" | "never"\n workload_filter?: {\n attribute?: { ... }\n values?: { ... }\n }\n match_user_skills?: boolean\n required_skill_categories?: string[]\n skill_match_mode?: "require_all" | "prefer"\n fallback?: "leave_unassigned" | "assign_to_fallback"\n fallback_assignees?: Array<{\n type: { ... }\n user_id?: { ... }\n group_id?: { ... }\n org_id?: { ... }\n partner_id?: { ... }\n display_name?: { ... }\n email?: { ... }\n }>\n source?: {\n id?: { ... }\n origin?: { ... }\n schema?: { ... }\n }\n }\n}\n```\n\n### `SendEmailActionConfig`\n\n```ts\ntype SendEmailActionConfig = {\n id?: string\n flow_action_id?: string\n name?: string\n type?: "send-email"\n config?: {\n email_template_id?: string\n language_code?: string\n notify_portal_user_only?: boolean\n skip_creating_entities?: boolean\n wait_for_confirmation?: boolean\n wait_for_journey_submission?: boolean\n journey_id?: string\n reply_to_sender?: boolean\n reply_mode?: "reply_in_thread" | "new_email"\n mark_as_done?: boolean\n mark_as_read?: boolean\n attachments?: Array<{\n source_filter?: { ... }\n }>\n conditions?: Array<{\n _equals?: { ... }\n }>\n }\n allow_failure?: boolean\n created_automatically?: boolean\n is_bulk_action?: boolean\n reason?: {\n message?: string\n payload?: Record<string, unknown>\n }\n condition_id?: string\n schedule_id?: string\n loop_id?: string\n}\n```\n\n### `SendEmailAction`\n\n```ts\ntype SendEmailAction = {\n type?: "send-email"\n config?: {\n email_template_id?: string\n language_code?: string\n notify_portal_user_only?: boolean\n skip_creating_entities?: boolean\n wait_for_confirmation?: boolean\n wait_for_journey_submission?: boolean\n journey_id?: string\n reply_to_sender?: boolean\n reply_mode?: "reply_in_thread" | "new_email"\n mark_as_done?: boolean\n mark_as_read?: boolean\n attachments?: Array<{\n source_filter?: { ... }\n }>\n conditions?: Array<{\n _equals?: { ... }\n }>\n }\n}\n```\n\n### `ForwardEmailActionConfig`\n\n```ts\ntype ForwardEmailActionConfig = {\n id?: string\n flow_action_id?: string\n name?: string\n type?: "forward-email"\n config?: {\n forward_to: Array<{\n email: { ... }\n name?: { ... }\n }>\n include_attachments?: boolean\n subject_prefix?: string\n language_code?: "de" | "en"\n mark_as_done?: boolean\n mark_as_read?: boolean\n }\n allow_failure?: boolean\n created_automatically?: boolean\n is_bulk_action?: boolean\n reason?: {\n message?: string\n payload?: Record<string, unknown>\n }\n condition_id?: string\n schedule_id?: string\n loop_id?: string\n}\n```\n\n### `ForwardEmailAction`\n\n```ts\ntype ForwardEmailAction = {\n type?: "forward-email"\n config?: {\n forward_to: Array<{\n email: { ... }\n name?: { ... }\n }>\n include_attachments?: boolean\n subject_prefix?: string\n language_code?: "de" | "en"\n mark_as_done?: boolean\n mark_as_read?: boolean\n }\n}\n```\n\n### `ForwardEmailConfig`\n\n```ts\ntype ForwardEmailConfig = {\n forward_to: Array<{\n email: string // email\n name?: string\n }>\n include_attachments?: boolean\n subject_prefix?: string\n language_code?: "de" | "en"\n mark_as_done?: boolean\n mark_as_read?: boolean\n}\n```\n\n### `ReplyEmailActionConfig`\n\n```ts\ntype ReplyEmailActionConfig = {\n id?: string\n flow_action_id?: string\n name?: string\n type?: "reply-email"\n config?: {\n email_template_id?: string\n language_code?: string\n reply_mode?: "reply_in_thread" | "new_email"\n mark_as_done?: boolean\n mark_as_read?: boolean\n }\n allow_failure?: boolean\n created_automatically?: boolean\n is_bulk_action?: boolean\n reason?: {\n message?: string\n payload?: Record<string, unknown>\n }\n condition_id?: string\n schedule_id?: string\n loop_id?: string\n}\n```\n\n### `ReplyEmailAction`\n\n```ts\ntype ReplyEmailAction = {\n type?: "reply-email"\n config?: {\n email_template_id?: string\n language_code?: string\n reply_mode?: "reply_in_thread" | "new_email"\n mark_as_done?: boolean\n mark_as_read?: boolean\n }\n}\n```\n\n### `ReplyEmailConfig`\n\n```ts\ntype ReplyEmailConfig = {\n email_template_id?: string\n language_code?: string\n reply_mode?: "reply_in_thread" | "new_email"\n mark_as_done?: boolean\n mark_as_read?: boolean\n}\n```\n\n### `SendEmailConfig`\n\n```ts\ntype SendEmailConfig = {\n email_template_id?: string\n language_code?: string\n notify_portal_user_only?: boolean\n skip_creating_entities?: boolean\n wait_for_confirmation?: boolean\n wait_for_journey_submission?: boolean\n journey_id?: string\n reply_to_sender?: boolean\n reply_mode?: "reply_in_thread" | "new_email"\n mark_as_done?: boolean\n mark_as_read?: boolean\n attachments?: Array<{\n source_filter?: {\n limit?: { ... }\n filename_regex?: { ... }\n filename?: { ... }\n filename_pattern?: { ... }\n attribute?: { ... }\n relation_tag?: { ... }\n tag?: { ... }\n document_type?: { ... }\n self?: { ... }\n }\n }>\n conditions?: Array<{\n _equals?: {\n source?: { ... }\n value?: { ... }\n }\n }>\n}\n```\n\n### `SendEmailCondition`\n\n```ts\ntype SendEmailCondition = {\n _equals?: {\n source?: string\n value?: string\n }\n}\n```\n\n### `CreateDocumentActionConfig`\n\n```ts\ntype CreateDocumentActionConfig = {\n id?: string\n flow_action_id?: string\n name?: string\n type?: "create-document"\n config?: {\n template_id?: string\n filename?: string\n }\n allow_failure?: boolean\n created_automatically?: boolean\n is_bulk_action?: boolean\n reason?: {\n message?: string\n payload?: Record<string, unknown>\n }\n condition_id?: string\n schedule_id?: string\n loop_id?: string\n}\n```\n\n### `CreateDocumentAction`\n\n```ts\ntype CreateDocumentAction = {\n type?: "create-document"\n config?: {\n template_id?: string\n filename?: string\n }\n}\n```\n\n### `CreateDocumentConfig`\n\n```ts\ntype CreateDocumentConfig = {\n template_id?: string\n filename?: string\n}\n```\n\n### `TriggerWorkflowActionConfig`\n\n```ts\ntype TriggerWorkflowActionConfig = {\n id?: string\n flow_action_id?: string\n name?: string\n type?: "trigger-workflow"\n config?: {\n target_workflow?: string\n conditions?: Array<{\n source: { ... }\n comparison: { ... }\n value?: { ... }\n schema?: { ... }\n }>\n assignees?: string[]\n assign_steps?: Array<{\n step_id?: { ... }\n step_name?: { ... }\n user_ids?: { ... }\n }>\n filter_with_purposes?: boolean\n }\n allow_failure?: boolean\n created_automatically?: boolean\n is_bulk_action?: boolean\n reason?: {\n message?: string\n payload?: Record<string, unknown>\n }\n condition_id?: string\n schedule_id?: string\n loop_id?: string\n}\n```\n\n### `TriggerWorkflowAction`\n\n```ts\ntype TriggerWorkflowAction = {\n type?: "trigger-workflow"\n config?: {\n target_workflow?: string\n conditions?: Array<{\n source: { ... }\n comparison: { ... }\n value?: { ... }\n schema?: { ... }\n }>\n assignees?: string[]\n assign_steps?: Array<{\n step_id?: { ... }\n step_name?: { ... }\n user_ids?: { ... }\n }>\n filter_with_purposes?: boolean\n }\n}\n```\n\n### `TriggerWorkflowConfig`\n\n```ts\ntype TriggerWorkflowConfig = {\n target_workflow?: string\n conditions?: Array<{\n source: string\n comparison: "equals" | "any_of" | "not_empty" | "is_empty"\n value?: string | number | string[] | number[]\n schema?: string\n }>\n assignees?: string[]\n assign_steps?: Array<{\n step_id?: string\n step_name?: string\n user_ids?: number[]\n }>\n filter_with_purposes?: boolean\n}\n```\n\n### `TriggerWorkflowCondition`\n\n```ts\ntype TriggerWorkflowCondition = {\n source: string\n comparison: "equals" | "any_of" | "not_empty" | "is_empty"\n value?: string | number | string[] | number[]\n schema?: string\n}\n```\n\n### `TriggerShareEntityActionConfig`\n\n```ts\ntype TriggerShareEntityActionConfig = {\n id?: string\n flow_action_id?: string\n name?: string\n type?: "trigger-workflow"\n config?: {\n partner_org_ids?: string[]\n }\n allow_failure?: boolean\n created_automatically?: boolean\n is_bulk_action?: boolean\n reason?: {\n message?: string\n payload?: Record<string, unknown>\n }\n condition_id?: string\n schedule_id?: string\n loop_id?: string\n}\n```\n\n### `TriggerShareEntityAction`\n\n```ts\ntype TriggerShareEntityAction = {\n type?: "trigger-share-entity"\n config?: {\n partner_org_ids?: string[]\n }\n}\n```\n\n### `TriggerShareEntityConfig`\n\n```ts\ntype TriggerShareEntityConfig = {\n partner_org_ids?: string[]\n}\n```\n\n### `AssignUsersToStep`\n\n```ts\ntype AssignUsersToStep = {\n step_id?: string\n step_name?: string\n user_ids?: number[]\n}\n```\n\n### `CustomAction`\n\n```ts\ntype CustomAction = {\n type?: "custom-action"\n config?: {\n name?: string\n description?: string\n app_id?: string\n component_id?: string\n wait_for_callback?: boolean\n }\n}\n```\n\n### `TriggerWebhookActionConfig`\n\n```ts\ntype TriggerWebhookActionConfig = {\n id?: string\n flow_action_id?: string\n name?: string\n type?: "trigger-webhook"\n config?: {\n event_id?: string\n entity_sources?: string[]\n target_webhook_id?: string\n sync?: boolean\n }\n allow_failure?: boolean\n created_automatically?: boolean\n is_bulk_action?: boolean\n reason?: {\n message?: string\n payload?: Record<string, unknown>\n }\n condition_id?: string\n schedule_id?: string\n loop_id?: string\n}\n```\n\n### `TriggerWebhookAction`\n\n```ts\ntype TriggerWebhookAction = {\n type?: "trigger-webhook"\n config?: {\n event_id?: string\n entity_sources?: string[]\n target_webhook_id?: string\n sync?: boolean\n }\n}\n```\n\n### `TriggerWebhookConfig`\n\n```ts\ntype TriggerWebhookConfig = {\n event_id?: string\n entity_sources?: string[]\n target_webhook_id?: string\n sync?: boolean\n}\n```\n\n### `InformERPActionConfig`\n\n```ts\ntype InformERPActionConfig = {\n id?: string\n flow_action_id?: string\n name?: string\n type?: "inform-erp"\n config?: {\n entity_sources?: string[]\n target_webhook_id?: string\n sync?: boolean\n }\n allow_failure?: boolean\n created_automatically?: boolean\n is_bulk_action?: boolean\n reason?: {\n message?: string\n payload?: Record<string, unknown>\n }\n condition_id?: string\n schedule_id?: string\n loop_id?: string\n}\n```\n\n### `InformERPAction`\n\n```ts\ntype InformERPAction = {\n type?: "inform-erp"\n config?: {\n entity_sources?: string[]\n target_webhook_id?: string\n sync?: boolean\n }\n}\n```\n\n### `InformERPConfig`\n\n```ts\ntype InformERPConfig = {\n entity_sources?: string[]\n target_webhook_id?: string\n sync?: boolean\n}\n```\n\n### `TriggerEventActionConfig`\n\n```ts\ntype TriggerEventActionConfig = {\n id?: string\n flow_action_id?: string\n name?: string\n type?: "trigger-event"\n config?: {\n event_name: string\n event_inputs?: Record<string, unknown>\n }\n allow_failure?: boolean\n created_automatically?: boolean\n is_bulk_action?: boolean\n reason?: {\n message?: string\n payload?: Record<string, unknown>\n }\n condition_id?: string\n schedule_id?: string\n loop_id?: string\n}\n```\n\n### `TriggerEventAction`\n\n```ts\ntype TriggerEventAction = {\n type?: "trigger-event"\n config?: {\n event_name: string\n event_inputs?: Record<string, unknown>\n }\n}\n```\n\n### `TriggerEventConfig`\n\nConfiguration for triggering an event catalog event\n\n```ts\ntype TriggerEventConfig = {\n event_name: string\n event_inputs?: Record<string, unknown>\n}\n```\n\n### `FlowExecutionCancelActionConfig`\n\n```ts\ntype FlowExecutionCancelActionConfig = {\n id?: string\n flow_action_id?: string\n name?: string\n type?: "cancel-flow-execution"\n config?: {\n selected_reasons?: Array<{\n id: { ... }\n title: { ... }\n }>\n extra_description?: string\n }\n allow_failure?: boolean\n created_automatically?: boolean\n is_bulk_action?: boolean\n reason?: {\n message?: string\n payload?: Record<string, unknown>\n }\n condition_id?: string\n schedule_id?: string\n loop_id?: string\n}\n```\n\n### `FlowExecutionCancelAction`\n\n```ts\ntype FlowExecutionCancelAction = {\n type?: "cancel-flow-execution"\n config?: {\n selected_reasons?: Array<{\n id: { ... }\n title: { ... }\n }>\n extra_description?: string\n }\n}\n```\n\n### `FlowExecutionCancelConfig`\n\nConfiguration for cancelling a flow execution. The selected reasons are optional; a semi-automated step lets the person running it choose them when the execution starts.\n\n```ts\ntype FlowExecutionCancelConfig = {\n selected_reasons?: Array<{\n id: string\n title: string\n }>\n extra_description?: string\n}\n```\n\n### `CancellationReason`\n\nA reason for cancelling a flow execution\n\n```ts\ntype CancellationReason = {\n id: string\n title: string\n}\n```\n\n### `ConditionStatement`\n\n```ts\ntype ConditionStatement = {\n id?: string // uuid\n source?: {\n id?: string\n origin?: "trigger" | "action"\n originType?: "entity" | "workflow" | "journey_block" | "event"\n schema?: string\n attribute?: string\n attributeType?: "string" | "text" | "number" | "boolean" | "date" | "datetime" | "tags" | "country" | "email" | "phone" | "product" | "price" | "status" | "relation" | "multiselect" | "select" | "radio" | "relation_user" | "purpose" | "label" | "payment" | "relation_payment_method"\n attributeRepeatable?: boolean\n repeatableItemOp?: boolean\n attributeOperation?: "all" | "updated" | "added" | "deleted"\n }\n operation?: "equals" | "not_equals" | "any_of" | "none_of" | "contains" | "not_contains" | "starts_with" | "ends_with" | "greater_than" | "less_than" | "greater_than_or_equals" | "less_than_or_equals" | "is_empty" | "is_not_empty" | "entity_exists" | "entity_does_not_exist"\n values?: string[]\n}\n```\n\n### `ActionCondition`\n\n```ts\ntype ActionCondition = {\n id?: string\n schedule_id?: string\n evaluation_order?: "AFTER_SCHEDULE" | "BEFORE_SCHEDULE"\n evaluationResult?: boolean\n error_output?: {\n error_code: "MAPPING_ERROR" | "REFRESH_RELATIONS_ERROR" | "DUPLICATE_ENTITY_ERROR" | "TRIGGER_WORKFLOW_ERROR" | "TIMEOUT_ERROR" | "BAD_CONFIG" | "INTERNAL_ERROR" | "TRIGGER_WEBHOOK_ERROR" | "TEMPLATE_ERROR" | "INVALID_PAYLOAD" | "INVALID_SCHEDULE_CONFIG" | "CUSTOM_ACTION_ERROR" | "ORDER_CREATION_ERROR" | "DOCUMENT_GENERATION_ERROR" | "BULK_EMAIL_ERROR" | "SHARING_ERROR" | "CANCEL_FLOW_EXECUTION_ERROR" | "METER_READING_NOT_FOUND" | "ENTITY_NOT_FOUND"\n error_reason: string\n error_info?: {\n details?: { ... }\n }\n }\n allow_failure?: boolean\n statements?: Array<{\n id?: string // uuid\n source?: {\n id?: { ... }\n origin?: { ... }\n originType?: { ... }\n schema?: { ... }\n attribute?: { ... }\n attributeType?: { ... }\n attributeRepeatable?: { ... }\n repeatableItemOp?: { ... }\n attributeOperation?: { ... }\n }\n operation?: "equals" | "not_equals" | "any_of" | "none_of" | "contains" | "not_contains" | "starts_with" | "ends_with" | "greater_than" | "less_than" | "greater_than_or_equals" | "less_than_or_equals" | "is_empty" | "is_not_empty" | "entity_exists" | "entity_does_not_exist"\n values?: string[]\n }>\n}\n```\n\n### `ActionScheduleSource`\n\nThe source of the schedule_at timestamp that will be used to schedule the action\n\n```ts\ntype ActionScheduleSource = {\n id: string\n origin: "trigger" | "action" | "action_task" | "automation"\n schema?: string\n attribute?: string\n}\n```\n\n### `ActionSchedule`\n\n```ts\ntype ActionSchedule = {\n id: string\n scheduleApiId?: string\n numberOfUnits?: number\n timePeriod?: "minutes" | "hours" | "days" | "weeks" | "months"\n timeRelation?: "after" | "before"\n source: {\n id: string\n origin: "trigger" | "action" | "action_task" | "automation"\n schema?: string\n attribute?: string\n }\n}\n```\n\n### `AutomationExecutionId`\n\n```ts\ntype AutomationExecutionId = string\n```\n\n### `AutomationExecution`\n\n```ts\ntype AutomationExecution = {\n id: string\n execution_status?: "pending" | "starting" | "in_progress" | "paused" | "success" | "failed" | "cancelled" | "skipped" | "scheduled" | "hot"\n entity_id: string\n activity_id?: string\n entity_snapshot?: {\n _id: string\n _title: string\n _org: string\n _schema: string\n _tags?: string[]\n _created_at: string // date-time\n _updated_at: string // date-time\n }\n org_id: string\n flow_id: string\n flow_name?: string\n created_at?: string // date-time\n updated_at?: string // date-time\n current_action_id?: string\n conditions?: Array<{\n id?: string\n schedule_id?: string\n evaluation_order?: "AFTER_SCHEDULE" | "BEFORE_SCHEDULE"\n evaluationResult?: boolean\n error_output?: {\n error_code: { ... }\n error_reason: { ... }\n error_info?: { ... }\n }\n allow_failure?: boolean\n statements?: Array<{\n id?: { ... }\n source?: { ... }\n operation?: { ... }\n values?: { ... }\n }>\n }>\n schedules?: Array<{\n id: string\n scheduleApiId?: string\n numberOfUnits?: number\n timePeriod?: "minutes" | "hours" | "days" | "weeks" | "months"\n timeRelation?: "after" | "before"\n source: {\n id: { ... }\n origin: { ... }\n schema?: { ... }\n attribute?: { ... }\n }\n }>\n actions: Array<{\n type?: "map-entity"\n config?: {\n mapping_config?: { ... }\n target_schema: { ... }\n use_uniqueness_criteria?: { ... }\n target_unique?: { ... }\n mapping_attributes?: { ... }\n relation_attributes?: { ... }\n linkback_relation_attribute?: { ... }\n linkback_relation_tags?: { ... }\n graph_context?: { ... }\n }\n } | {\n type?: "trigger-workflow"\n config?: {\n target_workflow?: { ... }\n conditions?: { ... }\n assignees?: { ... }\n assign_steps?: { ... }\n filter_with_purposes?: { ... }\n }\n } | {\n type?: "trigger-share-entity"\n config?: {\n partner_org_ids?: { ... }\n }\n } | {\n type?: "trigger-webhook"\n config?: {\n event_id?: { ... }\n entity_sources?: { ... }\n target_webhook_id?: { ... }\n sync?: { ... }\n }\n } | {\n type?: "inform-erp"\n config?: {\n entity_sources?: { ... }\n target_webhook_id?: { ... }\n sync?: { ... }\n }\n } | {\n type?: "trigger-event"\n config?: {\n event_name: { ... }\n event_inputs?: { ... }\n }\n } | {\n // ...\n}\n```\n\n### `AutomationLoopState`\n\n```ts\ntype AutomationLoopState = {\n current_index: number\n total: number\n}\n```\n\n### `WorkflowExecutionContext`\n\n```ts\ntype WorkflowExecutionContext = {\n workflow_exec_id: string\n workflow_exec_task_id?: string\n workflow_role: "trigger_workflow" | "run_task_automation"\n _execution_chain?: {\n parent_execution_id?: string\n parent_task_id?: string\n depth?: number\n }\n _automation_chain?: string[]\n entity_contexts?: Array<{\n entity_id?: string\n entity_schema?: string\n is_primary?: boolean\n }>\n trigger_user_id?: string\n}\n```\n\n### `WorkflowWaitContext`\n\nCorrelation stamped when the triggering submission entity carried workflow wait claims from a journey link. Consumed by svc-workflows to resume a task waiting on this journey submission.\n\n\n```ts\ntype WorkflowWaitContext = {\n workflow_execution_id: string\n workflow_task_id: string\n source?: string\n}\n```\n\n### `ExecutionChain`\n\n[Internal] Tracks execution chain for infinite loop prevention. This is an internal property and should not be used by external consumers.\n\n```ts\ntype ExecutionChain = {\n parent_execution_id?: string\n parent_task_id?: string\n depth?: number\n}\n```\n\n### `TriggerEventManual`\n\n```ts\ntype TriggerEventManual = {\n type?: "manual"\n org_id: string\n entity_id: string\n caller?: {\n EpilotAuth?: {\n claims?: { ... }\n userId?: { ... }\n organizationId?: { ... }\n token?: { ... }\n }\n }\n}\n```\n\n### `TriggerEventFlowAutomationTask`\n\n```ts\ntype TriggerEventFlowAutomationTask = {\n type?: "flow_automation_task"\n org_id: string\n entity_id: string\n flow_execution_id: string\n flow_automation_task_id: string // UUID\n caller?: {\n EpilotAuth?: {\n claims?: { ... }\n userId?: { ... }\n organizationId?: { ... }\n token?: { ... }\n }\n }\n}\n```\n\n### `TriggerEventEntityActivity`\n\n```ts\ntype TriggerEventEntityActivity = {\n type?: "entity_activity"\n org_id: string\n activity_id: string\n activity_type: string\n entity_id?: string\n}\n```\n\n### `TriggerEventMessaging`\n\n```ts\ntype TriggerEventMessaging = {\n type?: "new_email_thread"\n org_id: string\n thread_id: string\n message_id: string\n entity_id: string\n}\n```\n\n### `TriggerEventEntityOperation`\n\n```ts\ntype TriggerEventEntityOperation = {\n type?: "entity_operation"\n entity_id: string\n org_id: string\n activity_id: string\n operation_type: "createEntity" | "updateEntity" | "deleteEntity" | "softDeleteEntity" | "restoreEntity" | "relationsAdded" | "relationsRemoved" | "relationsSoftDeleted" | "relationsRestored" | "relationsDeleted"\n}\n```\n\n### `TriggerEventEventCatalog`\n\nSet on executions started by an Event Catalog event (see EventCatalogTrigger). The full event payload is not stored inline (it may be up to 256 KB) but by reference in `payload_ref`; automation workers hydrate it before every action.\n\n\n```ts\ntype TriggerEventEventCatalog = {\n type: "event_catalog"\n org_id: string\n entity_id: string\n entity_node_id: string\n event_id: string\n event_name: string\n event_version: string\n published_version?: string\n event_time?: string // date-time\n trigger_source_type?: string\n trigger_source?: string\n payload_ref?: {\n bucket: string\n key: string\n }\n}\n```\n\n### `TriggerEventPayloadRef`\n\nS3 reference to the stored trigger event payload (`_downgrades` stripped, downgraded to the pinned version)\n\n```ts\ntype TriggerEventPayloadRef = {\n bucket: string\n key: string\n}\n```\n\n### `ApiCallerContext`\n\n```ts\ntype ApiCallerContext = {\n EpilotAuth?: {\n claims?: {\n userId?: { ... }\n sub?: { ... }\n email?: { ... }\n cognito:username?: { ... }\n custom:ivy_user_id?: { ... }\n }\n userId?: string\n organizationId?: string\n token?: string\n }\n}\n```\n\n### `ExecutionStatus`\n\n```ts\ntype ExecutionStatus = "pending" | "starting" | "in_progress" | "paused" | "success" | "failed" | "cancelled" | "skipped" | "scheduled" | "hot"\n```\n\n### `GetExecutionsResp`\n\n```ts\ntype GetExecutionsResp = {\n total: number\n results: Array<{\n id: string\n execution_status?: "pending" | "starting" | "in_progress" | "paused" | "success" | "failed" | "cancelled" | "skipped" | "scheduled" | "hot"\n entity_id: string\n activity_id?: string\n entity_snapshot?: {\n _id: { ... }\n _title: { ... }\n _org: { ... }\n _schema: { ... }\n _tags?: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n }\n org_id: string\n flow_id: string\n flow_name?: string\n created_at?: string // date-time\n updated_at?: string // date-time\n current_action_id?: string\n conditions?: Array<{\n id?: { ... }\n schedule_id?: { ... }\n evaluation_order?: { ... }\n evaluationResult?: { ... }\n error_output?: { ... }\n allow_failure?: { ... }\n statements?: { ... }\n }>\n schedules?: Array<{\n id: { ... }\n scheduleApiId?: { ... }\n numberOfUnits?: { ... }\n timePeriod?: { ... }\n timeRelation?: { ... }\n source: { ... }\n }>\n actions: Array<{\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n id?: { ... }\n flow_action_id?: { ... }\n name?: { ... }\n type?: { ... }\n config?: { ... }\n allow_failure?: { ... }\n created_automatically?: { ... }\n is_bulk_action?: { ... }\n reason?: { ... }\n condition_id?: { ... }\n schedule_id?: { ... }\n loop_id?: { ... }\n execution_status?: { ... }\n started_at?: { ... }\n updated_at?: { ... }\n outputs?: { ... }\n error_output?: { ... }\n retry_strategy?: { ... }\n iterations?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n // ...\n}\n```\n\n### `SearchExecutionsReq`\n\n```ts\ntype SearchExecutionsReq = {\n entity_id: string\n include_flows?: boolean\n size?: number\n cursor?: string\n}\n```\n\n### `SearchExecutionsResp`\n\n```ts\ntype SearchExecutionsResp = {\n total: number\n results: Array<{\n id: string\n execution_status?: "pending" | "starting" | "in_progress" | "paused" | "success" | "failed" | "cancelled" | "skipped" | "scheduled" | "hot"\n entity_id: string\n activity_id?: string\n entity_snapshot?: {\n _id: { ... }\n _title: { ... }\n _org: { ... }\n _schema: { ... }\n _tags?: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n }\n org_id: string\n flow_id: string\n flow_name?: string\n created_at?: string // date-time\n updated_at?: string // date-time\n current_action_id?: string\n conditions?: Array<{\n id?: { ... }\n schedule_id?: { ... }\n evaluation_order?: { ... }\n evaluationResult?: { ... }\n error_output?: { ... }\n allow_failure?: { ... }\n statements?: { ... }\n }>\n schedules?: Array<{\n id: { ... }\n scheduleApiId?: { ... }\n numberOfUnits?: { ... }\n timePeriod?: { ... }\n timeRelation?: { ... }\n source: { ... }\n }>\n actions: Array<{\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n id?: { ... }\n flow_action_id?: { ... }\n name?: { ... }\n type?: { ... }\n config?: { ... }\n allow_failure?: { ... }\n created_automatically?: { ... }\n is_bulk_action?: { ... }\n reason?: { ... }\n condition_id?: { ... }\n schedule_id?: { ... }\n loop_id?: { ... }\n execution_status?: { ... }\n started_at?: { ... }\n updated_at?: { ... }\n outputs?: { ... }\n error_output?: { ... }\n retry_strategy?: { ... }\n iterations?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n // ...\n}\n```\n\n### `StartExecutionRequest`\n\n```ts\ntype StartExecutionRequest = {\n entity_id: string\n flow_id: string\n workflow_context?: {\n workflow_exec_id: string\n workflow_exec_task_id?: string\n workflow_role: "trigger_workflow" | "run_task_automation"\n _execution_chain?: {\n parent_execution_id?: { ... }\n parent_task_id?: { ... }\n depth?: { ... }\n }\n _automation_chain?: string[]\n entity_contexts?: Array<{\n entity_id?: { ... }\n entity_schema?: { ... }\n is_primary?: { ... }\n }>\n trigger_user_id?: string\n }\n flow_execution_id?: string\n flow_automation_task_id?: string\n action_inputs?: {\n cancel-flow-execution?: {\n selected_reasons: { ... }\n extra_description?: { ... }\n }\n send-email?: {\n subject?: { ... }\n body?: { ... }\n attachment_entity_ids?: { ... }\n }\n }\n}\n```\n\n### `ActionInputs`\n\nInternal. Run-time inputs for the actions of this execution, keyed by\naction type. An action reads the entry for its own type and treats it\nas replacing the matching configured values; an action whose type has\nno entry runs entirely from its configuration.\n\nOnly the workflows service may set this fi\n\n```ts\ntype ActionInputs = {\n cancel-flow-execution?: {\n selected_reasons: Array<{\n id: { ... }\n title: { ... }\n }>\n extra_description?: string\n }\n send-email?: {\n subject?: string\n body?: string\n attachment_entity_ids?: string[]\n }\n}\n```\n\n### `SendEmailInputs`\n\nAdjustments a person made to an email before sending it, replacing the rendered values the template produced. The template itself is untouched.\n\n`attachment_entity_ids` is a request, not an instruction: the worker keeps only the ids that are genuinely files of the entity this execution runs on, so a\n\n```ts\ntype SendEmailInputs = {\n subject?: string\n body?: string\n attachment_entity_ids?: string[]\n}\n```\n\n### `FlowExecutionCancelInputs`\n\nThe cancellation reasons a person chose when running a semi-automated cancel step, replacing `selected_reasons` from the action\'s configuration.\n\n```ts\ntype FlowExecutionCancelInputs = {\n selected_reasons: Array<{\n id: string\n title: string\n }>\n extra_description?: string\n}\n```\n\n### `PatchBulkJobRequest`\n\n```ts\ntype PatchBulkJobRequest = {\n action: "APPROVE" | "CANCEL"\n task_token: string\n}\n```\n\n### `BulkTriggerRequest`\n\n```ts\ntype BulkTriggerRequest = {\n flow_id: string\n entities_refs: Array<{\n entity_id: string\n entity_schema: string\n }>\n trigger_context?: Record<string, string>\n} | {\n flow_id: string\n entities_query: string\n trigger_context?: Record<string, string>\n} | {\n flow_id: string\n entities_filter: Array<{\n term?: Record<string, string | number | boolean>\n terms?: Record<string, string | number | boolean[]>\n ids?: {\n values?: { ... }\n }\n range?: Record<string, {\n gt?: { ... }\n gte?: { ... }\n lt?: { ... }\n lte?: { ... }\n format?: { ... }\n relation?: { ... }\n time_zone?: { ... }\n }>\n exists?: {\n field: { ... }\n }\n $and?: Array<{\n term?: { ... }\n terms?: { ... }\n ids?: { ... }\n range?: { ... }\n exists?: { ... }\n $and?: { ... }\n $or?: { ... }\n $not?: { ... }\n }>\n $or?: Array<{\n term?: { ... }\n terms?: { ... }\n ids?: { ... }\n range?: { ... }\n exists?: { ... }\n $and?: { ... }\n $or?: { ... }\n $not?: { ... }\n }>\n $not?: Array<{\n term?: { ... }\n terms?: { ... }\n ids?: { ... }\n range?: { ... }\n exists?: { ... }\n $and?: { ... }\n $or?: { ... }\n $not?: { ... }\n }>\n }>\n trigger_context?: Record<string, string>\n}\n```\n\n### `EntityRef`\n\n```ts\ntype EntityRef = {\n entity_id: string\n entity_schema: string\n}\n```\n\n### `BulkTriggerJob`\n\n```ts\ntype BulkTriggerJob = {\n job_id: string\n org_id: string\n flow_id: string\n status: "approval" | "querying_entities" | "entities_loaded" | "executing" | "monitoring" | "send_report" | "finished" | "failed" | "cancelled"\n created_by: string\n created_at: string // date-time\n updated_at: string // date-time\n approved_at?: string // date-time\n trigger_context?: Record<string, string>\n task_token?: string\n report_file_entity_id?: string\n entity_query?: {\n type: "refs" | "query" | "filter"\n data: Array<{\n entity_id: { ... }\n entity_schema: { ... }\n }> | string | Array<{\n term?: { ... }\n terms?: { ... }\n ids?: { ... }\n range?: { ... }\n exists?: { ... }\n $and?: { ... }\n $or?: { ... }\n $not?: { ... }\n }>\n }\n pagination_state?: {\n page_size?: number\n pages_processed?: number\n total_processed?: number\n stable_query_id?: string\n search_after?: string | number[]\n has_more?: boolean\n }\n execution_summary?: Array<{\n entity_id: string\n entity_schema?: string\n execution_id?: string\n execution_status: "pending" | "starting" | "in_progress" | "paused" | "success" | "failed" | "cancelled" | "skipped" | "scheduled" | "hot"\n timestamp?: string // date-time\n error?: string\n }>\n}\n```\n\n### `ExecItem`\n\nExecution item for bulk trigger automation. It maps each entity to its automation execution id & status\n\n```ts\ntype ExecItem = {\n entity_id: string\n entity_schema?: string\n execution_id?: string\n execution_status: "pending" | "starting" | "in_progress" | "paused" | "success" | "failed" | "cancelled" | "skipped" | "scheduled" | "hot"\n timestamp?: string // date-time\n error?: string\n}\n```\n\n### `JobId`\n\nJob ID for tracking the status of bulk trigger automation executions\n\n```ts\ntype JobId = string\n```\n\n### `EntityId`\n\n```ts\ntype EntityId = string\n```\n\n### `ActivityId`\n\n```ts\ntype ActivityId = string\n```\n\n### `OrganizationId`\n\n```ts\ntype OrganizationId = string\n```\n\n### `TriggerContext`\n\nAdditional contextual data for a bulk trigger automation. This would normally include additional entity IDs you\'d need after a listener picks up an event.\n\n```ts\ntype TriggerContext = Record<string, string>\n```\n\n### `AutomationTrigger`\n\n```ts\ntype AutomationTrigger = {\n id?: string // uuid\n}\n```\n\n### `FlowsTrigger`\n\n```ts\ntype FlowsTrigger = {\n id?: string // uuid\n type: "flows_trigger"\n configuration?: {\n journey_id?: string // uuid\n }\n}\n```\n\n### `JourneySubmitTrigger`\n\n```ts\ntype JourneySubmitTrigger = {\n id?: string // uuid\n type: "journey_submission"\n configuration: {\n source_id: string // uuid\n }\n}\n```\n\n### `FrontendSubmitTrigger`\n\n```ts\ntype FrontendSubmitTrigger = {\n id?: string // uuid\n type: "frontend_submission"\n configuration: {\n source_id?: string\n }\n}\n```\n\n### `ApiSubmissionTrigger`\n\n```ts\ntype ApiSubmissionTrigger = {\n id?: string // uuid\n type: "api_submission"\n configuration: {\n source_id?: string\n }\n}\n```\n\n### `NewEmailThreadTrigger`\n\n```ts\ntype NewEmailThreadTrigger = {\n id?: string // uuid\n type: "new_email_thread"\n configuration: {\n shared_inbox_ids?: string[]\n direction: "INBOUND" | "OUTBOUND" | "BOTH"\n }\n}\n```\n\n### `ReceivedEmailTrigger`\n\n```ts\ntype ReceivedEmailTrigger = {\n id?: string // uuid\n type: "received_email"\n configuration: {\n message_type?: "RECEIVED"\n }\n}\n```\n\n### `EntityOperationTrigger`\n\n- If provides filter_config, executes an automation based on the filtered configuration when an entity event occurs.\n- The conditions on a filter follows the event bridge patterns - `https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html`\n | Comparison | Example\n\n```ts\ntype EntityOperationTrigger = {\n id?: string // uuid\n type: "entity_operation"\n configuration: {\n schema?: string\n operations?: "createEntity" | "updateEntity" | "deleteEntity" | "softDeleteEntity" | "restoreEntity" | "relationsAdded" | "relationsRemoved" | "relationsSoftDeleted" | "relationsRestored" | "relationsDeleted"[]\n include_activities?: string[]\n exclude_activities?: string[]\n filter_config?: {\n operation?: { ... }\n activity?: { ... }\n }\n ecp_config?: {\n origin?: { ... }\n portal_id?: { ... }\n file_config?: { ... }\n }\n }\n}\n```\n\n### `ActivityTrigger`\n\n```ts\ntype ActivityTrigger = {\n id?: string // uuid\n type: "activity"\n configuration: {\n schema?: string\n types?: "CreateMeterReading" | "UpdateMeterReading" | "DocDownloadedFromPortal" | "PortalUserResetPassword" | "PortalUserResetForgotPassword" | "SelfAssignmentFromPortal" | string[]\n }\n}\n```\n\n### `EntityOperation`\n\n```ts\ntype EntityOperation = "createEntity" | "updateEntity" | "deleteEntity" | "softDeleteEntity" | "restoreEntity" | "relationsAdded" | "relationsRemoved" | "relationsSoftDeleted" | "relationsRestored" | "relationsDeleted"\n```\n\n### `EntitySearchFilter`\n\nA subset of simplified Elasticsearch query clauses. The default operator is a logical AND. Use nested $and, $or, $not to combine filters using different logical operators.\n\n```ts\ntype EntitySearchFilter = Array<{\n term?: Record<string, string | number | boolean>\n terms?: Record<string, string | number | boolean[]>\n ids?: {\n values?: string[]\n }\n range?: Record<string, {\n gt?: string | number | boolean\n gte?: string | number | boolean\n lt?: string | number | boolean\n lte?: string | number | boolean\n format?: string\n relation?: "INTERSECTS" | "CONTAINS" | "WITHIN"\n time_zone?: string\n }>\n exists?: {\n field: string\n }\n $and?: Array<{\n term?: Record<string, string | number | boolean>\n terms?: Record<string, string | number | boolean[]>\n ids?: {\n values?: { ... }\n }\n range?: Record<string, {\n gt?: { ... }\n gte?: { ... }\n lt?: { ... }\n lte?: { ... }\n format?: { ... }\n relation?: { ... }\n time_zone?: { ... }\n }>\n exists?: {\n field: { ... }\n }\n $and?: Array<{\n term?: { ... }\n terms?: { ... }\n ids?: { ... }\n range?: { ... }\n exists?: { ... }\n $and?: { ... }\n $or?: { ... }\n $not?: { ... }\n }>\n $or?: Array<{\n term?: { ... }\n terms?: { ... }\n ids?: { ... }\n range?: { ... }\n exists?: { ... }\n $and?: { ... }\n $or?: { ... }\n $not?: { ... }\n }>\n $not?: Array<{\n term?: { ... }\n terms?: { ... }\n ids?: { ... }\n range?: { ... }\n exists?: { ... }\n $and?: { ... }\n $or?: { ... }\n $not?: { ... }\n }>\n }>\n $or?: Array<{\n term?: Record<string, string | number | boolean>\n terms?: Record<string, string | number | boolean[]>\n ids?: {\n values?: { ... }\n }\n range?: Record<string, {\n gt?: { ... }\n gte?: { ... }\n lt?: { ... }\n lte?: { ... }\n format?: { ... }\n relation?: { ... }\n time_zone?: { ... }\n }>\n exists?: {\n field: { ... }\n }\n $and?: Array<{\n term?: { ... }\n terms?: { ... }\n ids?: { ... }\n range?: { ... }\n exists?: { ... }\n $and?: { ... }\n $or?: { ... }\n $not?: { ... }\n }>\n $or?: Array<{\n term?: { ... }\n terms?: { ... }\n ids?: { ... }\n range?: { ... }\n // ...\n}\n```\n\n### `EntitySearchFilterValue`\n\nA filter field value.\n\n```ts\ntype EntitySearchFilterValue = string | number | boolean\n```\n\n### `EntityManualTrigger`\n\n```ts\ntype EntityManualTrigger = {\n id?: string // uuid\n type: "entity_manual"\n configuration: {\n schema?: string\n }\n}\n```\n\n### `EventCatalogTrigger`\n\nStarts the flow when an Event Catalog event is published for the organization. The execution runs in the context of one entity from the event\'s entity graph (`entity_node_id`), and the event payload is available to conditions and actions as the `event` variable context.\n\n\n```ts\ntype EventCatalogTrigger = {\n id?: string // uuid\n type: "event_catalog"\n configuration: {\n event_name: string\n event_version: string\n entity_node_id: string\n entity_schema: string\n ignore_automation_triggered?: boolean\n }\n}\n```\n\n### `TriggerCondition`\n\n```ts\ntype TriggerCondition = {\n source: string\n comparison: "equals" | "any_of" | "not_empty" | "is_empty"\n value?: string | number | string[] | number[]\n}\n```\n\n### `Comparison`\n\n```ts\ntype Comparison = "equals" | "any_of" | "not_empty" | "is_empty"\n```\n\n### `FilterConditionOnEvent`\n\n```ts\ntype FilterConditionOnEvent = {\n $or?: Array<{\n $or?: Array<{\n $or?: { ... }\n } | Record<string, Array<string | {\n equals-ignore-case?: { ... }\n } | {\n anything-but?: { ... }\n } | {\n numeric?: { ... }\n } | {\n exists?: { ... }\n } | {\n prefix?: { ... }\n } | {\n suffix?: { ... }\n } | {\n wildcard?: { ... }\n }>>>\n } | Record<string, Array<string | {\n equals-ignore-case?: string\n } | {\n anything-but?: string[]\n } | {\n numeric?: string | number[]\n } | {\n exists?: boolean\n } | {\n prefix?: string\n } | {\n suffix?: string\n } | {\n wildcard?: string\n }>>>\n} | Record<string, Array<string | {\n equals-ignore-case?: string\n} | {\n anything-but?: string[]\n} | {\n numeric?: string | number[]\n} | {\n exists?: boolean\n} | {\n prefix?: string\n} | {\n suffix?: string\n} | {\n wildcard?: string\n}>>\n```\n\n### `EqualsIgnoreCaseCondition`\n\n```ts\ntype EqualsIgnoreCaseCondition = {\n equals-ignore-case?: string\n}\n```\n\n### `AnythingButCondition`\n\n```ts\ntype AnythingButCondition = {\n anything-but?: string[]\n}\n```\n\n### `NumericCondition`\n\n```ts\ntype NumericCondition = {\n numeric?: string | number[]\n}\n```\n\n### `ExistsCondition`\n\n```ts\ntype ExistsCondition = {\n exists?: boolean\n}\n```\n\n### `PrefixCondition`\n\n```ts\ntype PrefixCondition = {\n prefix?: string\n}\n```\n\n### `SuffixCondition`\n\n```ts\ntype SuffixCondition = {\n suffix?: string\n}\n```\n\n### `WildcardCondition`\n\n```ts\ntype WildcardCondition = {\n wildcard?: string\n}\n```\n\n### `OrCondition`\n\n```ts\ntype OrCondition = {\n $or?: Array<{\n $or?: Array<{\n $or?: { ... }\n } | Record<string, Array<string | {\n equals-ignore-case?: { ... }\n } | {\n anything-but?: { ... }\n } | {\n numeric?: { ... }\n } | {\n exists?: { ... }\n } | {\n prefix?: { ... }\n } | {\n suffix?: { ... }\n } | {\n wildcard?: { ... }\n }>>>\n } | Record<string, Array<string | {\n equals-ignore-case?: string\n } | {\n anything-but?: string[]\n } | {\n numeric?: string | number[]\n } | {\n exists?: boolean\n } | {\n prefix?: string\n } | {\n suffix?: string\n } | {\n wildcard?: string\n }>>>\n}\n```\n\n### `DiffAdded`\n\n```ts\ntype DiffAdded = {\n $or?: Array<{\n $or?: Array<{\n $or?: { ... }\n } | Record<string, Array<string | {\n equals-ignore-case?: { ... }\n } | {\n anything-but?: { ... }\n } | {\n numeric?: { ... }\n } | {\n exists?: { ... }\n } | {\n prefix?: { ... }\n } | {\n suffix?: { ... }\n } | {\n wildcard?: { ... }\n }>>>\n } | Record<string, Array<string | {\n equals-ignore-case?: string\n } | {\n anything-but?: string[]\n } | {\n numeric?: string | number[]\n } | {\n exists?: boolean\n } | {\n prefix?: string\n } | {\n suffix?: string\n } | {\n wildcard?: string\n }>>>\n} | Record<string, Array<string | {\n equals-ignore-case?: string\n} | {\n anything-but?: string[]\n} | {\n numeric?: string | number[]\n} | {\n exists?: boolean\n} | {\n prefix?: string\n} | {\n suffix?: string\n} | {\n wildcard?: string\n}>>\n```\n\n### `DiffUpdated`\n\n```ts\ntype DiffUpdated = {\n $or?: Array<{\n $or?: Array<{\n $or?: { ... }\n } | Record<string, Array<string | {\n equals-ignore-case?: { ... }\n } | {\n anything-but?: { ... }\n } | {\n numeric?: { ... }\n } | {\n exists?: { ... }\n } | {\n prefix?: { ... }\n } | {\n suffix?: { ... }\n } | {\n wildcard?: { ... }\n }>>>\n } | Record<string, Array<string | {\n equals-ignore-case?: string\n } | {\n anything-but?: string[]\n } | {\n numeric?: string | number[]\n } | {\n exists?: boolean\n } | {\n prefix?: string\n } | {\n suffix?: string\n } | {\n wildcard?: string\n }>>>\n} | Record<string, Array<string | {\n equals-ignore-case?: string\n} | {\n anything-but?: string[]\n} | {\n numeric?: string | number[]\n} | {\n exists?: boolean\n} | {\n prefix?: string\n} | {\n suffix?: string\n} | {\n wildcard?: string\n}>>\n```\n\n### `DiffDeleted`\n\n```ts\ntype DiffDeleted = {\n $or?: Array<{\n $or?: Array<{\n $or?: { ... }\n } | Record<string, Array<string | {\n equals-ignore-case?: { ... }\n } | {\n anything-but?: { ... }\n } | {\n numeric?: { ... }\n } | {\n exists?: { ... }\n } | {\n prefix?: { ... }\n } | {\n suffix?: { ... }\n } | {\n wildcard?: { ... }\n }>>>\n } | Record<string, Array<string | {\n equals-ignore-case?: string\n } | {\n anything-but?: string[]\n } | {\n numeric?: string | number[]\n } | {\n exists?: boolean\n } | {\n prefix?: string\n } | {\n suffix?: string\n } | {\n wildcard?: string\n }>>>\n} | Record<string, Array<string | {\n equals-ignore-case?: string\n} | {\n anything-but?: string[]\n} | {\n numeric?: string | number[]\n} | {\n exists?: boolean\n} | {\n prefix?: string\n} | {\n suffix?: string\n} | {\n wildcard?: string\n}>>\n```\n\n### `OrConditionForDiff`\n\n```ts\ntype OrConditionForDiff = {\n $or?: unknown | unknown | unknown[]\n}\n```\n\n### `EntityItemSnapshot`\n\n```ts\ntype EntityItemSnapshot = {\n _id: string\n _title: string\n _org: string\n _schema: string\n _tags?: string[]\n _created_at: string // date-time\n _updated_at: string // date-time\n}\n```\n\n### `RetryReq`\n\n```ts\ntype RetryReq = {\n condition_id?: string\n retry_strategy?: "RETRY_AND_RESUME" | "RETRY_AND_STOP" | "RETRY_ALL_PARENT_CONDITION_ACTIONS"\n}\n```\n\n### `ResumeToken`\n\nA unique token to resume a paused automation execution\n\n```ts\ntype ResumeToken = string\n```\n\n### `ResumeReq`\n\n```ts\ntype ResumeReq = {\n resume_token: string\n}\n```\n\n### `ResumeResp`\n\n```ts\ntype ResumeResp = {\n execution: {\n id: string\n execution_status?: "pending" | "starting" | "in_progress" | "paused" | "success" | "failed" | "cancelled" | "skipped" | "scheduled" | "hot"\n entity_id: string\n activity_id?: string\n entity_snapshot?: {\n _id: { ... }\n _title: { ... }\n _org: { ... }\n _schema: { ... }\n _tags?: { ... }\n _created_at: { ... }\n _updated_at: { ... }\n }\n org_id: string\n flow_id: string\n flow_name?: string\n created_at?: string // date-time\n updated_at?: string // date-time\n current_action_id?: string\n conditions?: Array<{\n id?: { ... }\n schedule_id?: { ... }\n evaluation_order?: { ... }\n evaluationResult?: { ... }\n error_output?: { ... }\n allow_failure?: { ... }\n statements?: { ... }\n }>\n schedules?: Array<{\n id: { ... }\n scheduleApiId?: { ... }\n numberOfUnits?: { ... }\n timePeriod?: { ... }\n timeRelation?: { ... }\n source: { ... }\n }>\n actions: Array<{\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n id?: { ... }\n flow_action_id?: { ... }\n name?: { ... }\n type?: { ... }\n config?: { ... }\n allow_failure?: { ... }\n created_automatically?: { ... }\n is_bulk_action?: { ... }\n reason?: { ... }\n condition_id?: { ... }\n schedule_id?: { ... }\n loop_id?: { ... }\n execution_status?: { ... }\n started_at?: { ... }\n updated_at?: { ... }\n outputs?: { ... }\n error_output?: { ... }\n retry_strategy?: { ... }\n iterations?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n } | {\n type?: { ... }\n config?: { ... }\n // ...\n}\n```\n\n### `ErrorObject`\n\n```ts\ntype ErrorObject = {\n status?: number\n error?: string\n}\n```\n';
|
|
5
|
-
export {
|
|
6
|
-
automation_default as default
|
|
7
|
-
};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import "./chunk-YPSWSI3M.js";
|
|
2
|
-
|
|
3
|
-
// src/docs/workflow-definition.json
|
|
4
|
-
var workflow_definition_default = '# Workflows Definitions\n\n- **Base URL:** `https://workflows-definition.sls.epilot.io`\n- **Full API Docs:** [https://docs.epilot.io/api/workflow-definition](https://docs.epilot.io/api/workflow-definition)\n\n## Usage\n\n```ts\nimport { epilot } from \'@epilot/sdk\'\n\nepilot.authorize(() => \'<token>\')\nconst { data } = await epilot.workflowDefinition.getMaxAllowedLimit(...)\n```\n\n### Tree-shakeable import\n\n```ts\nimport { getClient, authorize } from \'@epilot/sdk/workflow-definition\'\n\nconst workflowDefinitionClient = getClient()\nauthorize(workflowDefinitionClient, () => \'<token>\')\nconst { data } = await workflowDefinitionClient.getMaxAllowedLimit(...)\n```\n\n## Operations\n\n**Workflows**\n- [`getMaxAllowedLimit`](#getmaxallowedlimit)\n- [`getDefinitions`](#getdefinitions)\n- [`createDefinition`](#createdefinition)\n- [`getDefinition`](#getdefinition)\n- [`updateDefinition`](#updatedefinition)\n- [`deleteDefinition`](#deletedefinition)\n- [`getWorkflowClosingReasons`](#getworkflowclosingreasons)\n- [`setWorkflowClosingReasons`](#setworkflowclosingreasons)\n\n**Flows V2**\n- [`listFlowTemplates`](#listflowtemplates)\n- [`createFlowTemplate`](#createflowtemplate)\n- [`searchFlowTemplates`](#searchflowtemplates)\n- [`getFlowTemplate`](#getflowtemplate)\n- [`updateFlowTemplate`](#updateflowtemplate)\n- [`deleteFlowTemplate`](#deleteflowtemplate)\n- [`duplicateFlowTemplate`](#duplicateflowtemplate)\n\n**Closing Reason**\n- [`getAllClosingReasons`](#getallclosingreasons)\n- [`createClosingReason`](#createclosingreason)\n- [`getClosingReason`](#getclosingreason)\n- [`updateClosingReason`](#updateclosingreason)\n- [`deleteClosingReason`](#deleteclosingreason)\n- [`changeReasonStatus`](#changereasonstatus)\n\n**Schemas**\n- [`FlowTemplateBase`](#flowtemplatebase)\n- [`FlowLimitWarning`](#flowlimitwarning)\n- [`FlowTemplate`](#flowtemplate)\n- [`Version`](#version)\n- [`Trigger`](#trigger)\n- [`ManualTrigger`](#manualtrigger)\n- [`AutomationTrigger`](#automationtrigger)\n- [`JourneyAutomationTrigger`](#journeyautomationtrigger)\n- [`JourneySubmissionTrigger`](#journeysubmissiontrigger)\n- [`CreateFlowTemplate`](#createflowtemplate)\n- [`SearchFlowTemplates`](#searchflowtemplates)\n- [`FlowTemplatesList`](#flowtemplateslist)\n- [`FlowTemplateId`](#flowtemplateid)\n- [`Task`](#task)\n- [`ManualTask`](#manualtask)\n- [`AutomationTask`](#automationtask)\n- [`AutomationConfig`](#automationconfig)\n- [`AutomationInputContext`](#automationinputcontext)\n- [`AiAgentTask`](#aiagenttask)\n- [`AgentConfig`](#agentconfig)\n- [`TriggerMode`](#triggermode)\n- [`ActionSchedule`](#actionschedule)\n- [`ImmediateSchedule`](#immediateschedule)\n- [`DelayedSchedule`](#delayedschedule)\n- [`RelativeSchedule`](#relativeschedule)\n- [`DecisionTask`](#decisiontask)\n- [`TaskBase`](#taskbase)\n- [`Phase`](#phase)\n- [`VariableAssignment`](#variableassignment)\n- [`TaskType`](#tasktype)\n- [`Edge`](#edge)\n- [`Condition`](#condition)\n- [`Statement`](#statement)\n- [`EvaluationSource`](#evaluationsource)\n- [`Operator`](#operator)\n- [`DueDateConfig`](#duedateconfig)\n- [`TimeUnit`](#timeunit)\n- [`EnableRequirement`](#enablerequirement)\n- [`WorkflowDefinition`](#workflowdefinition)\n- [`Step`](#step)\n- [`Section`](#section)\n- [`TriggerType`](#triggertype)\n- [`ItemType`](#itemtype)\n- [`StepType`](#steptype)\n- [`StepJourney`](#stepjourney)\n- [`ECPDetails`](#ecpdetails)\n- [`PartnerDetails`](#partnerdetails)\n- [`StepDescription`](#stepdescription)\n- [`MaxAllowedLimit`](#maxallowedlimit)\n- [`DefinitionNotFoundResp`](#definitionnotfoundresp)\n- [`ClosingReasonNotFoundResp`](#closingreasonnotfoundresp)\n- [`ChangeReasonStatusReq`](#changereasonstatusreq)\n- [`ClosingReasons`](#closingreasons)\n- [`ClosingReason`](#closingreason)\n- [`ClosingReasonsStatus`](#closingreasonsstatus)\n- [`ClosingReasonsIds`](#closingreasonsids)\n- [`ClosingReasonId`](#closingreasonid)\n- [`ErrorResp`](#errorresp)\n- [`UpdateEntityAttributes`](#updateentityattributes)\n- [`EntitySync`](#entitysync)\n- [`DynamicDueDate`](#dynamicduedate)\n- [`StepRequirement`](#steprequirement)\n\n### `getMaxAllowedLimit`\n\nGet limits and number of created executions for an Organization.\n\n`GET /v1/workflows/limits/max-allowed`\n\n```ts\nconst { data } = await client.getMaxAllowedLimit()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "currentNoOfWorkflows": 0,\n "maxAllowed": 0\n}\n```\n\n</details>\n\n---\n\n### `getDefinitions`\n\nRetrieve all V1 workflow definitions belonging to the authenticated organization.\n\n`GET /v1/workflows/definitions`\n\n```ts\nconst { data } = await client.getDefinitions()\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n[\n {\n "id": "string",\n "name": "string",\n "description": "string",\n "creationTime": "2021-04-27T12:01:13.000Z",\n "enabled": true,\n "lastUpdateTime": "2021-04-27T12:01:13.000Z",\n "dueDate": "2021-04-27T12:00:00.000Z",\n "dynamicDueDate": {\n "numberOfUnits": 0,\n "timePeriod": "minutes",\n "actionTypeCondition": "WORKFLOW_STARTED",\n "stepId": "string",\n "phaseId": "string"\n },\n "userIds": [0],\n "assignedTo": ["string"],\n "enableECPWorkflow": true,\n "flow": [\n {},\n {}\n ],\n "closingReasons": [\n {}\n ],\n "updateEntityAttributes": [\n {}\n ],\n "taxonomies": ["string"],\n "singleClosingReasonSelection": true,\n "_manifest": ["string"]\n }\n]\n```\n\n</details>\n\n---\n\n### `createDefinition`\n\nCreate a new V1 workflow definition. The definition consists of sections and steps\nthat define the structure of the workflow. Once created, the definition can be used\nto start workflow executions.\n\n`POST /v1/workflows/definitions`\n\n```ts\nconst { data } = await client.createDefinition(\n null,\n {\n id: \'string\',\n name: \'string\',\n description: \'string\',\n creationTime: \'2021-04-27T12:01:13.000Z\',\n enabled: true,\n lastUpdateTime: \'2021-04-27T12:01:13.000Z\',\n dueDate: \'2021-04-27T12:00:00.000Z\',\n dynamicDueDate: {\n numberOfUnits: 0,\n timePeriod: \'minutes\',\n actionTypeCondition: \'WORKFLOW_STARTED\',\n stepId: \'string\',\n phaseId: \'string\'\n },\n userIds: [0],\n assignedTo: [\'string\'],\n enableECPWorkflow: true,\n flow: [\n {\n id: \'string\',\n name: \'string\',\n order: 0,\n type: \'STEP\',\n dueDate: \'2021-04-27T12:00:00.000Z\',\n dynamicDueDate: { /* ... */ },\n assignedTo: [\'string\'],\n steps: [ /* ... */ ],\n taxonomies: [\'string\']\n },\n {\n id: \'string\',\n name: \'string\',\n description: { /* ... */ },\n executionType: \'MANUAL\',\n automationConfig: { /* ... */ },\n journey: { /* ... */ },\n order: 0,\n dueDate: \'2021-04-27T12:00:00.000Z\',\n dynamicDueDate: { /* ... */ },\n userIds: [0],\n requirements: [ /* ... */ ],\n assignedTo: [\'string\'],\n type: \'STEP\',\n ecp: { /* ... */ },\n installer: { /* ... */ },\n partner: { /* ... */ },\n taxonomies: [\'string\']\n }\n ],\n closingReasons: [\n {\n id: \'x739cew\'\n }\n ],\n updateEntityAttributes: [\n {\n source: \'workflow_status\',\n target: { /* ... */ }\n }\n ],\n taxonomies: [\'string\'],\n singleClosingReasonSelection: true,\n _manifest: [\'string\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "name": "string",\n "description": "string",\n "creationTime": "2021-04-27T12:01:13.000Z",\n "enabled": true,\n "lastUpdateTime": "2021-04-27T12:01:13.000Z",\n "dueDate": "2021-04-27T12:00:00.000Z",\n "dynamicDueDate": {\n "numberOfUnits": 0,\n "timePeriod": "minutes",\n "actionTypeCondition": "WORKFLOW_STARTED",\n "stepId": "string",\n "phaseId": "string"\n },\n "userIds": [0],\n "assignedTo": ["string"],\n "enableECPWorkflow": true,\n "flow": [\n {\n "id": "string",\n "name": "string",\n "order": 0,\n "type": "STEP",\n "dueDate": "2021-04-27T12:00:00.000Z",\n "dynamicDueDate": {},\n "assignedTo": ["string"],\n "steps": [],\n "taxonomies": ["string"]\n },\n {\n "id": "string",\n "name": "string",\n "description": {},\n "executionType": "MANUAL",\n "automationConfig": {},\n "journey": {},\n "order": 0,\n "dueDate": "2021-04-27T12:00:00.000Z",\n "dynamicDueDate": {},\n "userIds": [0],\n "requirements": [],\n "assignedTo": ["string"],\n "type": "STEP",\n "ecp": {},\n "installer": {},\n "partner": {},\n "taxonomies": ["string"]\n }\n ],\n "closingReasons": [\n {\n "id": "x739cew"\n }\n ],\n "updateEntityAttributes": [\n {\n "source": "workflow_status",\n "target": {}\n }\n ],\n "taxonomies": ["string"],\n "singleClosingReasonSelection": true,\n "_manifest": ["string"]\n}\n```\n\n</details>\n\n---\n\n### `listFlowTemplates`\n\nList all Flow Templates for a customer. Optionally, you can filter flow templates by trigger values.\n\n`GET /v2/flows/templates`\n\n```ts\nconst { data } = await client.listFlowTemplates({\n trigger_type: \'example\',\n trigger_source_id: \'example\',\n trigger_schema: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "results": [\n {\n "id": "string",\n "org_id": "string",\n "name": "string",\n "description": "string",\n "trigger": {},\n "enabled": true,\n "version": 2,\n "created_at": "2021-04-27T12:01:13.000Z",\n "updated_at": "2021-04-27T12:01:13.000Z",\n "due_date": "2021-04-27T12:00:00.000Z",\n "due_date_config": {},\n "assigned_to": ["string"],\n "available_in_ecp": true,\n "additional_triggers": [],\n "phases": [],\n "tasks": [],\n "edges": [],\n "closing_reasons": [],\n "entity_sync": [],\n "taxonomies": ["string"],\n "singleClosingReasonSelection": true,\n "_manifest": ["string"],\n "linear": true,\n "limit_warnings": []\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createFlowTemplate`\n\nCreate a new Flow Template (V2 workflow definition).\n\n`POST /v2/flows/templates`\n\n```ts\nconst { data } = await client.createFlowTemplate(\n {\n enforce_limits: true,\n },\n {\n id: \'string\',\n org_id: \'string\',\n name: \'string\',\n description: \'string\',\n trigger: {\n type: \'automation\',\n automation_id: \'g92j2-sg9ug92hjt1gh-9s9gajgs-a979gg\'\n },\n enabled: true,\n version: 2,\n created_at: \'2021-04-27T12:01:13.000Z\',\n updated_at: \'2021-04-27T12:01:13.000Z\',\n due_date: \'2021-04-27T12:00:00.000Z\',\n due_date_config: {\n duration: 0,\n unit: \'minutes\',\n type: \'WORKFLOW_STARTED\',\n task_id: \'string\',\n phase_id: \'string\'\n },\n assigned_to: [\'string\'],\n available_in_ecp: true,\n additional_triggers: [\n {\n id: \'string\',\n type: \'manual\',\n entity_schema: \'string\'\n },\n {\n id: \'string\',\n type: \'automation\',\n automation_id: \'string\',\n input_entity: \'thread\',\n trigger_config: [ /* ... */ ]\n },\n /* ... 2 more */\n ],\n phases: [\n {\n id: \'string\',\n name: \'string\',\n due_date: \'2021-04-27T12:00:00.000Z\',\n due_date_config: { /* ... */ },\n assigned_to: [\'string\'],\n taxonomies: [\'string\']\n }\n ],\n tasks: [\n {\n id: \'string\',\n name: \'string\',\n description: { /* ... */ },\n journey: { /* ... */ },\n due_date: \'2021-04-27T12:00:00.000Z\',\n due_date_config: { /* ... */ },\n requirements: [ /* ... */ ],\n assigned_to: [\'string\'],\n ecp: { /* ... */ },\n installer: { /* ... */ },\n partner: { /* ... */ },\n taxonomies: [\'string\'],\n phase_id: \'string\',\n task_type: \'MANUAL\'\n },\n {\n id: \'string\',\n name: \'string\',\n description: { /* ... */ },\n journey: { /* ... */ },\n due_date: \'2021-04-27T12:00:00.000Z\',\n due_date_config: { /* ... */ },\n requirements: [ /* ... */ ],\n assigned_to: [\'string\'],\n ecp: { /* ... */ },\n installer: { /* ... */ },\n partner: { /* ... */ },\n taxonomies: [\'string\'],\n phase_id: \'string\',\n task_type: \'MANUAL\',\n automation_config: { /* ... */ },\n trigger_mode: \'manual\',\n schedule: { /* ... */ },\n created_automatically: false\n },\n /* ... 2 more */\n ],\n edges: [\n {\n id: \'string\',\n from_id: \'string\',\n to_id: \'string\',\n condition_id: \'string\',\n none_met: true\n }\n ],\n closing_reasons: [\n {\n id: \'string\',\n title: \'string\',\n status: \'ACTIVE\',\n lastUpdateTime: \'string\',\n creationTime: \'string\'\n }\n ],\n entity_sync: [\n {\n trigger: { /* ... */ },\n target: { /* ... */ },\n value: { /* ... */ }\n }\n ],\n taxonomies: [\'string\'],\n singleClosingReasonSelection: true,\n _manifest: [\'string\'],\n linear: true,\n limit_warnings: [\n {\n i18nKey: \'string\',\n message: \'string\',\n max: 0,\n current: 0,\n node_id: \'string\',\n task_name: \'string\',\n branch_name: \'string\',\n param_name: \'string\',\n path: [ /* ... */ ]\n }\n ]\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "org_id": "string",\n "name": "string",\n "description": "string",\n "trigger": {\n "type": "automation",\n "automation_id": "g92j2-sg9ug92hjt1gh-9s9gajgs-a979gg"\n },\n "enabled": true,\n "version": 2,\n "created_at": "2021-04-27T12:01:13.000Z",\n "updated_at": "2021-04-27T12:01:13.000Z",\n "due_date": "2021-04-27T12:00:00.000Z",\n "due_date_config": {\n "duration": 0,\n "unit": "minutes",\n "type": "WORKFLOW_STARTED",\n "task_id": "string",\n "phase_id": "string"\n },\n "assigned_to": ["string"],\n "available_in_ecp": true,\n "additional_triggers": [\n {\n "id": "string",\n "type": "manual",\n "entity_schema": "string"\n },\n {\n "id": "string",\n "type": "automation",\n "automation_id": "string",\n "input_entity": "thread",\n "trigger_config": []\n }\n ],\n "phases": [\n {\n "id": "string",\n "name": "string",\n "due_date": "2021-04-27T12:00:00.000Z",\n "due_date_config": {},\n "assigned_to": ["string"],\n "taxonomies": ["string"]\n }\n ],\n "tasks": [\n {\n "id": "string",\n "name": "string",\n "description": {},\n "journey": {},\n "due_date": "2021-04-27T12:00:00.000Z",\n "due_date_config": {},\n "requirements": [],\n "assigned_to": ["string"],\n "ecp": {},\n "installer": {},\n "partner": {},\n "taxonomies": ["string"],\n "phase_id": "string",\n "task_type": "MANUAL"\n },\n {\n "id": "string",\n "name": "string",\n "description": {},\n "journey": {},\n "due_date": "2021-04-27T12:00:00.000Z",\n "due_date_config": {},\n "requirements": [],\n "assigned_to": ["string"],\n "ecp": {},\n "installer": {},\n "partner": {},\n "taxonomies": ["string"],\n "phase_id": "string",\n "task_type": "MANUAL",\n "automation_config": {},\n "trigger_mode": "manual",\n "schedule": {},\n "created_automatically": false\n }\n ],\n "edges": [\n {\n "id": "string",\n "from_id": "string",\n "to_id": "string",\n "condition_id": "string",\n "none_met": true\n }\n ],\n "closing_reasons": [\n {\n "id": "string",\n "title": "string",\n "status": "ACTIVE",\n "lastUpdateTime": "string",\n "creationTime": "string"\n }\n ],\n "entity_sync": [\n {\n "trigger": {},\n "target": {},\n "value": {}\n }\n ],\n "taxonomies": ["string"],\n "singleClosingReasonSelection": true,\n "_manifest": ["string"],\n "linear": true,\n "limit_warnings": [\n {\n "i18nKey": "string",\n "message": "string",\n "max": 0,\n "current": 0,\n "node_id": "string",\n "task_name": "string",\n "branch_name": "string",\n "param_name": "string",\n "path": []\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `searchFlowTemplates`\n\nSearch for flow templates by name, trigger type, enabled status, and more.\n\n`POST /v2/flows/templates:search`\n\n```ts\nconst { data } = await client.searchFlowTemplates(\n null,\n {\n name: \'string\',\n definition_id: \'string\',\n trigger_type: \'journey_submission\',\n enabled: true,\n from: 0,\n size: 0,\n sort_by: \'updated_at\',\n sort_order: \'desc\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "hits": 0,\n "results": [\n {\n "id": "string",\n "org_id": "string",\n "name": "string",\n "description": "string",\n "trigger": {},\n "enabled": true,\n "version": 2,\n "created_at": "2021-04-27T12:01:13.000Z",\n "updated_at": "2021-04-27T12:01:13.000Z",\n "due_date": "2021-04-27T12:00:00.000Z",\n "due_date_config": {},\n "assigned_to": ["string"],\n "available_in_ecp": true,\n "additional_triggers": [],\n "phases": [],\n "tasks": [],\n "edges": [],\n "closing_reasons": [],\n "entity_sync": [],\n "taxonomies": ["string"],\n "singleClosingReasonSelection": true,\n "_manifest": ["string"],\n "linear": true,\n "limit_warnings": []\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getFlowTemplate`\n\nRetrieve a specific flow template by its unique identifier.\n\n`GET /v2/flows/templates/{flowId}`\n\n```ts\nconst { data } = await client.getFlowTemplate({\n flowId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "org_id": "string",\n "name": "string",\n "description": "string",\n "trigger": {\n "type": "automation",\n "automation_id": "g92j2-sg9ug92hjt1gh-9s9gajgs-a979gg"\n },\n "enabled": true,\n "version": 2,\n "created_at": "2021-04-27T12:01:13.000Z",\n "updated_at": "2021-04-27T12:01:13.000Z",\n "due_date": "2021-04-27T12:00:00.000Z",\n "due_date_config": {\n "duration": 0,\n "unit": "minutes",\n "type": "WORKFLOW_STARTED",\n "task_id": "string",\n "phase_id": "string"\n },\n "assigned_to": ["string"],\n "available_in_ecp": true,\n "additional_triggers": [\n {\n "id": "string",\n "type": "manual",\n "entity_schema": "string"\n },\n {\n "id": "string",\n "type": "automation",\n "automation_id": "string",\n "input_entity": "thread",\n "trigger_config": []\n }\n ],\n "phases": [\n {\n "id": "string",\n "name": "string",\n "due_date": "2021-04-27T12:00:00.000Z",\n "due_date_config": {},\n "assigned_to": ["string"],\n "taxonomies": ["string"]\n }\n ],\n "tasks": [\n {\n "id": "string",\n "name": "string",\n "description": {},\n "journey": {},\n "due_date": "2021-04-27T12:00:00.000Z",\n "due_date_config": {},\n "requirements": [],\n "assigned_to": ["string"],\n "ecp": {},\n "installer": {},\n "partner": {},\n "taxonomies": ["string"],\n "phase_id": "string",\n "task_type": "MANUAL"\n },\n {\n "id": "string",\n "name": "string",\n "description": {},\n "journey": {},\n "due_date": "2021-04-27T12:00:00.000Z",\n "due_date_config": {},\n "requirements": [],\n "assigned_to": ["string"],\n "ecp": {},\n "installer": {},\n "partner": {},\n "taxonomies": ["string"],\n "phase_id": "string",\n "task_type": "MANUAL",\n "automation_config": {},\n "trigger_mode": "manual",\n "schedule": {},\n "created_automatically": false\n }\n ],\n "edges": [\n {\n "id": "string",\n "from_id": "string",\n "to_id": "string",\n "condition_id": "string",\n "none_met": true\n }\n ],\n "closing_reasons": [\n {\n "id": "string",\n "title": "string",\n "status": "ACTIVE",\n "lastUpdateTime": "string",\n "creationTime": "string"\n }\n ],\n "entity_sync": [\n {\n "trigger": {},\n "target": {},\n "value": {}\n }\n ],\n "taxonomies": ["string"],\n "singleClosingReasonSelection": true,\n "_manifest": ["string"],\n "linear": true,\n "limit_warnings": [\n {\n "i18nKey": "string",\n "message": "string",\n "max": 0,\n "current": 0,\n "node_id": "string",\n "task_name": "string",\n "branch_name": "string",\n "param_name": "string",\n "path": []\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `updateFlowTemplate`\n\nUpdate Flow Template.\n\n`PUT /v2/flows/templates/{flowId}`\n\n```ts\nconst { data } = await client.updateFlowTemplate(\n {\n flowId: \'example\',\n enforce_limits: true,\n },\n {\n id: \'string\',\n org_id: \'string\',\n name: \'string\',\n description: \'string\',\n trigger: {\n type: \'automation\',\n automation_id: \'g92j2-sg9ug92hjt1gh-9s9gajgs-a979gg\'\n },\n enabled: true,\n version: 2,\n created_at: \'2021-04-27T12:01:13.000Z\',\n updated_at: \'2021-04-27T12:01:13.000Z\',\n due_date: \'2021-04-27T12:00:00.000Z\',\n due_date_config: {\n duration: 0,\n unit: \'minutes\',\n type: \'WORKFLOW_STARTED\',\n task_id: \'string\',\n phase_id: \'string\'\n },\n assigned_to: [\'string\'],\n available_in_ecp: true,\n additional_triggers: [\n {\n id: \'string\',\n type: \'manual\',\n entity_schema: \'string\'\n },\n {\n id: \'string\',\n type: \'automation\',\n automation_id: \'string\',\n input_entity: \'thread\',\n trigger_config: [ /* ... */ ]\n },\n /* ... 2 more */\n ],\n phases: [\n {\n id: \'string\',\n name: \'string\',\n due_date: \'2021-04-27T12:00:00.000Z\',\n due_date_config: { /* ... */ },\n assigned_to: [\'string\'],\n taxonomies: [\'string\']\n }\n ],\n tasks: [\n {\n id: \'string\',\n name: \'string\',\n description: { /* ... */ },\n journey: { /* ... */ },\n due_date: \'2021-04-27T12:00:00.000Z\',\n due_date_config: { /* ... */ },\n requirements: [ /* ... */ ],\n assigned_to: [\'string\'],\n ecp: { /* ... */ },\n installer: { /* ... */ },\n partner: { /* ... */ },\n taxonomies: [\'string\'],\n phase_id: \'string\',\n task_type: \'MANUAL\'\n },\n {\n id: \'string\',\n name: \'string\',\n description: { /* ... */ },\n journey: { /* ... */ },\n due_date: \'2021-04-27T12:00:00.000Z\',\n due_date_config: { /* ... */ },\n requirements: [ /* ... */ ],\n assigned_to: [\'string\'],\n ecp: { /* ... */ },\n installer: { /* ... */ },\n partner: { /* ... */ },\n taxonomies: [\'string\'],\n phase_id: \'string\',\n task_type: \'MANUAL\',\n automation_config: { /* ... */ },\n trigger_mode: \'manual\',\n schedule: { /* ... */ },\n created_automatically: false\n },\n /* ... 2 more */\n ],\n edges: [\n {\n id: \'string\',\n from_id: \'string\',\n to_id: \'string\',\n condition_id: \'string\',\n none_met: true\n }\n ],\n closing_reasons: [\n {\n id: \'string\',\n title: \'string\',\n status: \'ACTIVE\',\n lastUpdateTime: \'string\',\n creationTime: \'string\'\n }\n ],\n entity_sync: [\n {\n trigger: { /* ... */ },\n target: { /* ... */ },\n value: { /* ... */ }\n }\n ],\n taxonomies: [\'string\'],\n singleClosingReasonSelection: true,\n _manifest: [\'string\'],\n linear: true,\n limit_warnings: [\n {\n i18nKey: \'string\',\n message: \'string\',\n max: 0,\n current: 0,\n node_id: \'string\',\n task_name: \'string\',\n branch_name: \'string\',\n param_name: \'string\',\n path: [ /* ... */ ]\n }\n ]\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "org_id": "string",\n "name": "string",\n "description": "string",\n "trigger": {\n "type": "automation",\n "automation_id": "g92j2-sg9ug92hjt1gh-9s9gajgs-a979gg"\n },\n "enabled": true,\n "version": 2,\n "created_at": "2021-04-27T12:01:13.000Z",\n "updated_at": "2021-04-27T12:01:13.000Z",\n "due_date": "2021-04-27T12:00:00.000Z",\n "due_date_config": {\n "duration": 0,\n "unit": "minutes",\n "type": "WORKFLOW_STARTED",\n "task_id": "string",\n "phase_id": "string"\n },\n "assigned_to": ["string"],\n "available_in_ecp": true,\n "additional_triggers": [\n {\n "id": "string",\n "type": "manual",\n "entity_schema": "string"\n },\n {\n "id": "string",\n "type": "automation",\n "automation_id": "string",\n "input_entity": "thread",\n "trigger_config": []\n }\n ],\n "phases": [\n {\n "id": "string",\n "name": "string",\n "due_date": "2021-04-27T12:00:00.000Z",\n "due_date_config": {},\n "assigned_to": ["string"],\n "taxonomies": ["string"]\n }\n ],\n "tasks": [\n {\n "id": "string",\n "name": "string",\n "description": {},\n "journey": {},\n "due_date": "2021-04-27T12:00:00.000Z",\n "due_date_config": {},\n "requirements": [],\n "assigned_to": ["string"],\n "ecp": {},\n "installer": {},\n "partner": {},\n "taxonomies": ["string"],\n "phase_id": "string",\n "task_type": "MANUAL"\n },\n {\n "id": "string",\n "name": "string",\n "description": {},\n "journey": {},\n "due_date": "2021-04-27T12:00:00.000Z",\n "due_date_config": {},\n "requirements": [],\n "assigned_to": ["string"],\n "ecp": {},\n "installer": {},\n "partner": {},\n "taxonomies": ["string"],\n "phase_id": "string",\n "task_type": "MANUAL",\n "automation_config": {},\n "trigger_mode": "manual",\n "schedule": {},\n "created_automatically": false\n }\n ],\n "edges": [\n {\n "id": "string",\n "from_id": "string",\n "to_id": "string",\n "condition_id": "string",\n "none_met": true\n }\n ],\n "closing_reasons": [\n {\n "id": "string",\n "title": "string",\n "status": "ACTIVE",\n "lastUpdateTime": "string",\n "creationTime": "string"\n }\n ],\n "entity_sync": [\n {\n "trigger": {},\n "target": {},\n "value": {}\n }\n ],\n "taxonomies": ["string"],\n "singleClosingReasonSelection": true,\n "_manifest": ["string"],\n "linear": true,\n "limit_warnings": [\n {\n "i18nKey": "string",\n "message": "string",\n "max": 0,\n "current": 0,\n "node_id": "string",\n "task_name": "string",\n "branch_name": "string",\n "param_name": "string",\n "path": []\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `deleteFlowTemplate`\n\nDelete Flow Template.\n\n`DELETE /v2/flows/templates/{flowId}`\n\n```ts\nconst { data } = await client.deleteFlowTemplate({\n flowId: \'example\',\n})\n```\n\n---\n\n### `duplicateFlowTemplate`\n\nCreate a copy of an existing flow template. The duplicated template will have a new\nunique identifier and can be modified independently of the original. This is useful\nfor creating variations of exist\n\n`POST /v2/flows/templates/{flowId}/duplicate`\n\n```ts\nconst { data } = await client.duplicateFlowTemplate({\n flowId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "org_id": "string",\n "name": "string",\n "description": "string",\n "trigger": {\n "type": "automation",\n "automation_id": "g92j2-sg9ug92hjt1gh-9s9gajgs-a979gg"\n },\n "enabled": true,\n "version": 2,\n "created_at": "2021-04-27T12:01:13.000Z",\n "updated_at": "2021-04-27T12:01:13.000Z",\n "due_date": "2021-04-27T12:00:00.000Z",\n "due_date_config": {\n "duration": 0,\n "unit": "minutes",\n "type": "WORKFLOW_STARTED",\n "task_id": "string",\n "phase_id": "string"\n },\n "assigned_to": ["string"],\n "available_in_ecp": true,\n "additional_triggers": [\n {\n "id": "string",\n "type": "manual",\n "entity_schema": "string"\n },\n {\n "id": "string",\n "type": "automation",\n "automation_id": "string",\n "input_entity": "thread",\n "trigger_config": []\n }\n ],\n "phases": [\n {\n "id": "string",\n "name": "string",\n "due_date": "2021-04-27T12:00:00.000Z",\n "due_date_config": {},\n "assigned_to": ["string"],\n "taxonomies": ["string"]\n }\n ],\n "tasks": [\n {\n "id": "string",\n "name": "string",\n "description": {},\n "journey": {},\n "due_date": "2021-04-27T12:00:00.000Z",\n "due_date_config": {},\n "requirements": [],\n "assigned_to": ["string"],\n "ecp": {},\n "installer": {},\n "partner": {},\n "taxonomies": ["string"],\n "phase_id": "string",\n "task_type": "MANUAL"\n },\n {\n "id": "string",\n "name": "string",\n "description": {},\n "journey": {},\n "due_date": "2021-04-27T12:00:00.000Z",\n "due_date_config": {},\n "requirements": [],\n "assigned_to": ["string"],\n "ecp": {},\n "installer": {},\n "partner": {},\n "taxonomies": ["string"],\n "phase_id": "string",\n "task_type": "MANUAL",\n "automation_config": {},\n "trigger_mode": "manual",\n "schedule": {},\n "created_automatically": false\n }\n ],\n "edges": [\n {\n "id": "string",\n "from_id": "string",\n "to_id": "string",\n "condition_id": "string",\n "none_met": true\n }\n ],\n "closing_reasons": [\n {\n "id": "string",\n "title": "string",\n "status": "ACTIVE",\n "lastUpdateTime": "string",\n "creationTime": "string"\n }\n ],\n "entity_sync": [\n {\n "trigger": {},\n "target": {},\n "value": {}\n }\n ],\n "taxonomies": ["string"],\n "singleClosingReasonSelection": true,\n "_manifest": ["string"],\n "linear": true,\n "limit_warnings": [\n {\n "i18nKey": "string",\n "message": "string",\n "max": 0,\n "current": 0,\n "node_id": "string",\n "task_name": "string",\n "branch_name": "string",\n "param_name": "string",\n "path": []\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `getDefinition`\n\nGet specific Definition by id from the Organization.\n\n`GET /v1/workflows/definitions/{definitionId}`\n\n```ts\nconst { data } = await client.getDefinition({\n definitionId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "name": "string",\n "description": "string",\n "creationTime": "2021-04-27T12:01:13.000Z",\n "enabled": true,\n "lastUpdateTime": "2021-04-27T12:01:13.000Z",\n "dueDate": "2021-04-27T12:00:00.000Z",\n "dynamicDueDate": {\n "numberOfUnits": 0,\n "timePeriod": "minutes",\n "actionTypeCondition": "WORKFLOW_STARTED",\n "stepId": "string",\n "phaseId": "string"\n },\n "userIds": [0],\n "assignedTo": ["string"],\n "enableECPWorkflow": true,\n "flow": [\n {\n "id": "string",\n "name": "string",\n "order": 0,\n "type": "STEP",\n "dueDate": "2021-04-27T12:00:00.000Z",\n "dynamicDueDate": {},\n "assignedTo": ["string"],\n "steps": [],\n "taxonomies": ["string"]\n },\n {\n "id": "string",\n "name": "string",\n "description": {},\n "executionType": "MANUAL",\n "automationConfig": {},\n "journey": {},\n "order": 0,\n "dueDate": "2021-04-27T12:00:00.000Z",\n "dynamicDueDate": {},\n "userIds": [0],\n "requirements": [],\n "assignedTo": ["string"],\n "type": "STEP",\n "ecp": {},\n "installer": {},\n "partner": {},\n "taxonomies": ["string"]\n }\n ],\n "closingReasons": [\n {\n "id": "x739cew"\n }\n ],\n "updateEntityAttributes": [\n {\n "source": "workflow_status",\n "target": {}\n }\n ],\n "taxonomies": ["string"],\n "singleClosingReasonSelection": true,\n "_manifest": ["string"]\n}\n```\n\n</details>\n\n---\n\n### `updateDefinition`\n\nUpdate Workflow Definition.\n\n`PUT /v1/workflows/definitions/{definitionId}`\n\n```ts\nconst { data } = await client.updateDefinition(\n {\n definitionId: \'example\',\n },\n {\n id: \'string\',\n name: \'string\',\n description: \'string\',\n creationTime: \'2021-04-27T12:01:13.000Z\',\n enabled: true,\n lastUpdateTime: \'2021-04-27T12:01:13.000Z\',\n dueDate: \'2021-04-27T12:00:00.000Z\',\n dynamicDueDate: {\n numberOfUnits: 0,\n timePeriod: \'minutes\',\n actionTypeCondition: \'WORKFLOW_STARTED\',\n stepId: \'string\',\n phaseId: \'string\'\n },\n userIds: [0],\n assignedTo: [\'string\'],\n enableECPWorkflow: true,\n flow: [\n {\n id: \'string\',\n name: \'string\',\n order: 0,\n type: \'STEP\',\n dueDate: \'2021-04-27T12:00:00.000Z\',\n dynamicDueDate: { /* ... */ },\n assignedTo: [\'string\'],\n steps: [ /* ... */ ],\n taxonomies: [\'string\']\n },\n {\n id: \'string\',\n name: \'string\',\n description: { /* ... */ },\n executionType: \'MANUAL\',\n automationConfig: { /* ... */ },\n journey: { /* ... */ },\n order: 0,\n dueDate: \'2021-04-27T12:00:00.000Z\',\n dynamicDueDate: { /* ... */ },\n userIds: [0],\n requirements: [ /* ... */ ],\n assignedTo: [\'string\'],\n type: \'STEP\',\n ecp: { /* ... */ },\n installer: { /* ... */ },\n partner: { /* ... */ },\n taxonomies: [\'string\']\n }\n ],\n closingReasons: [\n {\n id: \'x739cew\'\n }\n ],\n updateEntityAttributes: [\n {\n source: \'workflow_status\',\n target: { /* ... */ }\n }\n ],\n taxonomies: [\'string\'],\n singleClosingReasonSelection: true,\n _manifest: [\'string\']\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "name": "string",\n "description": "string",\n "creationTime": "2021-04-27T12:01:13.000Z",\n "enabled": true,\n "lastUpdateTime": "2021-04-27T12:01:13.000Z",\n "dueDate": "2021-04-27T12:00:00.000Z",\n "dynamicDueDate": {\n "numberOfUnits": 0,\n "timePeriod": "minutes",\n "actionTypeCondition": "WORKFLOW_STARTED",\n "stepId": "string",\n "phaseId": "string"\n },\n "userIds": [0],\n "assignedTo": ["string"],\n "enableECPWorkflow": true,\n "flow": [\n {\n "id": "string",\n "name": "string",\n "order": 0,\n "type": "STEP",\n "dueDate": "2021-04-27T12:00:00.000Z",\n "dynamicDueDate": {},\n "assignedTo": ["string"],\n "steps": [],\n "taxonomies": ["string"]\n },\n {\n "id": "string",\n "name": "string",\n "description": {},\n "executionType": "MANUAL",\n "automationConfig": {},\n "journey": {},\n "order": 0,\n "dueDate": "2021-04-27T12:00:00.000Z",\n "dynamicDueDate": {},\n "userIds": [0],\n "requirements": [],\n "assignedTo": ["string"],\n "type": "STEP",\n "ecp": {},\n "installer": {},\n "partner": {},\n "taxonomies": ["string"]\n }\n ],\n "closingReasons": [\n {\n "id": "x739cew"\n }\n ],\n "updateEntityAttributes": [\n {\n "source": "workflow_status",\n "target": {}\n }\n ],\n "taxonomies": ["string"],\n "singleClosingReasonSelection": true,\n "_manifest": ["string"]\n}\n```\n\n</details>\n\n---\n\n### `deleteDefinition`\n\nDelete Workflow Definition.\n\n`DELETE /v1/workflows/definitions/{definitionId}`\n\n```ts\nconst { data } = await client.deleteDefinition({\n definitionId: \'example\',\n})\n```\n\n---\n\n### `getAllClosingReasons`\n\nGet all Closing Reasons defined in the organization by default all Active.\n\n`GET /v1/workflows/closing-reasons`\n\n```ts\nconst { data } = await client.getAllClosingReasons({\n includeInactive: true,\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "reasons": [\n {\n "id": "string",\n "title": "string",\n "status": "ACTIVE",\n "lastUpdateTime": "string",\n "creationTime": "string"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `createClosingReason`\n\nA created Closing Reason is stored for the organization and will be displayed in the library of reasons.\n\n`POST /v1/workflows/closing-reasons`\n\n```ts\nconst { data } = await client.createClosingReason(\n null,\n {\n id: \'string\',\n title: \'string\',\n status: \'ACTIVE\',\n lastUpdateTime: \'string\',\n creationTime: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "title": "string",\n "status": "ACTIVE",\n "lastUpdateTime": "string",\n "creationTime": "string"\n}\n```\n\n</details>\n\n---\n\n### `getClosingReason`\n\nGet specific closing reason by id from the organisation.\n\n`GET /v2/workflows/closing-reasons/{reasonId}`\n\n```ts\nconst { data } = await client.getClosingReason({\n reasonId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "title": "string",\n "status": "ACTIVE",\n "lastUpdateTime": "string",\n "creationTime": "string"\n}\n```\n\n</details>\n\n---\n\n### `updateClosingReason`\n\nUpdate an existing closing reason\n\n`PATCH /v2/workflows/closing-reasons/{reasonId}`\n\n```ts\nconst { data } = await client.updateClosingReason(\n {\n reasonId: \'example\',\n },\n {\n id: \'string\',\n title: \'string\',\n status: \'ACTIVE\',\n lastUpdateTime: \'string\',\n creationTime: \'string\'\n },\n)\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "id": "string",\n "title": "string",\n "status": "ACTIVE",\n "lastUpdateTime": "string",\n "creationTime": "string"\n}\n```\n\n</details>\n\n---\n\n### `deleteClosingReason`\n\nPermanently delete a closing reason (Using INACTIVE status is recommended instead)\n\n`DELETE /v2/workflows/closing-reasons/{reasonId}`\n\n```ts\nconst { data } = await client.deleteClosingReason({\n reasonId: \'example\',\n})\n```\n\n---\n\n### `changeReasonStatus`\n\nChange the status of a Closing Reason (eg. ACTIVE to INACTIVE).\n\n`PATCH /v1/workflows/closing-reasons/{reasonId}`\n\n```ts\nconst { data } = await client.changeReasonStatus(\n {\n reasonId: \'example\',\n },\n {\n status: \'ACTIVE\'\n },\n)\n```\n\n---\n\n### `getWorkflowClosingReasons`\n\nReturns all closing reasons defined for the workflow.\n\n`GET /v1/workflows/definitions/{definitionId}/closing-reasons`\n\n```ts\nconst { data } = await client.getWorkflowClosingReasons({\n definitionId: \'example\',\n})\n```\n\n<details>\n<summary>Response</summary>\n\n```json\n{\n "reasons": [\n {\n "id": "x739cew"\n }\n ]\n}\n```\n\n</details>\n\n---\n\n### `setWorkflowClosingReasons`\n\nSets which closing reasons are defined for this workflow, based on the entire closing reasons catalog.\n\n`PATCH /v1/workflows/definitions/{definitionId}/closing-reasons`\n\n```ts\nconst { data } = await client.setWorkflowClosingReasons(\n {\n definitionId: \'example\',\n },\n {\n reasons: [\n {\n id: \'x739cew\'\n }\n ]\n },\n)\n```\n\n---\n\n## Schemas\n\n### `FlowTemplateBase`\n\nBase schema for V2 flow templates. A flow template defines the structure of a workflow\nincluding phases, tasks, edges, triggers, and other configuration. Flow templates serve\nas blueprints that can be instantiated as flow executions.\n\n\n```ts\ntype FlowTemplateBase = {\n id?: string\n org_id?: string\n name: string\n description?: string\n trigger?: {\n id?: string\n type: "manual"\n entity_schema?: string\n } | {\n id?: string\n type: "automation"\n automation_id?: string\n input_entity?: "thread" | "first_email" | "last_email"\n trigger_config?: Array<{\n type: { ... }\n configuration?: { ... }\n }>\n } | {\n id?: string\n type: "journey_submission"\n journey_id: string\n journey_name?: string\n automation_id?: string\n } | {\n id?: string\n type: "journey_automation"\n entity_schema?: string\n }\n enabled?: boolean\n version?: "v1" | "v2" | "v3"\n created_at?: string\n updated_at?: string\n due_date?: string\n due_date_config?: {\n duration: number\n unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED"\n task_id?: string\n phase_id?: string\n }\n assigned_to?: Array<string | {\n variable: string\n value?: string[]\n }>\n available_in_ecp?: boolean\n additional_triggers?: Array<{\n id?: string\n type: "manual"\n entity_schema?: string\n } | {\n id?: string\n type: "automation"\n automation_id?: string\n input_entity?: "thread" | "first_email" | "last_email"\n trigger_config?: Array<{\n type: { ... }\n configuration?: { ... }\n }>\n } | {\n id?: string\n type: "journey_submission"\n journey_id: string\n journey_name?: string\n automation_id?: string\n } | {\n id?: string\n type: "journey_automation"\n entity_schema?: string\n }>\n phases?: Array<{\n id: string\n name: string\n due_date?: string\n due_date_config?: {\n duration: { ... }\n unit: { ... }\n type: { ... }\n task_id?: { ... }\n phase_id?: { ... }\n }\n assigned_to?: Array<string | {\n variable: { ... }\n value?: { ... }\n }>\n taxonomies?: string[]\n }>\n tasks: Array<{\n id: string\n name: string\n description?: {\n enabled?: { ... }\n value?: { ... }\n }\n journey?: {\n id?: { ... }\n journeyId?: { ... }\n name?: { ... }\n complete_task_automatically?: { ... }\n }\n // ...\n}\n```\n\n### `FlowLimitWarning`\n\nA configuration limit that the flow currently exceeds. Returned by the get-flow endpoint and by create/update responses so the UI can show a non-blocking banner. Size/count limit violations never cause a 400 \u2014 only structural errors do. The flow remains fully usable; users are encouraged to bring va\n\n```ts\ntype FlowLimitWarning = {\n i18nKey: string\n message: string\n max: number\n current?: number\n node_id?: string\n task_name?: string\n branch_name?: string\n param_name?: string\n path: unknown[]\n}\n```\n\n### `FlowTemplate`\n\n```ts\ntype FlowTemplate = {\n id?: string\n org_id?: string\n name: string\n description?: string\n trigger?: {\n id?: string\n type: "manual"\n entity_schema?: string\n } | {\n id?: string\n type: "automation"\n automation_id?: string\n input_entity?: "thread" | "first_email" | "last_email"\n trigger_config?: Array<{\n type: { ... }\n configuration?: { ... }\n }>\n } | {\n id?: string\n type: "journey_submission"\n journey_id: string\n journey_name?: string\n automation_id?: string\n } | {\n id?: string\n type: "journey_automation"\n entity_schema?: string\n }\n enabled?: boolean\n version?: "v1" | "v2" | "v3"\n created_at?: string\n updated_at?: string\n due_date?: string\n due_date_config?: {\n duration: number\n unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED"\n task_id?: string\n phase_id?: string\n }\n assigned_to?: Array<string | {\n variable: string\n value?: string[]\n }>\n available_in_ecp?: boolean\n additional_triggers?: Array<{\n id?: string\n type: "manual"\n entity_schema?: string\n } | {\n id?: string\n type: "automation"\n automation_id?: string\n input_entity?: "thread" | "first_email" | "last_email"\n trigger_config?: Array<{\n type: { ... }\n configuration?: { ... }\n }>\n } | {\n id?: string\n type: "journey_submission"\n journey_id: string\n journey_name?: string\n automation_id?: string\n } | {\n id?: string\n type: "journey_automation"\n entity_schema?: string\n }>\n phases?: Array<{\n id: string\n name: string\n due_date?: string\n due_date_config?: {\n duration: { ... }\n unit: { ... }\n type: { ... }\n task_id?: { ... }\n phase_id?: { ... }\n }\n assigned_to?: Array<string | {\n variable: { ... }\n value?: { ... }\n }>\n taxonomies?: string[]\n }>\n tasks: Array<{\n id: string\n name: string\n description?: {\n enabled?: { ... }\n value?: { ... }\n }\n journey?: {\n id?: { ... }\n journeyId?: { ... }\n name?: { ... }\n complete_task_automatically?: { ... }\n }\n // ...\n}\n```\n\n### `Version`\n\nVersion of the workflow schema.\n\n- `v1` \u2013 *Deprecated*. The initial version of workflows with limited structure and automation capabilities.\n- `v2` \u2013 Linear workflows. Supports sequential task execution with basic automation triggers.\n- `v3` \u2013 Advanced workflows. Adds support for branching logic (co\n\n```ts\ntype Version = "v1" | "v2" | "v3"\n```\n\n### `Trigger`\n\n```ts\ntype Trigger = {\n id?: string\n type: "manual"\n entity_schema?: string\n} | {\n id?: string\n type: "automation"\n automation_id?: string\n input_entity?: "thread" | "first_email" | "last_email"\n trigger_config?: Array<{\n type: string\n configuration?: Record<string, unknown>\n }>\n} | {\n id?: string\n type: "journey_submission"\n journey_id: string\n journey_name?: string\n automation_id?: string\n} | {\n id?: string\n type: "journey_automation"\n entity_schema?: string\n}\n```\n\n### `ManualTrigger`\n\n```ts\ntype ManualTrigger = {\n id?: string\n type: "manual"\n entity_schema?: string\n}\n```\n\n### `AutomationTrigger`\n\n```ts\ntype AutomationTrigger = {\n id?: string\n type: "automation"\n automation_id?: string\n input_entity?: "thread" | "first_email" | "last_email"\n trigger_config?: Array<{\n type: string\n configuration?: Record<string, unknown>\n }>\n}\n```\n\n### `JourneyAutomationTrigger`\n\n```ts\ntype JourneyAutomationTrigger = {\n id?: string\n type: "journey_automation"\n entity_schema?: string\n}\n```\n\n### `JourneySubmissionTrigger`\n\n```ts\ntype JourneySubmissionTrigger = {\n id?: string\n type: "journey_submission"\n journey_id: string\n journey_name?: string\n automation_id?: string\n}\n```\n\n### `CreateFlowTemplate`\n\n```ts\ntype CreateFlowTemplate = {\n id?: string\n org_id?: string\n name: string\n description?: string\n trigger?: {\n id?: string\n type: "manual"\n entity_schema?: string\n } | {\n id?: string\n type: "automation"\n automation_id?: string\n input_entity?: "thread" | "first_email" | "last_email"\n trigger_config?: Array<{\n type: { ... }\n configuration?: { ... }\n }>\n } | {\n id?: string\n type: "journey_submission"\n journey_id: string\n journey_name?: string\n automation_id?: string\n } | {\n id?: string\n type: "journey_automation"\n entity_schema?: string\n }\n enabled?: boolean\n version?: "v1" | "v2" | "v3"\n created_at?: string\n updated_at?: string\n due_date?: string\n due_date_config?: {\n duration: number\n unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED"\n task_id?: string\n phase_id?: string\n }\n assigned_to?: Array<string | {\n variable: string\n value?: string[]\n }>\n available_in_ecp?: boolean\n additional_triggers?: Array<{\n id?: string\n type: "manual"\n entity_schema?: string\n } | {\n id?: string\n type: "automation"\n automation_id?: string\n input_entity?: "thread" | "first_email" | "last_email"\n trigger_config?: Array<{\n type: { ... }\n configuration?: { ... }\n }>\n } | {\n id?: string\n type: "journey_submission"\n journey_id: string\n journey_name?: string\n automation_id?: string\n } | {\n id?: string\n type: "journey_automation"\n entity_schema?: string\n }>\n phases?: Array<{\n id: string\n name: string\n due_date?: string\n due_date_config?: {\n duration: { ... }\n unit: { ... }\n type: { ... }\n task_id?: { ... }\n phase_id?: { ... }\n }\n assigned_to?: Array<string | {\n variable: { ... }\n value?: { ... }\n }>\n taxonomies?: string[]\n }>\n tasks: Array<{\n id: string\n name: string\n description?: {\n enabled?: { ... }\n value?: { ... }\n }\n journey?: {\n id?: { ... }\n journeyId?: { ... }\n name?: { ... }\n complete_task_automatically?: { ... }\n }\n // ...\n}\n```\n\n### `SearchFlowTemplates`\n\n```ts\ntype SearchFlowTemplates = {\n name?: string\n definition_id?: string\n trigger_type?: "journey_submission" | "manual" | "automation"\n enabled?: boolean\n from?: number\n size?: number\n sort_by?: "created_at" | "updated_at"\n sort_order?: "asc" | "desc"\n}\n```\n\n### `FlowTemplatesList`\n\n```ts\ntype FlowTemplatesList = {\n results: Array<{\n id?: string\n org_id?: string\n name: string\n description?: string\n trigger?: {\n id?: { ... }\n type: { ... }\n entity_schema?: { ... }\n } | {\n id?: { ... }\n type: { ... }\n automation_id?: { ... }\n input_entity?: { ... }\n trigger_config?: { ... }\n } | {\n id?: { ... }\n type: { ... }\n journey_id: { ... }\n journey_name?: { ... }\n automation_id?: { ... }\n } | {\n id?: { ... }\n type: { ... }\n entity_schema?: { ... }\n }\n enabled?: boolean\n version?: "v1" | "v2" | "v3"\n created_at?: string\n updated_at?: string\n due_date?: string\n due_date_config?: {\n duration: { ... }\n unit: { ... }\n type: { ... }\n task_id?: { ... }\n phase_id?: { ... }\n }\n assigned_to?: Array<string | {\n variable: { ... }\n value?: { ... }\n }>\n available_in_ecp?: boolean\n additional_triggers?: Array<{\n id?: { ... }\n type: { ... }\n entity_schema?: { ... }\n } | {\n id?: { ... }\n type: { ... }\n automation_id?: { ... }\n input_entity?: { ... }\n trigger_config?: { ... }\n } | {\n id?: { ... }\n type: { ... }\n journey_id: { ... }\n journey_name?: { ... }\n automation_id?: { ... }\n } | {\n id?: { ... }\n type: { ... }\n entity_schema?: { ... }\n }>\n phases?: Array<{\n id: { ... }\n name: { ... }\n due_date?: { ... }\n due_date_config?: { ... }\n assigned_to?: { ... }\n taxonomies?: { ... }\n }>\n tasks: Array<{\n id: { ... }\n name: { ... }\n description?: { ... }\n journey?: { ... }\n due_date?: { ... }\n due_date_config?: { ... }\n requirements?: { ... }\n assigned_to?: { ... }\n ecp?: { ... }\n installer?: { ... }\n partner?: { ... }\n taxonomies?: { ... }\n phase_id?: { ... }\n task_type: { ... }\n } | {\n id: { ... }\n name: { ... }\n description?: { ... }\n journey?: { ... }\n due_date?: { ... }\n due_date_config?: { ... }\n requirements?: { ... }\n assigned_to?: { ... }\n ecp?: { ... }\n installer?: { ... }\n partner?: { ... }\n // ...\n}\n```\n\n### `FlowTemplateId`\n\nShort unique id (length 8) to identify the Flow Template.\n\n```ts\ntype FlowTemplateId = string\n```\n\n### `Task`\n\n```ts\ntype Task = {\n id: string\n name: string\n description?: {\n enabled?: boolean\n value?: string\n }\n journey?: {\n id?: string\n journeyId?: string\n name?: string\n complete_task_automatically?: boolean\n }\n due_date?: string\n due_date_config?: {\n duration: number\n unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED"\n task_id?: string\n phase_id?: string\n }\n requirements?: Array<{\n task_id?: string\n phase_id?: string\n when: "TASK_FINISHED" | "PHASE_FINISHED"\n }>\n assigned_to?: Array<string | {\n variable: string\n value?: string[]\n }>\n ecp?: {\n enabled?: boolean\n label?: string\n description?: string\n journey?: {\n id?: { ... }\n journeyId?: { ... }\n name?: { ... }\n complete_task_automatically?: { ... }\n }\n }\n installer?: {\n enabled?: boolean\n label?: string\n description?: string\n journey?: {\n id?: { ... }\n journeyId?: { ... }\n name?: { ... }\n complete_task_automatically?: { ... }\n }\n }\n partner?: {\n enabled?: boolean\n label?: string\n description?: string\n }\n taxonomies?: string[]\n phase_id?: string\n task_type: "MANUAL" | "AUTOMATION" | "DECISION" | "AI_AGENT"\n} | {\n id: string\n name: string\n description?: {\n enabled?: boolean\n value?: string\n }\n journey?: {\n id?: string\n journeyId?: string\n name?: string\n complete_task_automatically?: boolean\n }\n due_date?: string\n due_date_config?: {\n duration: number\n unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED"\n task_id?: string\n phase_id?: string\n }\n requirements?: Array<{\n task_id?: string\n phase_id?: string\n when: "TASK_FINISHED" | "PHASE_FINISHED"\n }>\n assigned_to?: Array<string | {\n variable: string\n value?: string[]\n }>\n ecp?: {\n enabled?: boolean\n label?: string\n description?: string\n journey?: {\n id?: { ... }\n journeyId?: { ... }\n name?: { ... }\n complete_task_automatically?: { ... }\n }\n // ...\n}\n```\n\n### `ManualTask`\n\n```ts\ntype ManualTask = {\n id: string\n name: string\n description?: {\n enabled?: boolean\n value?: string\n }\n journey?: {\n id?: string\n journeyId?: string\n name?: string\n complete_task_automatically?: boolean\n }\n due_date?: string\n due_date_config?: {\n duration: number\n unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED"\n task_id?: string\n phase_id?: string\n }\n requirements?: Array<{\n task_id?: string\n phase_id?: string\n when: "TASK_FINISHED" | "PHASE_FINISHED"\n }>\n assigned_to?: Array<string | {\n variable: string\n value?: string[]\n }>\n ecp?: {\n enabled?: boolean\n label?: string\n description?: string\n journey?: {\n id?: { ... }\n journeyId?: { ... }\n name?: { ... }\n complete_task_automatically?: { ... }\n }\n }\n installer?: {\n enabled?: boolean\n label?: string\n description?: string\n journey?: {\n id?: { ... }\n journeyId?: { ... }\n name?: { ... }\n complete_task_automatically?: { ... }\n }\n }\n partner?: {\n enabled?: boolean\n label?: string\n description?: string\n }\n taxonomies?: string[]\n phase_id?: string\n task_type: "MANUAL" | "AUTOMATION" | "DECISION" | "AI_AGENT"\n}\n```\n\n### `AutomationTask`\n\n```ts\ntype AutomationTask = {\n id: string\n name: string\n description?: {\n enabled?: boolean\n value?: string\n }\n journey?: {\n id?: string\n journeyId?: string\n name?: string\n complete_task_automatically?: boolean\n }\n due_date?: string\n due_date_config?: {\n duration: number\n unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED"\n task_id?: string\n phase_id?: string\n }\n requirements?: Array<{\n task_id?: string\n phase_id?: string\n when: "TASK_FINISHED" | "PHASE_FINISHED"\n }>\n assigned_to?: Array<string | {\n variable: string\n value?: string[]\n }>\n ecp?: {\n enabled?: boolean\n label?: string\n description?: string\n journey?: {\n id?: { ... }\n journeyId?: { ... }\n name?: { ... }\n complete_task_automatically?: { ... }\n }\n }\n installer?: {\n enabled?: boolean\n label?: string\n description?: string\n journey?: {\n id?: { ... }\n journeyId?: { ... }\n name?: { ... }\n complete_task_automatically?: { ... }\n }\n }\n partner?: {\n enabled?: boolean\n label?: string\n description?: string\n }\n taxonomies?: string[]\n phase_id?: string\n task_type: "MANUAL" | "AUTOMATION" | "DECISION" | "AI_AGENT"\n automation_config: {\n flow_id?: string\n action_config?: {\n type: { ... }\n config?: { ... }\n }\n duplicated_flow_id?: string\n input_context?: {\n source: { ... }\n task_id?: { ... }\n }\n }\n trigger_mode?: "manual" | "automatic"\n schedule?: {\n mode?: "immediate"\n } | {\n mode: "delayed"\n duration: number\n unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n } | {\n mode: "relative"\n direction: "before" | "after"\n duration: number\n unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n reference: {\n id: { ... }\n origin: { ... }\n schema?: { ... }\n attribute?: { ... }\n }\n }\n created_automatically?: boolean\n}\n```\n\n### `AutomationConfig`\n\nConfiguration for automation execution to run\n\n```ts\ntype AutomationConfig = {\n flow_id?: string\n action_config?: {\n type: string\n config?: Record<string, unknown>\n }\n duplicated_flow_id?: string\n input_context?: {\n source: "trigger" | "task"\n task_id?: string\n }\n}\n```\n\n### `AutomationInputContext`\n\nOptional. Source of the entity fed into this automation task. If omitted, the workflow\'s primary entity is used.\n\n\n```ts\ntype AutomationInputContext = {\n source: "trigger" | "task"\n task_id?: string\n}\n```\n\n### `AiAgentTask`\n\n```ts\ntype AiAgentTask = {\n id: string\n name: string\n description?: {\n enabled?: boolean\n value?: string\n }\n journey?: {\n id?: string\n journeyId?: string\n name?: string\n complete_task_automatically?: boolean\n }\n due_date?: string\n due_date_config?: {\n duration: number\n unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED"\n task_id?: string\n phase_id?: string\n }\n requirements?: Array<{\n task_id?: string\n phase_id?: string\n when: "TASK_FINISHED" | "PHASE_FINISHED"\n }>\n assigned_to?: Array<string | {\n variable: string\n value?: string[]\n }>\n ecp?: {\n enabled?: boolean\n label?: string\n description?: string\n journey?: {\n id?: { ... }\n journeyId?: { ... }\n name?: { ... }\n complete_task_automatically?: { ... }\n }\n }\n installer?: {\n enabled?: boolean\n label?: string\n description?: string\n journey?: {\n id?: { ... }\n journeyId?: { ... }\n name?: { ... }\n complete_task_automatically?: { ... }\n }\n }\n partner?: {\n enabled?: boolean\n label?: string\n description?: string\n }\n taxonomies?: string[]\n phase_id?: string\n task_type: "MANUAL" | "AUTOMATION" | "DECISION" | "AI_AGENT"\n agent_config?: {\n agent_id: string\n }\n}\n```\n\n### `AgentConfig`\n\nConfiguration for AI Agent to run\n\n```ts\ntype AgentConfig = {\n agent_id: string\n}\n```\n\n### `TriggerMode`\n\n```ts\ntype TriggerMode = "manual" | "automatic"\n```\n\n### `ActionSchedule`\n\n```ts\ntype ActionSchedule = {\n mode?: "immediate"\n} | {\n mode: "delayed"\n duration: number\n unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n} | {\n mode: "relative"\n direction: "before" | "after"\n duration: number\n unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n reference: {\n id: string\n origin: "flow_started" | "task_completed" | "trigger_entity_attribute" | "all_preceding_tasks_completed"\n schema?: string\n attribute?: string\n }\n}\n```\n\n### `ImmediateSchedule`\n\n```ts\ntype ImmediateSchedule = {\n mode?: "immediate"\n}\n```\n\n### `DelayedSchedule`\n\n```ts\ntype DelayedSchedule = {\n mode: "delayed"\n duration: number\n unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n}\n```\n\n### `RelativeSchedule`\n\n```ts\ntype RelativeSchedule = {\n mode: "relative"\n direction: "before" | "after"\n duration: number\n unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n reference: {\n id: string\n origin: "flow_started" | "task_completed" | "trigger_entity_attribute" | "all_preceding_tasks_completed"\n schema?: string\n attribute?: string\n }\n}\n```\n\n### `DecisionTask`\n\n```ts\ntype DecisionTask = {\n id: string\n name: string\n description?: {\n enabled?: boolean\n value?: string\n }\n journey?: {\n id?: string\n journeyId?: string\n name?: string\n complete_task_automatically?: boolean\n }\n due_date?: string\n due_date_config?: {\n duration: number\n unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED"\n task_id?: string\n phase_id?: string\n }\n requirements?: Array<{\n task_id?: string\n phase_id?: string\n when: "TASK_FINISHED" | "PHASE_FINISHED"\n }>\n assigned_to?: Array<string | {\n variable: string\n value?: string[]\n }>\n ecp?: {\n enabled?: boolean\n label?: string\n description?: string\n journey?: {\n id?: { ... }\n journeyId?: { ... }\n name?: { ... }\n complete_task_automatically?: { ... }\n }\n }\n installer?: {\n enabled?: boolean\n label?: string\n description?: string\n journey?: {\n id?: { ... }\n journeyId?: { ... }\n name?: { ... }\n complete_task_automatically?: { ... }\n }\n }\n partner?: {\n enabled?: boolean\n label?: string\n description?: string\n }\n taxonomies?: string[]\n phase_id?: string\n task_type: "MANUAL" | "AUTOMATION" | "DECISION" | "AI_AGENT"\n trigger_mode: "manual" | "automatic"\n conditions: Array<{\n id: string\n branch_name: string\n logical_operator: "AND" | "OR"\n statements: Array<{\n id: { ... }\n source: { ... }\n operator: { ... }\n values: { ... }\n value_type?: { ... }\n }>\n }>\n allow_parallel_execution?: boolean\n schedule?: {\n mode: "delayed"\n duration: number\n unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n } | {\n mode: "relative"\n direction: "before" | "after"\n duration: number\n unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n reference: {\n id: { ... }\n origin: { ... }\n schema?: { ... }\n attribute?: { ... }\n }\n }\n loop_config?: {\n loop_branch_id: string\n exit_branch_id: string\n max_iterations: number\n }\n}\n```\n\n### `TaskBase`\n\n```ts\ntype TaskBase = {\n id: string\n name: string\n description?: {\n enabled?: boolean\n value?: string\n }\n journey?: {\n id?: string\n journeyId?: string\n name?: string\n complete_task_automatically?: boolean\n }\n due_date?: string\n due_date_config?: {\n duration: number\n unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED"\n task_id?: string\n phase_id?: string\n }\n requirements?: Array<{\n task_id?: string\n phase_id?: string\n when: "TASK_FINISHED" | "PHASE_FINISHED"\n }>\n assigned_to?: Array<string | {\n variable: string\n value?: string[]\n }>\n ecp?: {\n enabled?: boolean\n label?: string\n description?: string\n journey?: {\n id?: { ... }\n journeyId?: { ... }\n name?: { ... }\n complete_task_automatically?: { ... }\n }\n }\n installer?: {\n enabled?: boolean\n label?: string\n description?: string\n journey?: {\n id?: { ... }\n journeyId?: { ... }\n name?: { ... }\n complete_task_automatically?: { ... }\n }\n }\n partner?: {\n enabled?: boolean\n label?: string\n description?: string\n }\n taxonomies?: string[]\n phase_id?: string\n task_type: "MANUAL" | "AUTOMATION" | "DECISION" | "AI_AGENT"\n}\n```\n\n### `Phase`\n\n```ts\ntype Phase = {\n id: string\n name: string\n due_date?: string\n due_date_config?: {\n duration: number\n unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED"\n task_id?: string\n phase_id?: string\n }\n assigned_to?: Array<string | {\n variable: string\n value?: string[]\n }>\n taxonomies?: string[]\n}\n```\n\n### `VariableAssignment`\n\nRepresents a variable assignment with its expression and optional resolved value. Used for dynamic user assignments that get resolved during workflow execution.\n\n```ts\ntype VariableAssignment = {\n variable: string\n value?: string[]\n}\n```\n\n### `TaskType`\n\n```ts\ntype TaskType = "MANUAL" | "AUTOMATION" | "DECISION" | "AI_AGENT"\n```\n\n### `Edge`\n\n```ts\ntype Edge = {\n id: string\n from_id: string\n to_id?: string\n condition_id?: string\n none_met?: boolean\n}\n```\n\n### `Condition`\n\n```ts\ntype Condition = {\n id: string\n branch_name: string\n logical_operator: "AND" | "OR"\n statements: Array<{\n id: string\n source: {\n id?: { ... }\n origin?: { ... }\n origin_type?: { ... }\n schema?: { ... }\n attribute?: { ... }\n attribute_type?: { ... }\n attribute_repeatable?: { ... }\n attribute_operation?: { ... }\n attributes?: { ... }\n attributes_match?: { ... }\n attribute_sub_field?: { ... }\n date_offset?: { ... }\n }\n operator: "equals" | "not_equals" | "any_of" | "none_of" | "contains" | "not_contains" | "starts_with" | "ends_with" | "greater_than" | "less_than" | "greater_than_or_equals" | "less_than_or_equals" | "is_empty" | "is_not_empty"\n values: string[]\n value_type?: "static" | "relative_date"\n }>\n}\n```\n\n### `Statement`\n\n```ts\ntype Statement = {\n id: string\n source: {\n id?: string\n origin?: "trigger" | "action"\n origin_type?: "entity" | "workflow" | "journey_block"\n schema?: string\n attribute?: string\n attribute_type?: "string" | "text" | "number" | "boolean" | "date" | "datetime" | "tags" | "country" | "email" | "phone" | "product" | "price" | "status" | "relation" | "multiselect" | "select" | "radio" | "relation_user" | "purpose" | "label" | "message_email_address"\n attribute_repeatable?: boolean\n attribute_operation?: "all" | "updated" | "added" | "deleted"\n attributes?: string[]\n attributes_match?: "any" | "all"\n attribute_sub_field?: string\n date_offset?: {\n amount?: { ... }\n unit?: { ... }\n }\n }\n operator: "equals" | "not_equals" | "any_of" | "none_of" | "contains" | "not_contains" | "starts_with" | "ends_with" | "greater_than" | "less_than" | "greater_than_or_equals" | "less_than_or_equals" | "is_empty" | "is_not_empty"\n values: string[]\n value_type?: "static" | "relative_date"\n}\n```\n\n### `EvaluationSource`\n\n```ts\ntype EvaluationSource = {\n id?: string\n origin?: "trigger" | "action"\n origin_type?: "entity" | "workflow" | "journey_block"\n schema?: string\n attribute?: string\n attribute_type?: "string" | "text" | "number" | "boolean" | "date" | "datetime" | "tags" | "country" | "email" | "phone" | "product" | "price" | "status" | "relation" | "multiselect" | "select" | "radio" | "relation_user" | "purpose" | "label" | "message_email_address"\n attribute_repeatable?: boolean\n attribute_operation?: "all" | "updated" | "added" | "deleted"\n attributes?: string[]\n attributes_match?: "any" | "all"\n attribute_sub_field?: string\n date_offset?: {\n amount?: number\n unit?: "days" | "months" | "years"\n }\n}\n```\n\n### `Operator`\n\n```ts\ntype Operator = "equals" | "not_equals" | "any_of" | "none_of" | "contains" | "not_contains" | "starts_with" | "ends_with" | "greater_than" | "less_than" | "greater_than_or_equals" | "less_than_or_equals" | "is_empty" | "is_not_empty"\n```\n\n### `DueDateConfig`\n\nSet due date for the task based on a dynamic condition\n\n```ts\ntype DueDateConfig = {\n duration: number\n unit: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED"\n task_id?: string\n phase_id?: string\n}\n```\n\n### `TimeUnit`\n\n```ts\ntype TimeUnit = "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n```\n\n### `EnableRequirement`\n\ndescribe the requirement for a task to be enabled\n\n```ts\ntype EnableRequirement = {\n task_id?: string\n phase_id?: string\n when: "TASK_FINISHED" | "PHASE_FINISHED"\n}\n```\n\n### `WorkflowDefinition`\n\nV1 workflow definition schema. Defines a linear workflow structure with sections\nand steps. Sections group related steps together, and steps represent individual\ntasks that need to be completed. This is the legacy workflow model; for new\nimplementations, consider using V2 flow templates instead.\n\n\n```ts\ntype WorkflowDefinition = {\n id?: string\n name: string\n description?: string\n creationTime?: string\n enabled?: boolean\n lastUpdateTime?: string\n dueDate?: string\n dynamicDueDate?: {\n numberOfUnits: number\n timePeriod: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n actionTypeCondition: "WORKFLOW_STARTED" | "STEP_CLOSED" | "PHASE_FINISHED"\n stepId?: string\n phaseId?: string\n }\n userIds?: number[]\n assignedTo?: string[]\n enableECPWorkflow?: boolean\n flow: Array<{\n id?: string\n name: string\n order: number\n type: "STEP" | "SECTION"\n dueDate?: string\n dynamicDueDate?: {\n numberOfUnits: { ... }\n timePeriod: { ... }\n actionTypeCondition: { ... }\n stepId?: { ... }\n phaseId?: { ... }\n }\n assignedTo?: string[]\n steps: Array<{\n id?: { ... }\n name: { ... }\n description?: { ... }\n executionType?: { ... }\n automationConfig?: { ... }\n journey?: { ... }\n order: { ... }\n dueDate?: { ... }\n dynamicDueDate?: { ... }\n userIds?: { ... }\n requirements?: { ... }\n assignedTo?: { ... }\n type: { ... }\n ecp?: { ... }\n installer?: { ... }\n partner?: { ... }\n taxonomies?: { ... }\n }>\n taxonomies?: string[]\n } | {\n id?: string\n name: string\n description?: {\n enabled?: { ... }\n value?: { ... }\n }\n executionType?: "MANUAL" | "AUTOMATION"\n automationConfig?: {\n flowId: { ... }\n }\n journey?: {\n id?: { ... }\n journeyId?: { ... }\n name?: { ... }\n complete_task_automatically?: { ... }\n }\n order: number\n dueDate?: string\n dynamicDueDate?: {\n numberOfUnits: { ... }\n timePeriod: { ... }\n actionTypeCondition: { ... }\n stepId?: { ... }\n phaseId?: { ... }\n }\n userIds?: number[]\n requirements?: Array<{\n definitionId: { ... }\n type: { ... }\n condition: { ... }\n }>\n assignedTo?: string[]\n type: "STEP" | "SECTION"\n ecp?: {\n enabled?: { ... }\n label?: { ... }\n description?: { ... }\n journey?: { ... }\n }\n installer?: {\n enabled?: { ... }\n label?: { ... }\n description?: { ... }\n journey?: { ... }\n }\n partner?: {\n enabled?: { ... }\n // ...\n}\n```\n\n### `Step`\n\nAction that needs to be done in a Workflow\n\n```ts\ntype Step = {\n id?: string\n name: string\n description?: {\n enabled?: boolean\n value?: string\n }\n executionType?: "MANUAL" | "AUTOMATION"\n automationConfig?: {\n flowId: string\n }\n journey?: {\n id?: string\n journeyId?: string\n name?: string\n complete_task_automatically?: boolean\n }\n order: number\n dueDate?: string\n dynamicDueDate?: {\n numberOfUnits: number\n timePeriod: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n actionTypeCondition: "WORKFLOW_STARTED" | "STEP_CLOSED" | "PHASE_FINISHED"\n stepId?: string\n phaseId?: string\n }\n userIds?: number[]\n requirements?: Array<{\n definitionId: string\n type: "STEP" | "SECTION"\n condition: "CLOSED"\n }>\n assignedTo?: string[]\n type: "STEP" | "SECTION"\n ecp?: {\n enabled?: boolean\n label?: string\n description?: string\n journey?: {\n id?: { ... }\n journeyId?: { ... }\n name?: { ... }\n complete_task_automatically?: { ... }\n }\n }\n installer?: {\n enabled?: boolean\n label?: string\n description?: string\n journey?: {\n id?: { ... }\n journeyId?: { ... }\n name?: { ... }\n complete_task_automatically?: { ... }\n }\n }\n partner?: {\n enabled?: boolean\n label?: string\n description?: string\n }\n taxonomies?: string[]\n}\n```\n\n### `Section`\n\nA group of Steps that define the progress of the Workflow\n\n```ts\ntype Section = {\n id?: string\n name: string\n order: number\n type: "STEP" | "SECTION"\n dueDate?: string\n dynamicDueDate?: {\n numberOfUnits: number\n timePeriod: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n actionTypeCondition: "WORKFLOW_STARTED" | "STEP_CLOSED" | "PHASE_FINISHED"\n stepId?: string\n phaseId?: string\n }\n assignedTo?: string[]\n steps: Array<{\n id?: string\n name: string\n description?: {\n enabled?: { ... }\n value?: { ... }\n }\n executionType?: "MANUAL" | "AUTOMATION"\n automationConfig?: {\n flowId: { ... }\n }\n journey?: {\n id?: { ... }\n journeyId?: { ... }\n name?: { ... }\n complete_task_automatically?: { ... }\n }\n order: number\n dueDate?: string\n dynamicDueDate?: {\n numberOfUnits: { ... }\n timePeriod: { ... }\n actionTypeCondition: { ... }\n stepId?: { ... }\n phaseId?: { ... }\n }\n userIds?: number[]\n requirements?: Array<{\n definitionId: { ... }\n type: { ... }\n condition: { ... }\n }>\n assignedTo?: string[]\n type: "STEP" | "SECTION"\n ecp?: {\n enabled?: { ... }\n label?: { ... }\n description?: { ... }\n journey?: { ... }\n }\n installer?: {\n enabled?: { ... }\n label?: { ... }\n description?: { ... }\n journey?: { ... }\n }\n partner?: {\n enabled?: { ... }\n label?: { ... }\n description?: { ... }\n }\n taxonomies?: string[]\n }>\n taxonomies?: string[]\n}\n```\n\n### `TriggerType`\n\n```ts\ntype TriggerType = "MANUAL" | "AUTOMATIC"\n```\n\n### `ItemType`\n\n```ts\ntype ItemType = "STEP" | "SECTION"\n```\n\n### `StepType`\n\n```ts\ntype StepType = "MANUAL" | "AUTOMATION"\n```\n\n### `StepJourney`\n\n```ts\ntype StepJourney = {\n id?: string\n journeyId?: string\n name?: string\n complete_task_automatically?: boolean\n}\n```\n\n### `ECPDetails`\n\nDetails regarding ECP for the workflow step\n\n```ts\ntype ECPDetails = {\n enabled?: boolean\n label?: string\n description?: string\n journey?: {\n id?: string\n journeyId?: string\n name?: string\n complete_task_automatically?: boolean\n }\n}\n```\n\n### `PartnerDetails`\n\nDetails regarding partner for the workflow step\n\n```ts\ntype PartnerDetails = {\n enabled?: boolean\n label?: string\n description?: string\n}\n```\n\n### `StepDescription`\n\nLonger information regarding Task\n\n```ts\ntype StepDescription = {\n enabled?: boolean\n value?: string\n}\n```\n\n### `MaxAllowedLimit`\n\n```ts\ntype MaxAllowedLimit = {\n currentNoOfWorkflows?: number\n maxAllowed?: number\n}\n```\n\n### `DefinitionNotFoundResp`\n\nError response returned when a workflow definition or flow template is not found.\n\n```ts\ntype DefinitionNotFoundResp = {\n message?: string\n}\n```\n\n### `ClosingReasonNotFoundResp`\n\nError response returned when a closing reason is not found.\n\n```ts\ntype ClosingReasonNotFoundResp = {\n message?: string\n}\n```\n\n### `ChangeReasonStatusReq`\n\n```ts\ntype ChangeReasonStatusReq = {\n status: "ACTIVE" | "INACTIVE"\n}\n```\n\n### `ClosingReasons`\n\n```ts\ntype ClosingReasons = {\n reasons: Array<{\n id?: string\n title?: string\n status?: "ACTIVE" | "INACTIVE"\n lastUpdateTime?: string\n creationTime?: string\n }>\n}\n```\n\n### `ClosingReason`\n\nOne Closing reason for a workflow\n\n```ts\ntype ClosingReason = {\n id?: string\n title?: string\n status?: "ACTIVE" | "INACTIVE"\n lastUpdateTime?: string\n creationTime?: string\n}\n```\n\n### `ClosingReasonsStatus`\n\n```ts\ntype ClosingReasonsStatus = "ACTIVE" | "INACTIVE"\n```\n\n### `ClosingReasonsIds`\n\n```ts\ntype ClosingReasonsIds = {\n reasons: Array<{\n id: string\n }>\n}\n```\n\n### `ClosingReasonId`\n\n```ts\ntype ClosingReasonId = {\n id: string\n}\n```\n\n### `ErrorResp`\n\nStandard error response returned when an API request fails.\n\n```ts\ntype ErrorResp = {\n message?: string\n}\n```\n\n### `UpdateEntityAttributes`\n\n```ts\ntype UpdateEntityAttributes = {\n source: "workflow_status" | "current_section" | "current_step"\n target: {\n entitySchema: string\n entityAttribute: string\n }\n}\n```\n\n### `EntitySync`\n\n```ts\ntype EntitySync = {\n trigger: {\n event: "FlowStarted" | "FlowCompleted" | "FlowCancelled" | "FlowReopened" | "FlowDeleted" | "FlowAssigned" | "FlowDueDateChanged" | "FlowContextsChanged" | "TaskUpdated" | "CurrTaskChanged" | "TaskCompleted" | "TaskSkipped" | "TaskMarkedInProgress" | "TaskMarkedOnHold" | "PhaseUpdated" | "PhaseCompleted" | "PhaseSkipped" | "PhaseMarkedInProgress"\n filter?: {\n task_template_id?: { ... }\n phase_template_id?: { ... }\n }\n }\n value: {\n source: "workflow_name" | "workflow_status" | "workflow_assigned_to" | "task_name" | "task_status" | "task_assigned_to" | "phase_name" | "phase_status" | "phase_assigned_to" | "custom_value"\n value?: string\n }\n target: {\n entitySchema: string\n entityAttribute: string\n }\n}\n```\n\n### `DynamicDueDate`\n\nConfiguration for calculating a due date dynamically based on workflow events.\nThe due date is computed by adding a duration (numberOfUnits + timePeriod) to\na reference point defined by actionTypeCondition (e.g., when workflow started,\nwhen a step closed, or when a phase finished).\n\n\n```ts\ntype DynamicDueDate = {\n numberOfUnits: number\n timePeriod: "minutes" | "hours" | "days" | "weeks" | "months" | "years"\n actionTypeCondition: "WORKFLOW_STARTED" | "STEP_CLOSED" | "PHASE_FINISHED"\n stepId?: string\n phaseId?: string\n}\n```\n\n### `StepRequirement`\n\ndescribe the requirement for step enablement\n\n```ts\ntype StepRequirement = {\n definitionId: string\n type: "STEP" | "SECTION"\n condition: "CLOSED"\n}\n```\n';
|
|
5
|
-
export {
|
|
6
|
-
workflow_definition_default as default
|
|
7
|
-
};
|