Start node
The Start node is the mandatory first node in any workflow. It defines the input data model and passes this data to subsequent nodes.External triggers
A workflow normally runs when something calls it: a process, a parent workflow, or the run button. Turn on an external trigger and it starts on its own, when a webhook is called or an email arrives. Open the Start node, expand External Triggers, switch Enable trigger on, then choose Webhook or Email and pick the data source that receives the event.
payload holds the request body as sent, nested structure intact. headers holds each header as a list of strings, so a single-valued header still arrives as a one-element list.
A script node can then read it directly:

Incoming webhooks
Email trigger
How do I run a workflow on a schedule?
Add a schedule to the workflow’s Start node, then activate it in Runtime → Runtime Settings → Schedules. From then on the workflow starts by itself at each fire time, with no process or caller involved. Schedules are available on Output Focused workflows. A workflow can have up to 50 schedules, and each one needs a name that is unique on that workflow.Add a schedule
Set when it fires
- Date fires once, at the Fire at date and time, entered in your local time.
- Cycle fires repeatedly. Pick a Format, ISO or Cron, then build the expression with Guided fields or type it under Expression.
Activate the schedule
REST API Call node
Enables communication with external systems via REST API calls. Supports GET, POST, PUT, PATCH, and DELETE methods. Endpoints are selected from a dropdown, grouped by system.- Params: Configure path, query, and header parameters.
- Input/Output: Input is auto-populated from the previous node; output displays the API response.
When does a REST API Call node take its failure exit?
A REST API Call node has a success exit and a failure exit. It takes the success exit only for a2xx response without errors. Everything else takes the failure exit:
- a non-
2xxresponse; - a timeout, stored as status
408withdata.timeout: true(set the limit with Timeout on the node’s Settings tab, default10000ms); - a connection error;
- a response body declared as JSON or XML that can’t be parsed.
408, 429, 500, 502, 503, or 504 is retried first, and the node takes the failure exit only once the retries are used up.
On both exits the node writes its result under its response key: data (the parsed body), metadata (statusCode and headers), hasError and errorMessage. hasError only flags connection and parsing errors: a 4xx or 5xx with a readable body has hasError: false even though the node took the failure exit, and on a timeout it isn’t set. To branch on the outcome, use the exits or metadata.statusCode, not hasError.
Errors while building the request, such as a failed input mapping or a missing endpoint, don’t use the failure exit. They fail the workflow instance.
FlowX database node
Allows you to read and write data to the FlowX Database within your workflow.FlowX Database Documentation
Condition (Fork) node
Evaluates logical conditions (JavaScript or Python) to direct workflow execution along different branches.- If/Else: Routes based on condition evaluation.
- One branch per run: The node follows the first branch whose condition passes, or the Else branch. To run branches at the same time, use the Start Parallel and End Parallel nodes.
Available bindings
Condition expressions have access to the following data bindings:Condition examples
- JavaScript
- Python
Calling reusable functions in conditions
Condition expressions can call the reusable functions defined in your project, so branch routing can reuse the same business logic as your processes. Call a function inside a condition using the standard syntax:- JavaScript
- Python
Start Parallel and End Parallel nodes
Run several steps of a workflow at the same time with a pair of nodes: Start Parallel splits the flow into branches that all run at once, and End Parallel waits for every branch, merges what the branches wrote, and continues. In the node palette they sit under Flow Control as Start Parallel Path and End Parallel Path. Dropped on the canvas, they are named Start Parallel and End Parallel. These nodes are the only way to run branches concurrently. A Condition (Fork) node evaluates its conditions and follows one branch.How do I run steps in parallel?
Add a Start Parallel node
Create one sequence per branch
Build each branch
Close every branch on the same End Parallel node
What data does each branch see?
Each branch starts with a deep copy of the workflow data as it was when the Start Parallel node ran. Branches work on independent copies: a branch cannot read what another branch writes while they run.How are the branches merged?
When a branch reaches the End Parallel node, the keys that branch wrote are merged into the parent data with a recursive deep merge, in the order the branches finish:- Keys written by only one branch are kept.
- A key written by two branches ends up with the value from the branch that finished last.
- Nested objects are merged key by key, so only the conflicting leaf values are overwritten.
- Arrays and all other non-object values are replaced whole. There is no element-level merge, so two branches cannot each fill a different element of the same array.
What happens when a branch fails?
- A node that fails inside a branch follows the same rules as anywhere else in the workflow. If its failure exit is connected, the branch continues on that path and must still reach the End Parallel node. If the failure exit is not connected, the workflow instance fails.
- When the instance fails, the other branches stop at the next node they reach. Nothing they already executed is rolled back.
- If the branches of one Start Parallel node end on different End Parallel nodes, or one End Parallel node receives branches from two different Start Parallel nodes, the run fails with
Missing end parallel gatewayand the causeParallel branches merge failed: missing or incompatible end parallel node. - A Start Parallel node with no outgoing sequence fails the run with
Workflow is missing outgoing sequences.
Runtime view
Console logging
Console logging
- Start Parallel node: the Input tab shows the data handed to the branches.
- End Parallel node: the Output tab shows the merged result of all branches.
- Path grouping: the nodes of each branch are grouped by path, so you can follow one branch at a time.
Path timing
Path timing
- Path time: sum of the execution times of the nodes in that branch.
- End Parallel time: the node’s own processing time plus the longest path time.
- Example: if branch A takes 2s and branch B takes 5s, the End Parallel node completes after 5s plus its own processing time.
Use cases
Multiple API calls
Data enrichment
Notification broadcasting
Document processing
Limitations
- Same End Parallel node for all branches: every branch of a Start Parallel node must end on the same End Parallel node, and that node allows one outgoing sequence.
- Last-write-wins merge: write to distinct keys per branch and combine them in a Script node afterwards.
- No element-level array merge: you cannot process the first element of an array in one branch and the second in another.
- No cross-branch reads: branches run on independent data copies and cannot see each other’s writes until the merge.
- Nesting is allowed: a branch can contain its own Start Parallel and End Parallel pair.
Script node
Executes custom JavaScript or Python code to transform, map, or enrich data between nodes. The node’soutput is merged into the workflow data, the same way business rule output is merged into process data: keys the script doesn’t write keep their values, and writing {} to an existing object changes nothing. To clear a key, set it to null. For the full merge rules, see How output is merged into process data.
Calling reusable functions
A Script node can call the reusable functions defined in your project, the same way a process Business Rule action does. Write the call directly in the node’s code using the standard syntax:Testing a script in isolation
A Script node ships with a Test modal that lets you exercise the script against sample input without running the full workflow. Open it with the expand icon at the top-right corner of the code editor, next to the expand/collapse chevron. The modal has three side-by-side panels:Run instance IDs in the Logs tab
The Logs tab of a workflow run displays the node run instance ID alongside the workflow instance ID for each Script node execution. A copy button is rendered next to every instance ID. Use this to grab a node-run identifier and paste it into the Test modal’s input selector to replay the exact past run.Subworkflow node
The Subworkflow node allows you to modularize complex workflows by invoking other workflows as reusable subcomponents. This approach simplifies process design, promotes reuse, and simplifies maintenance.Add a Subworkflow Node
Configure the Subworkflow Node
- Workflow Selection: Pick the workflow to invoke.
- Open: Edit the subworkflow in a new tab.
- Preview: View the workflow canvas in a popup.
- Response Key: Set a key (e.g.,
response_key) for output. - Input: Provide input in JSON format.
- Output: Output is read-only JSON after execution.
Data mapping
By default, a Subworkflow node forwards the whole parent context to the subworkflow and nests the result under the response key. Data mapping lets you instead pass only selected fields into the subworkflow and land its results directly into named parent variables, using visual input and output mappers rather than raw JSON. In the node config panel, expand Data mapping and turn Enable data mapping on.

