Guidance on Concurrent Execution of Sub-Workflows with Wait Nodes

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:

  1. I have a sub-workflow that:

    • Sends an HTTP request
    • Waits for a callback using a Wait node
  2. 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
  3. 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 :folded_hands:

hello @breakds

Turn off the switch “Wait for Sub-Workflow Completion”

Thanks for the quick response, @barn4k! I am afraid this is not what I needed,

Please see my pipeline above, where A, B, C, D are all sub workflow that sends an HTTP request and wait (a node) for the callback from the service.

The desired behavior is that after sub workflow B sent the request, I would like C to send the request immediately, and both of them wait for the callback from the service. Is this achievable?

With what you have suggested, both B and C will not wait for the callback and the merge is immediately triggered.

No, in that way they won’t work.

You can, however, set B and C to run without waiting for the completion and after the Merge node triggers, create a check that the executions of these two WFs are finished (you can check for it via n8n node with “Get many executions” operation)