Twój formularz zbiera zgłoszenia. CRM rejestruje nowych klientów. Platforma e-commerce potwierdza zamówienia. Każde z tych zdarzeń dzieje się w innym systemie, w innym momencie, często bez ostrzeżenia. Jak sprawić, żeby n8n wiedział o każdym z nich natychmiast i zaczął działać? Odpowiedź to webhook. W tym artykule wyjaśniam czym jest webhook w n8n, jak przekazywać przez niego dane, kiedy używać GET a kiedy POST i jakie masz opcje w sterowaniu odpowiedzią.
Co to jest webhook w n8n i jak działa?
Webhook w n8n to specjalny adres URL, który nasłuchuje na przychodzące żądania HTTP z zewnętrznych aplikacji. Gdy żądanie dotrze, n8n natychmiast uruchamia workflow i przetwarza dane, które przyszły razem z nim.
Możesz myśleć o webhooku jak o cyfrowym dzwonku do drzwi. Zewnętrzny system “naciska dzwonek” wysyłając żądanie HTTP pod Twój adres URL. n8n “otwiera drzwi”, pobiera dane z przesyłki i uruchamia całą machinę automatyzacji.


Webhook jako punkt wejścia do automatyzacji
Webhook pełni rolę trigera, czyli punktu startowego workflow. Zamiast sprawdzać co kilka minut “czy pojawiły się nowe dane?”, webhook sprawia że to zewnętrzna aplikacja informuje n8n w momencie gdy coś się dzieje.
Na platformie Kodożercy wykorzystujemy webhooki bezpośrednio do weryfikacji zadań automatyzacji. Gdy Twój workflow poprawnie odbierze sygnał z platformy i zwróci oczekiwane dane, zadanie zostaje zaliczone automatycznie. Webhook to fundament dwustronnej komunikacji między systemami.


Webhook reaguje natychmiast gdy coś się dzieje. Polling sprawdza co jakiś czas - nawet gdy nic się nie zmieniło. Różnica widoczna jest szczególnie przy dużym wolumenie zdarzeń.Webhook reaguje natychmiast. Polling, czyli cykliczne odpytywanie “czy są nowe dane?”, obciąża serwery i wprowadza opóźnienia. Przy obsłudze zdarzeń w czasie rzeczywistym webhook wygrywa zawsze.
Jak przekazywać dane do webhooka – Query Params w URL
Najprostszy sposób na przesłanie danych do webhooka to osadzenie ich bezpośrednio w adresie URL. Widziałeś to pewnie setki razy, choć pewnie tego nie zauważałeś.
Otwórz Allegro i wyszukaj dowolny produkt. Adres w przeglądarce zamienia się w długi ciąg znaków po znaku zapytania. To właśnie są Query Params, czyli parametry zapytania. Każdy parametr mówi serwerowi: “szukaj produktów z tą kategorią, tym sortowaniem, tą stroną”. Kopiując taki link i wysyłając go znajomemu, przekazujesz mu dokładnie ten sam widok – bo wszystkie filtry są zapisane w URL.


To właśnie są Query Params, czyli parametry zapytania. Każdy parametr mówi serwerowi: “szukaj produktów z tą kategorią, tym sortowaniem, tą stroną”. Kopiując taki link i wysyłając go znajomemu, przekazujesz mu dokładnie ten sam widok – bo wszystkie filtry są zapisane w URL.
W n8n działa to identycznie. Zbuduj adres webhooka w ten sposób:
- Podstawowy URL webhooka:
https://twoj-n8n.app/webhook/abc123 - Dodaj parametr po znaku zapytania:
?name=Mateusz - Kolejne parametry łącz ampersandem:
?name=Mateusz&status=aktywny&plan=pro
Wszystkie te wartości trafiają do sekcji Query w węźle webhooka w n8n. Stamtąd możesz je mapować do kolejnych węzłów metodą drag and drop lub wyrażeń dynamicznych.


