# Branches don't execute asynchrousnously?

**URL:** <https://community.n8n.io/t/branches-dont-execute-asynchrousnously/306794>\
**Category:** Questions\
**Created:** [August 9, 2026, 7:46pm UTC](https://community.n8n.io/t/branches-dont-execute-asynchrousnously/306794 "2026-08-09T19:46:50Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Patrick\_Friedl](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/patrick_friedl/32/84129_2.png) [@Patrick\_Friedl](https://community.n8n.io/u/Patrick_Friedl)\
**Post date:** [August 9, 2026, 7:46pm UTC](https://community.n8n.io/t/branches-dont-execute-asynchrousnously/306794/1 "2026-08-09T19:46:50Z")

</div>

Hi all. So I’m building out this workflow and querying multiple LLMs at once. The issue is that the branches don’t fire asynchronously, but one after the other, starting with Gemini, then GPT, then Perplexity.

I know the merge is waiting on all of them, but instead of the execution time being the longest time of one model, it’s the sum of all execution times, which can be up to 20 seconds total.

Is there any way to get branches to fire aysnchronously?

 ![workflow](https://europe1.discourse-cdn.com/n8n/original/3X/6/0/609cfa5986698a3533cec50b06dd70846c9ec995.png)

---

<div class="post-metadata">

**Author:** ![n8n](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/n8n/32/196425_2.png) [@n8n](https://community.n8n.io/u/n8n)\
**Post date:** [August 9, 2026, 7:47pm UTC](https://community.n8n.io/t/branches-dont-execute-asynchrousnously/306794/2 "2026-08-09T19:47:26Z")

</div>

Hey @Patrick_Friedl, while you wait for a response, here are some things that might help:

> **Suggested resources**
>
> _Automatically matched to your question._
> 
> **Docs:**
> 
> - [Understand execution order](https://docs.n8n.io/build/flow-logic/understand-execution-order)
> 
> **Forum:**
> 
> - [How to run multiple threads at once at the same time?](https://community.n8n.io/t/123741)
> - [Best practice to wait for multiple branches before continuing?](https://community.n8n.io/t/95103)
> - [Why doesnt my bottom Node execute?](https://community.n8n.io/t/255081)

@fahmiiireza, @Olek, @Anshul_Namdev - you’ve helped with similar issues before, can you take a look?

_Automatically suggested by n8n’s community bot. It’s a pilot - [please share feedback here](https://community.n8n.io/t/pilot-forum-helper-bot/304669)._

---

<div class="post-metadata">

**Author:** ![BramKn](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/bramkn/32/11894_2.png) [@BramKn](https://community.n8n.io/u/BramKn)\
**Post date:** [August 9, 2026, 7:49pm UTC](https://community.n8n.io/t/branches-dont-execute-asynchrousnously/306794/3 "2026-08-09T19:49:16Z")

</div>

This is how n8n works. Nothing can be changed about that.

If you do the courses you will get to learn more about how it works.

---

<div class="post-metadata">

**Author:** ![achamm](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/achamm/32/143734_2.png) [@achamm](https://community.n8n.io/u/achamm)\
**Post date:** [August 9, 2026, 8:03pm UTC](https://community.n8n.io/t/branches-dont-execute-asynchrousnously/306794/4 "2026-08-09T20:03:25Z")

</div>

No, but you could use https requests! However, there’s no parallel system. HTTP requests might be faster!

---

<div class="post-metadata">

**Author:** ![anon71933009](https://avatars.discourse-cdn.com/v4/letter/a/c6cbf5/32.png) [@anon71933009](https://community.n8n.io/u/anon71933009)\
**Post date:** [August 9, 2026, 8:06pm UTC](https://community.n8n.io/t/branches-dont-execute-asynchrousnously/306794/5 "2026-08-09T20:06:19Z")

</div>

Hi @Patrick_Friedl

Building on achamm’s point, there’s a specific way to do it.

n8n runs one node at a time so branches will always be sequential, that part won’t change. But a single HTTP Request node fed multiple items fires those requests in parallel within a batch. So rather than three branches, you build three items, one per model, and one HTTP Request node calls all three at once. Total time becomes your slowest model instead of the sum.

Shape of it: a Code node that outputs three items, each carrying the url and body for its provider, then one HTTP Request node using `{{ $json.url }}` and `{{ $json.body }}`, with Batching set so all three sit in the same batch. Three items come out, one per model, and you don’t need the Merge node at all.

The catch is auth. Each provider wants a different key and a node only has one credential, so you’d be setting the auth header by expression instead. That puts your API keys in execution data rather than in credentials, which may or may not be acceptable depending on who can see your executions.

---

<div class="post-metadata">

**Author:** ![Patrick\_Friedl](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/patrick_friedl/32/84129_2.png) [@Patrick\_Friedl](https://community.n8n.io/u/Patrick_Friedl)\
**Post date:** [August 9, 2026, 8:41pm UTC](https://community.n8n.io/t/branches-dont-execute-asynchrousnously/306794/6 "2026-08-09T20:41:13Z")

</div>

Interesting… do you have an example of how this works?

---

<div class="post-metadata">

**Author:** ![David16](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/david16/32/60276_2.png) [@David16](https://community.n8n.io/u/David16)\
**Post date:** [August 9, 2026, 8:46pm UTC](https://community.n8n.io/t/branches-dont-execute-asynchrousnously/306794/7 "2026-08-09T20:46:14Z")

</div>

What you’re seeing is expected. n8n doesn’t treat branches in one execution as concurrent tasks.

With `executionOrder: v1`, it runs branches from top to bottom based on their vertical position on the canvas. I’ve used that ordering deliberately for alerts, but it also means your model calls are being added together before the Merge node runs. Move Perplexity above Gemini and you should see the order reverse, which confirms it.

There isn’t a setting on the Merge node that makes those upstream branches parallel. For real concurrency, each model call needs to run as a separate workflow execution, with the results stored or sent back to an orchestration workflow. If all three results must return in the same synchronous execution, that adds some coordination rather than being a canvas-only change.

---

<div class="post-metadata">

**Author:** ![anon71933009](https://avatars.discourse-cdn.com/v4/letter/a/c6cbf5/32.png) [@anon71933009](https://community.n8n.io/u/anon71933009)\
**Post date:** [August 9, 2026, 9:34pm UTC](https://community.n8n.io/t/branches-dont-execute-asynchrousnously/306794/9 "2026-08-09T21:34:18Z")

</div>

This is the example that i just created in my n8n, just copy the json and paste it in yours node.

**Code node 1 Build requests:**

// ---- put your keys here ----  
const OPENAI\_KEY = ‘PUT\_OPENAI\_KEY\_HERE’;  
const GEMINI\_KEY = ‘PUT\_GEMINI\_KEY\_HERE’;  
const PERPLEXITY\_KEY = ‘PUT\_PERPLEXITY\_KEY\_HERE’;  
// ----------------------------

const prompt = $json.prompt || ‘Explain quantum entanglement in one short paragraph.’;

return [  
{  
json: {  
provider: ‘openai’,  
url: ‘[https://api.openai.com/v1/chat/completions](https://api.openai.com/v1/chat/completions)’,  
headers: { Authorization: 'Bearer ’ + OPENAI\_KEY },  
body: {  
model: ‘gpt-4o’,  
messages: [{ role: ‘user’, content: prompt }]  
}  
}  
},  
{  
json: {  
provider: ‘gemini’,  
url: ‘[https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent](https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent)’,  
headers: { ‘x-goog-api-key’: GEMINI\_KEY },  
body: {  
contents: [{ parts: [{ text: prompt }] }]  
}  
}  
},  
{  
json: {  
provider: ‘perplexity’,  
url: ‘[https://api.perplexity.ai/chat/completions](https://api.perplexity.ai/chat/completions)’,  
headers: { Authorization: 'Bearer ’ + PERPLEXITY\_KEY },  
body: {  
model: ‘sonar’,  
messages: [{ role: ‘user’, content: prompt }]  
}  
}  
}  
];  
**HTTP node Call all models:**

- URL: `{{ $json.url }}`
- Send Headers on, Specify Headers → Using JSON: `{{ JSON.stringify($json.headers) }}`
- Send Body on, Specify Body → Using JSON: `{{ JSON.stringify($json.body) }}`
- Options → Batching → Items per Batch `3`

That’s the bit that does the work. All three go out together rather than one after another.

**Code node 3 Flatten responses:**  
const requests = $(‘Build requests’).all();

return $input.all().map((item, i) =\> {  
const provider = requests[i].json.provider;  
const r = item.json;

const text = provider === ‘gemini’  
? r?.candidates?.[0]?.content?.parts?.[0]?.text  
: r?.choices?.[0]?.message?.content;

return { json: { provider, text: text ?? null } };  
});

Does it help?

---

<div class="post-metadata">

**Author:** ![Patrick\_Friedl](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/patrick_friedl/32/84129_2.png) [@Patrick\_Friedl](https://community.n8n.io/u/Patrick_Friedl)\
**Post date:** [August 9, 2026, 11:10pm UTC](https://community.n8n.io/t/branches-dont-execute-asynchrousnously/306794/10 "2026-08-09T23:10:47Z")

</div>

Fantastic, thanks!

---

<div class="post-metadata">

**Author:** ![anon71933009](https://avatars.discourse-cdn.com/v4/letter/a/c6cbf5/32.png) [@anon71933009](https://community.n8n.io/u/anon71933009)\
**Post date:** [August 10, 2026, 4:14am UTC](https://community.n8n.io/t/branches-dont-execute-asynchrousnously/306794/11 "2026-08-10T04:14:10Z")

</div>

Welcome @Patrick_Friedl

---

<div class="post-metadata">

**Author:** ![BramKn](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/bramkn/32/11894_2.png) [@BramKn](https://community.n8n.io/u/BramKn)\
**Post date:** [August 10, 2026, 5:44am UTC](https://community.n8n.io/t/branches-dont-execute-asynchrousnously/306794/12 "2026-08-10T05:44:49Z")

</div>

That is incorrect.  
HTTP nodes still run them one by one.  
You can check the code if you want: [n8n/packages/nodes-base/nodes/HttpRequest/V3/HttpRequestV3.node.ts at master · n8n-io/n8n · GitHub](https://github.com/n8n-io/n8n/blob/master/packages/nodes-base/nodes/HttpRequest/V3/HttpRequestV3.node.ts)

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/n8n/user_avatar/community.n8n.io/system/32/195824_2.png) [@system](https://community.n8n.io/u/system)\
**Post date:** [August 17, 2026, 5:45am UTC](https://community.n8n.io/t/branches-dont-execute-asynchrousnously/306794/13 "2026-08-17T05:45:10Z")

</div>

Closed on August 17, 2026, 5:45am UTC

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