Daten zwischen Nodes: Expressions und Verzweigungen
n8ns Magie ist das Durchreichen von Daten: Ein Name aus dem Formular landet in einer Mail, ein Betrag aus der Mail in einer Bedingung. Wir lernen {{ }}-Expressions, das Zuordnen von Feldern per Drag-and-drop und die IF-Node zum Verzweigen.
Nodes sind das Skelett eines Workflows. Die Daten, die dazwischen fließen, sind das Blut. Zeit zu lernen, wie du sie lenkst.
Jede Node reicht Daten an die nächste weiter
Klick auf eine Node, die schon gelaufen ist, und du siehst ihre Ausgabe: Felder und Werte (Name, E-Mail, Betrag …). Die nächste Node kann jedes davon nutzen.
Expressions in {{ }}
Jedes Textfeld einer Node nimmt mehr als bloßen Text — es nimmt Einsetzungen:
Neuer Lead von {{ $json.name }}!
Telefon: {{ $json.phone }}, Betrag: {{ $json.amount }} €
Die Syntax musst du dir nicht merken: Öffne links das Datenpanel und zieh das gewünschte Feld in den Text — n8n schreibt die Expression für dich. Felder zu ziehen ist Fähigkeit Nummer eins in dieser Lektion.
Verzweigen: die IF-Node
Die IF-Node teilt den Fluss anhand einer Bedingung in zwei Zweige:
[Lead-Formular] → [IF: amount > 1000?] true → [Telegram an den Vertrieb: „Dicker Lead!“] false → [Einfach in die Tabelle schreiben]
Bedingungen stellst du per Formular ein: Feld, Operator (größer als / gleich / enthält), Wert. Mehrere Bedingungen kombinierst du mit UND/ODER.
Die kleine Übung dieser Lektion
Nimm die Morgenübersicht von gestern und häng das dran: IF „Temperatur unter 5°“ → an die Nachricht kommt „Nimm eine Jacke mit! 🧥“. Daten aus der HTTP-Node → eine Bedingung → zwei Textvarianten. Das ist die Vorlage hinter jedem Workflow, den du von hier an baust.
Was $json, $node und der Punkt bedeuten
Lies {{ $json.name }} so: $json sind die Daten, die bei dieser Node angekommen sind; der Punkt heißt „geh hinein“; name ist das Feld. Sind die Daten verschachtelt, gibt es mehr Punkte: In der Wetterantwort sitzt die Temperatur in {{ $json.current.temperature_2m }}. Und wenn du ein Feld aus einer früheren Node willst statt aus der direkt davor, gibt es $node:
Aus der Node nebenan: {{ $json.amount }}
Aus einem verschachtelten Feld: {{ $json.current.temperature_2m }}
Aus einer Node per Name: {{ $node["Form"].json.email }}
Noch mal: Du tippst das so gut wie nie, du ziehst es mit der Maus und n8n setzt den richtigen Punktpfad ein. Aber zu wissen, was der Punkt bedeutet, zahlt sich aus: An dem Tag, an dem eine Expression undefined zurückgibt, siehst du sofort, dass du eine Verschachtelungsebene verpasst hast.
IF gegen Switch
Die IF-Node gibt dir genau zwei Zweige — true und false. Brauchst du mehr als zwei (Lead / Beschwerde / Frage / Spam), greifst du zu Switch — dieselbe Idee, mehrere Ausgänge. Die Regel ist simpel: zwei Ausgänge, IF; viele Ausgänge, Switch. Switch nehmen wir uns in der Lektion zum Sortieren des Posteingangs vor; für jetzt reicht: Verzweigungen skalieren.
Mythen rund um Daten
- „Ich muss die Expression-Syntax lernen.“ Musst du nicht. In 95 % der Fälle ziehst du Felder mit der Maus. Die Syntax brauchst du nur zum Lesen und leichten Anpassen dessen, was schon da steht.
- „Den Wert von Hand zu kopieren läuft aufs Gleiche hinaus.“ Eben nicht: Ein hineinkopiertes „Ivan“ bleibt für immer „Ivan“, während
{{ $json.name }}bei jedem Lauf den Namen des neuen Kunden einsetzt. Eine Expression lebt; getippter Text ist tot. - „Ein leeres Datenpanel heißt, der Workflow ist kaputt.“ Meist heißt es nur, dass die Node noch nicht gelaufen ist. Drück Execute auf der Node davor, dann tauchen die Daten auf und die Felder lassen sich ziehen.
Warum zeigt n8n ziehbare Felder erst, nachdem eine Node gelaufen ist, und nicht sofort? Denk drüber nach: Vor dem Lauf hat n8n keine Ahnung, was Formular oder API zurückgeben — ob es überhaupt ein Feld „phone“ geben wird. Das Datenpanel zeigt das echte Ergebnis, keine Vermutung. Deshalb schlägt „laufen lassen → die tatsächlichen Felder sehen → ziehen“ das blinde Raten von Feldnamen.
Wenn sich die Daten nicht ziehen lassen
Prüf, ob die Node davor gelaufen ist (Execute) — das Datenpanel zeigt nur Daten, die wirklich hindurchgeflossen sind. Leeres Panel = Node noch mal laufen lassen.
Die Set-Node: Ordnung in deine Daten
API-Daten kommen oft mit Müllfeldern und sperrigen Namen an. Die Node Edit Fields (Set) ist dein Umpacker: Sie behält, was du brauchst, benennt es um und wirft den Rest weg, damit weiter unten etwas Sauberes und Lesbares fließt. Zum Beispiel diese ausladende Wetterantwort auf zwei Felder eindampfen:
Vorher (aus HTTP): { "current": { "temperature_2m": 3.4, "time": "...",
"wind_speed_10m": 12, ...ein Dutzend Felder mehr... } }
Nachher (Set): { "temp": 3.4, "city": "Berlin" }
Sich anzugewöhnen, Daten vor Verzweigungen und KI-Nodes aufzuräumen, spart Stunden an Debugging: Wenn ein Feld temp heißt und nicht current.temperature_2m, liest sich sowohl dein Prompt als auch deine IF-Bedingung auf einen Blick.
Mach das jetzt
Öffne die Morgenübersicht von gestern. Zieh in der Telegram-Node das Temperaturfeld aus dem Datenpanel in den Nachrichtentext, sodass dort steht: „Gerade sind es {{ $json.current.temperature_2m }}°“. Häng nach dem HTTP Request eine IF-Node mit der Bedingung „Temperatur < 5“ an und setz im true-Zweig „Nimm eine Jacke mit! 🧥“ hinter die Nachricht. Führ Execute bei verschiedenem Wetter aus (tausch dafür die Koordinaten) und stell sicher, dass beide Zweige feuern.
Short questions on the lesson — with an explanation for every answer.