Praktyczna zasada z kursu n8n 2.0: Query Params używaj do filtrowania i identyfikacji zasobu (np. ID klienta, nazwa produktu). Do przesyłania długich tekstów, plików lub struktury JSON używaj metody POST z Body.
GET czy POST – kiedy używać której metody
Webhook w n8n obsługuje różne metody HTTP. Którą wybrać zależy od tego, co chcesz zrobić i skąd przychodzi żądanie.
GET służy do pobierania i odczytu danych. Parametry są widoczne w URL. Sprawdza się gdy zewnętrzny system chce zapytać Twój workflow o konkretną informację lub wywołać prostą akcję przez kliknięcie linku.
POST służy do wysyłania danych. Zamiast upychać wszystko w URL, metoda POST pozwala przesłać Body z dowolnie złożoną strukturą. Formularz z 10 polami, plik PDF, zagnieżdżony JSON – to wszystko idzie przez POST.
Gdzie n8n bywa bezlitosny: jeśli wyślesz żądanie POST do webhooka ustawionego na GET, dostaniesz komunikat: “This webhook is not registered for POST request. Did you mean to make a GET request?”. Odwrotnie działa tak samo. Zawsze sprawdź metodę po obu stronach, najlepiej najpierw w Postmanie. Jak testować endpointy przez Postman wyjaśnia poprzedni artykuł z tego klastra – co to jest Postman i jak testować API.
Trzy tryby odpowiedzi webhooka w n8n
Gdy zewnętrzna aplikacja wysyła żądanie do Twojego webhooka, czeka na odpowiedź. To ile będzie czekać i co dostanie zależy od trybu odpowiedzi, który konfigurujesz w n8n.


Immediately – błyskawiczne potwierdzenie bez czekania
To tryb domyślny. n8n natychmiast potwierdza odebranie żądania komunikatem “Workflow was started” i rozłącza się z nadawcą. Workflow działa dalej w tle, ale aplikacja wywołująca już nie czeka na wynik.
Kiedy używać: gdy nadawca nie potrzebuje wyniku automatyzacji (np. formularz kontaktowy, który potwierdza tylko przyjęcie zgłoszenia).
When Last Node Finishes – odpowiedź po zakończeniu całego workflow
Aplikacja wywołująca utrzymuje połączenie i czeka, aż cały workflow przejdzie przez wszystkie węzły. Dopiero wtedy dostaje finalny wynik jako odpowiedź HTTP.
Kiedy używać: gdy nadawca potrzebuje wyniku przetwarzania przed kontynuowaniem własnych działań (np. system zewnętrzny musi dostać ID nowo utworzonego rekordu).
Respond to Webhook Node – pełna kontrola nad odpowiedzią


Najbardziej profesjonalny tryb. Umieszczasz specjalny węzeł “Respond to Webhook” dokładnie w tym miejscu workflow, w którym chcesz wysłać odpowiedź. Możesz najpierw zapisać dane do bazy, przetworzyć je przez kod JavaScript, a dopiero potem zwrócić nadawcy precyzyjną strukturę JSON ze statusem i danymi.
Na platformie Kodożercy wymagamy dokładnie tego trybu przy zadaniach z automatyczną weryfikacją. System sprawdza nie tylko czy workflow zadziałał, ale czy zwrócił odpowiedź w wymaganym formacie.


