Vai al contenuto principale

Crescita – Ogni lead arriva subito nel tuo CRM: invia le richieste demo di Survio su un foglio o su HubSpot

Trasforma un modulo Survio in una pipeline di lead: ogni richiesta demo diventa una riga in Google Sheets con una notifica via e-mail, o un nuovo contatto in HubSpot. Segui la guida con n8n e workflow già pronti all’uso.

Scritto da Success Team Survio

Quale soluzione fa al caso tuo?

Case A – semplice, per tutti: ogni richiesta demo finisce in un Google Sheet che usi come CRM e ricevi anche un’e-mail.

Case B – per chi lavora già con un CRM: ogni richiesta demo diventa un lead su HubSpot, subito visibile per il tuo team vendite.

Un visitatore compila il modulo per la demo e, in pochi secondi, il lead è già nel tuo CRM. Se hai una piccola azienda, ricevi una nuova riga nel foglio lead e una e-mail a cui puoi rispondere; se hai un team vendite, trovi il nuovo contatto diretto su HubSpot. In ogni caso, puoi rispondere subito al lead mentre è ancora sul tuo sito.
​

Questa è la e-mail che ricevi per ogni nuova richiesta demo (caso A):
​

New demo request e-mail in Gmail


​

Questo invece è il nuovo contatto su HubSpot (caso B):
​

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

Come funziona. Survio invia ogni Risposta completata a un URL Webhook. Uno strumento di automazione (in questa guida usiamo n8n) riceve questi dati e salva il lead dove lavori. Survio si occupa dell’invio, n8n fa tutto il resto.

Se sei alle prime armi con i webhooks su Survio, parti da Webhooks: invia Risposte ai tuoi strumenti in tempo reale e poi torna qui.
​

Cosa realizzerai

Entrambe le soluzioni iniziano allo stesso modo: un breve modulo richiesta demo sul tuo sito, inviato a n8n tramite un webhook.

In sintesi

Caso A: un foglio come CRM

Caso B: HubSpot

Risultato

Ogni richiesta diventa una riga in Google Sheets con una colonna Stato e ricevi subito una e-mail

Ogni richiesta crea un nuovo contatto in HubSpot CRM, pronto per il team vendite

Strumenti

Survio, n8n, Google Sheets, Gmail

Survio, n8n, HubSpot

Ideale per

Piccole aziende che gestiscono i lead in autonomia

Team vendite già organizzati in HubSpot

Cosa ti serve prima di iniziare

  • Un Sondaggio Survio su un piano a pagamento. I Webhook non sono disponibili nel piano Free e ogni piano include un certo numero di Webhook per Sondaggio (vedi l’articolo dedicato ai Webhook).

  • Un account n8n, in cloud o self-hosted.

  • Caso A: un account Google per Google Sheets e Gmail. Caso B: un account HubSpot.

In questa guida usiamo un modulo demo molto semplice: nome, email lavorativa (domanda di tipo e-mail), azienda, dimensione del team (domanda A scelta) e campo opzionale “Cosa ti piacerebbe vedere nella demo?”. Il tuo modulo può essere diverso; dovrai solo associare le tue domande nel caso A o B.
​

Passo 1 — Metti il modulo sul tuo sito

  1. Apri il tuo Sondaggio, vai su Raccogli risposte e scegli Sul web.

  2. Seleziona Popup e decidi quando farlo apparire. Per moduli brevi, attiva Nascondi la Pagina di benvenuto per partire subito dalla prima Domanda.

  3. Clicca su Incorpora nel sito web e incolla il codice direttamente sul sito.

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

Se vuoi altre opzioni, come Pulsante o widget laterale, vai qui: Incorpora un Sondaggio sul tuo sito.
​

Passo 2 — Solo per il caso A: prepara il foglio lead

  1. Crea un nuovo Google Sheet e rinomina la prima scheda in leads.

  2. Nella riga 1, scrivi come intestazioni di colonna: Response ID, Received, Name, E-mail, Company, Team size, What they want to see, Status e Language.

  3. Seleziona le celle della colonna Status sotto l’intestazione, vai su Inserisci → Dropdown, inserisci le opzioni New, Contacted, Done (puoi usare Aggiungi altra voce), quindi clicca su Fatto.

