Przejdź do głównej zawartości

Rozwijaj swój biznes – każdy lead trafia prosto do Twojego CRM: wysyłaj zgłoszenia demo Survio do arkusza lub HubSpot

Zmień formularz Survio w skuteczny kanał zbierania leadów: każde zgłoszenie demo to nowy wiersz w Google Sheet z powiadomieniem e-mailowym dla Ciebie lub nowy kontakt w HubSpot. Przewodnik z n8n i gotowymi workflow.

Napisane przez Success Team Survio

Który wariant jest dla Ciebie?

Wariant A – prosty, dla każdego: każde zgłoszenie demo trafia do Google Sheet używanego jako CRM i od razu dostajesz powiadomienie e-mailowe.

Wariant B – dla zespołów korzystających z CRM: każde zgłoszenie demo zamienia się w lead w HubSpot, gotowy do przejęcia przez dział sprzedaży.

Odwiedzający wypełnia Twój formularz zgłoszenia demo, a już po kilku sekundach lead ląduje w Twoim CRM. Mała firma widzi nowy wiersz na liście leadów i dostaje powiadomienie e-mailowe, zespół sprzedaży – nowy kontakt w HubSpot. W obu wersjach masz szansę odezwać się do leada, zanim zdąży opuścić Twoją stronę.
​

Tak wygląda powiadomienie e-mailowe, które przychodzi po każdym nowym zgłoszeniu demo w wariancie A:
​

New demo request e-mail in Gmail


​

A tak prezentuje się nowy kontakt w HubSpot w wariancie B:
​

HubSpot contact created from a demo request: lifecycle stage Lead and the request in Message

Jak to działa. Survio przesyła każdą wypełnioną odpowiedź do URL webhooka. Narzędzie do automatyzacji (w tym poradniku używamy n8n) odbiera ją i zapisuje leada tam, gdzie pracujesz. Survio zajmuje się wysyłaniem, n8n realizuje pozostałe kroki.

Pierwszy raz korzystasz z webhooków w Survio? Zacznij od Webhooks: wysyłaj odpowiedzi do innych narzędzi w czasie rzeczywistym, a następnie wróć tutaj.
​

Co zbudujesz

Oba warianty zaczynają się tak samo: krótki formularz demo na Twojej stronie, wysyłany do n8n przez webhook.

W skrócie

Wariant A: arkusz jako CRM

Wariant B: HubSpot

Efekt

Każde zgłoszenie to nowy wiersz w Google Sheets (ze statusem), plus powiadomienie e-mailowe

Każde zgłoszenie to nowy kontakt w HubSpot CRM dla zespołu sprzedaży

Narzędzia

Survio, n8n, Google Sheets, Gmail

Survio, n8n, HubSpot

Dla kogo

Mała firma obsługująca leady samodzielnie

Dział sprzedaży, który już pracuje w HubSpot

Przed startem

  • Survio – ankieta na planie płatnym. Webhooki nie są dostępne w planie Free, a każdy plan pozwala na określoną liczbę webhooków na ankietę (zobacz artykuł o webhookach).

  • Konto n8n, n8n Cloud lub samodzielnie hostowane.

  • Wariant A: konto Google do Google Sheets i Gmail. Wariant B: konto HubSpot.

W tym poradniku używamy krótkiego formularza zgłoszenia demo: imię i nazwisko, e-mail służbowy (pytanie e-mailowe), firma, wielkość zespołu (pytanie zamknięte – jedna odpowiedź) oraz opcjonalne „Co chcesz zobaczyć na demo?”. Twój formularz może wyglądać inaczej; przypisz swoje pytania w wariancie A lub B.
​

Krok 1 — Umieść formularz na stronie

  1. Otwórz ankietę, przejdź do Zbieranie odpowiedzi i wybierz W sieci.

  2. Wybierz Wyskakujące okno i ustaw, kiedy ma się pojawić. Dla krótkiego formularza włącz Ukryj stronę tytułową, aby odwiedzający zaczynali od pierwszego pytania.

  3. Kliknij Umieść na stronie i wklej kod na swoją stronę.

