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 :pray:

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)

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.