Zaawansowana automatyzacja z n8n 1/3 #EN72

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:

  1. Append – po prostu łączy elementy z obu gałęzi, dodając je jeden po drugim
  2. Choose – pozwala wybrać jeden, drugi lub żadne elementy do przekazania dalej
  3. 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:

  1. 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)
  2. Użyto Merge node z opcją combine, łącząc dane przez pola: website (firmy) i domain (kontakty)
  3. 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ż:

  1. Wejść w poprzednie wykonanie workflow
  2. Nawigować do panelu wyjściowego interesującego node’a
  3. Przełączyć się na widok JSON i kliknąć przycisk kopiowania
  4. Wrócić do bieżącego workflow, edytować output, wkleić wartości
  5. 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


Opublikowano

Komentarze

Dodaj komentarz