Adesso il tuo foglio è un semplice CRM. I nuovi lead arrivano come New. Quando li contatti, passa a Contacted e poi a Done quando chiudi o perdi la trattativa. Filtra la colonna Status per sapere chi aspetta ancora una Risposta.

Passo 3 — Crea il webhook in n8n

  1. Su n8n, crea un nuovo workflow e aggiungi un nodo Webhook come trigger.

  2. Imposta HTTP Method su POST.

  3. Vai sulla scheda Production URL e copia l’indirizzo.

  4. Clicca su Pubblica. L’URL di produzione accetta invii solo dopo la pubblicazione del workflow.

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

Usa solo l’URL di produzione, mai quello di test. L’URL di test funziona solo mentre l’editor è in ascolto per l’evento di prova e Survio fallisce l’invio se lo chiudi. Survio ritenta un invio fallito circa per un giorno, poi disattiva il Webhook dopo 5 giorni di errori.

Passo 4 — Collega il Sondaggio su Survio

  1. Apri il Sondaggio e vai su Raccogli risposte.

  2. Nella barra a sinistra, sotto Automazioni & integrazioni, seleziona Webhooks e clicca su + Aggiungi un webhook.

  3. Incolla l’URL di produzione di n8n in URL Webhook e clicca su Salva webhook. Il webhook diventa subito attivo.

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


​

Passo 5 — Invia una richiesta di test e trova gli id delle Domande

  1. Compila normalmente il modulo dal link e invialo. Survio invia solo Risposte complete, quindi arriva solo dopo che hai finito.

  2. Su n8n, apri la scheda Esecuzioni. La Risposta arriva in pochi secondi.

  3. Apri l’esecuzione e clicca sul nodo Webhook. Espandi body, poi data e answers. Troverai per ogni Risposta il question.id, il label della Domanda e la answer.

  4. Segnati l’id di ciascuna Domanda. Puoi anche cliccare su Pin per lavorare sulla stessa Risposta senza reinviare il modulo.

Webhook node output in n8n with a demo request

Usa sempre l’id Domanda per le Risposte. Le Risposte sono in una lista: se aggiungi una Domanda, cambiano le posizioni, ma gli id delle Domande restano fissi.

L’e-mail del lead si trova tra le Risposte. Non serve leggere data.email: rimane vuoto se l’e-mail viene da una Domanda di tipo e-mail. Prendi il dato dalla Risposta collegata alla e-mail.

Caso A — Un foglio come CRM e una e-mail

Il workflow continua con tre step dopo il webhook: Preparazione lead per estrarre i dati, Salva lead nel foglio per aggiungere la riga, e Invia e-mail al nuovo lead per ricevere subito la notifica.
​

Preparazione lead

  1. Aggiungi un nodo Modifica campi (Set) dopo il Webhook, rinominalo Preparazione lead.

  2. Sotto Campi da impostare, aggiungi un campo per ogni colonna del foglio e lascia Stringa come tipo. Il nome deve corrispondere all’intestazione di colonna, il valore è l’espressione qui sotto.

  3. Sostituisci gli id Domanda con quelli del passo 5 e usa il tuo fuso orario invece di Europe/Prague se serve.

Nome campo

Valore

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 (testo, non espressione)

Language

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

Prepare lead node in n8n with Fields to Set

Salva lead nel foglio

  1. Aggiungi un nodo Google Sheets dopo Preparazione lead, chiamalo Salva lead nel foglio e scegli l’operazione Aggiungi o aggiorna riga.

  2. Collega il tuo account Google, poi scegli file sotto Documento e la scheda leads sotto Sheet.

  3. Imposta Mapping Column Mode su Mappa automaticamente e Colonna di confronto su Response ID.

  4. In Opzioni, aggiungi Formato cella e scegli Lascia formattare a n8n per evitare che Google Sheets trasformi Risposte come 2-10 in date.

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

Perché uno step a parte per Preparazione lead? Se cambi foglio o scheda di Google Sheets, n8n resetta la mappatura delle colonne. Usando le espressioni in Preparazione lead, non perdi nulla.

