n8n Merge-nod: kombinera resultat från parallella branches
IF-noden delar ett flöde i två vägar. Switch-noden delar det i flera. Men vad händer när du vill samla resultaten igen? Det är Merge-nodens jobb.
Vad Merge-noden faktiskt gör
Merge-noden tar emot items från två inputs och kombinerar dem till ett enda output. Det finns fyra lägen:
Append. Items från Branch 2 läggs till efter items från Branch 1. Inget matchningsvillkor behövs. Använd Append när de två branches är oberoende — till exempel när du hämtar data från två olika API:er och vill behandla alla resultat i samma nod efteråt.
Combine: Keep Key Matches. Parvis matchning baserat på ett gemensamt fält. Om Branch 1 returnerar { userId: "abc", name: "Anna" } och Branch 2 returnerar { userId: "abc", email: "[email protected]" } — och du konfigurerar Match Key till userId — slår Merge ihop dem till { userId: "abc", name: "Anna", email: "[email protected]" }.
Praktisk användning: enrichment-mönster. Hämta en lista av kunder från ett CRM (Branch 1), hämta deras betalningshistorik från ett separat system (Branch 2), matcha på customerId, bearbeta vidare med fullständig data.
Combine: Merge by Position. Parar item 1 med item 1, item 2 med item 2 och så vidare, utan nyckelmatchning. Kräver att antalet items i Branch 1 och Branch 2 är identiskt — om de skiljer sig tappar n8n överskottet tyst.
Multiplex. Varje item från Branch 1 paras med varje item från Branch 2 — kartesisk produkt. 3 items i Branch 1 × 4 items i Branch 2 = 12 items i output. Används sällan, men är rätt verktyg för kombinationsmatriser (testa varje prompt mot varje modell, skicka varje produkt till varje säljkanal).
Parallella branches kräver “Wait”
Det vanligaste misstaget: split → parallell bearbetning → Merge, men n8n exekverar branches sekventiellt som standard. Merge-noden tar emot Branch 1-resultaten och fortsätter utan att vänta på Branch 2.
Lösning: aktivera Wait for Both Inputs i Merge-nodens inställningar. Det är inaktiverat som standard.
Obalanserade branches
Combine-lägena förutsätter att branches är symmetriska. Om en branch filtrerar bort items (via en IF-nod inuti branchen) och returnerar färre items än den andra, tappar Merge by Position data tyst. Combine by Key Matches tappar items utan matchande nyckel — de returneras inte alls, inte ens som null-värden.
Kontrollera alltid output-antalet i Merge-noden under testning om du kombinerar branches med potentiellt olika item-antal.
Vanligt mönster: Fan-out och Fan-in
- En trigger-nod hämtar en lista av ärenden
- IF-nod delar upp i “prioriterat” och “normalt”
- Båda branches bearbetar ärenden parallellt (t.ex. hämtar extra data via HTTP Request)
- Merge-nod (Append) samlar resultaten
- Nästa nod skickar notiser för alla ärenden
Fan-out → parallell bearbetning → Fan-in är det vanligaste mönstret för Merge. Det reducerar total exekveringstid jämfört med sekventiell bearbetning när HTTP Request-calls är oberoende.
Vanliga frågor
Varför ser jag bara Branch 1-data i Merge-output?
“Wait for Both Inputs” är förmodligen inaktiverat. Aktivera det i nodinställningarna — annars skickar Merge vidare vad den har när Branch 1 är klar.
Kan Merge-noden hantera tre eller fler branches?
Nej, Merge har exakt två inputs. Kedja Merge-noder: Merge (Branch 1 + Branch 2) → Merge (result + Branch 3).
Vad händer med metadata-fält (som $itemIndex) efter en Merge?
n8n omindexerar items i Merge-output. $itemIndex i nästa nod speglar positionen i det sammanslagna resultatet, inte originalpositionen i respektive branch.