n8n Tutorial auf Deutsch: Deinen ersten Workflow erstellen und verstehen
Lerne n8n Schritt für Schritt kennen und baue deinen ersten Workflow, der Supportanfragen nach Priorität sortiert. Mit Screenshots und einfachen Testdaten verstehst du, wie Nodes, Expressions und Bedingungen zusammenspielen.
Bernd Fischer
19. Okt 2026 · 5 Minuten Lesezeit
Eine Supportanfrage kommt herein: Anna kann sich nicht anmelden. Die Anfrage enthält einen Namen, ein Thema und eine Priorität. Aus diesen Angaben soll eine lesbare Nachricht entstehen. Anschließend entscheidet der Workflow, ob die Anfrage als dringend oder normal behandelt wird.
Genau diesen Ablauf bauen wir in diesem n8n-Tutorial. Du lernst, wie du Daten anlegst, in nachfolgenden Schritten verwendest und anhand einer Bedingung verzweigst. Dabei kannst du nach jedem Schritt prüfen, was tatsächlich passiert.
Wir arbeiten mit einer simulierten Anfrage. Der Workflow versendet noch keine E-Mail und legt kein Ticket an. Dadurch kannst du die Grundlagen ohne externe Konten oder API-Schlüssel ausprobieren.
Unser fertiger Ablauf hat sechs Nodes:
flowchart TD
A["Manual Trigger"] --> B["Testdaten erzeugen"]
B --> C["Nachricht erzeugen"]
C --> D{"Priorität gleich high?"}
D -- true --> E["Dringender Fehler"]
D -- false --> F["Normale Anfrage"]
Was du für dieses Tutorial brauchst
Du benötigst Zugang zu einer laufenden n8n-Instanz, entweder in n8n Cloud oder auf deinem eigenen Rechner beziehungsweise Server. Die Installation setzen wir hier voraus. Programmierkenntnisse brauchst du für das Beispiel nicht.
n8n verbindet einzelne Verarbeitungsschritte zu einem visuellen Workflow. Diese Schritte heißen Nodes. Ein Trigger startet den Ablauf. Danach können Nodes Daten bearbeiten, Bedingungen prüfen oder externe Dienste ansprechen. Ein konkreter Durchlauf heißt Execution.
Für den Einstieg genügt eine Frage: Welche Daten erhält eine Node, und welche gibt sie weiter? Genau das prüfen wir beim Aufbau.
1. Einen Workflow mit Manual Trigger anlegen
Erstelle in n8n einen neuen Workflow und nenne ihn Supportanfrage verarbeiten. Wähle als ersten Schritt den Manual Trigger. Je nach Oberfläche erscheint er in der Auswahl als manueller Start, etwa „Trigger manually“.
Dieser Trigger steht ganz am Anfang. Er startet unseren Workflow, wenn wir im Editor die Ausführung auslösen. So können wir selbst festlegen, wann welche Testdaten verarbeitet werden.

Auf der Arbeitsfläche, dem Canvas, verbinden wir nun weitere Nodes mit diesem Startpunkt. Die Namen in der Anleitung beschreiben ihre Aufgaben. In den Screenshots können einzelne Nodes noch ihre Standardnamen tragen.
2. Eine Supportanfrage als Testdaten erzeugen
Klicke am Ausgang des Manual Triggers auf das Pluszeichen und suche nach Edit Fields. Die Node wird teilweise als Edit Fields (Set) angezeigt. Verbinde sie direkt mit dem Manual Trigger und benenne sie Testdaten erzeugen.
Wähle Manual Mapping. Lege über Add Field drei Felder an. Alle drei erhalten den Typ String, also Text, und einen festen Wert:
| Feldname | Typ | Fester Wert |
|---|---|---|
name |
String | Anna |
priority |
String | high |
topic |
String | Login funktioniert nicht |
Mit Execute step führst du diesen Schritt aus. Prüfe rechts im Output, ob alle drei Felder mit ihren Werten erscheinen.

