Poradnik integracji

Formgong + n8n: odbieranie zgłoszeń przez Webhook node

Webhook node w n8n zamienia każde zgłoszenie z Formgong w uruchomienie workflow. Działa w n8n Cloud i na własnym serwerze, jeśli Formgong dotrze do niego przez publiczny HTTPS.

W skrócie: Dodaj Webhook node: HTTP Method POST, Respond ustawione na Immediately. Wklej Test URL w Formgong, kliknij Listen for test event i wyślij zgłoszenie. Gdy dane się zgadzają, zamień adres w Formgong na Production URL i opublikuj workflow. Pola czytaj z $json.body.submission.fields.

Zanim zaczniesz

  • n8n Cloud: płatne plany od 20 € miesięcznie przy płatności rocznej, z okresem próbnym. Według n8n dane w Cloud są przechowywane we Frankfurcie.
  • Własny serwer: Community Edition jest darmowa. Formgong wysyła tylko na HTTPS, port 443 i publiczną domenę. Adresu http://localhost:5678 ani IP z sieci lokalnej nie przyjmie. Postaw n8n za reverse proxy z certyfikatem TLS i ustaw ten publiczny adres w zmiennej WEBHOOK_URL.
  • Formgong: na Free jeden webhook na formularz, na Pro i Business pięć. Zamiana adresu testowego na produkcyjny zajmuje to samo miejsce.

Interfejs n8n jest po angielsku, dlatego nazwy pól podajemy po angielsku.

Krok po kroku

  1. Utwórz workflow i dodaj wyzwalacz Webhook.
  2. HTTP Method ustaw na POST. Nadaj czytelny Path, np. formgong-kontakt.
  3. Authentication zostaw na None: Formgong nie wysyła danych Basic, nagłówków ani JWT. Zamiast tego sprawdzaj podpis (niżej). Lista dozwolonych IP też odpada: Formgong wysyła z sieci Cloudflare, nie ze stałych adresów.
  4. Respond ustaw na Immediately. Formgong czeka na odpowiedź tylko 10 sekund.
  5. Skopiuj Test URL. W Formgong otwórz Ustawienia formularza → Webhook, wklej adres i kliknij „Dodaj webhook”.
  6. W n8n kliknij Listen for test event i wyślij prawdziwe zgłoszenie ze strony.
  7. Dodaj kolejne węzły i zmapuj pola. Gdy wszystko działa, usuń adres testowy w Formgong i dodaj Production URL.
  8. Opublikuj workflow. Uruchomienia produkcyjne widać w zakładce Executions, a nie na kanwie.

Co zwraca Webhook node

Węzeł zwraca headers, params, query i body. JSON z Formgong jest w body.

body
{
  "event": "submission.created",
  "form": {
    "id": "6f1c2a9e-4b7d-4e0a-9c3f-2d8b5e7a1f40",
    "name": "Kontakt"
  },
  "submission": {
    "id": "b3e04c51-8a2f-4d6e-9f17-0c5a3b8d2e96",
    "created_at": "2026-10-03T09:15:00.000Z",
    "page_url": "https://example.com/contact",
    "fields": {
      "name": "Anna Nowak",
      "email": "anna@example.com",
      "phone": "+48501234567",
      "message": "Proszę o wycenę 20 sztuk",
      "utm_source": "google"
    },
    "is_spam": false
  }
}

Nazwy nagłówków przychodzą małymi literami, np. $json.headers["x-signature"] i $json.headers["x-formgong-event"].

Mapowanie pól

Czego potrzebujeszWyrażenie n8n
Dowolne pole formularza{{ $json.body.submission.fields.email }}
Nazwa formularza{{ $json.body.form.name }}
Adres strony{{ $json.body.submission.page_url }}
Typ zdarzenia{{ $json.body.event }}
Unikalny ID{{ $json.body.submission.id }}

Aby pomijać doręczenia testowe, w opcjach Webhook node użyj Only Run If: {{ $json.body.event === 'submission.created' }}. Niepasujące żądania i tak dostają 200, więc Formgong ich nie ponawia.

