# Workflows Definitions - **Base URL:** `https://workflows-definition.sls.epilot.io` - **Full API Docs:** [https://docs.epilot.io/api/workflow-definition](https://docs.epilot.io/api/workflow-definition) ## Usage ```ts import { epilot } from '@epilot/sdk' epilot.authorize(() => '') const { data } = await epilot.workflowDefinition.getMaxAllowedLimit(...) ``` ### Tree-shakeable import ```ts import { getClient, authorize } from '@epilot/sdk/workflow-definition' const workflowDefinitionClient = getClient() authorize(workflowDefinitionClient, () => '') const { data } = await workflowDefinitionClient.getMaxAllowedLimit(...) ``` ## Operations **Workflows** - [`getMaxAllowedLimit`](#getmaxallowedlimit) - [`getDefinitions`](#getdefinitions) - [`createDefinition`](#createdefinition) - [`getDefinition`](#getdefinition) - [`updateDefinition`](#updatedefinition) - [`deleteDefinition`](#deletedefinition) - [`getWorkflowClosingReasons`](#getworkflowclosingreasons) - [`setWorkflowClosingReasons`](#setworkflowclosingreasons) **Flows V2** - [`listFlowTemplates`](#listflowtemplates) - [`createFlowTemplate`](#createflowtemplate) - [`searchFlowTemplates`](#searchflowtemplates) - [`getFlowTemplate`](#getflowtemplate) - [`updateFlowTemplate`](#updateflowtemplate) - [`deleteFlowTemplate`](#deleteflowtemplate) - [`duplicateFlowTemplate`](#duplicateflowtemplate) **Closing Reason** - [`getAllClosingReasons`](#getallclosingreasons) - [`createClosingReason`](#createclosingreason) - [`getClosingReason`](#getclosingreason) - [`updateClosingReason`](#updateclosingreason) - [`deleteClosingReason`](#deleteclosingreason) - [`changeReasonStatus`](#changereasonstatus) **Schemas** - [`FlowTemplateBase`](#flowtemplatebase) - [`FlowTemplate`](#flowtemplate) - [`Version`](#version) - [`Trigger`](#trigger) - [`ManualTrigger`](#manualtrigger) - [`AutomationTrigger`](#automationtrigger) - [`JourneyAutomationTrigger`](#journeyautomationtrigger) - [`JourneySubmissionTrigger`](#journeysubmissiontrigger) - [`CreateFlowTemplate`](#createflowtemplate) - [`SearchFlowTemplates`](#searchflowtemplates) - [`FlowTemplatesList`](#flowtemplateslist) - [`FlowTemplateId`](#flowtemplateid) - [`Task`](#task) - [`ManualTask`](#manualtask) - [`AutomationTask`](#automationtask) - [`AutomationConfig`](#automationconfig) - [`AutomationInputContext`](#automationinputcontext) - [`AiAgentTask`](#aiagenttask) - [`AgentConfig`](#agentconfig) - [`TriggerMode`](#triggermode) - [`ActionSchedule`](#actionschedule) - [`ImmediateSchedule`](#immediateschedule) - [`DelayedSchedule`](#delayedschedule) - [`RelativeSchedule`](#relativeschedule) - [`DecisionTask`](#decisiontask) - [`TaskBase`](#taskbase) - [`Phase`](#phase) - [`VariableAssignment`](#variableassignment) - [`TaskType`](#tasktype) - [`Edge`](#edge) - [`Condition`](#condition) - [`Statement`](#statement) - [`EvaluationSource`](#evaluationsource) - [`Operator`](#operator) - [`DueDateConfig`](#duedateconfig) - [`TimeUnit`](#timeunit) - [`EnableRequirement`](#enablerequirement) - [`WorkflowDefinition`](#workflowdefinition) - [`Step`](#step) - [`Section`](#section) - [`TriggerType`](#triggertype) - [`ItemType`](#itemtype) - [`StepType`](#steptype) - [`StepJourney`](#stepjourney) - [`ECPDetails`](#ecpdetails) - [`PartnerDetails`](#partnerdetails) - [`StepDescription`](#stepdescription) - [`MaxAllowedLimit`](#maxallowedlimit) - [`DefinitionNotFoundResp`](#definitionnotfoundresp) - [`ClosingReasonNotFoundResp`](#closingreasonnotfoundresp) - [`ChangeReasonStatusReq`](#changereasonstatusreq) - [`ClosingReasons`](#closingreasons) - [`ClosingReason`](#closingreason) - [`ClosingReasonsStatus`](#closingreasonsstatus) - [`ClosingReasonsIds`](#closingreasonsids) - [`ClosingReasonId`](#closingreasonid) - [`ErrorResp`](#errorresp) - [`UpdateEntityAttributes`](#updateentityattributes) - [`EntitySync`](#entitysync) - [`DynamicDueDate`](#dynamicduedate) - [`StepRequirement`](#steprequirement) ### `getMaxAllowedLimit` Get limits and number of created executions for an Organization. `GET /v1/workflows/limits/max-allowed` ```ts const { data } = await client.getMaxAllowedLimit() ```
Response ```json { "currentNoOfWorkflows": 0, "maxAllowed": 0 } ```
--- ### `getDefinitions` Retrieve all Workflow Definitions from an Organization `GET /v1/workflows/definitions` ```ts const { data } = await client.getDefinitions() ```
Response ```json [ { "id": "string", "name": "string", "description": "string", "creationTime": "2021-04-27T12:01:13.000Z", "enabled": true, "lastUpdateTime": "2021-04-27T12:01:13.000Z", "dueDate": "2021-04-27T12:00:00.000Z", "dynamicDueDate": { "numberOfUnits": 0, "timePeriod": "minutes", "actionTypeCondition": "WORKFLOW_STARTED", "stepId": "string", "phaseId": "string" }, "userIds": [0], "assignedTo": ["string"], "enableECPWorkflow": true, "flow": [ {}, {} ], "closingReasons": [ {} ], "updateEntityAttributes": [ {} ], "taxonomies": ["string"], "singleClosingReasonSelection": true, "_manifest": ["string"] } ] ```
--- ### `createDefinition` Create a Workflow Definition. `POST /v1/workflows/definitions` ```ts const { data } = await client.createDefinition( null, { id: 'string', name: 'string', description: 'string', creationTime: '2021-04-27T12:01:13.000Z', enabled: true, lastUpdateTime: '2021-04-27T12:01:13.000Z', dueDate: '2021-04-27T12:00:00.000Z', dynamicDueDate: { numberOfUnits: 0, timePeriod: 'minutes', actionTypeCondition: 'WORKFLOW_STARTED', stepId: 'string', phaseId: 'string' }, userIds: [0], assignedTo: ['string'], enableECPWorkflow: true, flow: [ { id: 'string', name: 'string', order: 0, type: 'STEP', dueDate: '2021-04-27T12:00:00.000Z', dynamicDueDate: { /* ... */ }, assignedTo: ['string'], steps: [ /* ... */ ], taxonomies: ['string'] }, { id: 'string', name: 'string', description: { /* ... */ }, executionType: 'MANUAL', automationConfig: { /* ... */ }, journey: { /* ... */ }, order: 0, dueDate: '2021-04-27T12:00:00.000Z', dynamicDueDate: { /* ... */ }, userIds: [0], requirements: [ /* ... */ ], assignedTo: ['string'], type: 'STEP', ecp: { /* ... */ }, installer: { /* ... */ }, partner: { /* ... */ }, taxonomies: ['string'] } ], closingReasons: [ { id: 'x739cew' } ], updateEntityAttributes: [ { source: 'workflow_status', target: { /* ... */ } } ], taxonomies: ['string'], singleClosingReasonSelection: true, _manifest: ['string'] }, ) ```
Response ```json { "id": "string", "name": "string", "description": "string", "creationTime": "2021-04-27T12:01:13.000Z", "enabled": true, "lastUpdateTime": "2021-04-27T12:01:13.000Z", "dueDate": "2021-04-27T12:00:00.000Z", "dynamicDueDate": { "numberOfUnits": 0, "timePeriod": "minutes", "actionTypeCondition": "WORKFLOW_STARTED", "stepId": "string", "phaseId": "string" }, "userIds": [0], "assignedTo": ["string"], "enableECPWorkflow": true, "flow": [ { "id": "string", "name": "string", "order": 0, "type": "STEP", "dueDate": "2021-04-27T12:00:00.000Z", "dynamicDueDate": {}, "assignedTo": ["string"], "steps": [], "taxonomies": ["string"] }, { "id": "string", "name": "string", "description": {}, "executionType": "MANUAL", "automationConfig": {}, "journey": {}, "order": 0, "dueDate": "2021-04-27T12:00:00.000Z", "dynamicDueDate": {}, "userIds": [0], "requirements": [], "assignedTo": ["string"], "type": "STEP", "ecp": {}, "installer": {}, "partner": {}, "taxonomies": ["string"] } ], "closingReasons": [ { "id": "x739cew" } ], "updateEntityAttributes": [ { "source": "workflow_status", "target": {} } ], "taxonomies": ["string"], "singleClosingReasonSelection": true, "_manifest": ["string"] } ```
--- ### `listFlowTemplates` List all Flow Templates for a customer. Optionally, you can filter flow templates by trigger values. `GET /v2/flows/templates` ```ts const { data } = await client.listFlowTemplates({ trigger_type: 'example', trigger_source_id: 'example', trigger_schema: 'example', }) ```
Response ```json { "results": [ { "id": "string", "org_id": "string", "name": "string", "description": "string", "trigger": {}, "enabled": true, "version": 2, "created_at": "2021-04-27T12:01:13.000Z", "updated_at": "2021-04-27T12:01:13.000Z", "due_date": "2021-04-27T12:00:00.000Z", "due_date_config": {}, "assigned_to": ["string"], "available_in_ecp": true, "additional_triggers": [], "phases": [], "tasks": [], "edges": [], "closing_reasons": [], "entity_sync": [], "taxonomies": ["string"], "singleClosingReasonSelection": true, "_manifest": ["string"] } ] } ```
--- ### `createFlowTemplate` Create a new Flow Template. `POST /v2/flows/templates` ```ts const { data } = await client.createFlowTemplate( null, { id: 'string', org_id: 'string', name: 'string', description: 'string', trigger: { type: 'automation', automation_id: 'g92j2-sg9ug92hjt1gh-9s9gajgs-a979gg' }, enabled: true, version: 2, created_at: '2021-04-27T12:01:13.000Z', updated_at: '2021-04-27T12:01:13.000Z', due_date: '2021-04-27T12:00:00.000Z', due_date_config: { duration: 0, unit: 'minutes', type: 'WORKFLOW_STARTED', task_id: 'string', phase_id: 'string' }, assigned_to: ['string'], available_in_ecp: true, additional_triggers: [ { id: 'string', type: 'manual', entity_schema: 'string' }, { id: 'string', type: 'automation', automation_id: 'string', input_entity: 'thread', trigger_config: [ /* ... */ ] }, /* ... 2 more */ ], phases: [ { id: 'string', name: 'string', due_date: '2021-04-27T12:00:00.000Z', due_date_config: { /* ... */ }, assigned_to: ['string'], taxonomies: ['string'] } ], tasks: [ { id: 'string', name: 'string', description: { /* ... */ }, journey: { /* ... */ }, due_date: '2021-04-27T12:00:00.000Z', due_date_config: { /* ... */ }, requirements: [ /* ... */ ], assigned_to: ['string'], ecp: { /* ... */ }, installer: { /* ... */ }, partner: { /* ... */ }, taxonomies: ['string'], phase_id: 'string', task_type: 'MANUAL' }, { id: 'string', name: 'string', description: { /* ... */ }, journey: { /* ... */ }, due_date: '2021-04-27T12:00:00.000Z', due_date_config: { /* ... */ }, requirements: [ /* ... */ ], assigned_to: ['string'], ecp: { /* ... */ }, installer: { /* ... */ }, partner: { /* ... */ }, taxonomies: ['string'], phase_id: 'string', task_type: 'MANUAL', automation_config: { /* ... */ }, trigger_mode: 'manual', schedule: { /* ... */ }, created_automatically: false }, /* ... 2 more */ ], edges: [ { id: 'string', from_id: 'string', to_id: 'string', condition_id: 'string', none_met: true } ], closing_reasons: [ { id: 'string', title: 'string', status: 'ACTIVE', lastUpdateTime: 'string', creationTime: 'string' } ], entity_sync: [ { trigger: { /* ... */ }, target: { /* ... */ }, value: { /* ... */ } } ], taxonomies: ['string'], singleClosingReasonSelection: true, _manifest: ['string'] }, ) ```
Response ```json { "id": "string", "org_id": "string", "name": "string", "description": "string", "trigger": { "type": "automation", "automation_id": "g92j2-sg9ug92hjt1gh-9s9gajgs-a979gg" }, "enabled": true, "version": 2, "created_at": "2021-04-27T12:01:13.000Z", "updated_at": "2021-04-27T12:01:13.000Z", "due_date": "2021-04-27T12:00:00.000Z", "due_date_config": { "duration": 0, "unit": "minutes", "type": "WORKFLOW_STARTED", "task_id": "string", "phase_id": "string" }, "assigned_to": ["string"], "available_in_ecp": true, "additional_triggers": [ { "id": "string", "type": "manual", "entity_schema": "string" }, { "id": "string", "type": "automation", "automation_id": "string", "input_entity": "thread", "trigger_config": [] } ], "phases": [ { "id": "string", "name": "string", "due_date": "2021-04-27T12:00:00.000Z", "due_date_config": {}, "assigned_to": ["string"], "taxonomies": ["string"] } ], "tasks": [ { "id": "string", "name": "string", "description": {}, "journey": {}, "due_date": "2021-04-27T12:00:00.000Z", "due_date_config": {}, "requirements": [], "assigned_to": ["string"], "ecp": {}, "installer": {}, "partner": {}, "taxonomies": ["string"], "phase_id": "string", "task_type": "MANUAL" }, { "id": "string", "name": "string", "description": {}, "journey": {}, "due_date": "2021-04-27T12:00:00.000Z", "due_date_config": {}, "requirements": [], "assigned_to": ["string"], "ecp": {}, "installer": {}, "partner": {}, "taxonomies": ["string"], "phase_id": "string", "task_type": "MANUAL", "automation_config": {}, "trigger_mode": "manual", "schedule": {}, "created_automatically": false } ], "edges": [ { "id": "string", "from_id": "string", "to_id": "string", "condition_id": "string", "none_met": true } ], "closing_reasons": [ { "id": "string", "title": "string", "status": "ACTIVE", "lastUpdateTime": "string", "creationTime": "string" } ], "entity_sync": [ { "trigger": {}, "target": {}, "value": {} } ], "taxonomies": ["string"], "singleClosingReasonSelection": true, "_manifest": ["string"] } ```
--- ### `searchFlowTemplates` Search for flow templates by name, trigger type, enabled status, and more. `POST /v2/flows/templates:search` ```ts const { data } = await client.searchFlowTemplates( null, { name: 'string', definition_id: 'string', trigger_type: 'journey_submission', enabled: true, from: 0, size: 0, sort_by: 'updated_at', sort_order: 'desc' }, ) ```
Response ```json { "hits": 0, "results": [ { "id": "string", "org_id": "string", "name": "string", "description": "string", "trigger": {}, "enabled": true, "version": 2, "created_at": "2021-04-27T12:01:13.000Z", "updated_at": "2021-04-27T12:01:13.000Z", "due_date": "2021-04-27T12:00:00.000Z", "due_date_config": {}, "assigned_to": ["string"], "available_in_ecp": true, "additional_triggers": [], "phases": [], "tasks": [], "edges": [], "closing_reasons": [], "entity_sync": [], "taxonomies": ["string"], "singleClosingReasonSelection": true, "_manifest": ["string"] } ] } ```
--- ### `getFlowTemplate` Get specific FLow template for a customer `GET /v2/flows/templates/{flowId}` ```ts const { data } = await client.getFlowTemplate({ flowId: 'example', }) ```
Response ```json { "id": "string", "org_id": "string", "name": "string", "description": "string", "trigger": { "type": "automation", "automation_id": "g92j2-sg9ug92hjt1gh-9s9gajgs-a979gg" }, "enabled": true, "version": 2, "created_at": "2021-04-27T12:01:13.000Z", "updated_at": "2021-04-27T12:01:13.000Z", "due_date": "2021-04-27T12:00:00.000Z", "due_date_config": { "duration": 0, "unit": "minutes", "type": "WORKFLOW_STARTED", "task_id": "string", "phase_id": "string" }, "assigned_to": ["string"], "available_in_ecp": true, "additional_triggers": [ { "id": "string", "type": "manual", "entity_schema": "string" }, { "id": "string", "type": "automation", "automation_id": "string", "input_entity": "thread", "trigger_config": [] } ], "phases": [ { "id": "string", "name": "string", "due_date": "2021-04-27T12:00:00.000Z", "due_date_config": {}, "assigned_to": ["string"], "taxonomies": ["string"] } ], "tasks": [ { "id": "string", "name": "string", "description": {}, "journey": {}, "due_date": "2021-04-27T12:00:00.000Z", "due_date_config": {}, "requirements": [], "assigned_to": ["string"], "ecp": {}, "installer": {}, "partner": {}, "taxonomies": ["string"], "phase_id": "string", "task_type": "MANUAL" }, { "id": "string", "name": "string", "description": {}, "journey": {}, "due_date": "2021-04-27T12:00:00.000Z", "due_date_config": {}, "requirements": [], "assigned_to": ["string"], "ecp": {}, "installer": {}, "partner": {}, "taxonomies": ["string"], "phase_id": "string", "task_type": "MANUAL", "automation_config": {}, "trigger_mode": "manual", "schedule": {}, "created_automatically": false } ], "edges": [ { "id": "string", "from_id": "string", "to_id": "string", "condition_id": "string", "none_met": true } ], "closing_reasons": [ { "id": "string", "title": "string", "status": "ACTIVE", "lastUpdateTime": "string", "creationTime": "string" } ], "entity_sync": [ { "trigger": {}, "target": {}, "value": {} } ], "taxonomies": ["string"], "singleClosingReasonSelection": true, "_manifest": ["string"] } ```
--- ### `updateFlowTemplate` Update Flow Template. `PUT /v2/flows/templates/{flowId}` ```ts const { data } = await client.updateFlowTemplate( { flowId: 'example', }, { id: 'string', org_id: 'string', name: 'string', description: 'string', trigger: { type: 'automation', automation_id: 'g92j2-sg9ug92hjt1gh-9s9gajgs-a979gg' }, enabled: true, version: 2, created_at: '2021-04-27T12:01:13.000Z', updated_at: '2021-04-27T12:01:13.000Z', due_date: '2021-04-27T12:00:00.000Z', due_date_config: { duration: 0, unit: 'minutes', type: 'WORKFLOW_STARTED', task_id: 'string', phase_id: 'string' }, assigned_to: ['string'], available_in_ecp: true, additional_triggers: [ { id: 'string', type: 'manual', entity_schema: 'string' }, { id: 'string', type: 'automation', automation_id: 'string', input_entity: 'thread', trigger_config: [ /* ... */ ] }, /* ... 2 more */ ], phases: [ { id: 'string', name: 'string', due_date: '2021-04-27T12:00:00.000Z', due_date_config: { /* ... */ }, assigned_to: ['string'], taxonomies: ['string'] } ], tasks: [ { id: 'string', name: 'string', description: { /* ... */ }, journey: { /* ... */ }, due_date: '2021-04-27T12:00:00.000Z', due_date_config: { /* ... */ }, requirements: [ /* ... */ ], assigned_to: ['string'], ecp: { /* ... */ }, installer: { /* ... */ }, partner: { /* ... */ }, taxonomies: ['string'], phase_id: 'string', task_type: 'MANUAL' }, { id: 'string', name: 'string', description: { /* ... */ }, journey: { /* ... */ }, due_date: '2021-04-27T12:00:00.000Z', due_date_config: { /* ... */ }, requirements: [ /* ... */ ], assigned_to: ['string'], ecp: { /* ... */ }, installer: { /* ... */ }, partner: { /* ... */ }, taxonomies: ['string'], phase_id: 'string', task_type: 'MANUAL', automation_config: { /* ... */ }, trigger_mode: 'manual', schedule: { /* ... */ }, created_automatically: false }, /* ... 2 more */ ], edges: [ { id: 'string', from_id: 'string', to_id: 'string', condition_id: 'string', none_met: true } ], closing_reasons: [ { id: 'string', title: 'string', status: 'ACTIVE', lastUpdateTime: 'string', creationTime: 'string' } ], entity_sync: [ { trigger: { /* ... */ }, target: { /* ... */ }, value: { /* ... */ } } ], taxonomies: ['string'], singleClosingReasonSelection: true, _manifest: ['string'] }, ) ```
Response ```json { "id": "string", "org_id": "string", "name": "string", "description": "string", "trigger": { "type": "automation", "automation_id": "g92j2-sg9ug92hjt1gh-9s9gajgs-a979gg" }, "enabled": true, "version": 2, "created_at": "2021-04-27T12:01:13.000Z", "updated_at": "2021-04-27T12:01:13.000Z", "due_date": "2021-04-27T12:00:00.000Z", "due_date_config": { "duration": 0, "unit": "minutes", "type": "WORKFLOW_STARTED", "task_id": "string", "phase_id": "string" }, "assigned_to": ["string"], "available_in_ecp": true, "additional_triggers": [ { "id": "string", "type": "manual", "entity_schema": "string" }, { "id": "string", "type": "automation", "automation_id": "string", "input_entity": "thread", "trigger_config": [] } ], "phases": [ { "id": "string", "name": "string", "due_date": "2021-04-27T12:00:00.000Z", "due_date_config": {}, "assigned_to": ["string"], "taxonomies": ["string"] } ], "tasks": [ { "id": "string", "name": "string", "description": {}, "journey": {}, "due_date": "2021-04-27T12:00:00.000Z", "due_date_config": {}, "requirements": [], "assigned_to": ["string"], "ecp": {}, "installer": {}, "partner": {}, "taxonomies": ["string"], "phase_id": "string", "task_type": "MANUAL" }, { "id": "string", "name": "string", "description": {}, "journey": {}, "due_date": "2021-04-27T12:00:00.000Z", "due_date_config": {}, "requirements": [], "assigned_to": ["string"], "ecp": {}, "installer": {}, "partner": {}, "taxonomies": ["string"], "phase_id": "string", "task_type": "MANUAL", "automation_config": {}, "trigger_mode": "manual", "schedule": {}, "created_automatically": false } ], "edges": [ { "id": "string", "from_id": "string", "to_id": "string", "condition_id": "string", "none_met": true } ], "closing_reasons": [ { "id": "string", "title": "string", "status": "ACTIVE", "lastUpdateTime": "string", "creationTime": "string" } ], "entity_sync": [ { "trigger": {}, "target": {}, "value": {} } ], "taxonomies": ["string"], "singleClosingReasonSelection": true, "_manifest": ["string"] } ```
--- ### `deleteFlowTemplate` Delete Flow Template. `DELETE /v2/flows/templates/{flowId}` ```ts const { data } = await client.deleteFlowTemplate({ flowId: 'example', }) ``` --- ### `duplicateFlowTemplate` Duplicate a Flow Template from an existing workflow. `POST /v2/flows/templates/{flowId}/duplicate` ```ts const { data } = await client.duplicateFlowTemplate({ flowId: 'example', }) ```
Response ```json { "id": "string", "org_id": "string", "name": "string", "description": "string", "trigger": { "type": "automation", "automation_id": "g92j2-sg9ug92hjt1gh-9s9gajgs-a979gg" }, "enabled": true, "version": 2, "created_at": "2021-04-27T12:01:13.000Z", "updated_at": "2021-04-27T12:01:13.000Z", "due_date": "2021-04-27T12:00:00.000Z", "due_date_config": { "duration": 0, "unit": "minutes", "type": "WORKFLOW_STARTED", "task_id": "string", "phase_id": "string" }, "assigned_to": ["string"], "available_in_ecp": true, "additional_triggers": [ { "id": "string", "type": "manual", "entity_schema": "string" }, { "id": "string", "type": "automation", "automation_id": "string", "input_entity": "thread", "trigger_config": [] } ], "phases": [ { "id": "string", "name": "string", "due_date": "2021-04-27T12:00:00.000Z", "due_date_config": {}, "assigned_to": ["string"], "taxonomies": ["string"] } ], "tasks": [ { "id": "string", "name": "string", "description": {}, "journey": {}, "due_date": "2021-04-27T12:00:00.000Z", "due_date_config": {}, "requirements": [], "assigned_to": ["string"], "ecp": {}, "installer": {}, "partner": {}, "taxonomies": ["string"], "phase_id": "string", "task_type": "MANUAL" }, { "id": "string", "name": "string", "description": {}, "journey": {}, "due_date": "2021-04-27T12:00:00.000Z", "due_date_config": {}, "requirements": [], "assigned_to": ["string"], "ecp": {}, "installer": {}, "partner": {}, "taxonomies": ["string"], "phase_id": "string", "task_type": "MANUAL", "automation_config": {}, "trigger_mode": "manual", "schedule": {}, "created_automatically": false } ], "edges": [ { "id": "string", "from_id": "string", "to_id": "string", "condition_id": "string", "none_met": true } ], "closing_reasons": [ { "id": "string", "title": "string", "status": "ACTIVE", "lastUpdateTime": "string", "creationTime": "string" } ], "entity_sync": [ { "trigger": {}, "target": {}, "value": {} } ], "taxonomies": ["string"], "singleClosingReasonSelection": true, "_manifest": ["string"] } ```
--- ### `getDefinition` Get specific Definition by id from the Organization. `GET /v1/workflows/definitions/{definitionId}` ```ts const { data } = await client.getDefinition({ definitionId: 'example', }) ```
Response ```json { "id": "string", "name": "string", "description": "string", "creationTime": "2021-04-27T12:01:13.000Z", "enabled": true, "lastUpdateTime": "2021-04-27T12:01:13.000Z", "dueDate": "2021-04-27T12:00:00.000Z", "dynamicDueDate": { "numberOfUnits": 0, "timePeriod": "minutes", "actionTypeCondition": "WORKFLOW_STARTED", "stepId": "string", "phaseId": "string" }, "userIds": [0], "assignedTo": ["string"], "enableECPWorkflow": true, "flow": [ { "id": "string", "name": "string", "order": 0, "type": "STEP", "dueDate": "2021-04-27T12:00:00.000Z", "dynamicDueDate": {}, "assignedTo": ["string"], "steps": [], "taxonomies": ["string"] }, { "id": "string", "name": "string", "description": {}, "executionType": "MANUAL", "automationConfig": {}, "journey": {}, "order": 0, "dueDate": "2021-04-27T12:00:00.000Z", "dynamicDueDate": {}, "userIds": [0], "requirements": [], "assignedTo": ["string"], "type": "STEP", "ecp": {}, "installer": {}, "partner": {}, "taxonomies": ["string"] } ], "closingReasons": [ { "id": "x739cew" } ], "updateEntityAttributes": [ { "source": "workflow_status", "target": {} } ], "taxonomies": ["string"], "singleClosingReasonSelection": true, "_manifest": ["string"] } ```
--- ### `updateDefinition` Update Workflow Definition. `PUT /v1/workflows/definitions/{definitionId}` ```ts const { data } = await client.updateDefinition( { definitionId: 'example', }, { id: 'string', name: 'string', description: 'string', creationTime: '2021-04-27T12:01:13.000Z', enabled: true, lastUpdateTime: '2021-04-27T12:01:13.000Z', dueDate: '2021-04-27T12:00:00.000Z', dynamicDueDate: { numberOfUnits: 0, timePeriod: 'minutes', actionTypeCondition: 'WORKFLOW_STARTED', stepId: 'string', phaseId: 'string' }, userIds: [0], assignedTo: ['string'], enableECPWorkflow: true, flow: [ { id: 'string', name: 'string', order: 0, type: 'STEP', dueDate: '2021-04-27T12:00:00.000Z', dynamicDueDate: { /* ... */ }, assignedTo: ['string'], steps: [ /* ... */ ], taxonomies: ['string'] }, { id: 'string', name: 'string', description: { /* ... */ }, executionType: 'MANUAL', automationConfig: { /* ... */ }, journey: { /* ... */ }, order: 0, dueDate: '2021-04-27T12:00:00.000Z', dynamicDueDate: { /* ... */ }, userIds: [0], requirements: [ /* ... */ ], assignedTo: ['string'], type: 'STEP', ecp: { /* ... */ }, installer: { /* ... */ }, partner: { /* ... */ }, taxonomies: ['string'] } ], closingReasons: [ { id: 'x739cew' } ], updateEntityAttributes: [ { source: 'workflow_status', target: { /* ... */ } } ], taxonomies: ['string'], singleClosingReasonSelection: true, _manifest: ['string'] }, ) ```
Response ```json { "id": "string", "name": "string", "description": "string", "creationTime": "2021-04-27T12:01:13.000Z", "enabled": true, "lastUpdateTime": "2021-04-27T12:01:13.000Z", "dueDate": "2021-04-27T12:00:00.000Z", "dynamicDueDate": { "numberOfUnits": 0, "timePeriod": "minutes", "actionTypeCondition": "WORKFLOW_STARTED", "stepId": "string", "phaseId": "string" }, "userIds": [0], "assignedTo": ["string"], "enableECPWorkflow": true, "flow": [ { "id": "string", "name": "string", "order": 0, "type": "STEP", "dueDate": "2021-04-27T12:00:00.000Z", "dynamicDueDate": {}, "assignedTo": ["string"], "steps": [], "taxonomies": ["string"] }, { "id": "string", "name": "string", "description": {}, "executionType": "MANUAL", "automationConfig": {}, "journey": {}, "order": 0, "dueDate": "2021-04-27T12:00:00.000Z", "dynamicDueDate": {}, "userIds": [0], "requirements": [], "assignedTo": ["string"], "type": "STEP", "ecp": {}, "installer": {}, "partner": {}, "taxonomies": ["string"] } ], "closingReasons": [ { "id": "x739cew" } ], "updateEntityAttributes": [ { "source": "workflow_status", "target": {} } ], "taxonomies": ["string"], "singleClosingReasonSelection": true, "_manifest": ["string"] } ```
--- ### `deleteDefinition` Delete Workflow Definition. `DELETE /v1/workflows/definitions/{definitionId}` ```ts const { data } = await client.deleteDefinition({ definitionId: 'example', }) ``` --- ### `getAllClosingReasons` Get all Closing Reasons defined in the organization by default all Active. `GET /v1/workflows/closing-reasons` ```ts const { data } = await client.getAllClosingReasons({ includeInactive: true, }) ```
Response ```json { "reasons": [ { "id": "string", "title": "string", "status": "ACTIVE", "lastUpdateTime": "string", "creationTime": "string" } ] } ```
--- ### `createClosingReason` A created Closing Reason is stored for the organization and will be displayed in the library of reasons. `POST /v1/workflows/closing-reasons` ```ts const { data } = await client.createClosingReason( null, { id: 'string', title: 'string', status: 'ACTIVE', lastUpdateTime: 'string', creationTime: 'string' }, ) ```
Response ```json { "id": "string", "title": "string", "status": "ACTIVE", "lastUpdateTime": "string", "creationTime": "string" } ```
--- ### `getClosingReason` Get specific closing reason by id from the organisation. `GET /v2/workflows/closing-reasons/{reasonId}` ```ts const { data } = await client.getClosingReason({ reasonId: 'example', }) ```
Response ```json { "id": "string", "title": "string", "status": "ACTIVE", "lastUpdateTime": "string", "creationTime": "string" } ```
--- ### `updateClosingReason` Update an existing closing reason `PATCH /v2/workflows/closing-reasons/{reasonId}` ```ts const { data } = await client.updateClosingReason( { reasonId: 'example', }, { id: 'string', title: 'string', status: 'ACTIVE', lastUpdateTime: 'string', creationTime: 'string' }, ) ```
Response ```json { "id": "string", "title": "string", "status": "ACTIVE", "lastUpdateTime": "string", "creationTime": "string" } ```
--- ### `deleteClosingReason` Permanently delete a closing reason (Using INACTIVE status is recommended instead) `DELETE /v2/workflows/closing-reasons/{reasonId}` ```ts const { data } = await client.deleteClosingReason({ reasonId: 'example', }) ``` --- ### `changeReasonStatus` Change the status of a Closing Reason (eg. ACTIVE to INACTIVE). `PATCH /v1/workflows/closing-reasons/{reasonId}` ```ts const { data } = await client.changeReasonStatus( { reasonId: 'example', }, { status: 'ACTIVE' }, ) ``` --- ### `getWorkflowClosingReasons` Returns all closing reasons defined for the workflow. `GET /v1/workflows/definitions/{definitionId}/closing-reasons` ```ts const { data } = await client.getWorkflowClosingReasons({ definitionId: 'example', }) ```
Response ```json { "reasons": [ { "id": "x739cew" } ] } ```
--- ### `setWorkflowClosingReasons` Sets which closing reasons are defined for this workflow, based on the entire closing reasons catalog. `PATCH /v1/workflows/definitions/{definitionId}/closing-reasons` ```ts const { data } = await client.setWorkflowClosingReasons( { definitionId: 'example', }, { reasons: [ { id: 'x739cew' } ] }, ) ``` --- ## Schemas ### `FlowTemplateBase` ```ts type FlowTemplateBase = { id?: string org_id?: string name: string description?: string trigger?: { id?: string type: "manual" entity_schema?: string } | { id?: string type: "automation" automation_id?: string input_entity?: "thread" | "first_email" | "last_email" trigger_config?: Array<{ type: { ... } configuration?: { ... } }> } | { id?: string type: "journey_submission" journey_id: string journey_name?: string automation_id?: string } | { id?: string type: "journey_automation" entity_schema?: string } enabled?: boolean version?: "v1" | "v2" | "v3" created_at?: string updated_at?: string due_date?: string due_date_config?: { duration: number unit: "minutes" | "hours" | "days" | "weeks" | "months" type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED" task_id?: string phase_id?: string } assigned_to?: Array available_in_ecp?: boolean additional_triggers?: Array<{ id?: string type: "manual" entity_schema?: string } | { id?: string type: "automation" automation_id?: string input_entity?: "thread" | "first_email" | "last_email" trigger_config?: Array<{ type: { ... } configuration?: { ... } }> } | { id?: string type: "journey_submission" journey_id: string journey_name?: string automation_id?: string } | { id?: string type: "journey_automation" entity_schema?: string }> phases?: Array<{ id: string name: string due_date?: string due_date_config?: { duration: { ... } unit: { ... } type: { ... } task_id?: { ... } phase_id?: { ... } } assigned_to?: Array taxonomies?: string[] }> tasks: Array<{ id: string name: string description?: { enabled?: { ... } value?: { ... } } journey?: { id?: { ... } journeyId?: { ... } name?: { ... } complete_task_automatically?: { ... } } // ... } ``` ### `FlowTemplate` ```ts type FlowTemplate = { id?: string org_id?: string name: string description?: string trigger?: { id?: string type: "manual" entity_schema?: string } | { id?: string type: "automation" automation_id?: string input_entity?: "thread" | "first_email" | "last_email" trigger_config?: Array<{ type: { ... } configuration?: { ... } }> } | { id?: string type: "journey_submission" journey_id: string journey_name?: string automation_id?: string } | { id?: string type: "journey_automation" entity_schema?: string } enabled?: boolean version?: "v1" | "v2" | "v3" created_at?: string updated_at?: string due_date?: string due_date_config?: { duration: number unit: "minutes" | "hours" | "days" | "weeks" | "months" type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED" task_id?: string phase_id?: string } assigned_to?: Array available_in_ecp?: boolean additional_triggers?: Array<{ id?: string type: "manual" entity_schema?: string } | { id?: string type: "automation" automation_id?: string input_entity?: "thread" | "first_email" | "last_email" trigger_config?: Array<{ type: { ... } configuration?: { ... } }> } | { id?: string type: "journey_submission" journey_id: string journey_name?: string automation_id?: string } | { id?: string type: "journey_automation" entity_schema?: string }> phases?: Array<{ id: string name: string due_date?: string due_date_config?: { duration: { ... } unit: { ... } type: { ... } task_id?: { ... } phase_id?: { ... } } assigned_to?: Array taxonomies?: string[] }> tasks: Array<{ id: string name: string description?: { enabled?: { ... } value?: { ... } } journey?: { id?: { ... } journeyId?: { ... } name?: { ... } complete_task_automatically?: { ... } } // ... } ``` ### `Version` Version of the workflow schema. - `v1` – *Deprecated*. The initial version of workflows with limited structure and automation capabilities. - `v2` – Linear workflows. Supports sequential task execution with basic automation triggers. - `v3` – Advanced workflows. Adds support for branching logic (co ```ts type Version = "v1" | "v2" | "v3" ``` ### `Trigger` ```ts type Trigger = { id?: string type: "manual" entity_schema?: string } | { id?: string type: "automation" automation_id?: string input_entity?: "thread" | "first_email" | "last_email" trigger_config?: Array<{ type: string configuration?: Record }> } | { id?: string type: "journey_submission" journey_id: string journey_name?: string automation_id?: string } | { id?: string type: "journey_automation" entity_schema?: string } ``` ### `ManualTrigger` ```ts type ManualTrigger = { id?: string type: "manual" entity_schema?: string } ``` ### `AutomationTrigger` ```ts type AutomationTrigger = { id?: string type: "automation" automation_id?: string input_entity?: "thread" | "first_email" | "last_email" trigger_config?: Array<{ type: string configuration?: Record }> } ``` ### `JourneyAutomationTrigger` ```ts type JourneyAutomationTrigger = { id?: string type: "journey_automation" entity_schema?: string } ``` ### `JourneySubmissionTrigger` ```ts type JourneySubmissionTrigger = { id?: string type: "journey_submission" journey_id: string journey_name?: string automation_id?: string } ``` ### `CreateFlowTemplate` ```ts type CreateFlowTemplate = { id?: string org_id?: string name: string description?: string trigger?: { id?: string type: "manual" entity_schema?: string } | { id?: string type: "automation" automation_id?: string input_entity?: "thread" | "first_email" | "last_email" trigger_config?: Array<{ type: { ... } configuration?: { ... } }> } | { id?: string type: "journey_submission" journey_id: string journey_name?: string automation_id?: string } | { id?: string type: "journey_automation" entity_schema?: string } enabled?: boolean version?: "v1" | "v2" | "v3" created_at?: string updated_at?: string due_date?: string due_date_config?: { duration: number unit: "minutes" | "hours" | "days" | "weeks" | "months" type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED" task_id?: string phase_id?: string } assigned_to?: Array available_in_ecp?: boolean additional_triggers?: Array<{ id?: string type: "manual" entity_schema?: string } | { id?: string type: "automation" automation_id?: string input_entity?: "thread" | "first_email" | "last_email" trigger_config?: Array<{ type: { ... } configuration?: { ... } }> } | { id?: string type: "journey_submission" journey_id: string journey_name?: string automation_id?: string } | { id?: string type: "journey_automation" entity_schema?: string }> phases?: Array<{ id: string name: string due_date?: string due_date_config?: { duration: { ... } unit: { ... } type: { ... } task_id?: { ... } phase_id?: { ... } } assigned_to?: Array taxonomies?: string[] }> tasks: Array<{ id: string name: string description?: { enabled?: { ... } value?: { ... } } journey?: { id?: { ... } journeyId?: { ... } name?: { ... } complete_task_automatically?: { ... } } // ... } ``` ### `SearchFlowTemplates` ```ts type SearchFlowTemplates = { name?: string definition_id?: string trigger_type?: "journey_submission" | "manual" | "automation" enabled?: boolean from?: number size?: number sort_by?: "created_at" | "updated_at" sort_order?: "asc" | "desc" } ``` ### `FlowTemplatesList` ```ts type FlowTemplatesList = { results: Array<{ id?: string org_id?: string name: string description?: string trigger?: { id?: { ... } type: { ... } entity_schema?: { ... } } | { id?: { ... } type: { ... } automation_id?: { ... } input_entity?: { ... } trigger_config?: { ... } } | { id?: { ... } type: { ... } journey_id: { ... } journey_name?: { ... } automation_id?: { ... } } | { id?: { ... } type: { ... } entity_schema?: { ... } } enabled?: boolean version?: "v1" | "v2" | "v3" created_at?: string updated_at?: string due_date?: string due_date_config?: { duration: { ... } unit: { ... } type: { ... } task_id?: { ... } phase_id?: { ... } } assigned_to?: Array available_in_ecp?: boolean additional_triggers?: Array<{ id?: { ... } type: { ... } entity_schema?: { ... } } | { id?: { ... } type: { ... } automation_id?: { ... } input_entity?: { ... } trigger_config?: { ... } } | { id?: { ... } type: { ... } journey_id: { ... } journey_name?: { ... } automation_id?: { ... } } | { id?: { ... } type: { ... } entity_schema?: { ... } }> phases?: Array<{ id: { ... } name: { ... } due_date?: { ... } due_date_config?: { ... } assigned_to?: { ... } taxonomies?: { ... } }> tasks: Array<{ id: { ... } name: { ... } description?: { ... } journey?: { ... } due_date?: { ... } due_date_config?: { ... } requirements?: { ... } assigned_to?: { ... } ecp?: { ... } installer?: { ... } partner?: { ... } taxonomies?: { ... } phase_id?: { ... } task_type: { ... } } | { id: { ... } name: { ... } description?: { ... } journey?: { ... } due_date?: { ... } due_date_config?: { ... } requirements?: { ... } assigned_to?: { ... } ecp?: { ... } installer?: { ... } partner?: { ... } // ... } ``` ### `FlowTemplateId` Short unique id (length 8) to identify the Flow Template. ```ts type FlowTemplateId = string ``` ### `Task` ```ts type Task = { id: string name: string description?: { enabled?: boolean value?: string } journey?: { id?: string journeyId?: string name?: string complete_task_automatically?: boolean } due_date?: string due_date_config?: { duration: number unit: "minutes" | "hours" | "days" | "weeks" | "months" type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED" task_id?: string phase_id?: string } requirements?: Array<{ task_id?: string phase_id?: string when: "TASK_FINISHED" | "PHASE_FINISHED" }> assigned_to?: Array ecp?: { enabled?: boolean label?: string description?: string journey?: { id?: { ... } journeyId?: { ... } name?: { ... } complete_task_automatically?: { ... } } } installer?: { enabled?: boolean label?: string description?: string journey?: { id?: { ... } journeyId?: { ... } name?: { ... } complete_task_automatically?: { ... } } } partner?: { enabled?: boolean label?: string description?: string } taxonomies?: string[] phase_id?: string task_type: "MANUAL" | "AUTOMATION" | "DECISION" | "AI_AGENT" } | { id: string name: string description?: { enabled?: boolean value?: string } journey?: { id?: string journeyId?: string name?: string complete_task_automatically?: boolean } due_date?: string due_date_config?: { duration: number unit: "minutes" | "hours" | "days" | "weeks" | "months" type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED" task_id?: string phase_id?: string } requirements?: Array<{ task_id?: string phase_id?: string when: "TASK_FINISHED" | "PHASE_FINISHED" }> assigned_to?: Array ecp?: { enabled?: boolean label?: string description?: string journey?: { id?: { ... } journeyId?: { ... } name?: { ... } complete_task_automatically?: { ... } } // ... } ``` ### `ManualTask` ```ts type ManualTask = { id: string name: string description?: { enabled?: boolean value?: string } journey?: { id?: string journeyId?: string name?: string complete_task_automatically?: boolean } due_date?: string due_date_config?: { duration: number unit: "minutes" | "hours" | "days" | "weeks" | "months" type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED" task_id?: string phase_id?: string } requirements?: Array<{ task_id?: string phase_id?: string when: "TASK_FINISHED" | "PHASE_FINISHED" }> assigned_to?: Array ecp?: { enabled?: boolean label?: string description?: string journey?: { id?: { ... } journeyId?: { ... } name?: { ... } complete_task_automatically?: { ... } } } installer?: { enabled?: boolean label?: string description?: string journey?: { id?: { ... } journeyId?: { ... } name?: { ... } complete_task_automatically?: { ... } } } partner?: { enabled?: boolean label?: string description?: string } taxonomies?: string[] phase_id?: string task_type: "MANUAL" | "AUTOMATION" | "DECISION" | "AI_AGENT" } ``` ### `AutomationTask` ```ts type AutomationTask = { id: string name: string description?: { enabled?: boolean value?: string } journey?: { id?: string journeyId?: string name?: string complete_task_automatically?: boolean } due_date?: string due_date_config?: { duration: number unit: "minutes" | "hours" | "days" | "weeks" | "months" type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED" task_id?: string phase_id?: string } requirements?: Array<{ task_id?: string phase_id?: string when: "TASK_FINISHED" | "PHASE_FINISHED" }> assigned_to?: Array ecp?: { enabled?: boolean label?: string description?: string journey?: { id?: { ... } journeyId?: { ... } name?: { ... } complete_task_automatically?: { ... } } } installer?: { enabled?: boolean label?: string description?: string journey?: { id?: { ... } journeyId?: { ... } name?: { ... } complete_task_automatically?: { ... } } } partner?: { enabled?: boolean label?: string description?: string } taxonomies?: string[] phase_id?: string task_type: "MANUAL" | "AUTOMATION" | "DECISION" | "AI_AGENT" automation_config: { flow_id?: string action_config?: { type: { ... } config?: { ... } } duplicated_flow_id?: string input_context?: { source: { ... } task_id?: { ... } } } trigger_mode?: "manual" | "automatic" schedule?: { mode?: "immediate" } | { mode: "delayed" duration: number unit: "minutes" | "hours" | "days" | "weeks" | "months" } | { mode: "relative" direction: "before" | "after" duration: number unit: "minutes" | "hours" | "days" | "weeks" | "months" reference: { id: { ... } origin: { ... } schema?: { ... } attribute?: { ... } } } created_automatically?: boolean } ``` ### `AutomationConfig` Configuration for automation execution to run ```ts type AutomationConfig = { flow_id?: string action_config?: { type: string config?: Record } duplicated_flow_id?: string input_context?: { source: "trigger" | "task" task_id?: string } } ``` ### `AutomationInputContext` Optional. Source of the entity fed into this automation task. If omitted, the workflow's primary entity is used. ```ts type AutomationInputContext = { source: "trigger" | "task" task_id?: string } ``` ### `AiAgentTask` ```ts type AiAgentTask = { id: string name: string description?: { enabled?: boolean value?: string } journey?: { id?: string journeyId?: string name?: string complete_task_automatically?: boolean } due_date?: string due_date_config?: { duration: number unit: "minutes" | "hours" | "days" | "weeks" | "months" type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED" task_id?: string phase_id?: string } requirements?: Array<{ task_id?: string phase_id?: string when: "TASK_FINISHED" | "PHASE_FINISHED" }> assigned_to?: Array ecp?: { enabled?: boolean label?: string description?: string journey?: { id?: { ... } journeyId?: { ... } name?: { ... } complete_task_automatically?: { ... } } } installer?: { enabled?: boolean label?: string description?: string journey?: { id?: { ... } journeyId?: { ... } name?: { ... } complete_task_automatically?: { ... } } } partner?: { enabled?: boolean label?: string description?: string } taxonomies?: string[] phase_id?: string task_type: "MANUAL" | "AUTOMATION" | "DECISION" | "AI_AGENT" agent_config?: { agent_id: string } } ``` ### `AgentConfig` Configuration for AI Agent to run ```ts type AgentConfig = { agent_id: string } ``` ### `TriggerMode` ```ts type TriggerMode = "manual" | "automatic" ``` ### `ActionSchedule` ```ts type ActionSchedule = { mode?: "immediate" } | { mode: "delayed" duration: number unit: "minutes" | "hours" | "days" | "weeks" | "months" } | { mode: "relative" direction: "before" | "after" duration: number unit: "minutes" | "hours" | "days" | "weeks" | "months" reference: { id: string origin: "flow_started" | "task_completed" | "trigger_entity_attribute" | "all_preceding_tasks_completed" schema?: string attribute?: string } } ``` ### `ImmediateSchedule` ```ts type ImmediateSchedule = { mode?: "immediate" } ``` ### `DelayedSchedule` ```ts type DelayedSchedule = { mode: "delayed" duration: number unit: "minutes" | "hours" | "days" | "weeks" | "months" } ``` ### `RelativeSchedule` ```ts type RelativeSchedule = { mode: "relative" direction: "before" | "after" duration: number unit: "minutes" | "hours" | "days" | "weeks" | "months" reference: { id: string origin: "flow_started" | "task_completed" | "trigger_entity_attribute" | "all_preceding_tasks_completed" schema?: string attribute?: string } } ``` ### `DecisionTask` ```ts type DecisionTask = { id: string name: string description?: { enabled?: boolean value?: string } journey?: { id?: string journeyId?: string name?: string complete_task_automatically?: boolean } due_date?: string due_date_config?: { duration: number unit: "minutes" | "hours" | "days" | "weeks" | "months" type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED" task_id?: string phase_id?: string } requirements?: Array<{ task_id?: string phase_id?: string when: "TASK_FINISHED" | "PHASE_FINISHED" }> assigned_to?: Array ecp?: { enabled?: boolean label?: string description?: string journey?: { id?: { ... } journeyId?: { ... } name?: { ... } complete_task_automatically?: { ... } } } installer?: { enabled?: boolean label?: string description?: string journey?: { id?: { ... } journeyId?: { ... } name?: { ... } complete_task_automatically?: { ... } } } partner?: { enabled?: boolean label?: string description?: string } taxonomies?: string[] phase_id?: string task_type: "MANUAL" | "AUTOMATION" | "DECISION" | "AI_AGENT" trigger_mode: "manual" | "automatic" conditions: Array<{ id: string branch_name: string logical_operator: "AND" | "OR" statements: Array<{ id: { ... } source: { ... } operator: { ... } values: { ... } value_type?: { ... } }> }> allow_parallel_execution?: boolean schedule?: { mode: "delayed" duration: number unit: "minutes" | "hours" | "days" | "weeks" | "months" } | { mode: "relative" direction: "before" | "after" duration: number unit: "minutes" | "hours" | "days" | "weeks" | "months" reference: { id: { ... } origin: { ... } schema?: { ... } attribute?: { ... } } } loop_config?: { loop_branch_id: string exit_branch_id: string max_iterations: number } } ``` ### `TaskBase` ```ts type TaskBase = { id: string name: string description?: { enabled?: boolean value?: string } journey?: { id?: string journeyId?: string name?: string complete_task_automatically?: boolean } due_date?: string due_date_config?: { duration: number unit: "minutes" | "hours" | "days" | "weeks" | "months" type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED" task_id?: string phase_id?: string } requirements?: Array<{ task_id?: string phase_id?: string when: "TASK_FINISHED" | "PHASE_FINISHED" }> assigned_to?: Array ecp?: { enabled?: boolean label?: string description?: string journey?: { id?: { ... } journeyId?: { ... } name?: { ... } complete_task_automatically?: { ... } } } installer?: { enabled?: boolean label?: string description?: string journey?: { id?: { ... } journeyId?: { ... } name?: { ... } complete_task_automatically?: { ... } } } partner?: { enabled?: boolean label?: string description?: string } taxonomies?: string[] phase_id?: string task_type: "MANUAL" | "AUTOMATION" | "DECISION" | "AI_AGENT" } ``` ### `Phase` ```ts type Phase = { id: string name: string due_date?: string due_date_config?: { duration: number unit: "minutes" | "hours" | "days" | "weeks" | "months" type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED" task_id?: string phase_id?: string } assigned_to?: Array taxonomies?: string[] } ``` ### `VariableAssignment` Represents a variable assignment with its expression and optional resolved value. Used for dynamic user assignments that get resolved during workflow execution. ```ts type VariableAssignment = { variable: string value?: string[] } ``` ### `TaskType` ```ts type TaskType = "MANUAL" | "AUTOMATION" | "DECISION" | "AI_AGENT" ``` ### `Edge` ```ts type Edge = { id: string from_id: string to_id?: string condition_id?: string none_met?: boolean } ``` ### `Condition` ```ts type Condition = { id: string branch_name: string logical_operator: "AND" | "OR" statements: Array<{ id: string source: { id?: { ... } origin?: { ... } origin_type?: { ... } schema?: { ... } attribute?: { ... } attribute_type?: { ... } attribute_repeatable?: { ... } attribute_operation?: { ... } attribute_sub_field?: { ... } date_offset?: { ... } } 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" values: string[] value_type?: "static" | "relative_date" }> } ``` ### `Statement` ```ts type Statement = { id: string source: { id?: string origin?: "trigger" | "action" origin_type?: "entity" | "workflow" | "journey_block" schema?: string attribute?: string 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" attribute_repeatable?: boolean attribute_operation?: "all" | "updated" | "added" | "deleted" attribute_sub_field?: string date_offset?: { amount?: { ... } unit?: { ... } } } 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" values: string[] value_type?: "static" | "relative_date" } ``` ### `EvaluationSource` ```ts type EvaluationSource = { id?: string origin?: "trigger" | "action" origin_type?: "entity" | "workflow" | "journey_block" schema?: string attribute?: string 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" attribute_repeatable?: boolean attribute_operation?: "all" | "updated" | "added" | "deleted" attribute_sub_field?: string date_offset?: { amount?: number unit?: "days" | "months" | "years" } } ``` ### `Operator` ```ts type 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" ``` ### `DueDateConfig` Set due date for the task based on a dynamic condition ```ts type DueDateConfig = { duration: number unit: "minutes" | "hours" | "days" | "weeks" | "months" type: "WORKFLOW_STARTED" | "TASK_FINISHED" | "PHASE_FINISHED" | "A_PRECEDING_TASK_COMPLETED" | "ALL_PRECEDING_TASKS_COMPLETED" task_id?: string phase_id?: string } ``` ### `TimeUnit` ```ts type TimeUnit = "minutes" | "hours" | "days" | "weeks" | "months" ``` ### `EnableRequirement` describe the requirement for a task to be enabled ```ts type EnableRequirement = { task_id?: string phase_id?: string when: "TASK_FINISHED" | "PHASE_FINISHED" } ``` ### `WorkflowDefinition` ```ts type WorkflowDefinition = { id?: string name: string description?: string creationTime?: string enabled?: boolean lastUpdateTime?: string dueDate?: string dynamicDueDate?: { numberOfUnits: number timePeriod: "minutes" | "hours" | "days" | "weeks" | "months" actionTypeCondition: "WORKFLOW_STARTED" | "STEP_CLOSED" | "PHASE_FINISHED" stepId?: string phaseId?: string } userIds?: number[] assignedTo?: string[] enableECPWorkflow?: boolean flow: Array<{ id?: string name: string order: number type: "STEP" | "SECTION" dueDate?: string dynamicDueDate?: { numberOfUnits: { ... } timePeriod: { ... } actionTypeCondition: { ... } stepId?: { ... } phaseId?: { ... } } assignedTo?: string[] steps: Array<{ id?: { ... } name: { ... } description?: { ... } executionType?: { ... } automationConfig?: { ... } journey?: { ... } order: { ... } dueDate?: { ... } dynamicDueDate?: { ... } userIds?: { ... } requirements?: { ... } assignedTo?: { ... } type: { ... } ecp?: { ... } installer?: { ... } partner?: { ... } taxonomies?: { ... } }> taxonomies?: string[] } | { id?: string name: string description?: { enabled?: { ... } value?: { ... } } executionType?: "MANUAL" | "AUTOMATION" automationConfig?: { flowId: { ... } } journey?: { id?: { ... } journeyId?: { ... } name?: { ... } complete_task_automatically?: { ... } } order: number dueDate?: string dynamicDueDate?: { numberOfUnits: { ... } timePeriod: { ... } actionTypeCondition: { ... } stepId?: { ... } phaseId?: { ... } } userIds?: number[] requirements?: Array<{ definitionId: { ... } type: { ... } condition: { ... } }> assignedTo?: string[] type: "STEP" | "SECTION" ecp?: { enabled?: { ... } label?: { ... } description?: { ... } journey?: { ... } } installer?: { enabled?: { ... } label?: { ... } description?: { ... } journey?: { ... } } partner?: { enabled?: { ... } // ... } ``` ### `Step` Action that needs to be done in a Workflow ```ts type Step = { id?: string name: string description?: { enabled?: boolean value?: string } executionType?: "MANUAL" | "AUTOMATION" automationConfig?: { flowId: string } journey?: { id?: string journeyId?: string name?: string complete_task_automatically?: boolean } order: number dueDate?: string dynamicDueDate?: { numberOfUnits: number timePeriod: "minutes" | "hours" | "days" | "weeks" | "months" actionTypeCondition: "WORKFLOW_STARTED" | "STEP_CLOSED" | "PHASE_FINISHED" stepId?: string phaseId?: string } userIds?: number[] requirements?: Array<{ definitionId: string type: "STEP" | "SECTION" condition: "CLOSED" }> assignedTo?: string[] type: "STEP" | "SECTION" ecp?: { enabled?: boolean label?: string description?: string journey?: { id?: { ... } journeyId?: { ... } name?: { ... } complete_task_automatically?: { ... } } } installer?: { enabled?: boolean label?: string description?: string journey?: { id?: { ... } journeyId?: { ... } name?: { ... } complete_task_automatically?: { ... } } } partner?: { enabled?: boolean label?: string description?: string } taxonomies?: string[] } ``` ### `Section` A group of Steps that define the progress of the Workflow ```ts type Section = { id?: string name: string order: number type: "STEP" | "SECTION" dueDate?: string dynamicDueDate?: { numberOfUnits: number timePeriod: "minutes" | "hours" | "days" | "weeks" | "months" actionTypeCondition: "WORKFLOW_STARTED" | "STEP_CLOSED" | "PHASE_FINISHED" stepId?: string phaseId?: string } assignedTo?: string[] steps: Array<{ id?: string name: string description?: { enabled?: { ... } value?: { ... } } executionType?: "MANUAL" | "AUTOMATION" automationConfig?: { flowId: { ... } } journey?: { id?: { ... } journeyId?: { ... } name?: { ... } complete_task_automatically?: { ... } } order: number dueDate?: string dynamicDueDate?: { numberOfUnits: { ... } timePeriod: { ... } actionTypeCondition: { ... } stepId?: { ... } phaseId?: { ... } } userIds?: number[] requirements?: Array<{ definitionId: { ... } type: { ... } condition: { ... } }> assignedTo?: string[] type: "STEP" | "SECTION" ecp?: { enabled?: { ... } label?: { ... } description?: { ... } journey?: { ... } } installer?: { enabled?: { ... } label?: { ... } description?: { ... } journey?: { ... } } partner?: { enabled?: { ... } label?: { ... } description?: { ... } } taxonomies?: string[] }> taxonomies?: string[] } ``` ### `TriggerType` ```ts type TriggerType = "MANUAL" | "AUTOMATIC" ``` ### `ItemType` ```ts type ItemType = "STEP" | "SECTION" ``` ### `StepType` ```ts type StepType = "MANUAL" | "AUTOMATION" ``` ### `StepJourney` ```ts type StepJourney = { id?: string journeyId?: string name?: string complete_task_automatically?: boolean } ``` ### `ECPDetails` Details regarding ECP for the workflow step ```ts type ECPDetails = { enabled?: boolean label?: string description?: string journey?: { id?: string journeyId?: string name?: string complete_task_automatically?: boolean } } ``` ### `PartnerDetails` Details regarding partner for the workflow step ```ts type PartnerDetails = { enabled?: boolean label?: string description?: string } ``` ### `StepDescription` Longer information regarding Task ```ts type StepDescription = { enabled?: boolean value?: string } ``` ### `MaxAllowedLimit` ```ts type MaxAllowedLimit = { currentNoOfWorkflows?: number maxAllowed?: number } ``` ### `DefinitionNotFoundResp` Definition could be not found ```ts type DefinitionNotFoundResp = { message?: string } ``` ### `ClosingReasonNotFoundResp` Closing reason could be not found ```ts type ClosingReasonNotFoundResp = { message?: string } ``` ### `ChangeReasonStatusReq` ```ts type ChangeReasonStatusReq = { status: "ACTIVE" | "INACTIVE" } ``` ### `ClosingReasons` ```ts type ClosingReasons = { reasons: Array<{ id?: string title?: string status?: "ACTIVE" | "INACTIVE" lastUpdateTime?: string creationTime?: string }> } ``` ### `ClosingReason` One Closing reason for a workflow ```ts type ClosingReason = { id?: string title?: string status?: "ACTIVE" | "INACTIVE" lastUpdateTime?: string creationTime?: string } ``` ### `ClosingReasonsStatus` ```ts type ClosingReasonsStatus = "ACTIVE" | "INACTIVE" ``` ### `ClosingReasonsIds` ```ts type ClosingReasonsIds = { reasons: Array<{ id: string }> } ``` ### `ClosingReasonId` ```ts type ClosingReasonId = { id: string } ``` ### `ErrorResp` ```ts type ErrorResp = { message?: string } ``` ### `UpdateEntityAttributes` ```ts type UpdateEntityAttributes = { source: "workflow_status" | "current_section" | "current_step" target: { entitySchema: string entityAttribute: string } } ``` ### `EntitySync` ```ts type EntitySync = { trigger: { event: "FlowStarted" | "FlowCompleted" | "FlowCancelled" | "FlowReopened" | "FlowDeleted" | "FlowAssigned" | "FlowDueDateChanged" | "FlowContextsChanged" | "TaskUpdated" | "CurrTaskChanged" | "TaskCompleted" | "TaskSkipped" | "TaskMarkedInProgress" | "TaskMarkedOnHold" | "PhaseUpdated" | "PhaseCompleted" | "PhaseSkipped" | "PhaseMarkedInProgress" filter?: { task_template_id?: { ... } phase_template_id?: { ... } } } value: { source: "workflow_name" | "workflow_status" | "workflow_assigned_to" | "task_name" | "task_status" | "task_assigned_to" | "phase_name" | "phase_status" | "phase_assigned_to" | "custom_value" value?: string } target: { entitySchema: string entityAttribute: string } } ``` ### `DynamicDueDate` set a Duedate for a step then a specific ```ts type DynamicDueDate = { numberOfUnits: number timePeriod: "minutes" | "hours" | "days" | "weeks" | "months" actionTypeCondition: "WORKFLOW_STARTED" | "STEP_CLOSED" | "PHASE_FINISHED" stepId?: string phaseId?: string } ``` ### `StepRequirement` describe the requirement for step enablement ```ts type StepRequirement = { definitionId: string type: "STEP" | "SECTION" condition: "CLOSED" } ```