Open the mapper
Map fields between the two data models
Test the mapping
Apply values from a past run (optional)
Save

Parallel multi-instance
A Subworkflow node normally runs the child workflow once. Turn on Parallel Multi-Instance to run it once for every element of an array instead, in parallel, and collect the results back into a second array. This keeps fan-out inside the Integration Designer. Previously, running a workflow once per item meant wrapping it in a process and fanning out with a multi-instance Call Activity. In the node config panel, expand Execution and turn Parallel Multi-Instance on.

- A result whose correlation value matches an existing element of the output array updates that element.
- A result that matches no element is appended.
- With no correlation attribute set, every result is appended.
Execution logic and error handling
- Parent workflow waits for subworkflow completion before proceeding.
- If the subworkflow fails, the parent workflow halts at this node. Connecting the node’s failure exit routes the failure down its own branch instead. See Routing a subworkflow failure.
- Subworkflow output is available to downstream nodes via the response key.
- Logs include workflow name, instance ID, and node statuses for both parent and subworkflow.
Routing a subworkflow failure
A Subworkflow node has two exits, drawn as a green connector for success and a red one for failure. Connect the red exit to send a failed run down its own branch instead of stopping the parent workflow. This is opt-in per node. A node whose red exit is not connected fails and blocks exactly as it did before, and nothing is changed for existing workflows. Only a mapping failure is routed, because that is the kind of failure a workflow can be built to handle: the same workflow succeeds for records that carry the right fields.subWorkflowError key, separate from its response key:
Console logging, navigation, and read-only mode
- Console shows input/output, workflow name, and instance ID for each subworkflow run.
- Open subworkflow in a new tab for debugging from the console.
- Breadcrumbs enable navigation between parent and subworkflow details.
- In committed/upper environments, subworkflow configuration is read-only and node runs are disabled (preview/open only).
Use case: CRM Data Retrieval with subworkflows
Suppose you need to retrieve CRM details in a subworkflow and use the output for further actions in the parent workflow.Create the Subworkflow
Add a Subworkflow Node in the Parent Workflow
Use Subworkflow Output in Parent Workflow
responseKey.Monitor and Debug
End node
The End node signifies the termination of a workflow’s execution. It collects the final output and completes the workflow process.- Receives input in JSON format from the previous node.
- Output represents the final data model of the workflow.
- Multiple End nodes are allowed for different execution paths.
The mandatory output parameters of the <workflow> workflow are missing at runtime - see the error glossary.
