To run multiple workflows in sequence in n8n, use the Execute Workflow node to call one workflow from another, passing data between them. Chain multiple Execute Workflow nodes to create a sequential pipeline. You can also use the Wait node to add delays between steps or trigger subsequent workflows via internal webhooks.
Chaining Multiple Workflows in a Sequential Pipeline with n8n
Complex automations often need to be broken into smaller, reusable workflows that run in a specific order. For example, a data pipeline might first extract data, then transform it, and finally load it into a database. Instead of building one massive workflow, you can split each stage into its own workflow and chain them together using the Execute Workflow node. This tutorial shows you how to build sequential workflow pipelines with proper data passing and error handling.
Prerequisites
- A running n8n instance (v1.0 or later)
- Two or more existing workflows to chain together
- Basic familiarity with n8n data flow and expressions
Step-by-step guide
Create the child workflows that will be called in sequence
Create the child workflows that will be called in sequence
Each child workflow should be designed as a standalone unit that performs one specific task. The first node of each child workflow should be an Execute Workflow Trigger node (not a regular trigger like Schedule or Webhook). This special trigger node receives data from the parent workflow's Execute Workflow node. The child workflow processes the data and outputs results that flow back to the parent. Design each child workflow so it can be tested independently by clicking Execute Workflow with test data.
Expected result: Each child workflow starts with an Execute Workflow Trigger and can be executed independently with test data.
Build the parent workflow with Execute Workflow nodes
Build the parent workflow with Execute Workflow nodes
Create a new workflow that orchestrates the sequence. Add a trigger node (Schedule Trigger, Webhook, or Manual) to start the pipeline. Then add an Execute Workflow node for each child workflow you want to run in sequence. Connect them in order: Trigger > Execute Workflow (Step 1) > Execute Workflow (Step 2) > Execute Workflow (Step 3). In each Execute Workflow node, select the corresponding child workflow from the Workflow dropdown. The output of each Execute Workflow node becomes the input for the next one.
Expected result: The parent workflow has a chain of Execute Workflow nodes that call child workflows in the correct order.
Pass data from the parent workflow to child workflows
Pass data from the parent workflow to child workflows
The Execute Workflow node passes all items from its input to the child workflow's Execute Workflow Trigger node. The child workflow receives this data as its input items. In the child workflow, access the data using standard n8n expressions like {{ $json.fieldName }}. When the child workflow finishes, its last node's output is returned to the parent workflow as the Execute Workflow node's output. This creates a seamless data pipeline between workflows.
1// In the child workflow's first Code node:2// Access data passed from the parent3const inputData = $input.all();45const results = inputData.map(item => {6 return {7 json: {8 // Process the data9 processedField: item.json.rawField.toUpperCase(),10 timestamp: new Date().toISOString(),11 source: 'Step 1 - Transform'12 }13 };14});1516return results;Expected result: Data flows from the parent to each child workflow and back, with each step transforming or enriching the data.
Add Wait nodes for timed delays between sequential steps
Add Wait nodes for timed delays between sequential steps
Sometimes you need a delay between workflow steps — for example, waiting for an external system to process data before querying it. Insert a Wait node between Execute Workflow nodes in the parent workflow. Configure the Wait node with the Resume option set to After Time Interval, and specify the delay in minutes or seconds. The workflow pauses at the Wait node and resumes after the specified interval, then continues to the next Execute Workflow node.
Expected result: The parent workflow pauses for the specified duration between child workflow executions.
Add error handling to the parent workflow
Add error handling to the parent workflow
If a child workflow fails, the Execute Workflow node in the parent workflow will also fail, stopping the entire pipeline. To handle this gracefully, set the On Error option on each Execute Workflow node to Continue (using error output). This creates a second output that captures error details instead of stopping the pipeline. Connect the error output to notification nodes or fallback logic. You can also create an Error Trigger workflow that monitors the parent workflow for failures.
Expected result: If a child workflow fails, the parent workflow routes the error to a handling branch instead of stopping entirely.
Complete working example
1// Code node in the parent workflow: Dynamic workflow orchestrator2// This Code node dynamically calls a list of workflows in sequence3// Mode: Run Once for All Items45const WORKFLOW_SEQUENCE = [6 { id: 'workflow-id-1', name: 'Extract Data' },7 { id: 'workflow-id-2', name: 'Transform Data' },8 { id: 'workflow-id-3', name: 'Load to Database' }9];1011const results = [];12let currentData = $input.all();1314for (const workflow of WORKFLOW_SEQUENCE) {15 try {16 // Call the Execute Workflow node programmatically17 // Note: In practice, use Execute Workflow nodes on the canvas18 // This code shows the logic for documentation purposes19 results.push({20 json: {21 step: workflow.name,22 status: 'completed',23 itemCount: currentData.length,24 timestamp: new Date().toISOString()25 }26 });27 } catch (error) {28 results.push({29 json: {30 step: workflow.name,31 status: 'failed',32 error: error.message,33 timestamp: new Date().toISOString()34 }35 });36 // Stop the sequence on failure37 break;38 }39}4041return results;4243// RECOMMENDED APPROACH:44// Use Execute Workflow nodes on the canvas instead of code.45// Canvas: Trigger → Execute Workflow (Step 1) → Execute Workflow (Step 2) → Execute Workflow (Step 3)46// Each Execute Workflow node points to a child workflow.47// Data flows automatically between them.Common mistakes when running Multiple Workflows in Sequence in n8n
Why it's a problem: Using a Webhook or Schedule Trigger in a child workflow instead of Execute Workflow Trigger
How to avoid: Child workflows called by Execute Workflow must start with an Execute Workflow Trigger node to receive data from the parent.
Why it's a problem: Not handling errors in the parent workflow, causing the entire pipeline to stop on any failure
How to avoid: Set On Error to 'Continue (using error output)' on each Execute Workflow node and handle errors in a separate branch.
Why it's a problem: Creating circular references where Workflow A calls Workflow B which calls Workflow A
How to avoid: Map out your workflow dependencies before building. Ensure there are no circular calls that would create infinite loops.
Why it's a problem: Passing too much data between workflows, causing memory issues
How to avoid: Filter and reduce data to only the fields needed by the next workflow. Use a Code node to strip unnecessary fields before the Execute Workflow node.
Best practices
- Keep child workflows focused on a single task to maximize reusability
- Use the Execute Workflow Trigger node as the start node in every child workflow
- Document the expected input and output data shape for each child workflow
- Set the On Error option on Execute Workflow nodes to handle child workflow failures gracefully
- Use descriptive workflow names that indicate their position in the sequence
- Test each child workflow independently before chaining them together
- Monitor execution times of the full pipeline in the Executions tab to identify bottlenecks
- Avoid nesting more than 3-4 levels of Execute Workflow calls to keep the pipeline debuggable
Still stuck?
Copy one of these prompts to get a personalized, step-by-step explanation.
I need to run three n8n workflows in sequence: one that fetches data from an API, one that transforms it, and one that loads it into PostgreSQL. How do I chain them together using Execute Workflow nodes with proper data passing and error handling?
Create a parent workflow with a Schedule Trigger that runs daily. Add three Execute Workflow nodes in sequence, each calling a child workflow. Pass the output of each step as input to the next. Add error handling on each Execute Workflow node.
Frequently asked questions
Does the Execute Workflow node wait for the child workflow to finish?
Yes. The Execute Workflow node is synchronous — it waits for the child workflow to complete and returns its output data before the parent workflow continues to the next node.
Can I pass parameters to a child workflow without passing all item data?
Yes. Add a Set node before the Execute Workflow node to create a clean item with only the fields the child workflow needs. This also reduces memory usage.
What happens if a child workflow has its own trigger and is also called by Execute Workflow?
If a child workflow has both a regular trigger (like a Schedule) and an Execute Workflow Trigger, it can run independently on its schedule AND be called by a parent workflow. The Execute Workflow Trigger only fires when called by a parent.
Can I run child workflows in parallel instead of in sequence?
Yes. Connect multiple Execute Workflow nodes to the same output of a preceding node. n8n runs them concurrently. However, this only works if the workflows are independent and do not depend on each other's output.
Is there a limit to how many workflows I can chain together?
There is no hard limit, but deeply nested chains (more than 5-6 levels) become hard to debug and may cause memory issues with large data sets. Keep pipelines flat and well-documented.
Can RapidDev help me design a multi-workflow pipeline in n8n?
Yes, RapidDev can architect complex workflow pipelines with proper data passing, error handling, and monitoring, ensuring your automated processes run reliably in sequence.
Talk to an Expert
Our team has built 600+ apps. Get personalized help with your project.
Book a free consultation