We have a use-case where we trigger sub-workflow with Split-out. We want ‘N’ sub-workflows to be triggered in-parallel where ‘N’ is the number or items that we split-out.
We tried executing the sub-worklow with ‘Execute workflow’, but the sub-workflows are getting executed in sequntial. Same with ‘Webhook trigger’, sub-workflows are getting executed in-parallel.
Want to understand more on the difference and use-case for ‘Execute workflow’ vs ‘Webhook trigger’
The Execute Workflow node runs the called workflow synchronously within the same execution context, so even when using Split Out, items are processed sequentially. The parent workflow waits for each sub-workflow to finish before continuing.
A Webhook Trigger starts a new, independent execution for every request, which is why triggering it via HTTP results in parallel executions.
In short:
Use Execute Workflow when you need reusable logic and a response back (function-like behavior).
Use Webhook Trigger when you need fan-out or parallel processing and don’t need to wait for results.
Basically: Execute Workflow gives you sequential behavior (single execution chain), while Webhook Trigger gives you multiple independent executions that can run in parallel.
Add a Webhook Trigger to your sub-workflow. Then in your parent workflow, right after the Split Out node, use an HTTP Request node to call the sub-workflow’s webhook, once per item. If you need to collect all the results before moving forward, you can use a Wait node with a callback to gather everything back together.
@tamy.santos
With the shared sub-workflow, we are able to make main workflow wait until all the sub-workflows completes without any Respond Webhook. Is this expected behavior?
Yes, that’s expected for the Execute Sub-workflow node when Wait for Sub-Workflow Completion is enabled.
Per the docs, this option explicitly controls whether the main workflow waits for the sub-workflow to finish before moving on. When it’s turned on, the parent execution blocks until the child workflow completes, and then continues. Execute Sub-workflow
You only need Respond to Webhook when you’re dealing with webhook-triggered workflows and want to control how and when the HTTP response is sent back to the caller; it isn’t required for sub-workflows called via Execute Sub-workflow.
Using the Webhook Trigger with “Respond: When Last Node Finishes” is totally fine and doesn’t change the execution model.
Each webhook call still creates an independent execution, so your sub-workflows are already running in parallel. This setting only delays the HTTP response until the workflow finishes — it doesn’t make the execution synchronous or force them to run one by one.
If your parent workflow appears to “wait,” that’s simply because it’s waiting for the HTTP responses to come back, not because the sub-workflows are actually running sequentially. They’re still executing in parallel on the backend.
Does that clear things up? Let me know if you have any other questions!