Du kannst denselben Output auch als JSON betrachten. Der Datensatz enthält:
{
"name": "Anna",
"priority": "high",
"topic": "Login funktioniert nicht"
}
n8n transportiert diesen Datensatz als ein Item. Für dieses Beispiel reicht es, sich darunter eine zusammengehörige Dateneinheit vorzustellen. Tabelle und JSON zeigen dieselben Daten in unterschiedlichen Darstellungen.
Unsere Testdaten könnten später aus einem Formular oder einer API stammen. Zunächst halten wir die Quelle bewusst einfach, damit wir uns auf die Verarbeitung konzentrieren können.
3. Mit einer Expression eine Nachricht erzeugen
Füge hinter Testdaten erzeugen eine zweite Edit Fields-Node hinzu und nenne sie Nachricht erzeugen. Ihr Input kommt vom Ausgang der ersten Edit-Fields-Node.
Lege im manuellen Mapping ein String-Feld namens message an. Schalte dessen Wert auf Expression und trage ein:
Supportanfrage von {{ $json.name }}: {{ $json.topic }}
Eine Expression liest Werte aus den Daten des Workflows. $json bezeichnet die JSON-Daten des aktuellen Items. Mit .name und .topic greifen wir auf die beiden Felder zu.
Du kannst ein Feld auch aus dem Input-Bereich in das Wertfeld ziehen. n8n erzeugt dabei die passende Expression. Ergänze anschließend den übrigen Text.

Aktiviere in Nachricht erzeugen außerdem Include Other Input Fields. Falls zusätzlich eine Auswahl der zu übernehmenden Felder erscheint, übernimm alle Eingangsfelder. So bleiben name, priority und topic neben der neuen Nachricht erhalten.

Führe die Node aus und prüfe den Output. Er soll diese vier Felder enthalten:
{
"name": "Anna",
"priority": "high",
"topic": "Login funktioniert nicht",
"message": "Supportanfrage von Anna: Login funktioniert nicht"
}
Die Nachricht ist damit von den Eingangsdaten abhängig. Ändern wir später den Namen, passt sich die Ausgabe bei der nächsten Ausführung an, ohne dass wir die Expression umschreiben müssen.
4. Mit einer IF-Node nach Priorität verzweigen
Füge direkt hinter Nachricht erzeugen eine If-Node hinzu. Benenne sie Priorität prüfen und verbinde den Ausgang von Nachricht erzeugen mit ihrem Eingang.
Konfiguriere eine einzige Bedingung:
| Einstellung | Wert |
|---|---|
| Linker Wert, als Expression | {{ $json.priority }} |
| Datentyp und Vergleich | String: is equal to |
| Rechter Wert, als fester Text | high |

Die Node hat zwei Ausgänge. Bei erfüllter Bedingung läuft das Item über true, andernfalls über false. Für unsere Testdaten mit priority gleich high erwarten wir den true-Ausgang.

Wichtig: Der false-Ausgang bedeutet „nicht high“. Er prüft nicht ausdrücklich auf low. Auch ein anderer Textwert würde die Gleichheitsbedingung nicht erfüllen. Für unser erstes Beispiel verwenden wir ausschließlich high und low.
5. Die beiden Ergebnisse ausgeben
Verbinde eine weitere Edit Fields-Node mit dem true-Ausgang von Priorität prüfen. Nenne sie Dringender Fehler. Lege darin im manuellen Mapping ein String-Feld result an. Sein Wert ist diese Expression:
Dringender Fehler: {{ $json.topic }}

An den false-Ausgang der IF-Node kommt eine separate Edit Fields-Node namens Normale Anfrage. Lege auch hier ein String-Feld result an, diesmal mit:
Normale Anfrage: {{ $json.topic }}