Opcjonalnie: weryfikacja podpisu

Podpis to HMAC-SHA256 surowej treści z kluczem „Sekret podpisu” z zakładki Webhook w Formgong. n8n sprawdzi go bez kodu:

  1. W opcjach Webhook node włącz Raw Body. Treść przyjdzie jako dane binarne.
  2. Dodaj węzeł Crypto: akcja Hmac, Binary File włączone, właściwość binarna z Webhook node, typ SHA256, kodowanie HEX. Sekret podpisu wpisz w Hmac Secret w danych uwierzytelniających Crypto.
  3. Dodaj węzeł If: sha256= plus wynik Crypto musi równać się {{ $('Webhook').item.json.headers['x-signature'] }}.
  4. Na gałęzi true węzeł Extract from File (Extract From JSON) zamieni surową treść z powrotem na pola.
Podpisane żądanie z terminala
SECRET='<your signing secret>'
URL='<your webhook URL>'
BODY='{"event":"webhook.test","form":{"id":"x","name":"Test"},"submission":{"id":"test","created_at":"2026-10-03T09:15:00.000Z","page_url":null,"fields":{"message":"Formgong test"},"is_spam":false}}'
SIG=$(printf '%s' "$BODY" | openssl dgst -sha256 -hmac "$SECRET" | sed 's/^.* //')
curl -sS -X POST "$URL" \
  -H 'content-type: application/json' \
  -H 'x-formgong-event: webhook.test' \
  -H "x-signature: sha256=$SIG" \
  --data "$BODY"

Gdy coś nie działa

  • 404 w „Ostatnich doręczeniach”: Test URL działa tylko raz i tylko wtedy, gdy n8n nasłuchuje. Production URL działa tylko w opublikowanym workflow.
  • Formgong odrzuca adres: musi zaczynać się od https://, używać portu 443 i prowadzić do publicznej domeny.
  • Przekroczony czas i duplikaty: przy Respond = When Last Node Finishes wolny workflow może przekroczyć 10 sekund. Formgong wtedy ponawia żądanie i workflow startuje znowu. Odpowiadaj od razu i sprawdzaj submission.id przed tworzeniem rekordów.
  • Status 3xx: proxy, które przekierowuje (http na https albo brak ukośnika), to błąd. Wklej adres dokładnie taki, jaki pokazuje n8n.
  • Grupa checkboxów w jednym polu: zaznaczone pola o tej samej nazwie przychodzą jako jeden tekst, np. Email, Telefon. Aby dostać tablicę, użyj {{ $json.body.submission.fields.contact.split(', ') }}.

Pytania i odpowiedzi

Czy każde zgłoszenie to jedno uruchomienie (execution) w n8n?

W n8n Cloud tak: jedno uruchomienie produkcyjne na zgłoszenie, niezależnie od liczby węzłów. Community Edition na własnym serwerze nie ma limitu uruchomień.

Cloud czy własny serwer – co lepsze pod RODO?

Oba mogą działać. Według n8n dane Cloud są we Frankfurcie. Własny serwer trzyma je u Ciebie. Sam Formgong przechowuje zgłoszenia w UE.

Czy mogę włączyć uwierzytelnianie nagłówkiem w Webhook node?

Nie, Formgong nie dodaje własnych nagłówków. Sprawdzaj X-Signature: dowodzi, że żądanie przyszło z Twojego formularza.

Jak wysłać zgłoszenie z n8n do KeyCRM?

Dodaj węzeł HTTP Request, który wysyła POST do API KeyCRM z Twoim kluczem. Pełna treść jest w poradniku KeyCRM.

Źródła

Sprawdzone 03.10.2026 w oficjalnej pomocy i na publicznych stronach: Dokumentacja n8n: Webhook node, Dokumentacja n8n: Crypto node, Dokumentacja n8n: HTTP Request node, Cennik n8n, Dokumentacja webhooków Formgong.

← Formgong