Data mellem noder: expressions og forgreninger
Magien i n8n er at trække data igennem: et navn fra en formular havner i en mail, et beløb fra en mail i en betingelse. Du lærer expressions med {{ }}, at koble felter ved at trække og IF-noden til forgreninger.
Noder er skelettet i et workflow. Dataene, der løber mellem dem, er blodet. Tid til at lære at styre dem.
Hver node giver data videre til den næste
Klik på en node, der har kørt, så ser du dens output: felter og værdier (navn, e-mail, beløb…). Den næste node kan bruge et hvilket som helst af dem.
Expressions i {{ }}
Ethvert tekstfelt på en node tager mere end ren tekst — det tager indsættelser:
Nyt lead fra {{ $json.name }}!
Telefon: {{ $json.phone }}, beløb: {{ $json.amount }} €
Du behøver ikke lære syntaksen udenad: åbn datapanelet til venstre og træk det felt, du vil have, ind i teksten — n8n skriver expressionen for dig. At trække felter er færdighed nummer et i denne lektion.
Forgreninger: IF-noden
IF-noden deler flowet i to grene ud fra en betingelse:
[Lead-formular] → [IF: amount > 1000?] true → [Telegram til sælgeren: „Fedt lead!"] false → [Skriv det bare i arket]
Betingelser sætter du op med en formular: felt, operator (større end / lig med / indeholder), værdi. Flere betingelser kombinerer du med OG/ELLER.
Denne lektions miniøvelse
Tag gårsdagens morgenoversigt og føj dette til: IF „temperatur under 5°" → beskeden får „Tag en jakke med! 🧥" sat på. Data fra HTTP-noden → en betingelse → to versioner af teksten. Det er skabelonen bag ethvert workflow, du bygger herfra.
Hvad $json, $node og punktummet betyder
Læs {{ $json.name }} sådan: $json er de data, der er nået frem til denne node; punktummet betyder „gå ind i"; name er feltet. Er dataene indlejrede, er der flere punktummer: i vejrsvaret ligger temperaturen i {{ $json.current.temperature_2m }}. Og vil du have et felt fra en tidligere node frem for den lige før, findes $node:
Fra noden ved siden af: {{ $json.amount }}
Fra et indlejret felt: {{ $json.current.temperature_2m }}
Fra en node ved navn: {{ $node["Form"].json.email }}
Igen: du taster det næsten aldrig, du trækker det med musen, og n8n udfylder den rigtige sti med punktummer. Men det betaler sig at vide, hvad punktummet betyder: den dag en expression sender undefined tilbage, ser du med det samme, at du sprang et indlejringsniveau over.
IF mod Switch
IF-noden giver dig præcis to grene — true og false. Har du brug for mere end to (lead / klage / spørgsmål / spam), griber du til Switch — samme idé, flere udgange. Reglen er enkel: to udfald, IF; mange udfald, Switch. Vi graver i Switch i lektionen om at sortere indbakken; for nu skal du bare vide, at forgreninger skalerer.
Myter om data
- „Jeg er nødt til at lære expression-syntaksen." Nej. 95% af tiden trækker du felter med musen. Syntaksen betyder kun noget, når du skal læse og finpudse lidt på det, der allerede er der.
- „At kopiere værdien i hånden kommer ud på ét." Nej: et „Ivan", du indsatte, bliver „Ivan" for evigt, mens
{{ $json.name }}sætter den nye kundes navn ind ved hver kørsel. En expression lever; tastet tekst er død. - „Et tomt datapanel betyder, at workflowet er i stykker." Som regel betyder det bare, at noden ikke har kørt. Tryk Execute på noden før, så dukker dataene op, og felterne kan trækkes.
Hvorfor viser n8n først felter, du kan trække, efter en node har kørt, og ikke med det samme? Tænk over det: før den kører, aner n8n ikke, hvad formularen eller API'en sender tilbage — om der overhovedet kommer et „phone"-felt. Datapanelet viser det rigtige resultat, ikke et gæt. Derfor slår „kør den → se de faktiske felter → træk dem" det at gætte feltnavne i blinde.
Når dataene ikke vil trækkes
Tjek, at noden før har kørt (Execute) — datapanelet viser kun data, der faktisk er kommet igennem. Tomt panel = kør noden igen.
Set-noden: orden i dine data
API-data ankommer ofte med skraldefelter og klodsede navne. Edit Fields (Set)-noden er din ompakker: den beholder det, du skal bruge, omdøber det og smider resten ud, så der længere nede løber en ren og læsbar struktur. For eksempel at skære det svulmende vejrsvar ned til to felter:
Før (fra HTTP): { "current": { "temperature_2m": 3.4, "time": "...",
"wind_speed_10m": 12, ...et dusin felter mere... } }
Efter (Set): { "temp": 3.4, "city": "Berlin" }
At vænne sig til at rydde op i data før forgreninger og AI-noder sparer timers fejlfinding: når et felt hedder temp og ikke current.temperature_2m, kan både din prompt og din IF-betingelse læses på et øjeblik.
Gør det nu
Åbn gårsdagens morgenoversigt. I Telegram-noden trækker du temperaturfeltet fra datapanelet ind i beskedteksten, så der står „Det er {{ $json.current.temperature_2m }}° lige nu". Tilføj en IF-node efter HTTP Request med betingelsen „temperatur < 5", og i true-grenen sætter du „Tag en jakke med! 🧥" på beskeden. Kør Execute i forskelligt vejr (skift koordinaterne rundt), og sørg for, at begge grene udløses.
Short questions on the lesson — with an explanation for every answer.