Naar de hoofdinhoud

Groei – Elke lead direct in je CRM: stuur Survio demo-aanvragen naar een sheet of HubSpot

Maak van een Survio-enquête jouw leadgenerator: elke demo-aanvraag wordt een nieuwe rij in Google Sheets mét een e-mail naar jou, of een nieuw contact in HubSpot. Gebruik n8n en onze kant-en-klare workflows voor een vliegende start.

Geschreven door Success Team Survio

Welke situatie past bij jou?

Situatie A – eenvoudig voor iedereen: elke demo-aanvraag verschijnt in een Google Sheet die je als CRM gebruikt én je ontvangt een e-mail.

Situatie B – voor teams met een CRM: elke demo-aanvraag wordt automatisch een lead in HubSpot, klaar voor je salesteam.

Een bezoeker vult je demo-aanvraagformulier in en binnen een paar seconden is de lead zichtbaar in jouw CRM. Een klein bedrijf krijgt direct een nieuwe rij in het leads-sheet en ontvangt een e-mail om meteen op te reageren; een salesteam ziet het contact gelijk in HubSpot verschijnen. Hoe je het ook instelt, je kunt razendsnel contact opnemen terwijl de lead nog vers is.
​

Hier zie je een voorbeeld van de e-mail die je ontvangt bij elke nieuwe demo-aanvraag in situatie A:
​

New demo request e-mail in Gmail


​

En zo ziet een nieuw contact in HubSpot eruit bij situatie B:
​

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

Hoe werkt dit? Survio stuurt elke ingevulde antwoord rechtstreeks naar een webhook-URL. Een automatiseringstool (in dit voorbeeld n8n) vangt dit op en verwerkt de lead waar jij wilt. Survio regelt het versturen, n8n doet de rest.

Nieuw met webhooks in Survio? Start bij Webhooks: antwoordmelding per e-mail naar andere tools sturen en kom daarna hier terug.
​

Wat je gaat bouwen

Beide situaties starten hetzelfde: een kort demo-aanvraagformulier op je website, via een webhook naar n8n.

In één oogopslag

Situatie A: Google Sheet als CRM

Situatie B: HubSpot

Resultaat

Elke aanvraag wordt een rij in Google Sheets met een statuskolom en je ontvangt een e-mail

Elke aanvraag wordt een nieuw contact in HubSpot CRM, klaar voor je salesteam

Tools

Survio, n8n, Google Sheets, Gmail

Survio, n8n, HubSpot

Ideaal voor

Een klein bedrijf dat z’n eigen leads opvolgt

Een salesteam dat werkt in HubSpot

Voor je begint

  • Een Survio-enquête met een betaald abonnement. Webhooks zijn niet beschikbaar bij Free en elk abonnement heeft een limiet per enquête (zie het artikel over webhooks).

  • Een n8n-account, via n8n Cloud of zelf gehost.

  • Situatie A: een Google-account voor Google Sheets en Gmail. Situatie B: een HubSpot-account.

In dit voorbeeld gebruiken we een kort demo-aanvraagformulier met: naam, zakelijk e-mailadres (via een e-mailvraag), bedrijf, teamgrootte (via meerkeuzevraag) en optioneel "Wat wil je zien in de demo?". Jouw formulier mag hiervan afwijken. Je koppelt simpelweg je eigen vragen bij situatie A of B.
​

Stap 1 — Formulier op je website plaatsen

  1. Open je enquête, ga naar Antwoorden verzamelen en kies Op het web.

  2. Kies Pop-up venster en bepaal wanneer het zichtbaar is. Wil je een kort formulier? Zet dan Welkomstpagina verbergen aan, zodat bezoekers meteen bij de eerste vraag beginnen.

  3. Klik op Embed op website en plak de code op je website.

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

Meer opties, zoals een Knop of side-bar widget, vind je in Enquête insluiten op je website.
​

Stap 2 — Alleen situatie A: leads-sheet voorbereiden

  1. Maak een nieuwe Google Sheet aan en noem het eerste tabblad leads.

  2. Vul in rij 1 de kolomnamen in: Response ID, Received, Name, E-mail, Company, Team size, What they want to see, Status en Language.

  3. Selecteer de cellen onder Status, kies Invoegen → Keuzelijst, voeg de opties Nieuw, Gecontacteerd en Gereed toe (gebruik Nog een item toevoegen) en klik op Gereed.