Wybór trybu odpowiedzi decyduje o tym, jak Twój webhook integruje się z systemami zewnętrznymi. Warto go przemyśleć przed zbudowaniem reszty workflow.
Streaming danych – skąd pochodzi efekt ChatGPT
Gdy piszesz pytanie do ChatGPT, odpowiedź nie pojawia się nagle po 10 sekundach. Tekst renderuje się słowo po słowie, zdanie po zdaniu. To właśnie streaming, czyli przesyłanie danych strumieniowo w porcjach (ang. chunks).
Identyczny mechanizm działa przy transmisji wideo na żywo. Dane nie czekają aż cały film się “załaduje”, lecz płyną do Twojego urządzenia w trakcie oglądania.
n8n obsługuje streaming w webhookach, ale wymaga tego świadomego zaplanowania. Potrzebujesz węzłów, które natywnie wspierają ten tryb pracy, oraz odpowiednio skonfigurowanej ścieżki w workflow. Dla większości automatyzacji biznesowych standardowe tryby odpowiedzi (Immediately lub Last Node) w zupełności wystarczają. Streaming przydaje się głównie przy budowaniu interfejsów z modelami językowymi, gdzie użytkownik oczekuje natychmiastowego feedbacku.
Kurs n8n 2.0 · Kodożercy
Ile godzin tygodniowo tracisz na powtarzalne zadania?
n8n pozwala zautomatyzować to, co robisz ręcznie: przesyłanie danych, powiadomienia, raporty. Kurs n8n 2.0 na Kodożercach pokaże Ci, jak to zrobić krok po kroku, bez pisania kodu.
Sprawdź kurs n8n 2.0 →

FAQ – Najczęstsze pytania o webhooki w n8n
Co to jest webhook w n8n?
Webhook w n8n to adres URL, który nasłuchuje na przychodzące żądania HTTP z zewnętrznych aplikacji. Gdy żądanie dotrze, n8n automatycznie uruchamia workflow i przetwarza przesłane dane. To najczęściej używany trigger w automatyzacjach wymagających reakcji w czasie rzeczywistym.
Jaka jest różnica między testowym a produkcyjnym URL webhooka?
Testowy URL webhooka działa tylko gdy masz otwarty edytor n8n i aktywnie nasłuchujesz w węźle webhooka. Produkcyjny URL jest permanentny i działa 24/7 po opublikowaniu workflow. Nigdy nie udostępniaj testowego URL zewnętrznym systemom ani klientom.
Kiedy używać GET, a kiedy POST w webhooku n8n?
GET stosuj gdy zewnętrzna aplikacja chce pobrać dane lub wywołać prostą akcję, a parametry mieszczą się w URL (np. ID klienta, filtr). POST stosuj gdy przesyłasz rozbudowane dane: formularz z wieloma polami, zagnieżdżony JSON lub pliki. Pamiętaj, że metoda musi być zgodna po obu stronach – n8n odrzuci żądanie z błędną metodą.
Co wybrać: Immediately czy Respond to Webhook Node?
Immediately wybierz gdy zewnętrzny system nie potrzebuje wyniku automatyzacji i wystarczy mu samo potwierdzenie przyjęcia żądania. Respond to Webhook Node wybierz gdy musisz zwrócić konkretne dane jako odpowiedź HTTP, na przykład ID nowego rekordu lub wynik obliczeń. To też jedyna opcja przy zadaniach z automatyczną weryfikacją na Kodożercy.
Czy webhook w n8n obsługuje streaming?
Tak, n8n obsługuje przesyłanie danych strumieniowo (chunk by chunk), podobnie jak działa generowanie tekstu w ChatGPT. Wymaga to jednak węzłów ze wsparciem streamingu i odpowiedniego planowania przepływu. Do typowych automatyzacji biznesowych standardowe tryby odpowiedzi w zupełności wystarczą.
Podsumowanie
Webhook w n8n to adres URL nasłuchujący na żądania HTTP z zewnętrznych aplikacji, który uruchamia workflow w momencie gdy zdarzenie faktycznie nastąpi. Dane można przekazywać przez Query Params w URL (dla prostych parametrów) lub przez Body metody POST (dla złożonych struktur). Kluczowe jest dopasowanie metody HTTP po obu stronach, bo n8n odrzuca żądania z niezgodną metodą. Tryb Immediately wysyła błyskawiczne potwierdzenie bez czekania na wynik, Last Node czeka na zakończenie całego workflow, Respond to Webhook Node daje pełną kontrolę nad formatem i momentem odpowiedzi. Pełny kontekst narzędzi, z których korzystasz przy webhookach, znajdziesz w kompletnym przewodniku po automatyzacji n8n.



