Sub-workflows#
You can call one workflow from another workflow. This allows you to build modular, microservice-like workflows. It can also help if your workflow grows large enough to encounter memory issues. Creating sub-workflows uses the Execute Workflow and Execute Workflow Trigger nodes.
Set up and use a sub-workflow#
This section walks through setting up both the parent workflow and sub-workflow.
Create the sub-workflow#
- Create a new workflow.
- Optional: configure which workflows can call the sub-workflow:
- Select the Options menu > Settings. n8n opens the Workflow settings modal.
- Change the This workflow can be called by setting. Refer to Workflow settings for more information on configuring your workflows.
- Add the Execute Workflow Trigger node.
- Add other nodes as needed to build your sub-workflow functionality.
- Save the sub-workflow.
Sub-workflow mustn't contain errors
If there are errors in the sub-workflow, the parent workflow can't trigger it.
Load data into sub-workflow before building
This requires the ability to load data from previous executions, which is available to Pro and Enterprise users.
If you want to load data into your sub-workflow to use while building it:
- Create the sub-workflow and add the Execute Workflow Trigger.
- In the sub-workflow settings, set Save successful production executions to Save.
- Skip ahead to setting up the parent workflow, and run it.
- Follow the steps to load data from previous executions. You can now pin example data in the trigger node, enabling you to work with real data while configuring the rest of the workflow.
Call the sub-workflow#
- Open the workflow where you want to call the sub-workflow.
- Add the Execute Workflow node.
-
In the Execute Workflow node, set the sub-workflow you want to call. You can choose to call the workflow by ID, load a workflow from a local file, add workflow JSON as a parameter in the node, or target a workflow by URL.
Find your workflow ID
Your sub-workflow's ID is the alphanumeric string at the end of its URL.
-
Save your workflow.
When your workflow executes, it will send data to the sub-workflow, and run it.
How data passes between workflows#
For example, there's an Execute Workflow node in Workflow A. The Execute Workflow node calls another workflow, Workflow B:
- The Execute Workflow node passes the data to the Execute Workflow Trigger node of Workflow B.
- The last node of Workflow B sends the data back to the Execute Workflow node in Workflow A.