Je sheet is nu een eenvoudige CRM. Nieuwe leads komen binnen als Nieuw. Heb je iemand gebeld of gemaild? Dan zet je de status op Gecontacteerd. Is de deal afgerond of niet doorgegaan? Zet de status op Gereed. Filter de kolom Status om overzicht te houden wie nog opvolging nodig heeft.

Stap 3 — Webhook aanmaken in n8n

  1. Maak in n8n een nieuwe workflow aan en voeg een Webhook-node toe als trigger.

  2. Stel HTTP-methode in op POST.

  3. Ga naar het tabblad Production URL en kopieer het adres.

  4. Klik op Publiceren. De productie-URL accepteert alleen leveringen na publicatie.

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

Gebruik altijd de Production URL, niet de Test URL. De test-URL ‘luistert’ alleen zolang de editor open staat. Zodra je die sluit, mislukken leveringen van Survio. Survio probeert een mislukte levering een dag lang opnieuw; na vijf dagen uitval wordt de webhook automatisch uitgeschakeld.

Stap 4 — Koppel de enquête in Survio

  1. Open je enquête en ga naar Antwoorden verzamelen.

  2. Klik in de linkerzijbalk onder Automatiseringen & Integraties op Webhooks en daarna op + Webhook toevoegen.

  3. Plak de n8n Production URL in Webhook URL en klik op Webhook opslaan. De webhook staat nu direct aan.

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


​

Stap 5 — Verstuur een test en haal je vraag-ids op

  1. Vul het formulier in via de normale link en verstuur het. Survio verzendt alleen volledig ingevulde enquêtes, dus vul alles in tot het einde.

  2. Open in n8n het tabblad Uitvoeringen. Het resultaat komt meestal binnen enkele seconden aan.

  3. Open de uitvoering en klik op de Webhook-node. Klap body uit, dan data, dan answers. Bij elk antwoord zie je een question.id, het label en het answer.

  4. Noteer de id van elke vraag. Je kunt ook op Pinnen klikken om bij het bouwen steeds dit antwoord te blijven gebruiken zonder het formulier opnieuw in te vullen.

Webhook node output in n8n with a demo request

Selecteer antwoorden altijd op basis van vraag-id. Antwoorden komen als een lijst binnen en bij een wijziging verschuiven de posities. Vraag-ids veranderen nooit.

Het e-mailadres van de lead vind je bij de antwoorden. Gebruik niet data.email: dat blijft leeg als het e-mailadres via een e-mailvraag is ingevuld. Haal het altijd uit het antwoord op de e-mailvraag.

Situatie A — Sheet als CRM + e-mailmelding

Na de webhook bestaat je workflow uit drie stappen: Lead voorbereiden verzamelt de antwoorden, Lead opslaan in sheet voegt een rij toe, en E-mail de nieuwe lead stuurt jou direct een notificatie.
​

Lead voorbereiden

  1. Voeg een Velden bewerken (Set)-node toe direct achter de Webhook-node en noem hem Lead voorbereiden.

  2. Voeg onder Velden instellen voor elke sheetkolom een veld toe met type Tekst. De veldnaam moet precies gelijk zijn aan de kolomtitel; vul als waarde de juiste expressie in.

  3. Vervang de voorbeeld-vraag-ids (90403243 enz.) door jouw ids en Europe/Prague door je tijdzone.

Veldnaam

Waarde

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

Nieuw (platte tekst, geen expressie)

Language

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

Prepare lead node in n8n with Fields to Set

Lead opslaan in sheet

  1. Voeg een Google Sheets-node toe achter Lead voorbereiden, noem hem Lead opslaan in sheet en kies de actie Rij toevoegen of bijwerken.

  2. Koppel je Google-account, selecteer je spreadsheet bij Document en kies het tabblad leads bij Sheet.

  3. Schakel Kolommen automatisch koppelen in en kies bij Kolom voor matching de Response ID.

  4. Voeg bij Opties Celnotatie toe en kies n8n laten formatteren. Zo voorkom je dat Google Sheets 2-10 als datum ziet.

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

Waarom een aparte stap voor ‘Lead voorbereiden’? Als je een ander spreadsheet of tabblad kiest in de Google Sheets-node, verlies je de kolomkoppelingen in die node. Met de expressies in Lead voorbereiden hoef je niets aan te passen.

