Begriff
IF Node (Die Weiche)
Warum wichtig?
Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.
Der IF Node stellt eine einfache Ja/Nein-Frage. "Ist die E-Mail wichtig?"
- Ja (True): Gehe den oberen Weg (Alarm schlagen!).
- Nein (False): Gehe den unteren Weg (Ignorieren).
Er ist wie eine Weiche bei der Eisenbahn.
:level0Lernbruecke: Ein IF Node ist eine Ja/Nein-Weiche. Er prüft eine Bedingung und schickt Daten danach auf den True- oder False-Weg.
Lernbruecke für Anfänger
Wenn du bei IF Node (Die Weiche) ganz neu startest, denke zuerst nicht an Fachwörter, sondern an die Alltagssituation: Entscheidungen in Workflows abbilden. Der Begriff beschreibt einen klaren Baustein im größeren Ablauf. Frage dich immer: Was ist der Eingang, was passiert in der Mitte, und woran erkenne ich am Ende, dass es funktioniert hat?
Ein guter Einstieg ist, den Begriff in einem Satz zu erklären, danach ein reales Beispiel zu nennen und erst dann die Technikdetails zu lernen. So entsteht kein reines Auswendiglernen, sondern ein mentales Modell.
Du definierst eine Bedingung (Condition). Beispiele:
Preis > 100Betreff enthält "Rechnung"Kunde ist VIP
Der Node teilt den Datenstrom auf. Daten, die die Bedingung erfüllen, kommen aus dem "True"-Ausgang, die anderen aus dem "False"-Ausgang.
:level1Praxisbeispiel: Wenn der Rechnungsbetrag größer als 1000 ist, geht die Nachricht an die Buchhaltung. Sonst wird sie automatisch abgelegt. Teste immer mit passenden und unpassenden Beispieldaten.
Praxisroutine
In der Praxis lernst du IF Node (Die Weiche), indem du mit einem kleinen, kontrollierten Beispiel beginnst. Baue zuerst einen Minimalfall, prüfe das Ergebnis, veraendere genau eine Sache und beobachte, was sich ändert. Notiere dir Eingabe, Aktion, Ausgabe und typischen Fehler.
Übung: Erstelle ein Beispiel aus deinem Alltag, fuehre den Ablauf gedanklich Schritt für Schritt durch und markiere die Stelle, an der du Feedback oder ein Log brauchst. Wenn du diese Stelle benennen kannst, verstehst du den Begriff praktisch.
In n8n können Bedingungen kombiniert werden (AND / OR).
- AND: "Preis > 100" UND "Kunde = VIP" (Beides muss stimmen).
- OR: "Preis > 100" ODER "Kunde = VIP" (Eins davon reicht).
Der IF Node prüft jedes einzelne Item (Datenpaket) separat. Wenn du 10 E-Mails verarbeitest, gehen vielleicht 3 oben lang und 7 unten lang.
:level2
Typische Fehler entstehen durch leere Werte, Text statt Zahl oder mehrere Bedingungen ohne klare Klammerung. Deshalb sollte jede Bedingung mit echten Beispielwerten getestet werden.
Technische Einordnung im System
Technisch ist IF Node (Die Weiche) nicht isoliert. Es wirkt mit Nachbarbegriffen zusammen, hat Voraussetzungen und erzeugt Folgen. Für ein robustes Verständnis prüfst du drei Fragen: Welche Daten oder Bedingungen braucht dieser Schritt? Welche Ausgabe oder Wirkung entsteht? Was passiert bei falschen, fehlenden oder zu großen Eingaben?
Diese Sicht ist wichtig, weil echte Systeme selten am Hauptpfad scheitern. Sie scheitern an Randfällen, Berechtigungen, Zeitpunkten, Formaten, Reihenfolgen oder stillen Annahmen.
Vergleichstypen (Loose vs. Strict)
In JavaScript (und somit n8n) ist == (Loose) anders als === (Strict).
- String vs. Number:
5(Number) == "5" (String) isttrue. - Strict Mode: Manche Bedingungen erlauben expliziten Typen-Check.
- Empty Checks:
IsEmptyprüft aufnull,undefinedoder leeren String"".
Truthy / Falsy
Manchmal reicht es, einfach nur ein Feld anzugeben ohne Vergleich.
- Ein Feld mit Wert
0,false,""odernullwird als false gewertet. - Ein Feld mit irgendeinem Inhalt (
"Hallo",123,{obj}) wird als true gewertet.
Complex Expressions
Du kannst statt der GUI auch Expressions nutzen:
{{ $json.price * 1.19 > 100 }}
Dies erlaubt Berechnungen innerhalb der Bedingung, ohne vorher einen Set Node zu brauchen.
Short-Circuit Evaluation (Das faule Gehirn)
Der Javascript V8-Engine unter der Haube von n8n nutzt bei ODER/UND-Verknüpfungen die "Short-Circuit" Auswertung.
Nehmen wir die Expression {{ $json.isVIP || checkExternalDatabase() }} im IF-Knoten.
Wenn $json.isVIP bereits true ist, weiß Javascript: Ein Wahrheitselement beim "Logischen ODER" (||) reicht aus.
Der zweite, teure Funktionsaufruf (checkExternalDatabase()) wird komplett ignoriert und nie ausgeführt!
Reihenfolge ist also Performance-kritisch: Prüfe in UND-Bedingungen (&&) immer den unwahrscheinlichsten/billigsten Task links (weil wenn False, bricht die Kette ab) und bei ODER-Bedingungen (||) den wahrscheinlichsten links!
Bizarre Type Coercion (Javascript Voodoo)
In der Expressions-Bedingung {{ $json.user == "1" }} nutzt man den Loose Equality Operator.
Dies triggert in Javascript "Type Coercion" (Typen-Erzwingung), mit irren Folgen.
Wusstest du, dass 0 == false true ergibt, aber 0 === false false ist?
Und dass "" == false true ist?
Wenn dein JSON-Feld leer ist (der String ""), routet der IF-Node das Paket gnadenlos in den false Ausgang, wenn du unsauber auf Wahrheit überprüfst. In professionellen Pipelines nutzt man ausschließlich Strict Equality (===) und testet Arrays mittels $json.items.length > 0 und Strings per String-Längenüberprüfung, nie per implizitem Falsy-Check.
Loop-Performance & Map Nodes
Ein massiver Architektur-Fehler in n8n-Flows ist es, 10.000 eingehende Pakete aus einem Webhook durch vier parallele IF-Nodes ("Ist Preis 10?", "Ist Preis 20?") in einer komplexen Netzstruktur zu jagen. Der IF-Node führt den JavaScript-VM Context pro Paket evaluativ aus (was massiven Overhead im V8-Event-Loop generiert). Statt Array-Items einzeln als Schleife in den IF-Node zu kippen, ist Data-Transformation im Code Node oder Filter Node (Array filter) um Größenordnungen (oft 100x) schneller, da dort Arrays in C++ Bindings nativ verarbeitet, iteriert und als Output zurück an n8n (Bulk-Execution) gesendet werden.
Quick-Check
Wie viele Ausgänge hat ein IF Node?
Zwei: True (Wahr) und False (Falsch).Was passiert mit Daten, die False sind?
Sie kommen aus dem False-Ausgang raus und können dort weiterverarbeitet (oder ignoriert) werden.