Pop-up window settings for the survey in Survio
Embed code for the pop-up window

Więcej możliwości – na przykład przycisk lub boczny widżet – znajdziesz w Umieść ankietę na swojej stronie internetowej.
​

Krok 2 — tylko wariant A: przygotuj arkusz do leadów

  1. Stwórz nowy Google Sheet i nazwij pierwszy arkusz leads.

  2. W pierwszym wierszu wpisz nagłówki kolumn: Response ID, Received, Name, E-mail, Company, Team size, What they want to see, Status i Language.

  3. Zaznacz komórki pod nagłówkiem Status, wybierz Wstaw → Lista rozwijana, dodaj opcje New, Contacted i Done (użyj Dodaj kolejną pozycję) i kliknij Zrobione.

Twój arkusz to już prosty CRM. Nowe leady pojawiają się jako New. Po kontakcie z leadem ustaw na Contacted, a na Done, gdy transakcja jest zamknięta lub utracona. Filtrowanie po kolumnie Status pozwala sprawdzić, komu trzeba jeszcze odpowiedzieć.

Krok 3 — Utwórz webhook w n8n

  1. W n8n utwórz nowy workflow i dodaj Webhook jako trigger.

  2. Ustaw Metodę HTTP na POST.

  3. Przejdź do zakładki Production URL i skopiuj adres.

  4. Kliknij Opublikuj. Production URL odbiera dane tylko po opublikowaniu workflow.

n8n Webhook node with HTTP Method POST and the Production URL tab
Published button in the n8n editor

Używaj Production URL, nie Test URL. Test URL działa tylko przy otwartym edytorze – Survio przestanie przyjmować zgłoszenia, gdy zamkniesz edytor. Survio ponawia próby przez jeden dzień, a po 5 dniach nieudanych dostaw wyłącza webhook.

Krok 4 — Połącz ankietę w Survio

  1. Otwórz ankietę, przejdź do Zbieranie odpowiedzi.

  2. W lewej kolumnie w sekcji Automatyzacje i integracje wybierz Webhooks i kliknij + Dodaj webhook.

  3. Wklej Production URL z n8n do pola URL webhooka i kliknij Zapisz webhook. Webhook od razu jest aktywny.

Add a webhook dialog in Survio with the n8n Production URL filled in
Saved webhook in Survio, switched on


​

Krok 5 — Wyślij zgłoszenie testowe i znajdź ID pytań

  1. Wypełnij swój formularz przez zwykły link i prześlij zgłoszenie. Survio wysyła tylko ukończone odpowiedzi, więc przejdź cały proces do końca.

  2. W n8n otwórz zakładkę Wykonania. Odbiór powinien pojawić się w kilka sekund.

  3. Wejdź w szczegóły wykonania i kliknij węzeł Webhook. Rozwiń body, później data, a potem answers. Przy każdej odpowiedzi znajdziesz question.id, label oraz answer.

  4. Spisz ID każdego pytania. Możesz kliknąć Przypnij, żeby kolejne kroki testować na tej odpowiedzi bez ponownego wypełniania formularza.

Webhook node output in n8n with a demo request

Zawsze wybieraj odpowiedzi po ID pytania. Odpowiedzi przychodzą jako lista. Po dodaniu pytania kolejność się zmienia, ale ID nie.

E-mail leada jest w odpowiedziach. Nie pobieraj z data.email: to pole bywa puste, jeśli podany w pytaniu e-mailowym. Pobierz adres e-mail z odpowiedzi na to pytanie.

Wariant A — Arkusz jako CRM, plus powiadomienie e-mailowe

Workflow po webhooku ma trzy kroki: Przygotuj lead pobiera odpowiedzi, Zapisz lead do arkusza dodaje nowy wiersz, a Wyślij powiadomienie e-mailowe przekazuje info o nowym leadzie.
​