Invia e-mail al nuovo lead

  1. Aggiungi un nodo Gmail dopo Salva lead nel foglio, chiamalo Invia e-mail al nuovo lead e scegli Messaggio e Invia.

  2. Collega il tuo account Gmail e inserisci il tuo indirizzo nel campo A.

  3. Metti come Oggetto: Nuova richiesta demo: {{ $('Preparazione lead').item.json.Name }} ({{ $('Preparazione lead').item.json.Company }}).

  4. Imposta Tipo email su HTML e scrivi il Messaggio con i dettagli del lead, es: {{ $('Preparazione lead').item.json['E-mail'] }} per la e-mail.

  5. In Opzioni, aggiungi Rispondi a con {{ $('Preparazione lead').item.json['E-mail'] }} così la Risposta va subito al lead, e disattiva Aggiungi attribuzione n8n.

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

Ricorda: per rendere effettive le modifiche fatte dopo la pubblicazione, clicca nuovamente su Pubblica.

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

Invia un altro modulo di prova. Vedrai una nuova riga come New nel foglio e arriva anche la e-mail.

The leads tab in Google Sheets with a Status dropdown


​

Caso B — Invia ogni richiesta demo su HubSpot

Qui il lead viene subito inserito su HubSpot CRM come contatto con stato Lead, così il team vendite lo visualizza e gestisce direttamente dove lavora. Il workflow ha due step dopo il Webhook: Preparazione lead e Crea o aggiorna contatto.

Preparazione lead

Aggiungi un nodo Modifica campi (Set) subito dopo il Webhook, chiamalo Preparazione lead e inserisci questi campi Stringa, sostituendo gli id delle Domande con i tuoi.

Nome campo

Valore

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

Richiesta demo da Survio. Dimensione team: {{ $json.body.data.answers.find(a => a.question.id === 90403247)?.answer?.labels?.[0] }}. Vuole vedere: {{ $json.body.data.answers.find(a => a.question.id === 90403244)?.answer }}

I campi First name e Last name dividono il nome se hai una sola Domanda in stile “Il tuo nome”. Se il modulo chiede nome e cognome come Domande separate, prendi ogni Risposta dall’id Domanda giusto.
​

Crea o aggiorna contatto

  1. Aggiungi un nodo HubSpot dopo Preparazione lead, chiamalo Crea o aggiorna contatto e scegli risorsa Contatto e operazione Crea o aggiorna.

  2. Collega l’account HubSpot.

  3. Imposta Email su {{ $json['E-mail'] }}. HubSpot cerca i contatti precedenti con quella e-mail, così se tornano si aggiornano invece di duplicarsi.

  4. In Proprietà del contatto clicca su Aggiungi proprietà e inserisci First Name, Last Name, Company Name e Message con i valori estratti in Preparazione lead, poi indica Lifecycle Stage Name or ID come Lead.

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

Clicca di nuovo su Pubblica.

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

Il contatto può essere collegato automaticamente all’azienda. Se HubSpot trova una società con lo stesso dominio e-mail, lo collega e assegna anche il referente dell’azienda. Di solito è proprio quello che vuoi! Fai una prova per verificarlo.

Scarica il workflow pronto

Se vuoi evitare tutta la configurazione manuale del Passo 3 e dei casi A o B, puoi partire dai nostri workflow pronti. Scarica il file che ti serve a fine articolo: survio-demo-requests-to-sheet-and-gmail.json per il caso A, oppure survio-demo-requests-to-hubspot.json per il caso B. Poi:

  1. Su n8n, crea un workflow vuoto. Apri il menu (i tre puntini vicino al nome) e scegli Importa, poi Da file e seleziona il file scaricato.

  2. Apri Preparazione lead e aggiorna gli id Domande, e per il caso A anche il fuso orario.

  3. Caso A: entra in Salva lead nel foglio. Finché non finisci la configurazione, apparirà un segnale rosso. Collega l’account Google, scegli foglio e scheda leads. n8n imposterà la mappatura su manuale: reimposta su Mappa automaticamente e come Colonna di confronto scegli Response ID. Poi apri Invia e-mail al nuovo lead, collega Gmail e inserisci la tua e-mail in campo A.

  4. Caso B: apri Crea o aggiorna contatto e collega HubSpot.

  5. Apri Survio Webhook, copia l’URL di produzione su Survio (Passo 4) e clicca su Pubblica.

