n8n-Lernpfad · Präsentation · Teil 5
Bestellanforderung freigeben
Folien zum n8n-Lernpfad: Bestellanforderung mit If, Switch und Fallback, Expressions in drei Teilen, Zahl oder Text, Filter, Merge. Mit sechs Testfällen.
Ein Kurs von Erik Lorenscheit, Gründer von hilfmirmal · Zuletzt aktualisiert am
Weiter mit den Pfeiltasten oder durch Wischen
1 / 21
Teil 5 · Bestellanforderung freigeben
Wer darf das freigeben?
Jemand will etwas bestellen: Ein Monitor für 89 Euro geht sofort raus, ein Messestand für 4.500 Euro zur Geschäftsführung. Fehlt der Betrag, gibt es eine Rückfrage.
- AnforderungEdit Fields
- Betrag gültig?If
- Nach Betrag verteilenSwitch
- verzweigt in:
- unter 100Sofort freigegebenEdit Fields
- bis 1.000An TeamleitungEdit Fields
- darüberAn GeschäftsführungEdit Fields
hilfmirmal.de · n8n-Lernpfad
Erklärung zur Folie
Bisher liefen deine Workflows auf einer Linie, beim Schirmcheck auf zwei Wegen. Jetzt kommt ein Fall, den jede Firma kennt, und jeder Weg hat eine Konsequenz: freigegeben, weitergeleitet oder rückgefragt.
Neu ist der Switch, wenn zwei Wege nicht mehr reichen. Und die Expressions, die du bisher meist gezogen oder kopiert hast, zerlegst du jetzt in ihre drei Teile und schreibst sie selbst. Mit dem Expression-Baukasten klickst du sie zusammen, statt sie abzutippen.
Leg dir einen neuen, leeren Workflow an und nenn ihn gleich „Bestellanforderung freigeben“. Du baust ihn Folie für Folie mit, Node für Node.
Der Fall: Bestellanforderung freigeben
- Unter 100 Euro: sofort freigegeben, die Bestellung geht raus.
- 100 bis 1.000 Euro: die Teamleitung entscheidet.
- Über 1.000 Euro: die Geschäftsführung entscheidet.
- Kategorie IT: zusätzlich eine IT-Prüfung, egal welcher Betrag.
- Betrag fehlt oder ist Text: Rückfrage an die Person, die bestellt hat.
Merk dir
Jeder Weg endet mit einer Handlung: freigegeben, weitergeleitet oder rückgefragt. Keine Anforderung darf verschwinden.
Erklärung zur Folie
So würde die Regel in einer Firma auf dem Papier stehen. Lies sie zweimal, bevor du baust, denn die Fallen stecken in den Wörtern. „Unter 100“ heißt kleiner als 100. „Bis 1.000“ heißt: 1.000 gehört noch dazu. Und „zusätzlich“ bei der IT heißt: nicht statt der Betragsregel, sondern obendrauf. Das wird später wichtig.
Sechs Testfälle, bevor du baust
| Fall | Betrag | Kategorie | Erwarteter Weg | IT-Prüfung |
|---|---|---|---|---|
| B-01 Monitor | 89 | IT | Sofort freigegeben | ja |
| B-02 Bürostuhl | 100 | Büro | Teamleitung | nein |
| B-03 Laptop | 1000 | IT | Teamleitung | ja |
| B-04 Messestand | 4500 | Marketing | Geschäftsführung | nein |
| B-05 Kaffee | leer (Text) | Büro | Rückfrage | keine |
| B-06 Software | „ca. 300“ (Text) | IT | Rückfrage | keine |
Diese Tabelle ist dein Testplan. Du baust nicht drauflos, du baust gegen die Tabelle.
Erklärung zur Folie
Welche Fälle sind gemein? B-01, der Monitor für 89 Euro, ist einfach. B-02, der Bürostuhl für genau 100: Unter 100? Nein, also Teamleitung. Wer hier „kleiner gleich“ baut, gibt ihn sofort frei. B-03, der Laptop für genau 1.000: bis 1.000, also noch Teamleitung. Und bei B-06 hat jemand „ca. 300“ getippt. Das ist Text, damit kann n8n nicht rechnen.
Schreib die Erwartung immer auf, bevor du einen Fall laufen lässt. Sonst glaubst du dem Output alles.
Eine Anforderung ist ein Item
{ "nummer": "B-01", "artikel": "Monitor", "betrag": 89, "kategorie": "IT" }
- Links vom Doppelpunkt steht der Feldname, rechts der Wert.
- Text steht in Anführungszeichen. Eine Zahl nicht.
betragmuss eine Zahl sein. Sonst kann niemand vergleichen, ob 89 unter 100 liegt.
Erklärung zur Folie
Zwischen zwei Nodes fließt immer eine Liste von Items. Ein Item ist ein Datensatz, hier eine Anforderung mit vier Feldern: nummer, artikel, betrag, kategorie. Lektion 10 im Lernpfad zeigt dir das Item von innen. Lektion 10 bis 17 blendest du im Lernpfad mit dem Schalter „Fortgeschritten“ ein.
Schau auf betrag: 89 ohne Anführungszeichen, eine Zahl. Bei „Monitor“ stehen Anführungszeichen, das ist Text. n8n merkt sich den Unterschied. Genau deshalb landet B-06 mit „ca. 300“ später bei der Rückfrage.
Schritt 1: Die Anforderung
Manual Trigger, umbenannt in „Manuell starten“. Dahinter ein Edit Fields „Anforderung“ mit vier Feldern:
| Name | Typ | Wert |
|---|---|---|
nummer |
String | B-01 |
artikel |
String | Monitor |
betrag |
Number | 89 |
kategorie |
String | IT |
Hier trägst du später jeden Testfall ein. Ein Lauf, ein Fall.
Merk dir
Der Typ Number bei betrag ist Absicht.
Erklärung zur Folie
Add first step, Trigger manually, umbenennen. Plus am Ausgang, Edit Fields, umbenennen in „Anforderung“. Bei betrag stellst du den Typ auf Number, nicht String. Dann Execute step und rechts im Output auf JSON schalten: 89 steht ohne Anführungszeichen da.
Im echten Betrieb kommt die Anforderung nicht aus einem Edit Fields, sondern aus einem Formular. Zum Lernen tippst du sie von Hand, damit du dich auf die Regeln konzentrieren kannst. Wie das Formular davor kommt, steht in „Dein Auftrag“ am Ende dieses Teils.
Expressions: drei Teile in geschweiften Klammern
Alles zwischen {{ und }} rechnet n8n aus, statt es als Text zu nehmen. Jede Formel hat drei Teile:
| Teil | Frage | Beispiel |
|---|---|---|
| Woher | aus welchem Node? | $json = vom Node direkt davor, $('Anforderung') = vom Node „Anforderung“ |
| Welches Feld | Punkt, dann Feldname | ., . |
| Was damit | vergleichen, rechnen, zusammensetzen | < 100, === 'IT', + ' Euro' |
Erklärung zur Folie
Expressions sehen schwieriger aus, als sie sind, weil jede aus genau diesen drei Teilen besteht.
Woher: $json heißt „vom Node direkt davor“. Das schreibt n8n selbst, wenn du ein Feld aus dem Input ziehst. $('Anforderung') heißt „von genau diesem Node“, egal wie weit er zurückliegt. Hinter einem If oder Switch nimmst du den Node-Namen, dann ist es egal, was dazwischen liegt.
Welches Feld: ein Punkt und der Feldname, so wie er im Schema steht. Groß- und Kleinschreibung zählt. Was damit: Vergleichen ergibt true oder false, Rechnen eine Zahl, Zusammensetzen einen Text. Mehr Beispiele in Lektion 11.
Zwei Formeln zum Ausprobieren
Hinter die Anforderung ein Edit Fields „Probe“ mit zwei Feldern, Schalter auf Expression:
{{ $json.betrag < 100 }}
{{ $('Anforderung').item.json.kategorie === 'IT' ? 'ja' : 'nein' }}
- Die erste ergibt
trueoderfalse. Die zweite ergibtjaodernein: Fragezeichen heißt dann, Doppelpunkt heißt sonst. - Die Vorschau unter dem Feld zeigt sofort das Ergebnis.
[undefined]heißt: Das Feld gibt es so nicht. Bei falschem Node-Namen meldet n8n einen Fehler. - Lieber klicken als tippen? Der Expression-Baukasten setzt die drei Teile zusammen.
Erklärung zur Folie
Die Probe ist ein Wegwerf-Node: Du siehst, was eine Formel tut, und löschst ihn danach wieder. Die echte Prüfung kommt im nächsten Schritt in den If.
Die erste Formel: Woher, der Node davor, das ist die Anforderung. Feld betrag. Was damit: kleiner als 100. Vorschau: true. Die zweite: aus der Anforderung das Feld kategorie, drei Gleichheitszeichen, IT. Ist es IT, dann ja, sonst nein. Vorschau: ja.
Schreib in der ersten Formel einmal $json. mit großem B. Die Vorschau zeigt jetzt false: kein Fehler, nichts rot. Ein falscher Feldname im Vergleich sieht aus wie eine Antwort, und das ist die gemeinere Falle. Den Namen prüfst du für sich: Schreib nur {{ $json. ins Feld, dann steht dort [undefined]. Bei der zweiten Formel ist es genauso, . mit großem K ergibt still nein. Stimmt dagegen der Node-Name in $('…') nicht, meldet n8n den Fehler „Referenced node doesn't exist“: Diesen Node gibt es nicht. Im Baukasten wählst du Woher, Feld und Was damit; er schreibt die Formel, erklärt sie in Worten und rechnet sie mit Beispieldaten vor.
Schritt 2: If prüft, ob der Betrag eine Zahl ist
If „Betrag gültig?“ hinter die Anforderung:
| Teil | Wert |
|---|---|
| linker Wert (Expression) | {{ typeof $('Anforderung') |
| Operator | Boolean, is true |
| true-Ausgang | weiter zur Verteilung |
| false-Ausgang | Edit Fields „Rückfrage Betrag fehlt“: status = Rückfrage, naechster_ = Person nach dem Betrag fragen |
Ein If stellt eine Ja-Nein-Frage. Jedes Item landet auf genau einem der zwei Ausgänge.
Erklärung zur Folie
typeof gibt nicht den Wert zurück, sondern seine Sorte. Bei 89 sagt es number, bei „ca. 300“ string, also Text. Die drei Gleichheitszeichen vergleichen das mit dem Wort 'number'. Links steht am Ende also kein Betrag, sondern eine Antwort: true oder false. Deshalb wählst du als Operator Boolean, is true. Das rechte Feld verschwindet, weil es keinen Vergleichswert braucht.
Warum nicht einfach betrag mit is not empty? Weil „ca. 300“ nicht leer ist. Das ginge durch und würde den Switch danach sprengen. Du willst nicht wissen, ob etwas drinsteht, sondern ob es eine Zahl ist. Im Node „Rückfrage Betrag fehlt“ schaltest du Include Other Input Fields an, sonst fehlt dort nachher die Nummer.
Zahl oder Text? 300 ist nicht „ca. 300“
| Wert im Item | Typ | Was der If sagt |
|---|---|---|
300 |
Zahl | true, weiter |
"300" |
Text | false, Rückfrage |
"ca. 300" |
Text | false, Rückfrage |
"" (leer) |
Text | false, Rückfrage |
- Formulare liefern fast immer Text, auch bei Zahlen.
- Ohne Prüfung bricht ein Zahlenvergleich mit „Wrong type“ ab.
- Mit Prüfung gibt es eine Rückfrage statt eines roten Nodes.
Erklärung zur Folie
Probier es aus: In der Anforderung bei betrag den Typ auf String stellen, Wert „ca. 300“, Execute workflow. Betrag gültig? schickt das Item auf false, zur Rückfrage. Kein Absturz.
Dann die Gegenprobe, die überrascht: String mit dem Wert 300. Sieht aus wie eine Zahl, ist aber Text, also wieder false. Leer ist auch Text, auch false. Danach stellst du zurück auf Number und 89. Wie aus Text wieder eine Zahl wird, zeigt das Rezept „Formular: Text in Zahl“ im Expression-Baukasten.
Schritt 3: Switch verteilt nach Betrag
Switch „Nach Betrag verteilen“ am true-Ausgang des If.
Linker Wert in jeder Regel: {{ $('Anforderung')
| Regel | Bedingung | Ausgang |
|---|---|---|
| 1 | Number, is less than 100 |
Sofort |
| 2 | Number, is less than or equal to 1000 |
Teamleitung |
| Fallback | keine Regel passt, also über 1.000 | Geschäftsführung |
Von oben nach unten: 89 bleibt bei Regel 1 hängen, 100 fällt durch zu Regel 2.
Achtung
Ohne Fallback verschwinden Items, die zu keiner Regel passen. Still, ohne Fehler.
Erklärung zur Folie
Mode Rules. Regel 1: linker Wert als Expression, Operator Number, is less than, rechts 100. Rename Output einschalten, Ausgang Sofort. Add Routing Rule, Regel 2: is less than or equal to, 1000, Ausgang Teamleitung. Dann Options, Fallback Output: Extra Output. Erst danach gibt es unter Options auch Rename Fallback Output, dort trägst du Geschäftsführung ein.
Denk mit: 89 kommt rein. Unter 100? Ja, Sofort, Regel 2 wird gar nicht mehr geprüft. 100: unter 100? Nein. Bis 1.000? Ja, Teamleitung. Die Reihenfolge der Regeln ist die Regel. Und 4.500 passt zu keiner. Ohne Fallback wäre der Messestand weg, der Workflow grün, und die Geschäftsführung erführe nie davon.
Filter: der Baustein, der wegwirft
| If | Switch | Filter |
|---|---|---|
| zwei Ausgänge | viele Ausgänge plus Fallback | ein Ausgang |
| nichts geht verloren, wenn beide Ausgänge weiterführen | nichts geht verloren, wenn der Fallback da ist | der Rest wird verworfen |
| „Ja oder nein?“ | „Wohin damit?“ | „Brauche ich das überhaupt?“ |
Filter ist richtig, wenn du den Rest wirklich nie wieder brauchst. Eine Bestellanforderung darf nie einfach verschwinden.
Erklärung zur Folie
Filter sieht im Menü aus wie ein If, hat aber nur einen Ausgang. Was passt, kommt durch. Was nicht passt, ist weg. Das ist richtig, wenn du aus hundert Newsletter-Artikeln nur die mit „KI“ im Titel willst. Die anderen brauchst du nie wieder.
Für Bestellanforderungen nimmst du keinen Filter. Wer etwas bestellen will, muss eine Antwort bekommen: freigegeben, weitergeleitet oder Rückfrage. Aber nie: verschwunden. Erst fragen, was mit dem Rest passiert, dann den Baustein wählen. Im Item-Zahlen-Trainer siehst du, wie viele Items ein Filter übrig lässt.
Schritt 4: Drei Ergebnisse, und die Falle mit den Feldern
An jeden Switch-Ausgang ein Edit Fields, von oben nach unten: Sofort, Teamleitung, Geschäftsführung.
| Node-Name | status |
naechster_ |
|---|---|---|
| Sofort freigegeben | freigegeben | Bestellung auslösen |
| An Teamleitung | wartet auf Teamleitung | Freigabe anfragen |
| An Geschäftsführung | wartet auf Geschäftsführung | Freigabe anfragen |
Achtung
In allen drei Include Other Input Fields einschalten. Sonst ist die Nummer weg, und niemand weiß mehr, welche Anforderung freigegeben wurde.
Erklärung zur Folie
Mach es einmal absichtlich falsch: „Sofort freigegeben“ mit zwei Feldern, Schalter aus, Execute step. Rechts stehen nur status und naechster_. Nummer und Artikel sind weg. Du hast eine Freigabe, weißt aber nicht mehr, wofür. Schalter an, Execute step, jetzt ist alles da.
Die zwei anderen Ergebnisse baust du schneller: „Sofort freigegeben“ markieren, Cmd+C und Cmd+V (unter Windows Strg), umbenennen, Werte ändern, an den Ausgang hängen. Und bei jedem: Schalter prüfen, Output prüfen. Nicht glauben, nachschauen.
Schritt 5: Die IT-Prüfung als Expression
In jedem der drei Ergebnisse ein drittes Feld it_ (String), Schalter auf Expression:
{{ $('Anforderung').item.json.kategorie === 'IT' ? 'ja' : 'nein' }}
| Teil | Bedeutung |
|---|---|
$('Anforderung') |
die Kategorie aus der Anforderung |
=== 'IT' ? |
wenn genau IT |
'ja' : 'nein' |
dann ja, sonst nein |
Den Node beim Namen nennen, nicht $json. Die Vorschau zeigt den echten Wert.
Erklärung zur Folie
Für die IT-Regel könntest du einen eigenen If bauen. Kürzer geht es direkt im Feld, mit derselben Formel wie bei der Probe. Lies sie laut: Hol aus der Anforderung das Feld kategorie. Ist es genau IT, dann ja, sonst nein.
Zwei Dinge gehen oft schief. Erstens: drei Gleichheitszeichen, und IT in einfachen Anführungszeichen, also 'IT', sonst sucht n8n nach etwas namens IT. Zweitens: $json heißt „was direkt vor mir kam“, hier also der Switch. Das klappt nur, solange niemand dazwischen etwas ändert. Mit dem Node-Namen bleibt die Formel stabil. Zur Probe stellst du die Kategorie in der Anforderung auf Büro und klickst Execute workflow: Die Vorschau zeigt jetzt nein. Sie rechnet mit den Daten des letzten Laufs, deshalb erst der neue Lauf. Danach stellst du zurück auf IT.
Warum ist die IT-Prüfung kein vierter Weg?
Ein Switch schickt jedes Item auf genau einen Ausgang. Ein vierter Ausgang „IT“ hieße: Der Laptop für 1.000 Euro geht zur IT und nicht mehr zur Teamleitung. Die Betragsregel wäre weg.
| Bauart | Wie | Wann |
|---|---|---|
| Feld | it_ in jedem Ergebnis |
Die IT bekommt die Info mit, der Weg bleibt gleich. |
| Schritt davor | If „Kategorie IT?“ vor dem Switch, bei true ein Edit Fields „IT-Prüfung anfragen“, dann weiter zum Switch | Die IT soll wirklich zuerst dran sein, bevor verteilt wird. |
Merk dir
Trifft etwas statt der anderen zu, ist es ein Ausgang. Trifft es zusätzlich zu, ist es ein Feld oder ein Schritt davor.
Erklärung zur Folie
Schau auf B-03: Laptop, 1.000 Euro, Kategorie IT. Der geht wegen des Betrags zur Teamleitung, und die IT soll zusätzlich draufschauen. Beides. Mit einem vierten Ausgang ginge der Laptop nur zur IT, die Teamleitung erführe nichts.
Welche Bauart richtig ist, entscheidet die Firma, nicht n8n. Muss die IT nur Bescheid wissen? Feld. Muss die IT freigeben, bevor überhaupt verteilt wird? Schritt davor. Den Umbau übst du in „Dein Auftrag“.
Lektion 12 nennt noch die Switch-Option Send data to all matching outputs. Die ist hier keine Lösung: Dann passen 89 Euro zu Regel 1 und zu Regel 2, und dieselbe Anforderung landet zweimal in der Freigabe.
Zum Nachbauen: der ganze Workflow
- Manuell startenManual Trigger
- AnforderungEdit Fields
- Betrag gültig?If
- verzweigt in:
- trueNach Betrag verteilenSwitch
- falseRückfrage Betrag fehltEdit Fields
- Nach Betrag verteilenSwitch
- verzweigt in:
- SofortSofort freigegebenEdit Fields
- TeamleitungAn TeamleitungEdit Fields
- GeschäftsführungAn GeschäftsführungEdit Fields
Zwei Läufe zum Start: B-01 endet bei „Sofort freigegeben“, B-04 bei „An Geschäftsführung“.
Erklärung zur Folie
So sieht die fertige Kette aus: sieben Nodes plus Rückfrage. Den Switch siehst du zweimal, es ist derselbe Node: Die zweite Kette setzt am true-Ausgang fort. In allen vier Edit Fields hinter If und Switch ist Include Other Input Fields an, in den drei Ergebnissen kommt das Feld it_ dazu. Lass B-01 laufen: Sofort freigegeben, Bestellung auslösen, it_ ja, Nummer B-01, alles da. Dann trägst du in der Anforderung B-04 ein: Messestand, 4500, Marketing. Betrag gültig? sagt ja, der Switch findet keine Regel, der Fallback schickt ihn zur Geschäftsführung, it_ nein.
Hängst du fest, geh die Kette von links nach rechts durch und vergleich jeden Node mit den Folien davor. Und gewöhn dir auch hier eine Sticky Note an: was der Workflow tut und mit welchen Fällen du ihn testest.
Grenzfälle: da entscheidet sich, ob es stimmt
| Fall | Warum er wichtig ist |
|---|---|
| B-02, genau 100 | „unter 100“ heißt kleiner, nicht kleiner gleich: Teamleitung, nicht Sofort |
| B-03, genau 1.000 | „bis 1.000“ heißt kleiner gleich: noch Teamleitung |
| B-05, leerer Betrag | darf nicht abstürzen, muss zur Rückfrage |
| B-06, „ca. 300“ | Text, muss zur Rückfrage |
| jedes Ergebnis | ist die nummer noch im Output? |
Merk dir
Ein Workflow, der nur mit dem Monitor getestet wurde, ist nicht getestet.
Erklärung zur Folie
Die Wahrheit steckt an den Rändern. Wer bei Regel 1 „kleiner gleich“ gebaut hat, gibt den Bürostuhl sofort frei, obwohl die Teamleitung entscheiden sollte. Wer bei Regel 2 „kleiner“ gebaut hat, schickt den Laptop zur Geschäftsführung, obwohl die Teamleitung reicht.
Für B-05 und B-06 stellst du in der Anforderung den Typ von betrag auf String, einmal leer, einmal „ca. 300“. Sechs Fälle, sechs Läufe, und für jeden eine Zeile: erwartet, tatsächlich, Abweichung. Weicht etwas ab, änderst du genau eine Sache und lässt danach alle sechs noch einmal laufen.
Merge: Wege wieder zusammenführen, wenn nötig
- Nach einer Weiche laufen die Wege meist getrennt zu Ende. Das ist in Ordnung.
- Merge brauchst du, wenn zwei Wege danach denselben Schritt brauchen, etwa eine Bestätigung an die Person, die bestellt hat.
- Merge, Mode Append: die Items beider Eingänge hintereinander.
Achtung
Zwei Ausgänge in denselben Eingang eines Nodes stecken sieht aus wie ein Merge, ist aber keiner. Willst du Wege zusammenführen, nimm den Merge-Node.
Erklärung zur Folie
Die Frage kommt fast immer: Wie kriege ich die Wege wieder zusammen? Meistens gar nicht. Die Teamleitung bekommt ihre Anforderung, die Geschäftsführung ihre, fertig.
Merge brauchst du erst, wenn beide Wege danach denselben Schritt brauchen. Egal wer freigibt, die Person, die bestellt hat, soll eine Bestätigung bekommen. Dann Merge mit Mode Append, beide Wege rein, alle Items hintereinander raus. Lektion 12 zeigt die anderen Modi zum Ausprobieren.
KI darf vorschlagen, du prüfst
Auftrag an eine KI: „In n8n habe ich das Textfeld kategorie. Gib mir eine Expression, die Groß- und Kleinschreibung und äußere Leerzeichen ignoriert, damit auch ein kleines it mit Leerzeichen als IT zählt.“
Typischer Vorschlag: {{ String(
| Prüffrage | Antwort |
|---|---|
| Was macht er? | Text draus machen, Leerzeichen außen weg, alles groß |
Was, wenn kategorie fehlt? |
leerer Text statt Fehler |
| Was, wenn eine Zahl kommt? | wird still zu Text |
| Übernehmen? | ja, mit Node-Namen statt $json, dann die Testfälle laufen lassen |
Erklärung zur Folie
Lass dir ruhig Expressions von einer KI vorschlagen. Übernimm aber nur, was du erklären und testen kannst.
Vier Prüffragen bei jedem Vorschlag: Was macht er? Was, wenn das Feld fehlt? Was, wenn ein anderer Typ kommt? Übernehmen oder nicht? Und eine Korrektur brauchst du fast immer: Die KI schreibt $json, du setzt den Node-Namen ein, hier $('Anforderung'). Danach alle sechs Testfälle noch einmal.
Dein Auftrag
- Nachbauen: die ganze Kette, dann alle sechs Testfälle. Vor jedem Lauf die Erwartung aufschreiben, danach das Ergebnis.
- Abwandeln: erst Drei-Punkte-Menü, Duplicate. Dann eine Stufe über 5.000 Euro für den Einkauf, Kategorie Reise immer zur Teamleitung und die IT-Prüfung als eigener Schritt vor dem Switch. Nach jeder Änderung alle Fälle erneut.
- Formular davor, wenn du magst: auch hier erst Duplicate, denn Teil 6 braucht das Original. Form Trigger statt Manual Trigger, alle Felder Pflicht. Die Anforderung behält ihren Namen und holt ihre Werte aus dem Formular,
betragmitNumber(). Nur der If prüft dann mitNumber..isFinite
Merk dir
Neue Testfälle: Server, 12.000 Euro, IT › Einkauf. Messestand, genau 5.000 Euro, Marketing › Geschäftsführung. Bahnticket, 45 Euro, Reise › Teamleitung.
Erklärung zur Folie
Zu 2, Einkauf: Im Switch eine dritte Regel, is less than or equal to 5000, mit dem Ausgang Geschäftsführung. Unter Options, Rename Fallback Output trägst du jetzt Einkauf ein. „An Geschäftsführung“ gehört an den neuen Ausgang Geschäftsführung: Prüf die Leitung und häng den Node sonst um. An den Fallback Einkauf kommt ein neues Ergebnis „An Einkauf“ mit status „wartet auf Einkauf“ und naechster_ „Angebot verhandeln“. Am schnellsten kopierst du dafür „An Geschäftsführung“, dann sind Include Other Input Fields und it_ schon drin. „Über 5.000“ heißt: Genau 5.000 bleibt bei der Geschäftsführung, erst darüber verhandelt der Einkauf. Dafür steht der Messestand unter den neuen Testfällen.
Reise: eine neue Regel mit Add Routing Rule, linker Wert {{ $('Anforderung'), String, is equal to, Reise. Den Ausgang nennst du auch Teamleitung. n8n hängt die Regel unten an und legt dafür einen eigenen Ausgang an, den verbindest du ebenfalls mit „An Teamleitung“. Dann ziehst du die Regel mit der Maus an die erste Stelle. Danach prüfst du die Leitungen am Switch und verbindest jeden Ausgang wieder mit dem richtigen Ergebnis. Prüf mit dem Bahnticket, was passiert, wenn die Regel unten statt oben steht.
IT-Schritt: zwischen „Betrag gültig?“ und Switch ein If „Kategorie IT?“, linker Wert {{ $('Anforderung'), String, is equal to, IT. Bei true geht es über ein Edit Fields „IT-Prüfung anfragen“ zum Switch, bei false direkt. In „IT-Prüfung anfragen“ legst du it_ mit dem Wert angefragt an und schaltest Include Other Input Fields an, sonst fehlt bei B-01 und B-03 am Ende die Nummer. Zwei Leitungen in denselben Eingang sind hier in Ordnung, am Switch wie an „An Teamleitung“, weil jede Anforderung nur einen der Wege nimmt. B-01 und B-03 laufen über die IT-Prüfung und landen trotzdem bei Sofort und Teamleitung, B-02 läuft daran vorbei.
Wer noch weiter will: ein Filter „Artikel vorhanden?“ zwischen Anforderung und „Betrag gültig?“, Bedingung {{ $('Anforderung'), String, is not empty. Lass einen Fall mit leerem Artikel laufen: 0 Items, danach läuft nichts mehr. Dann entscheidest du selbst, ob Wegwerfen hier richtig ist oder ob ein leerer Artikel zur Rückfrage gehört.
Zu 3: Den Form Trigger findest du im Menü unter „On form submission“. Nenn ihn „Bestellformular“ und leg drei Felder an. Als Label tippst du Artikel, Betrag in Euro und Kategorie. Betrag in Euro behält den Element Type Text Input, das ist die Vorgabe. So kannst du zum Testen auch „ca. 300“ eintippen. Kategorie bekommt den Element Type Dropdown mit IT, Büro, Marketing und Reise. Custom Field Name lässt du leer, dann heißt jedes Feld im Output so wie sein Label. Bei jedem Feld schaltest du Required Field an. Das ist kein Detail: Aus einem leeren Feld macht Number() eine 0, und die 0 wäre sofort freigegeben statt rückgefragt. In der Kopie löschst du den Manual Trigger und hängst die Anforderung hinter das Formular. Das Original mit Manual Trigger und fest eingetragener Anforderung bleibt, wie es ist: Teil 6 baut auf genau dieser Fassung auf.
Die vier Felder der Anforderung und ihre Typen bleiben, nur die Werte werden Expressions: betrag als {{ Number(, in eckigen Klammern, weil der Name Leerzeichen hat. artikel und kategorie ziehst du links aus dem Input, nummer baust du aus Datum und Uhrzeit. In der Anforderung schaltest du Options, Ignore Type Conversion Errors an, sonst bricht der Node bei „ca. 300“ ab.
Hast du bei Custom Field Name doch etwas eingetragen, etwa betrag_, heißt das Feld im Output so, und du schreibst . statt ['Betrag in Euro']. Zeigt dein n8n statt Custom Field Name ein Feld Field Name, gilt dasselbe: Was dort steht, ist der Name im Output. Im Zweifel schaust du nach dem ersten Absenden in den Output des Formulars.
Weil der Node weiter „Anforderung“ heißt, stimmen Switch-Regeln und it_ ohne Änderung. Nur den If stellst du um, auf {{ Number.. Das fängt alles ab, was Number() nicht in eine echte Zahl verwandeln konnte, typeof allein reicht dafür nicht mehr. Zum Testen nimmst du drei Fälle: Monitor für 89, Messestand für 4500, Software für „ca. 300“. Für jeden Fall klickst du Execute workflow neu, n8n öffnet das Formular selbst, und du schickst einen Fall ab. Ein Klick, ein Absenden, ein Lauf. Die Software muss bei der Rückfrage landen. Den Betrag tippst du ohne Tausenderpunkt: Aus „4.500“ macht Number() die Zahl 4,5, und der Messestand wäre sofort freigegeben. Die Rezepte „Formular: Text in Zahl“, „Nummer aus Datum“ und „If nach Formular: gültige Zahl?“ stehen im Expression-Baukasten. Im letzten trägst du als Node-Namen Anforderung ein.
Was bleibt hängen?
Was passiert mit einer Anforderung über 1.000 Euro, wenn der Switch keinen Fallback hat?
Antwort
Die Anforderung verschwindet still. Der Workflow bleibt grün, die Geschäftsführung erfährt nichts.
Ist 100 unter 100?
Antwort
Nein. Der Bürostuhl für genau 100 Euro geht zur Teamleitung.
Warum fehlt nach Edit Fields plötzlich die Nummer?
Antwort
Include Other Input Fields war aus. Dann gibt der Node nur die Felder aus, die er selbst anlegt.
Wann nimmst du Filter, wann If oder Switch?
Antwort
Filter nur, wenn du den Rest nie wieder brauchst. Sonst If oder Switch mit Fallback.
Erklärung zur Folie
Beantworte die Fragen zuerst für dich, dann klapp die Antworten auf. Noch eine zum Nachdenken: Warum ist die IT-Prüfung kein vierter Ausgang am Switch? Wenn eine Antwort hakt, geh zurück zur passenden Folie. If, Switch und Merge zum Nachklicken findest du in Lektion 12 im Lernpfad, die wichtigsten Begriffe als kurze Animationen in der Wissensbox.
Weiter im Kurs
- LernpfadLektionen zum Nachklicken5 · Mapping und Datentypen10 · Items und Datenstruktur11 · Expressions12 · Flow-LogikLektion 10 bis 17 blendest du im Lernpfad mit dem Schalter „Fortgeschritten“ ein.
- Expression-BaukastenRezepte aus dem Kurs
- WissensboxDie wichtigsten Dinge, in Bewegung
- Übung 2Item-Zahlen-Trainer
- Nächster TeilTeil 6: Testen, Fehler, Übergabe
ErikDu willst mehr als Selbstlernen? Dann lernst du n8n mit mir 1:1. Auf Anfrage bringe ich es auch Unternehmerinnen, Unternehmern und ganzen Teams bei. Erzähl mir im Erstgespräch, was du vorhast.
15 Minuten mit Erik