TL;DR
- JSON i listy to podstawowe struktury danych w n8n – JSON używa klamrowych nawiasów {} i par klucz-wartość, listy używają kwadratowych nawiasów []
- Węzły (nodes) w n8n wykonują się raz dla każdego elementu (item) w danych wejściowych, co jest kluczową zasadą działania automatyzacji
- Wyrażenia w n8n (między podwójnymi nawiasami klamrowymi) umożliwiają dostęp do danych i stosowanie funkcji JavaScript, tworząc dynamiczne workflow
- Każdy workflow rozpoczyna się od węzła wyzwalającego (trigger node), a rozgałęzienia (branching) pozwalają na tworzenie różnych ścieżek dla danych
- Przydatne węzły jak Edit Fields, Aggregate czy Webhook znacząco zwiększają możliwości automatyzacji i manipulacji danymi
- Aktywacja workflow jest konieczna, aby automatyzacja działała w środowisku produkcyjnym i reagowała na zdarzenia
- Filtrowanie i agregacja danych to podstawowe operacje pozwalające na efektywne przetwarzanie informacji w n8n
Automatyzacja procesów biznesowych staje się coraz bardziej dostępna dzięki narzędziom typu no-code/low-code. Jednym z takich rozwiązań jest n8n, które pozwala na tworzenie złożonych workflow bez konieczności głębokiej znajomości programowania. W tym artykule, bazującym na kursie dla początkujących n8n, przedstawiam najważniejsze koncepcje związane z zarządzaniem danymi i tworzeniem efektywnych automatyzacji.
Jak n8n zarządza danymi
W n8n występują dwie główne struktury danych: JSON i listy. Zrozumienie ich działania jest kluczowe dla efektywnego tworzenia workflow.
JSON i listy – fundamenty pracy z danymi
Podstawowe elementy JSON:
- Zapisywane między nawiasami klamrowymi
{}
- Składa się z par klucz-wartość
- Każda para oddzielona jest przecinkiem
- Przykład:
{"first_name": "Emily", "last_name": "Johnson", "email": "emily@example.com"}
Podstawowe elementy listy:
- Zapisywane między nawiasami kwadratowymi
[]
- Kolekcja obiektów tego samego lub różnych typów
- Elementy oddzielone przecinkami
- Przykład:
["Paul", "Marcus", "Emily"]
JSON może być zagnieżdżony, co oznacza, że wartością klucza może być inny JSON. Jest to przydatne do organizacji złożonych danych. Na przykład:
{
"first_name": "Emily",
"last_name": "Johnson",
"location": {
"country": "USA",
"city": "New York"
}
}
Do danych w JSON możemy uzyskać dostęp za pomocą notacji kropkowej. Na przykład, aby uzyskać imię, użyjemy $json.first_name
, a aby dostać kraj z zagnieżdżonego JSON-a: $json.location.country
.
Lista JSON-ów i relacja z tabelami
Szczególnie interesująca jest koncepcja listy JSON-ów, która ma bezpośrednie przełożenie na tabele danych:
[
{"first_name": "Emily", "last_name": "Johnson", "email": "emily@example.com"},
{"first_name": "Marcus", "last_name": "Bennett", "email": "marcus@example.com"}
]
Relacja z tabelami:
- Jeden JSON = jeden wiersz tabeli
- Klucze = nagłówki kolumn
- Lista JSON-ów = cała tabela danych
Ta koncepcja jest fundamentalna dla zrozumienia, jak dane przepływają przez workflow w n8n.
„Items” – podstawowa jednostka danych w n8n
Checklist właściwości „items” w n8n:
- Pojedynczy JSON z listy to „item”
- Węzły (nodes) używają „items” jako wejść i wyjść
- Każdy węzeł wykonuje się raz dla każdego item w danych wejściowych
- Nawet puste wyjście musi być listą z pustym JSON-em
- W parametrach węzła możesz ustawić wykonanie tylko raz dla pierwszego itema
Kluczową zasadą działania n8n jest fakt, że każdy węzeł wykonuje się raz dla każdego item w danych wejściowych (z pewnymi wyjątkami). Oznacza to, że jeśli na wejściu mamy 3 itemy, węzeł wykona swoją funkcję 3 razy – po razie dla każdego z nich.
Na przykład, jeśli używamy węzła Date & Time do formatowania różnych dat, węzeł odczyta każdy item, sformatuje datę i zwróci ją jako indywidualny item. W ten sposób budujemy workflow, przechodząc z itemami przez różne węzły.
Wyrażenia (expressions) w n8n
Wyrażenia są potężnym narzędziem w n8n, pozwalającym na dynamiczne wykorzystanie danych w workflow.
Jak tworzyć i używać wyrażenia
Cechy wyrażeń w n8n:
- Wszystko pomiędzy podwójnymi nawiasami klamrowymi
{{ }}
jest wyrażeniem - Wyrażenia mogą zawierać zmienne itemów:
$json.first_name
- Można używać funkcji JavaScript
- Możliwe łączenie wielu wyrażeń i zwykłego tekstu
Metody tworzenia wyrażeń:
- Przeciąganie kluczy z widoku tabeli, JSON lub schematu
- Ręczne wpisywanie między podwójnymi nawiasami klamrowymi
- Interfejs n8n pokazuje przykładową wartość z pierwszego itema
Praktyczne zastosowanie wyrażeń
Przykładowo, używając węzła Slack, możemy utworzyć wiadomość:
{{ $json.first_name }} {{ $json.last_name }} ({{ $json.email }}) właśnie zapisał się do Acme
Dla pierwszego itema z danymi „Emily Johnson, emily@example.com„, wiadomość będzie wyglądać: „Emily Johnson (emily@example.com) właśnie zapisał się do Acme”.
Podstawowe elementy workflow
Checklist elementów workflow:
- Każdy workflow zaczyna się od węzła wyzwalającego (trigger node)
- Trigger nodes mają tylko gałąź wyjściową i pomarańczową ikonę błyskawicy
- Workflow może mieć wiele różnych triggerów
- Workflow musi być aktywowany, aby triggery działały w środowisku produkcyjnym
- Aktywacja automatycznie zapisuje workflow
- W kanwie można nawigować przez workflow za pomocą ikon węzłów
Aktywacja workflow
Aktywacja workflow jest konieczna, aby umożliwić działanie triggerów. Gdy aktywujesz workflow, zostanie on automatycznie zapisany, więc upewnij się, że jest gotowy przed aktywacją.
Na przykład, jeśli chcesz, aby workflow uruchamiał się codziennie o 8:00, możesz użyć trigger node Schedule i ustawić interwał na jeden dzień z godziną 8:00. Po aktywacji workflow, trigger będzie uruchamiał wykonanie zgodnie z ustalonym harmonogramem.
Typy rozgałęzień (branching):
1. Węzeł z wieloma opcjami wyjściowymi:
- Każdy item podąża tylko jedną ścieżką
- Przykład: węzeł If z wyjściami true i false
- Items są rozdzielane według spełnienia warunków
2. Przeciąganie wielu linii wyjściowych z pojedynczego węzła:
- Każdy item podąża każdą ścieżką
- Items są duplikowane dla każdej ścieżki
- Przydatne, gdy chcemy wykonać różne operacje na tych samych danych
Dzięki rozgałęzieniom możemy tworzyć złożone workflow, gdzie jeden workflow obsługuje wiele różnych przypadków.
Przydatne węzły w n8n
Edit Fields Node
Funkcje Edit Fields:
- Zarządzanie danymi w itemach
- Czyszczenie danych w workflow
- Dodawanie, formatowanie lub redukowanie danych
- Zachowanie tylko potrzebnych pól
- Tworzenie nowych pól na podstawie istniejących
Na przykład, możemy stworzyć nowe pole „full_name” łączące imię i nazwisko, a także używać funkcji JavaScript jak toUpperCase() do formatowania tekstu.
Aggregate Node
Zastosowania Aggregate Node:
- Agregacja danych z wielu itemów
- Tworzenie jednego itema z danymi z wielu itemów
- Przydatny przy tworzeniu zbiorczych raportów
- Eliminuje potrzebę wysyłania wielu podobnych wiadomości
Ten węzeł jest szczególnie przydatny przy wysyłaniu zbiorczych raportów czy powiadomień, zamiast wielu pojedynczych wiadomości.
Webhook Node
Cechy Webhook Node:
- Trigger node przypisujący URL
- Nasłuchuje przychodzących webhooków
- Uruchamia workflow z danymi z webhooka
- Pozwala na automatyzację przy użyciu zewnętrznych systemów
Jest to doskonały sposób na automatyzację, gdy inne systemy mogą wysyłać powiadomienia HTTP.
Praktyczny przykład workflow
Checklist tworzenia workflow z Google Sheets i Slack:
- Odczytanie danych kontaktowych z Google Sheets
- Filtrowanie kontaktów bez adresu e-mail
- Utworzenie pola „full_name” i zachowanie tylko potrzebnych pól
- Rozdzielenie kontaktów według typu adresu e-mail
- Agregacja adresów e-mail i firm dla profesjonalnych kontaktów
- Wysłanie zbiorczej wiadomości Slack z podsumowaniem
Oto przykład prostego workflow bazującego na kursie:
- Odczytanie danych kontaktowych z Google Sheets
- Użycie węzła Filter do usunięcia kontaktów bez adresu e-mail
- Użycie Edit Fields do utworzenia pola „full_name” i zachowania tylko potrzebnych pól
- Zastosowanie węzła If do rozdzielenia kontaktów z profesjonalnymi adresami e-mail (nie zawierającymi „gmail” ani „hotmail”)
- Dla profesjonalnych adresów, użycie węzła Aggregate do zebrania wszystkich adresów e-mail i firm
- Wysłanie zbiorczej wiadomości Slack z podsumowaniem wszystkich adresów e-mail i firm
Przykład workflow z Webhook:
- Webhook trigger nasłuchujący żądań HTTP
- Rozgałęzienie workflow w zależności od typu wydarzenia
- Wysłanie odpowiednich powiadomień Slack
W przypadku webhooka, workflow może wyglądać następująco:
- Webhook trigger nasłuchuje żądań HTTP
- W zależności od typu wydarzenia z żądania (np. „invited_team_member” lub „account_created”)
- Użycie węzłów If do rozgałęzienia workflow
- Wysłanie odpowiednich powiadomień Slack w zależności od typu wydarzenia
Wskazówki praktyczne
Jak skutecznie zarządzać danymi w n8n:
- Używaj Edit Fields na początku workflow, aby upewnić się, że pracujesz tylko z potrzebnymi danymi
- Gdy masz do czynienia z dziesiątkami lub setkami itemów, agreguj dane zamiast wysyłać osobne powiadomienia
- Pamiętaj o różnicy między rozgałęzieniami: węzeł If rozdziela itemy, a przeciąganie wielu wyjść duplikuje je
- Wykorzystuj wyrażenia JavaScript do formatowania i manipulacji danymi
Co zrobić, gdy masz trudności ze zrozumieniem danych:
- Wróć do podstaw itemów, list i JSON-ów
- Testuj węzły pojedynczo, sprawdzając dane wyjściowe
- Użyj pinowania danych aby zachować wyniki testów
- Śledź przepływ itemów przez workflow
Jak podkreślono w kursie: „Jeśli pracujesz nad workflow i masz trudności ze zrozumieniem, dlaczego dane wejściowe i wyjściowe są takie, jakie są, wróć do materiału o itemach, listach i JSON-ach, ponieważ są to kluczowe koncepcje przy budowaniu workflow i używaniu wyrażeń.”
Podsumowanie
N8n to potężne narzędzie do automatyzacji workflow, które dzięki intuicyjnemu interfejsowi pozwala na tworzenie złożonych integracji bez głębokiej znajomości programowania. Kluczem do sukcesu jest zrozumienie, jak dane przepływają przez workflow jako itemy, jak węzły je przetwarzają i jak używać wyrażeń do dynamicznego manipulowania danymi.
Zaprezentowane koncepcje – od podstawowych struktur danych, przez wyrażenia, po użyteczne węzły – stanowią fundament tworzenia efektywnych automatyzacji w n8n.
Ten artykuł jest częścią serii notatek z wartościowych webinarów, bazujących na kursie n8n dla początkujących, obejmującym zarządzanie danymi, tworzenie workflow i praktyczne przykłady automatyzacji.