Wróć do bloga
n8n

Jak budować workflow w n8n – nody, triggery, expressions

Mechanika n8n bez tajemnic: jak płyną dane (items/JSON) i jak sięgać po nie przez expressions.

10 min czytania
n8n, workflow, expressions, nody, triggery

Większość ludzi rozumie pojedyncze nody, a mimo to ich workflow „nie działa". Powód jest prawie zawsze ten sam: nie rozumieją, jak płyną dane i jak się do nich odwołać. To obszar o mechanice n8n – fundament, na którym stoi wszystko inne. I jednocześnie miejsce, w którym po polsku prawie nie ma dobrych treści.

TL;DR

  • Nody to klocki: trigger (uruchamia), action (robi coś), helper (przetwarza: IF, Switch, Merge, Loop, Code).
  • Dane to items – obiekty JSON płynące jeden po drugim. To klucz do zrozumienia wszystkiego.
  • Expressions ({{ }}) to sposób sięgania po dane z poprzednich kroków. Tu zacina się najwięcej osób.
  • Zrozum items + expressions, a przestaniesz „zgadywać", czemu coś jest undefined.

Trzy typy nodów

  • Trigger – punkt wejścia. Webhook (żądanie HTTP), Schedule (harmonogram/cron), event z aplikacji albo Manual (do testów).
  • Action – wykonuje operację: wyślij maila, zapisz do bazy, wywołaj API.
  • Helper – steruje danymi i logiką: IF/Switch (warunki), Merge (łączenie), Loop / Split in Batches (pętle), Code (własna logika JS/Python), Edit Fields (Set) (przekształcanie).

Najważniejsze: jak płyną dane (items)

To pojęcie, które zmienia wszystko. Dane w n8n to items – lista obiektów JSON. Każdy node dostaje listę items z poprzedniego, przetwarza ją i przekazuje swoją listę dalej.

Items = JSON po kolei

Pobierasz 100 rekordów z bazy? To 100 items. Kolejny node wykona się dla każdego z nich osobno. Gdy to zrozumiesz, przestajesz się dziwić, czemu „akcja wykonała się 100 razy" – to nie błąd, to natura n8n. Większość problemów początkujących to nieporozumienie wokół tego, jak items wchodzą i wychodzą z noda.


Expressions – jak sięgnąć po dane (punkt zacięcia #1)

Expressions to dynamiczne wartości w polach noda, zapisywane w podwójnych klamrach. Najczęstsze:

{{ $json.pole }} // pole z bieżącego item {{ $('Nazwa noda').item.json.pole }} // pole z konkretnego, wcześniejszego noda {{ $now.format('yyyy-MM-dd') }} // dzisiejsza data
Skąd bierze się błąd undefined

Najczęstsza pomyłka: odwołujesz się do {{ $json.email }}, a pole nazywa się Email albo siedzi głębiej, w {{ $json.dane.email }}. n8n pozwala przeciągać pola myszką z panelu po lewej – korzystaj z tego, zamiast wpisywać ścieżki z pamięci. „undefined" to prawie zawsze zła ścieżka do danych, nie błąd n8n.

Gdy logika przerasta klikanie, sięgasz po Code node (JS/Python) – ale do większości rzeczy expressions wystarczą.


Testowanie zamiast zgadywania

n8n pozwala uruchamiać workflow krok po kroku i „przypinać" dane (pinned data), żeby testować bez ciągłego odpytywania prawdziwego API. To oszczędza czas i nerwy – zwłaszcza przy expressions. Gdy coś pada, zaglądasz do obszaru błędów i troubleshootingu.


Od mechaniki do gotowego przepływu

Najlepiej uczyć się na konkrecie. Zbuduj pierwszy przepływ krok po kroku: Pierwszy workflow w n8n. Triggery typu webhook rozkładamy w n8n Webhooks, a modularność i Code node w sub-workflows i Code node.


Co dalej w tym obszarze

Rozwijamy tu osobne przewodniki: n8n expressions – jak odwołać się do danych, schedule/cron, IF / Switch / Merge / Loop, Code node (JS/Python) oraz jak testować workflow (pinned data).

Chcesz wejść głębiej?

Mamy darmowe materiały, szkolenia i webinary o agentach AI, automatyzacji i n8n – po polsku, z praktyki. Zajrzyj na stormit.pl/webinary.

Pełny kontekst całego n8n: kompletny poradnik n8n.

Chcesz wdrożyć to u siebie?

Praktyczne kursy i wdrożenia AI oraz automatyzacji. Albo zapisz się na newsletter, żeby nie przegapić nowych treści.