E-mail de nieuwe lead

  1. Voeg een Gmail-node toe, noem deze E-mail de nieuwe lead en kies Bericht → Verzenden.

  2. Koppel je Gmail-account en vul je eigen e-mailadres in bij Aan.

  3. Zet Onderwerp op Nieuwe demo-aanvraag: {{ $('Lead voorbereiden').item.json.Name }} ({{ $('Lead voorbereiden').item.json.Company }}).

  4. Zet E-mailtype op HTML en maak je Bericht met de leadgegevens, bijvoorbeeld {{ $('Lead voorbereiden').item.json['E-mail'] }} voor het e-mailadres.

  5. Voeg bij Opties Antwoorden verzenden naar toe met {{ $('Lead voorbereiden').item.json['E-mail'] }}, zodat je rechtstreeks op de lead kunt reageren, en zet n8n naamsvermelding toevoegen uit.

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

Klik daarna weer op Publiceren. Je wijzigingen staan pas live als je opnieuw publiceert.

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

Dien nog een aanvraag in. Je krijgt een nieuwe rij in jouw sheet, status Nieuw, en de e-mail verschijnt zoals hierboven.

The leads tab in Google Sheets with a Status dropdown


​

Situatie B — Stuur elke demo-aanvraag naar HubSpot

Hier komt de lead automatisch als contact in HubSpot CRM, direct klaar om opgevolgd te worden. De workflow bestaat uit twee hoofdtaken: Lead voorbereiden en Contact aanmaken of bijwerken.

Lead voorbereiden

Plaats achter de Webhook-node een Velden bewerken (Set)-node, noem die Lead voorbereiden en voeg deze tekstvelden toe. Vervang de vraag-ids steeds door jouw eigen ids.

Veldnaam

Waarde

E-mail

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

Voornaam

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

Achternaam