Die beiden Ergebnis-Nodes werden nicht miteinander verbunden. Jede beendet ihren eigenen Zweig. Hier dürfen wir die Übernahme anderer Eingangsfelder ausschalten: Für die abschließende Ausgabe benötigen wir nur das neu erzeugte Feld result.
Damit haben wir alle sechs Nodes aufgebaut. Die beiden Endpunkte erzeugen Text im Workflow-Output. Ein späterer Ausbau könnte dort beispielsweise eine Benachrichtigung oder die Übergabe an ein Ticketsystem ergänzen.
6. Beide Wege bewusst testen
Starte den gesamten Workflow vom Manual Trigger aus. Mit priority gleich high muss Dringender Fehler diese Ausgabe liefern:
Dringender Fehler: Login funktioniert nicht
Ändere anschließend in Testdaten erzeugen die Priorität auf low. Starte den gesamten Workflow erneut. Jetzt erwarten wir bei Normale Anfrage:
Normale Anfrage: Login funktioniert nicht
Eingabe priority |
Erwarteter Ausgang der IF-Node | Ergebnis-Node |
|---|---|---|
high |
true | Dringender Fehler |
low |
false | Normale Anfrage |
Kontrolliere jeweils die Ergebnisse der aktuellen Ausführung. Ein grüner Node-Status allein sagt noch nicht, ob die richtige Nachricht entstanden ist oder die Anfrage fachlich korrekt zugeordnet wurde.
Als kleine Zusatzübung kannst du name auf Ben und topic auf Passwort zurücksetzen ändern. Die zusammengesetzte Nachricht und die abschließende Ausgabe müssen die neuen Werte übernehmen.
Warum fehlen plötzlich Felder im nächsten Schritt?
Eine wichtige Stolperfalle steckt in Nachricht erzeugen. Wenn diese Node ausschließlich message ausgibt, erhält Priorität prüfen das Feld priority nicht mehr im aktuellen Input. Auch topic fehlt dann für unsere Ergebnis-Nodes.
Öffne bei einem unerwarteten Ergebnis deshalb zuerst den Input der betroffenen Node. Fehlt dort das benötigte Feld, prüfe den Output ihres Vorgängers. In unserem Beispiel muss Nachricht erzeugen alle vier Felder weitergeben.
Der Schalter Include Other Input Fields steuert genau diese Übernahme. Je nach Node-Version kann die Oberfläche andere Bezeichnungen für die Auswahl der Ausgabefelder verwenden. Entscheidend ist der sichtbare Output: Sind priority und topic noch vorhanden?
Diese Kontrolle hilft auch bei größeren Workflows. Du kannst einen Fehler oft auf den konkreten Schritt eingrenzen, an dem sich die Datenstruktur verändert hat.
Was du jetzt selbst weiterbauen kannst
Du hast einen Workflow erstellt, der strukturierte Daten erzeugt, mit Expressions eine Nachricht zusammensetzt und anhand einer Bedingung zwei unterschiedliche Wege nimmt. Du hast außerdem beide Fälle getestet und geprüft, welche Felder zwischen den Nodes erhalten bleiben.
Speichere deinen Workflow. Für dieses Beispiel genügt die manuelle Ausführung im Editor. Der Manual Trigger startet keinen regelmäßigen oder ereignisgesteuerten Hintergrundbetrieb.
Der nächste Lernschritt sind mehrere Datensätze: Was unterscheidet ein Array innerhalb eines Items von mehreren n8n-Items? Und wann braucht ein Workflow tatsächlich eine Schleife? Diesem Datenmodell widmen wir uns im zweiten Artikel.
Wenn du n8n systematisch lernen möchtest, führt dich mein n8n-Buch von diesen Grundlagen zu APIs, Datenbanken und umfangreicheren Workflows. Das Beispiel dieses Artikels stammt aus dem ersten Kapitel. Im Buch bauen die weiteren Beispiele auf diesem Verständnis auf.