Przygotuj lead

  1. Dodaj po Webhook węzeł Edytuj pola (Set) i nazwij go Przygotuj lead.

  2. W sekcji Pola do ustawienia dodaj jedno pole na każdą kolumnę z arkusza (typ String). Nazwa musi być identyczna jak nagłówek, wartość uzupełnij według tabeli niżej.

  3. Podmień swoje identyfikatory pytań i strefę czasową jeśli nie Europe/Prague.

Nazwa pola

Wartość

Response ID

{{ $json.body.data.responseId }}

Received

{{ DateTime.fromISO($json.body.data.submitted).setZone('Europe/Prague').toFormat('yyyy-MM-dd HH:mm') }}

Name

{{ $json.body.data.answers.find(a => a.question.id === 90403243)?.answer ?? "" }}

E-mail

{{ $json.body.data.answers.find(a => a.question.id === 90403263)?.answer ?? "" }}

Company

{{ $json.body.data.answers.find(a => a.question.id === 90403245)?.answer ?? "" }}

Team size

{{ $json.body.data.answers.find(a => a.question.id === 90403247)?.answer?.labels?.[0] ?? "" }}

What they want to see

{{ $json.body.data.answers.find(a => a.question.id === 90403244)?.answer ?? "" }}

Status

New (zwykły tekst, nie wyrażenie)

Language

{{ $json.body.data.langCode }}

Prepare lead node in n8n with Fields to Set

Zapisz lead do arkusza

  1. Dodaj po Przygotuj lead węzeł Google Sheets, nazwij go Zapisz lead do arkusza, wybierz Dołącz lub zaktualizuj wiersz.

  2. Połącz konto Google, ustaw arkusz w Dokument oraz kartę leads w Arkusz.

  3. Ustaw Mapuj automatycznie i Kolumnę do dopasowania na Response ID.

  4. W Opcjach dodaj Format komórki i wybierz Pozwól n8n na formatowanie – inaczej Google Sheets może zamienić odpowiedzi typu 2-10 w daty.

Save lead to sheet node: Append or Update Row, Map Automatically, Column to match on Response ID

Po co osobny krok Przygotuj lead? Jeśli wybierzesz inny arkusz lub kartę w węźle Google Sheets, n8n resetuje mapowanie kolumn w tym węźle. Dzięki wyrażeniom w Przygotuj lead nie tracisz mapowań.

Wyślij powiadomienie e-mailowe

  1. Dodaj po Zapisz lead do arkusza węzeł Gmail, nazwij go Wyślij powiadomienie e-mailowe, wybierz Wiadomość i Wyślij.

  2. Połącz swoje konto Gmail i wpisz swój adres w Do.

  3. Ustaw Temat na Nowe zgłoszenie demo: {{ $('Prepare lead').item.json.Name }} ({{ $('Prepare lead').item.json.Company }}).

  4. Ustaw Typ wiadomości na HTML i napisz Wiadomość z danymi leada, np. {{ $('Prepare lead').item.json['E-mail'] }} jako adres e-mail.

  5. W Opcjach dodaj Wyślij odpowiedzi do z {{ $('Prepare lead').item.json['E-mail'] }}, aby Odpowiedź trafiła prosto do leada. Wyłącz Dodaj atrybucję n8n.

Gmail node E-mail the new lead with To, Subject, Message and Send Replies To

Po każdej zmianie kliknij Opublikuj. Zmiany wchodzą w życie po ponownej publikacji.

n8n workflow: Survio Webhook, Prepare lead, Save lead to sheet, E-mail the new lead

Prześlij kolejne zgłoszenie. Nowy wiersz ze statusem New pojawi się w arkuszu, a powiadomienie e-mailowe otrzymasz po chwili.

The leads tab in Google Sheets with a Status dropdown


​

Wariant B — Każde zgłoszenie demo trafia do HubSpot

Tutaj lead trafia od razu do HubSpot CRM jako kontakt ze statusem Lead, więc dział sprzedaży przejmuje go tam, gdzie już pracuje. Workflow po webhooku to: Przygotuj lead oraz Utwórz lub zaktualizuj kontakt.

Przygotuj lead

