Workflow Basics
Workflows consist of steps and triggers. Steps determine what this workflow will do when its ran and triggers determine when it's ran.
Steps
workspace_operation: Do an operation on objects in your workspace, e.g., create, update or delete a transaction or account.connection_query: Makes an HTTP request.condition: Evaluates a condition and returns true or false. They can have children's steps that will execute conditionally only if the result is true or only if the result is false.pause: Stops the execution of the workflow until it is later resumed. It can have triggers associated with determining when the execution will resume.function: Executes custom JavaScript code.- Supported Libraries:
lodash,date_fns,BigNumber,uuid,crypto_jsandaxios.
- Supported Libraries:
search: Search your workspace for various objects.pause: Stops the execution of the workflow until it is later resumed. It can have triggers associated with determining when the execution will resume.for_each: Provide an array and performs all children's steps once for every element in the array.action: Provide an array and performs all children's steps once for every element in the array.format: Format any data throughout workflow execution.return: Finish workflow execution and return with a status code and an error message or body.reply: Reply to the initiating trigger. This does not stop the workflow. Currently can only reply to pre-event workspace triggers. The body of these replies is the same as the values passed in by these triggers.parse_file: Convert various file types to JSON data.container: Run a custom docker container.
- In the
Typedropdown, select the type of operation you want to perform. The options areCreate,Update,Archive, andDelete. - In the
Modeldropdown, select the model you want to interact with. The options areTransaction,Account,Balance,Entity,Route, andSecret token. - In the
Data/Parametersfield, enter the data you want to use for the operation depending on the "type" and "model" you selected. The options are For Create and Update Secret Dto's, please refer to the Secrets page.
General execution logic
- Execution statuses and codes:
execution.statusreflects current state of the workflow. (e.gin-progress,completed,failed) etc.execution.codereflects what http response code will API caller will receive.- If
codeis specified by whoever built the workflow (e.g viareturnorreplysteps) it will decide thestatusof the workflow:code < 400→status: completedcode >= 400→status: failed
- If
codeis not specified then it'll be auto-decided by execution status. Completed executions will have 200 code while failed ones will have 420 code.
Accessing workflow data in steps
In workflows and steps, it is possible to access information about data passed to the trigger, variables stored in the workflow, or data resulting from steps that have already been executed. You can put any JavaScript code inside of {{ }}, including accessing variables.
The syntax to access them is as follows:
1. Trigger Data
- Webhook Trigger Request Data: Access the request data passed to the webhook triggers using
{{_trigger_version._input.<option>}}. Example:
{{_trigger_version._input.body}} // Request bodyOptions: body, files, headers, query, cookies, params, user, auth_method, api_key_id, ip, ips
2. Workflow Steps
- Single step: Access the result of a specific step in the workflow with the
stepsarray. The first step is at index 0.{{steps[INDEX].result.data}} - Nested Steps:
- Condition Step: When accessing nested steps within a condition step, you must specify whether you are referring to the true or false branch of the condition step.
- True branch:
{{steps[CONDITION_STEP_INDEX].steps.true[NESTED_STEP_INDEX].result.data}}- False branch:
{{steps[CONDITION_STEP_INDEX].steps.false[NESTED_STEP_INDEX].result.data}}CONDITION_STEP_INDEX: Represents the specific condition step you are referring to.NESTED_STEP_INDEX: Represents a particular step within either the True or False branch of the condition step.- Make sure to replace
CONDITION_STEP_INDEXandNESTED_STEP_INDEXwith the appropriate numbers to refer to the specific steps you need.
- For Each Step: For each steps have a nested steps array that contains the steps that will be run for each element in the array. You can access these nested steps with the following syntax:
{{steps[FOR_EACH_STEP_INDEX].steps[NESTED_STEP_INDEX].result.data}}FOR_EACH_STEP_INDEX: Represents the specific for each step you are referring to.NESTED_STEP_INDEX: Represents a particular step within the for each step.- Make sure to replace
FOR_EACH_STEP_INDEXandNESTED_STEP_INDEXwith the appropriate numbers to refer to the specific steps you need. - You can also access the current index and array element of the for each step being iterated over with the
_stepobject
{{_step._index}} {{_step._array_element}} - Condition Step: When accessing nested steps within a condition step, you must specify whether you are referring to the true or false branch of the condition step.
- Step error: Access the error object of a specific step in the workflow with the
stepsarray. Steps are accessed the same way as above.{{steps[INDEX].error.message}}- Error object structure is as follows:
{ "code": "Error code", "message": "Error message", "exception": { "message": "Exception message" }[], }
Workflow Variables
- Accessing Variables: You can access any variable stored in the workflow with the
_variablesobject.{{_variables.my_variable}}
Notes
- Replace
INDEXwith the appropriate index number for the step you're referring to. - The
{{result.data}}example assumes that the step result has adatafield. Adjust it to match your step's actual result structure.
Usage
Create workflow
- Navigating to the
Workflowstab in the settings dropdown or by pressingGand thenW. - Click the
Createbutton in the upper right corner. - Give your workflow a
Name, and clickCreate. - Select the workflow you want to amend, and click the
Editbutton in the top nav bar. - Add a new step by clicking the
+button on the left of the step list. - Add a trigger by clicking the
+button on the right. - Click the
Savebutton in the top nav bar. - Click the
Publishbutton in the top nav bar. - Your workflow is now published and actively running, listening for triggers, workspace operations, or any conditions you've set.
List Workflows
- Navigate to the
Workflowspage, or pressGand thenW. - The display will show a list of all workflows. To narrow the results, you can add
FiltersorSorts.
Update Workflows
- Navigating to the
Workflowstab in the settings dropdown or by pressingGand thenW. - Clicking the
Editbutton in the top nav bar. - To save your workflow, click the
Savebutton in the top nav bar.- Note: once a workflow is publised, you must create a new version to make additional changes.
Workflow Versions
Workflows are versioned objects. This means when you are working with a workflow you are working with a version, since
it contains most of the data. Versions can have either draft or published status. You can't edit published versions
but you can use them.