{{ ($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 ?? "" }}

Bericht

Demo-aanvraag via Survio. Teamgrootte: {{ $json.body.data.answers.find(a => a.question.id === 90403247)?.answer?.labels?.[0] }}. Wil zien: {{ $json.body.data.answers.find(a => a.question.id === 90403244)?.answer }}

De velden Voornaam en Achternaam splitsen de naam uit één vraag. Vraag je in het formulier apart om voornaam en achternaam, koppel je die hier simpelweg aan de juiste vraag-ids.
​

Contact aanmaken of bijwerken

  1. Voeg een HubSpot-node toe, noem deze Contact aanmaken of bijwerken, kies de resource Contact en de actie Aanmaken of bijwerken.

  2. Koppel je HubSpot-account.

  3. Zet E-mail op {{ $json['E-mail'] }}. HubSpot gebruikt e-mail voor matching; een bestaande lead wordt bijgewerkt, geen dubbele records dus.

  4. Klik bij Contacteigenschappen op Eigenschap toevoegen en vul in: Voornaam, Achternaam, Bedrijfsnaam en Bericht met de juiste waarden uit Lead voorbereiden. Zet Naam of ID levenscyclusfase op Lead.

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

Klik opnieuw op Publiceren.

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

Het contact kan automatisch aan een bedrijf gekoppeld worden. Als HubSpot een bedrijf vindt met hetzelfde e-maildomein, koppelt het dit direct. Het contact kan dan automatisch de eigenaar van dat bedrijf krijgen. Meestal wenselijk, maar test het altijd eerst even.

Download een kant-en-klare workflow

Wil je niet handmatig bouwen? Download onze workflow voor jouw situatie onderaan dit artikel: survio-demo-requests-to-sheet-and-gmail.json (situatie A), of survio-demo-requests-to-hubspot.json (situatie B). Daarna:

  1. Maak een lege workflow in n8n. Open het menu (de drie puntjes naast de naam) en kies Importeren → Vanaf bestand. Selecteer het net gedownloade bestand.

  2. Open Lead voorbereiden en zet jouw vraag-ids erin, bij situatie A vervang je ook Europe/Prague door jouw tijdzone.

  3. Situatie A: open Lead opslaan in sheet. Zie je een rood waarschuwingsicoon? Koppel dan jouw Google-account en selecteer je spreadsheet met het tabblad leads. n8n zet Kolommen handmatig koppelen direct aan, zet dat terug naar Kolommen automatisch koppelen en kies Kolom voor matching als Response ID. Open nu E-mail de nieuwe lead, koppel jouw Gmail-account en zet je eigen adres bij Aan.

  4. Situatie B: open Contact aanmaken of bijwerken en maak verbinding met je HubSpot-account.

  5. Open Survio Webhook, kopieer de Production URL naar Survio (zie stap 4) en klik op Publiceren.

n8n workflow menu with Import and From file

Test alles van A tot Z

  1. Ga naar je website, vul het pop-upformulier in en verzend het.

  2. Situatie A: check of er een rij met status Nieuw op het tabblad leads verschijnt en of de e-mail is afgeleverd. Reageer op de mail en kijk of jouw antwoord bij de lead aankomt.

  3. Situatie B: open HubSpot en kijk of het contact daar staat onder fase Lead en het bericht correct is ingevuld.

  4. Bekijk het tabblad Uitvoeringen in n8n — elke levering en alle gegevens vind je hier terug.

Problemen oplossen

Symptoom

Oorzaak

Oplossing

Er komt niks binnen in n8n

Test URL gebruikt in Survio, of de workflow is niet gepubliceerd

Kopieer de Production URL naar Survio en klik op Publiceren

Survio slaat de webhook URL van een zelf gehoste n8n niet op

n8n toont het interne in plaats van het publieke adres

Stel de WEBHOOK_URL van n8n in op je publieke https-adres en kopieer de URL opnieuw

"Listen for test event" toont niks, terwijl het formulier is ingevuld

Survio stuurt naar de Production URL; listen kijkt naar de Test URL

Gebruik het tabblad Uitvoeringen om resultaten te bekijken

Je laatste wijziging heeft geen effect

De workflow is gepubliceerd, maar je wijziging niet (de knop Publiceren toont een stip)

Klik opnieuw op Publiceren

Een kolom blijft leeg en er verschijnt een extra kolom helemaal achteraan

Een veldnaam in Lead voorbereiden wijkt af van de kolomtitel

Pas de veldnaam in Lead voorbereiden aan, verwijder daarna de extra kolom

Dezelfde lead verschijnt dubbel

Actie ingesteld op Rij toevoegen, of geen kolom ingesteld voor matching

Gebruik Rij toevoegen of bijwerken en match op Response ID

Reageren gaat naar jezelf in plaats van de lead

Antwoorden verzenden naar niet ingevuld bij Gmail-node

Vul bij Opties ‘Antwoorden verzenden naar’ in met het e-mailadres van de lead

Teamgrootte wordt als datum getoond

Google Sheets leest 2-10 als datum

Stel bij Lead opslaan in sheet de celnotatie in op n8n laten formatteren

E-mailadres ontbreekt

Het wordt uit data.email gehaald

Gebruik altijd het antwoord uit de e-mailvraag

Contact aanmaken of bijwerken mislukt

E-mailveld is leeg of ongeldig, of HubSpot-verbinding is verlopen

Maak de e-mailvraag verplicht en maak verbinding opnieuw in de node

Survio heeft de webhook uitgeschakeld

De webhook-URL is vijf dagen op rij mislukt

Los het probleem op en schakel de webhook weer aan in Survio

Goed om te weten

  • Survio stuurt alleen volledig ingevulde antwoorden – elke antwoord direct één keer. Formulieren die halverwege sluiten worden niet verzonden.

  • Er worden nooit gegevens achteraf verstuurd: geen oude antwoorden van vóór het bestaan van de webhook of tijdens een pauze.

  • Mislukte leveringen worden tot acht keer opnieuw geprobeerd in ongeveer 27 uur. Elke poging wacht maximaal 30 seconden op respons. Matching op Response ID voorkomt dubbele rijen.

  • Na vijf dagen storingen schakelt Survio de webhook uit en moet je deze handmatig weer activeren.

  • Pauzeer je een webhook, dan blijft deze bewaard; verwijderen is definitief.

  • Survio houdt geen leveringsgeschiedenis bij in de app. Het tabblad Uitvoeringen in n8n is je logboek.

  • Antwoorden naar webhooks sturen kost geen extra antwoorden van je abonnement.

Liever dat wij het voor je regelen? Klik in Survio op de Webhooks-pagina op Get expert setup, geef je wensen door en ons team bouwt, test en levert een werkende webhook voor jou op.

Was dit een antwoord op uw vraag?