Dodaj po Webhook węzeł Edytuj pola (Set), nazwij go Przygotuj lead i uzupełnij pola typu String według poniższej tabeli. Pamiętaj o własnych identyfikatorach pytań.

Nazwa pola

Wartość

E-mail

{{ $json.body.data.answers.find(a => a.question.id === 90403263)?.answer ?? "" }}

First name

{{ ($json.body.data.answers.find(a => a.question.id === 90403243)?.answer ?? "").trim().split(" ")[0] }}

Last name

{{ ($json.body.data.answers.find(a => a.question.id === 90403243)?.answer ?? "").trim().split(" ").slice(1).join(" ") }}

Company

{{ $json.body.data.answers.find(a => a.question.id === 90403245)?.answer ?? "" }}

Message

Demo zgłoszone przez Survio. Wielkość zespołu: {{ $json.body.data.answers.find(a => a.question.id === 90403247)?.answer?.labels?.[0] }}. Chce zobaczyć: {{ $json.body.data.answers.find(a => a.question.id === 90403244)?.answer }}

Wartość pól Imię i Nazwisko oddzielana jest z jednego pola „Twoje imię i nazwisko”. Jeśli Twój formularz pyta osobno o imię i nazwisko, wybierz odpowiednie ID pytania osobno.
​

Utwórz lub zaktualizuj kontakt

  1. Dodaj po Przygotuj lead węzeł HubSpot, nazwij go Utwórz lub zaktualizuj kontakt, wybierz zasób Kontakt i operację Utwórz lub zaktualizuj.

  2. Połącz konto HubSpot.

  3. W polu E-mail wpisz {{ $json['E-mail'] }}. HubSpot używa e-maila do wyszukania kontaktu, więc ponowne zgłoszenie go zaktualizuje, nie dubluje.

  4. W Właściwościach kontaktu kliknij Dodaj właściwość i dodaj First Name, Last Name, Company Name oraz Message z odpowiednimi polami z Przygotuj lead. Ustaw Lifecycle Stage Name or ID na Lead.

HubSpot node Create or update contact with Email, contact properties and Lifecycle Stage Lead

Kliknij Opublikuj — po każdej zmianie.

n8n workflow: Survio Webhook, Prepare lead, Create or update contact

Kontakt może być automatycznie powiązany z firmą. Jeśli w HubSpot istnieje firma z tą samą domeną e-mail, kontakt zostanie powiązany z firmą i przypisany do jej właściciela. Najczęściej tego właśnie chcesz – sprawdź na leadzie testowym.

Pobierz gotowy workflow

Nie musisz budować wszystkiego ręcznie – pobierz gotowy workflow z załączników na końcu artykułu: survio-demo-requests-to-sheet-and-gmail.json dla wariantu A lub survio-demo-requests-to-hubspot.json dla wariantu B. Następnie:

  1. W n8n utwórz pusty workflow. Otwórz menu (trzy kropki) przy nazwie i wybierz Importuj, potem Z pliku. Wskaż pobrany plik.

  2. W Przygotuj lead podmień identyfikatory pytań, a w przypadku A także strefę czasową.

  3. Wariant A: otwórz Zapisz lead do arkusza. Po połączeniu konta Google i wybraniu dokumentu n8n ustawi ręczne mapowanie – zmień na Mapuj automatycznie, kolumnę dopasowania ustaw na Response ID. Połącz też Gmaila w Wyślij powiadomienie e-mailowe i podaj swój adres.

  4. Wariant B: otwórz Utwórz lub zaktualizuj kontakt i połącz HubSpot.

  5. Otwórz Survio Webhook, skopiuj Production URL do Survio (patrz krok 4) i kliknij Opublikuj.

n8n workflow menu with Import and From file

