Thank you so much for the amazing tool — I’m currently building a fairly complex pipeline using sub-workflows, and I’ve run into a question around execution behavior that I hope you can clarify.
What I’m trying to do:
-
I have a sub-workflow that:
- Sends an HTTP request
- Waits for a callback using a Wait node
-
In the main workflow, I call this sub-workflow multiple times (e.g., A, B, and C), and some of them have dependencies — for example:
- B and C both depend on A (so B and C can only start after A’s Wait node resumes)
- B and C are independent of each other
-
My goal is: once A finishes, both B and C should start their HTTP requests at the same time — or at least, while B is waiting (due to a Wait node), C should already have started.
What I’m observing:
- After A finishes, n8n executes only one of B or C at a time.
- If B happens to start first and reaches the Wait node, the main workflow pauses there and doesn’t start C until B finishes.
- This seems to serialize execution even though B and C are independent.
My question is:
Is there a recommended way to allow multiple sub-workflow calls to run in parallel, especially when they contain Wait nodes?
Ideally, I’d love to:
- Keep using Execute Workflow nodes instead of switching to Webhook tricks (which make the visual layout more confusing for non-developers)
- Maintain a clean and understandable workflow graph, as this will be used by users who aren’t developers
If this is simply how n8n currently works, I totally understand — but I wanted to check in case there’s a setting or pattern I’ve missed. Perhaps something like running sub-workflows in separate processes or prioritizing non-Wait nodes during execution?
Any advice, best practices, or alternative suggestions would be very appreciated!
Thanks again