TL;DR:
- Workflowy w n8n wykonują się w kolejności od góry do dołu i od lewej do prawej
- Rozgałęzianie danych można realizować przez If node (2 ścieżki) lub Switch node (n ścieżek)
- Merge node pozwala łączyć dane na 3 sposoby: append (dodawanie), combine (łączenie) lub choose (wybór)
- Loop over items umożliwia przetwarzanie danych partiami, co jest przydatne przy Google Sheets czy API z limitami
- Przypinanie danych (pinning) i edycja danych wyjściowych (edit output) przyspieszają budowę workflowów
- Zewnętrzne narzędzia jak Mocaroo pozwalają generować dane testowe
Dlaczego zarządzanie przepływem danych jest kluczowe?
Ten artykuł, oparty na zaawansowanym kursie n8n, przedstawia kluczowe koncepcje i techniki zarządzania przepływem danych w workflowach. Dowiesz się jak efektywnie rozgałęziać, łączyć i manipulować danymi w bardziej skomplikowanych procesach automatyzacji.
Rozgałęzianie i łączenie danych
Jak działa kolejność wykonania node’ów?
W n8n node’y wykonują się zawsze w określonej kolejności – od góry do dołu i od lewej do prawej. Oznacza to, że pierwsza gałąź zostanie wykonana w całości, następnie druga gałąź, a na końcu trzecia. Ta zasada jest fundamentalna przy projektowaniu workflowów.
Techniki rozgałęziania danych
Główne sposoby rozgałęziania przepływu danych:
- If node – dzieli dane wejściowe na dwie odrębne ścieżki w zależności od tego, czy warunek jest prawdziwy czy fałszywy
- Switch node – tworzy n ścieżek plus dodatkową ścieżkę domyślną, dzieląc elementy między nimi (w przykładzie z kursu 10 elementów zostaje rozdzielonych na 1, 1, 1 i 7 elementów)
- Wyciągnięcie dwóch gałęzi z jednego node’a – wysyła wszystkie elementy wyjściowe node’a do każdej z tych gałęzi, zachowując porządek wykonania
Ten ostatni sposób jest przydatny, gdy chcesz wykonać dwa odrębne zestawy działań z tego samego punktu wyjścia.
Merge node – łączenie danych z różnych źródeł
Merge node to wyjątkowy element, ponieważ posiada nie jeden, a dwa wejścia. Node czeka na dane z obu gałęzi, a następnie wykonuje jedną z trzech operacji łączenia:
- Append – po prostu łączy elementy z obu gałęzi, dodając je jeden po drugim
- Choose – pozwala wybrać jeden, drugi lub żadne elementy do przekazania dalej
- Combine – łączy dane według pól lub pozycji
Dobrym modelem mentalnym dla merge node są operacje JOIN w SQL:
- Inner i outer join odpowiadają zachowaniu lub niezachowaniu dopasowań
- Left join to wzbogacanie/rozszerzanie pierwszej gałęzi wejściowej
- Right join to wzbogacanie drugiej gałęzi
- Union odpowiada operacji append
Przykład praktyczny: łączenie kontaktów
W kursie pokazano workflow, który pobiera listę 10 kontaktów, używa If node do podziału na e-maile osobiste i służbowe, a następnie dodaje informację o typie e-maila. Używając Merge node z opcją append, można połączyć obie grupy z powrotem w jedną listę 10 kontaktów, każdy z oznaczeniem typu e-maila.
Wzbogacanie danych (enrichment)
W kursie zaprezentowano bardziej zaawansowane zastosowanie Merge node – wzbogacanie danych. Kontakty z e-mailami służbowymi zostały wzbogacone o informacje o firmach pobrane z arkusza Google. Proces wyglądał następująco:
- Dodano pole „domain” do kontaktów, wyciągając domenę z adresu e-mail przy pomocy JavaScript (split na znaku @ i wybranie odpowiedniej części)
- Użyto Merge node z opcją combine, łącząc dane przez pola: website (firmy) i domain (kontakty)
- Wybrano opcję „keep all of input 2 with data from input 1 added in” – zachowanie wszystkich kontaktów i dodanie informacji o firmach, gdy jest dopasowanie
To podejście pozwala na wzbogacanie danych z różnych źródeł, takich jak arkusze kalkulacyjne, bazy danych czy API.
Praca z zestawami danych – Loop over items
Kiedy używać Loop over items?
Loop over items (znany także jako „split in batches”) pozwala podzielić elementy wejściowe na partie o określonej wielkości. Na przykład, przy rozmiarze partii równym 1, każdy element będzie przetwarzany oddzielnie w pętli.
Chociaż większość node’ów w n8n już wykonuje się raz na element, Loop over items jest szczególnie przydatny w następujących sytuacjach:
- Gdy node zwraca wiele elementów z jednego wejścia (np. Google Sheets przy odczytywaniu wielu wierszy)
- Przy odczytywaniu wielu arkuszy z różnych źródeł
- Przy radzeniu sobie z limitami API – gdy API pozwala tylko na określoną liczbę wywołań w danym czasie (np. 10 wywołań na minutę lub 100 wywołań co 10 sekund). Rozdzielenie wywołań i użycie Wait node pomaga uniknąć przeciążenia API
Jak śledzić wykonanie pętli?
W trakcie wykonywania pętli:
- Loop over items oraz wszystkie inne node’y w pętli będą miały zieloną liczbę obok zielonego znacznika, wskazującą numer iteracji
- Możesz uzyskać dostęp do różnych elementów wyjściowych w panelu Output, klikając na Run
- Pomaga to zrozumieć, jakie elementy przechodzą przez różne uruchomienia i jak są zmieniane
Optymalizacja pracy z workflowami
Przypinanie danych (pinning data)
Podczas budowania workflowów warto jak najmniej polegać na usługach zewnętrznych, aby skrócić czas wykonania. Funkcja przypinania danych pozwala na:
- Zapisanie wyjścia node’a, aby było łatwo dostępne
- Uniknięcie ponownego wywoływania systemów zewnętrznych, np. wykonywania wywołań API
- Przyspieszenie wykonania podczas budowania workflowu
Aby przypiąć dane, wystarczy kliknąć ikonę pinezki w prawym górnym rogu panelu wyjściowego. Node z przypiętymi danymi jest oznaczony niebieską ikoną na canvasie.
Przypięte dane są używane tylko do testowych wykonań, nie w środowisku produkcyjnym, gdzie node zawsze jest wykonywany normalnie. Jest to szczególnie przydatne w przypadku node’ów webhook, gdzie inaczej musielibyśmy za każdym razem wyzwalać webhook z zewnętrznego narzędzia.
Edycja danych wyjściowych (edit output)
Funkcja Edit Output pozwala ręcznie edytować wyjście dowolnego node’a. W połączeniu z Pinned Data pozwala na:
- Testowanie, jak workflow radzi sobie w określonych przypadkach brzegowych
- Sprawdzanie zachowania przy ustawieniu pola na null lub przekazaniu ciągu zamiast liczby
- Uniknięcie konieczności tworzenia tych przypadków brzegowych poprzez wykonywanie nowych wywołań API
Możesz również:
- Wejść w poprzednie wykonanie workflow
- Nawigować do panelu wyjściowego interesującego node’a
- Przełączyć się na widok JSON i kliknąć przycisk kopiowania
- Wrócić do bieżącego workflow, edytować output, wkleić wartości
- Mieć te dane gotowe do pracy w workflowie
Jest to szczególnie przydatne przy debugowaniu workflowu, który mógł się nie powieść.
Wykorzystanie mock data
W kursie wspomniano o przydatnym narzędziu do testowania workflowów – Mocaroo. Jest to generator losowych danych, który pozwala:
- Generować zestawy losowych informacji (ID, imię, email, płeć, adres IP itd.)
- Ustawiać opcje dla danych pustych (np. 10% pustych emaili)
- Tworzyć realistyczne zestawy danych testowych
Wystarczy wybrać format JSON, aby móc bezpośrednio skopiować i wkleić dane do n8n, a następnie przypiąć je jako dane wejściowe.
Checklista efektywnego budowania workflowów
- Pamiętaj o kolejności wykonania node’ów (od góry do dołu, od lewej do prawej)
- Używaj If node do prostego rozgałęziania lub Switch node dla większej liczby ścieżek
- Łącz dane z różnych gałęzi za pomocą Merge node, wybierając odpowiednią metodę
- Rozważ użycie Loop over items przy pracy z Google Sheets lub API z limitami
- Przypinaj dane kluczowych node’ów, aby przyspieszyć testowanie workflowu
- Używaj Edit Output do symulacji różnych scenariuszy bez zewnętrznych wywołań
- Wypróbuj generatory mock data dla realistycznych danych testowych
Ten artykuł jest częścią serii notatek z wartościowych webinarów. Źródło: n8n Advanced Course – Working with complex data flows
Dodaj komentarz
Musisz się zalogować, aby móc dodać komentarz.