Przetestuj całość od początku do końca

  1. Otwórz swoją stronę, wypełnij formularz pop-up i prześlij zgłoszenie.

  2. Wariant A: sprawdź, że odpowiedni wiersz pojawia się na zakładce leads i że otrzymujesz powiadomienie e-mailowe. Odpowiedz – sprawdź, czy odpowiedź trafia do leada.

  3. Wariant B: otwórz HubSpot i upewnij się, że kontakt pojawił się jako Lead i zgłoszenie demo jest w polu Message.

  4. Wszystkie zgłoszenia i dane znajdziesz w zakładce Wykonania w n8n.

Rozwiązywanie problemów

Objaw

Przyczyna

Jak naprawić

Brak danych w n8n

W Survio wybrano Test URL lub workflow nie jest opublikowany

Wklej Production URL do Survio i kliknij Opublikuj

Survio nie przyjmuje URL webhooka z własnego n8n

n8n pokazuje adres wewnętrzny zamiast publicznego

Ustaw w n8n zmienną WEBHOOK_URL na publiczny adres https, skopiuj URL ponownie

„Listen for test event” niczego nie pokazuje mimo wysłania formularza

Survio wysyła na Production URL, nasłuch działa na Test URL

Sprawdź zakładkę Wykonania

Najnowsza zmiana nie działa

Workflow opublikowany, ale ostatnia zmiana nie została zatwierdzona (przycisk Opublikuj z kropką)

Kliknij Opublikuj jeszcze raz

Kolumna pozostaje pusta, a nowa pojawia się na końcu arkusza

Nazwa pola w Przygotuj lead nie zgadza się z nagłówkiem kolumny

Zmień nazwę pola w workflow, usuń niepotrzebną kolumnę

Ten sam lead pojawia się dwa razy

Wybrano tylko „Dodaj wiersz”, brak kolumny dopasowania

Użyj „Dołącz lub zaktualizuj wiersz”, dopasowanie po Response ID

Odpowiedź trafia do Ciebie zamiast do leada

Nie ustawiono „Wyślij odpowiedzi do” w Gmail

Dodaj „Wyślij odpowiedzi do” z adresem e-mail leada

Wielkość zespołu odczytywana jako data

Google Sheets odczytuje 2-10 jako datę

W Zapisz lead do arkusza ustaw Format komórki na Pozwól n8n na formatowanie

Brakuje adresu e-mail

Pobierasz z data.email

Pobierz z odpowiedzi na pytanie e-mailowe

Create or update contact nie działa

E-mail pusty, nieprawidłowy lub połączenie z HubSpot wygasło

Ustaw pytanie e-mailowe jako obowiązkowe, połącz ponownie HubSpot

Survio wyłączyło webhook

Przez 5 dni URL webhooka był nieosiągalny

Napraw błąd i aktywuj webhook ponownie w Survio

Warto wiedzieć

  • Survio wysyła tylko ukończone odpowiedzi – jedna wiadomość na odpowiedź, zwykle w kilka sekund. Formularz zamknięty w trakcie nie zostaje przesłany.

  • Nie ma wysyłki wstecznej: odpowiedzi przesłane przed ustawieniem webhooka lub podczas jego pauzy nie zostaną przesłane.

  • Przy niepowodzeniu Survio ponawia wysyłkę maksymalnie 8 razy przez ok. 27 godzin, każda próba czeka do 30 sekund na odpowiedź. Dopasowanie po Response ID zapobiega duplikatom przy próbach ponownych.

  • Po 5 dniach nieudanych dostaw Survio wyłącza webhook – trzeba aktywować ręcznie.

  • Wstrzymanie webhooka zachowuje miejsce w limicie, usunięcie jest nieodwracalne.

  • Survio nie zachowuje historii dostaw – log znajdziesz w zakładce Wykonania w n8n.

  • Wysyłanie odpowiedzi do webhooków nie zużywa limitu odpowiedzi z planu.

Chcesz, żebyśmy ustawili wszystko za Ciebie? Wejdź na stronę Webhooks w Survio, kliknij Zdobądź ekspercką konfigurację, napisz co ma się dziać, a my przydzielimy specjalistę: skonfigurujemy, przetestujemy i oddamy Ci gotowy webhook.

Czy to odpowiedziało na twoje pytanie?