n8n workflow menu with Import and From file

Fai una prova dal vivo

  1. Visita il sito, compila il modulo popup e invialo.

  2. Caso A: controlla che compaia una nuova riga su leads con stato New e che tu riceva la e-mail. Rispondi e verifica che la Risposta arrivi direttamente al lead.

  3. Caso B: entra su HubSpot e assicurati che il contatto sia presente, in fase Lead, con tutta la richiesta nel campo Messaggio.

  4. Su n8n apri la scheda Esecuzioni: qui trovi il log di tutte le Risposte e i dati.

Risolvi problemi comuni

Sintomo

Causa

Soluzione

Nulla arriva su n8n

Su Survio è stato inserito l’URL di test o il workflow non è stato pubblicato

Copia l’URL di produzione su Survio e clicca Pubblica

Survio non salva l’URL webhook da n8n self-hosted

n8n mostra un indirizzo interno invece che pubblico

Imposta WEBHOOK_URL su https pubblico di n8n e copia di nuovo l’URL

"In ascolto per evento di test" non mostra nulla anche se il modulo è stato inviato

Survio invia a Production URL; l’ascolto segue l’URL di test

Guarda invece la scheda Esecuzioni

L’ultima modifica non ha effetto

Il workflow è pubblicato ma la modifica no (il pulsante Pubblica ha un punto)

Clicca di nuovo su Pubblica

Una colonna rimane vuota, ne appare una nuova in fondo

Un campo in Preparazione lead non coincide esattamente con l’intestazione

Rinomina il campo in Preparazione lead in modo che corrisponda e cancella la colonna extra

Lo stesso lead compare due volte

Operazione impostata su Aggiungi riga o manca la colonna di confronto

Usa Aggiungi o aggiorna riga e confronta su Response ID

La Risposta va a te invece che al lead

Rispondi a non impostato su Gmail

Aggiungi Rispondi a in Opzioni con la e-mail del lead

Team size appare come data

Google Sheets legge 2-10 come data

Nello step Salva lead nel foglio imposta Formato cella su Lascia formattare a n8n

L’indirizzo e-mail manca

Stai leggendo data.email

Leggi invece dalla Risposta alla tua Domanda di tipo e-mail nel modulo

Crea o aggiorna contatto fallisce

E-mail vuota/non valida o connessione HubSpot scaduta

Rendi la Domanda di tipo e-mail obbligatoria e riconnetti HubSpot sul nodo

Survio ha disattivato il Webhook

L’URL Webhook fallisce per 5 giorni consecutivi

Risolvi l’errore e riattiva il Webhook su Survio

Cose utili da sapere

  • Survio invia solo Risposte completate, una per messaggio, entro pochi secondi. I moduli chiusi prima non vengono inviati.

  • Non vengono mai inviate vecchie Risposte: né le precedenti al Webhook, né quelle raccolte mentre era disattivato.

  • Se la consegna fallisce, Survio riprova fino a 8 volte in circa 27 ore. Ad ogni tentativo attende Risposta fino a 30 secondi. Usare il match su Response ID evita duplicati nelle righe in caso di retry.

  • Se le consegne falliscono per 5 giorni consecutivi, Survio disattiva automaticamente il Webhook e devi riattivarlo tu.

  • Mettere in pausa un Webhook ne mantiene il collegamento; eliminarlo invece è definitivo.

  • Survio non mostra la cronologia delle consegne nell’app. Per vedere tutto, usa la scheda Esecuzioni di n8n.

  • L’invio di Risposte a Webhook non consuma altre Risposte dal piano.

Vuoi che lo configuriamo noi? Sulla pagina Webhooks di Survio, clicca su Configurazione esperto, spiegaci cosa vuoi ottenere e il nostro team lo configurerà, testerà e ti invierà un Webhook già pronto all’uso.

Hai ricevuto la risposta alla tua domanda?