// Start

Import workflow z pliku

▸ // rozdziały lekcji

Import workflow n8n - Wolniś wkleja JSON na kanwę

Każda lekcja w tym kursie ma plik JSON z workflow. Nie musisz go czytać ani rozumieć, żeby zacząć: wklejasz go do n8n, podstawiasz swoje poświadczenia i klikasz. Ta lekcja pokazuje, jak to zrobić, i mówi wprost, czego w tych plikach nie ma.

Krok 1: Skopiuj zawartość pliku

Pod każdą lekcją jest rozwijany blok „Pokaż JSON do skopiowania". Rozwijasz go, zaznaczasz całość i kopiujesz.

Nie zmieniaj niczego na tym etapie. Własne dane podstawia się już w n8n, na węzłach, a nie w pliku.

Krok 2: Wklej na pustą kanwę

W n8n klikasz Create workflow i wklejasz skopiowany tekst na kanwę skrótem Cmd + V (Mac) albo Ctrl + V (Windows). Bez żadnego menu. Węzły pojawią się połączone i rozstawione tak, jak u mnie.

Workflow z kursem euro po wklejeniu na kanwę - trzy połączone węzły

Wolisz menu? Trzy kropki obok nazwy workflow, potem Import i do wyboru:

  • From file - wskazujesz plik .json z dysku,
  • From URL - wklejasz adres pliku, na przykład surowy plik z GitHuba.

Haczyk. Wklejony workflow zawsze trafia jako nieopublikowany. Nawet jeśli ma harmonogram, nic się samo nie uruchomi, dopóki nie klikniesz Publish. Tak ma być - najpierw sprawdzasz, potem puszczasz. Różnicę między zapisanym a opublikowanym omawiam w lekcji 2.2.

Krok 3: Podstaw własne poświadczenia

Część węzłów po wklejeniu ma czerwony znak ostrzeżenia. To nie jest błąd w pliku, tylko brak poświadczeń. Klikasz taki węzeł i w polu poświadczeń wybierasz swoje konto albo tworzysz nowe. Robisz to raz dla każdej usługi, której workflow dotyka.

W miejscach, gdzie w pliku widzisz zaślepki w rodzaju TWOJE_ID_ARKUSZA, podstawiasz identyfikator ze swojego konta. Każda lekcja mówi, skąd go wziąć.

Jak zakładać poświadczenia i dlaczego nigdy nie wklejać kluczy prosto w węzeł, pokazuję w lekcji 2.5.

Haczyk. Jeśli zamiast węzła widzisz szary kafelek ze znakiem zapytania, workflow używa węzła, którego nie masz w swojej instancji. Najczęściej to węzeł od społeczności (community node) albo węzeł z nowszej wersji n8n. W moich plikach używam tylko węzłów wbudowanych, więc jeśli trafisz na znak zapytania, sprawdź najpierw, czy masz aktualne n8n.

Czego nie ma w tych plikach

Świadomie usunąłem wszystko, co identyfikuje moje konta:

  • poświadczenia - n8n eksportuje tylko nazwę i identyfikator zapisanego konta, nigdy hasła ani tokena. Nawet ten identyfikator czyszczę,
  • identyfikatory arkuszy, tabel i kanałów - zamienione na czytelne zaślepki,
  • adres mojej instancji - podmieniony na przykładowy,
  • identyfikator instancji i historia wersji - wyrzucone razem z metadanymi.

Workflow z zewnętrznymi usługami po wklejeniu nie zadziała, dopóki nie podstawisz swoich danych. I dobrze, bo alternatywą byłoby wysłanie moich.

Przykład do przetestowania

Do tej lekcji dołączam workflow, który działa od razu po wklejeniu, bez żadnego konta. Pobiera aktualny kurs euro z publicznego API Narodowego Banku Polskiego i wyciąga z odpowiedzi dwie rzeczy: kurs i datę tabeli.

  1. Wklej plik na pustą kanwę.
  2. Kliknij Execute workflow.
  3. Otwórz ostatni węzeł „Wynik".

Po prawej zobaczysz kurs euro z ostatniej tabeli NBP. Jeśli widzisz liczbę, import działa i możesz brać się za kolejne lekcje.

Węzeł Wynik po uruchomieniu - kurs_euro i z_dnia w danych wyjściowych

Pro-tip. NBP publikuje tabelę kursów w dni robocze. W weekend i święta dostaniesz kurs z ostatniego dnia roboczego - pole z_dnia powie ci, z którego.

Pokaż JSON do skopiowania - import-kurs-euro-nbp.json
{
  "name": "Import - kurs euro z NBP",
  "nodes": [
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [0, 0],
      "id": "a3d1e001-0000-4000-8000-000000000001",
      "name": "Uruchom recznie"
    },
    {
      "parameters": {
        "url": "https://api.nbp.pl/api/exchangerates/rates/A/EUR/?format=json",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.4,
      "position": [220, 0],
      "id": "a3d1e001-0000-4000-8000-000000000002",
      "name": "Kurs euro NBP"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "a3d1e001-0000-4000-8000-0000000000a1",
              "name": "kurs_euro",
              "value": "={{ $json.rates[0].mid }}",
              "type": "number"
            },
            {
              "id": "a3d1e001-0000-4000-8000-0000000000a2",
              "name": "z_dnia",
              "value": "={{ $json.rates[0].effectiveDate }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [440, 0],
      "id": "a3d1e001-0000-4000-8000-000000000003",
      "name": "Wynik"
    }
  ],
  "connections": {
    "Uruchom recznie": {
      "main": [[{ "node": "Kurs euro NBP", "type": "main", "index": 0 }]]
    },
    "Kurs euro NBP": {
      "main": [[{ "node": "Wynik", "type": "main", "index": 0 }]]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "active": false
}

Podsumowanie

Umiesz zaimportować dowolny workflow z tego kursu: wklejasz JSON na pustą kanwę, podstawiasz poświadczenia i podmieniasz zaślepki identyfikatorów. Wiesz też, czego w tych plikach nie ma i dlaczego.

W lekcji 2.4 - Dane, items i wyrażenia rozbierzemy na części to, co właśnie zobaczyłeś w węźle „Wynik": skąd wziął się kurs i co znaczą te podwójne nawiasy klamrowe.