Vai al contenuto principale

Analisi – I tuoi report si aggiornano da soli: invia ogni risposta Survio a Google Sheets

Manda in automatico ogni risposta completata su Survio in un Google Sheet e crea subito un grafico live o una tabella pivot. Segui la guida passo passo: ti diamo anche il flusso già pronto da scaricare con n8n.

Scritto da Success Team Survio

Quale soluzione fa per te?

Casistica A – semplice per tutti: un unico grafico delle risposte che si aggiorna automaticamente a ogni nuova risposta.

Casistica B – per i team che devono confrontare gruppi: una Tabella pivot, filtrabile per canale, lingua, o qualsiasi altra colonna.

Ogni risposta raccolta dal Sondaggio diventa subito una nuova riga su Google Sheet non appena viene inviata. Crea un Grafico o una Tabella pivot sopra e il Report sarà sempre aggiornato da solo: senza esportazione, senza copia e incolla, senza aspettare che qualcuno prepari i dati.
​

Ecco il Report che ottieni nel caso A, un Grafico che si aggiorna da solo per ogni Risposta:
​

The report tab with response counts and a column chart


​

E questa invece è la Tabella pivot del caso B, filtrata per canale tramite uno slicer:
​

Pivot table with a slicer on the Channel column

Come funziona. Survio manda ogni Risposta completata a un URL Webhook. Uno strumento di automazione (in questa guida usiamo n8n) la riceve e scrive la riga sul tuo foglio. Survio spedisce, n8n scrive e il foglio aggiorna il Report automaticamente.

Nuovo/a sui Webhook di Survio? Inizia da Webhooks: invia risposte ai tuoi altri strumenti in tempo reale e poi torna qui.
​

Cosa farai

Entrambi i Report funzionano nello stesso modo: ogni Risposta diventa una nuova riga in una scheda chiamata responses.

Panoramica

Casistica A: un Grafico

Casistica B: Report per segmento

Risultato

Un Grafico aggiornato in tempo reale che mostra come sono distribuite le Risposte

Una Tabella pivot filtrabile per canale, lingua o qualsiasi altra colonna

Strumenti

Survio, n8n, Google Sheets

Survio, n8n, Google Sheets (Tabella pivot e slicer)

Ideale per

Piccole aziende che vogliono un Grafico semplice sempre allineato

Team che confrontano gruppi diversi, come clienti online e in negozio

Prima di cominciare

  • Un Sondaggio Survio su un piano a pagamento. I Webhook non sono disponibili sul piano Free e ogni piano stabilisce quanti Webhook puoi avere per Sondaggio (guarda l'articolo sui webhook).

  • Un account n8n (Cloud o self-hosted).

  • Un account Google per usare Google Sheets.

In questa guida userai un breve Sondaggio soddisfazione: Valutazione a stelle, una Domanda a scelta singola "Complessivamente, quanto sei soddisfatto?", una Domanda a scelta "Come hai acquistato questa volta?", un campo commento libero e la Domanda e-mail opzionale. Ma puoi usare il Sondaggio che vuoi: abbina le tue Domande al passaggio 5.
​

Passo 1 — Prepara il foglio

  1. Crea un nuovo Google Sheet e rinomina il primo tab in responses.

  2. Nella riga 1 inserisci le intestazioni delle colonne. Ti consigliamo Response ID, Submitted, Rating (1-5), Satisfaction, Channel, What could we do better, E-mail, Order ID, Language e Source.

Lascia Response ID come prima colonna. È l’identificativo univoco di Survio per ogni Risposta. n8n lo usa per aggiornare la riga giusta ed evitare duplicati se la consegna viene ritentata.

Passo 2 — Crea il Webhook in n8n

  1. In n8n, avvia un nuovo flusso di lavoro e aggiungi un nodo Webhook come trigger.

  2. Imposta HTTP Method su POST.

  3. Vai sul tab Production URL e copia l’indirizzo.

  4. Clicca Publish. L’indirizzo Production accetta richieste solo dopo la pubblicazione del flusso.

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

Usa sempre il Production URL, non il Test URL. Il Test URL funziona solo finché l’editor di n8n è in ascolto; appena chiudi la finestra, Survio non riesce più a inviare. Survio ritenta l’invio delle consegne fallite per circa un giorno, dopo 5 giorni di errori consecutivi il Webhook viene disattivato.

Passo 3 — Collega il Sondaggio in Survio

  1. Apri il tuo Sondaggio e vai su Raccogli risposte.

  2. Nella barra laterale, sotto Automazioni & integrazioni, scegli Webhooks e clicca su + Aggiungi un webhook.

  3. Incolla il Production URL di n8n in Webhook URL e clicca su Salva webhook. L’attivazione è immediata.

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


​

Passo 4 — Manda una Risposta test e trova gli id delle tue Domande

  1. Apri il Sondaggio dal link normale e compila una Risposta fino in fondo. Solo le Risposte completate vengono inviate da Survio, quindi assicurati di arrivare alla fine.

  2. Vai in n8n e apri il tab Executions. La Risposta arriva in pochi secondi.

  3. Apri il dettaglio dell’esecuzione, clicca sul nodo Webhook, poi espandi body, quindi data e infine answers. Ogni Risposta mostra il suo question.id, l’etichetta (label) della Domanda e la answer.

  4. Segna l’id di ogni Domanda che vuoi esportare come colonna. Puoi anche cliccare su Pin per continuare a lavorare su questa Risposta senza dover ripetere il Sondaggio.

Executions tab in n8n with successful runs
Webhook node output in n8n: body, data, answers

Scegli sempre le Risposte in base a question id. Le Risposte arrivano come elenco. Se poi aggiungi una Domanda, gli indici possono cambiare e le colonne rischiano di assegnarsi Risposte sbagliate. Gli id delle Domande invece non cambiano mai.

Cerchi l’e-mail del Rispondente? Non usare data.email, resta vuoto se la mail arriva da una Domanda o parametro URL. Leggi il valore dalla Risposta alla Domanda e-mail o da data.parameters.

Passo 5 — Trasforma ogni Risposta in una riga

Servono due nodi: Prepara riga estrae le Risposte, Salva Risposta su foglio scrive tutto su Google Sheets.

Prepara riga

  1. Aggiungi un nodo Edit Fields (Set) dopo il nodo Webhook e chiamalo Prepare row.

  2. Nel campo Fields to Set aggiungi un campo per ogni colonna, lasciando il tipo String. Il nome campo deve essere identico all’intestazione della colonna, il valore è quello dell’espressione sotto.

  3. Metti gli id delle tue Domande (90403153 ecc.) annotati al Passo 4 e personalizza il fuso orario (Europe/Prague, se serve).

Nome campo

Valore

Response ID

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

Submitted

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

Rating (1-5)

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

Satisfaction

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

Channel

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

What could we do better

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

E-mail

{{ $json.body.data.answers.find(a => a.question.id === 90403187)?.answer || $json.body.data.parameters?.email || "" }}

Order ID

{{ $json.body.data.parameters?.['order-id'] ?? '' }}

Language

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

Source

{{ $json.body.data.source }}

Prepare row node in n8n with Fields to Set and their expressions


​

Salva Risposta su foglio

  1. Aggiungi un nodo Google Sheets dopo Prepara riga, chiamalo Save response to sheet e scegli l’operazione Append or Update Row.

  2. Collega l’account Google, poi seleziona il file in Document (sceglilo dalla lista o incolla l’ID in By ID) e la scheda responses in Sheet.

  3. Imposta Mapping Column Mode su Map Automatically e Column to match on su Response ID.

Google Sheets node: Append or Update Row, Map Automatically, Column to match on Response ID

Perché un nodo separato per Prepara riga? Se cambi foglio o tab lato Google Sheets, n8n cancella i collegamenti interni. Con le espressioni in Prepara riga non perdi nulla: il nodo Google Sheets accoppia solo nomi tra campi e intestazioni.

Clicca su Publish di nuovo. Le modifiche sono attive solo dopo la pubblicazione.

n8n workflow: Survio Webhook, Prepare row, Save response to sheet

Qualche nota sulle espressioni:

  • Le Domande a scelta singola arrivano come { ids, labels, value }. labels[0] è il testo della Risposta scelta. Se la Domanda è a Risposta multipla, usa labels.join(', ') per mettere tutte le scelte insieme. value contiene il testo libero inserito se scegli "Altro".

  • Gli orari sono in UTC. L’espressione Submitted li converte nel fuso tuo, Google Sheets poi li tratta come date/ore normali.

  • I parametri nell’URL con il trattino, come order-id, scrivili come parameters['order-id']. Survio non accetta underscore nei parametri.

  • Il titolo del Sondaggio non è incluso nei dati mandati da Survio. Se hai più Sondaggi che scrivono sullo stesso foglio, aggiungi una colonna Sondaggio con il nome del Sondaggio nel nodo Prepara riga.

Invia un’altra Risposta: in pochi secondi, spunterà una riga nuova sul foglio.

The responses tab in Google Sheets with one row per response


​

Casistica A — Grafica le Risposte

  1. Aggiungi una nuova scheda e chiamala report.

  2. Scrivi Satisfaction in A1 e Responses in B1. Da A2 ad A6 elenca le Risposte come sono nel Sondaggio.

  3. In B2 inserisci =COUNTIF(responses!D:D,A2) e trascinalo fino a B6.

  4. Seleziona A1:B6 e vai su Inserisci → Grafico. Google Sheets suggerisce un Grafico a colonne. Per cambiare titolo, vai in Personalizza → Titoli grafico e assi.

Ogni Risposta nuova va a riempire responses, così i conteggi e il Grafico si aggiornano da soli – proprio come nell’esempio in alto.
​

Casistica B — Confronta gruppi con Tabella pivot

  1. Nella scheda responses, seleziona i dati e scegli Inserisci → Tabella pivot, quindi Nuovo foglio.

  2. In Righe aggiungi Satisfaction. In Valori aggiungi Response ID, poi cambia Sommario da SOMMA a CONTA.VALORI.

  3. Vai su Dati → Aggiungi slicer e scegli la colonna Channel. Seleziona i valori che ti interessano e salva con OK. Il risultato sarà simile alla Tabella pivot mostrata in alto.

Puoi filtrare per qualsiasi colonna: Channel (domanda), Language (lingua compilata dell’utente), Source (come è arrivata la Risposta – ad es. link diretto o Invito email) o Order ID.

Le selezioni fatte con lo slicer non restano al prossimo accesso. Riaprendo il file, lo slicer torna a mostrare tutti i valori. Se vuoi fissare il filtro, salvalo come predefinito dal menu dello slicer.

Scarica il flusso di lavoro già pronto

Non vuoi fare i Passi 2 e 5 a mano? Scarica direttamente il nostro flusso: cerca il file survio-responses-to-google-sheets.json tra gli allegati a fine articolo, poi:

  1. In n8n crea un flusso nuovo vuoto. Dal menu (i 3 puntini accanto al nome) scegli Importa e poi Da file. Carica il file scaricato.

  2. Apri Prepare row e aggiorna gli id delle Domande e il fuso orario Europe/Prague con quelli tuoi.

  3. Apri Save response to sheet. Finché manca la configurazione, vedrai un avviso rosso: collega l’account Google, scegli foglio e tab responses. n8n mette Mapping Column Mode su Map Each Column Manually: riportalo su Map Automatically e metti Column to match on come Response ID.

  4. Apri Survio Webhook, copia il Production URL in Survio (passo 3) e poi clicca Publish.

n8n workflow menu with Import and From file
Imported workflow: Survio Webhook, Prepare row, Save response to sheet

Prova tutto da cima a fondo

  1. Manda una Risposta attraverso il link al Sondaggio. In pochi secondi dovresti vedere una nuova riga sulla scheda responses.

  2. Controlla che Response ID sia compilato: è la chiave per evitare duplicati.

  3. Su n8n guarda la tab Executions. Ogni invio e i suoi dati sono riportati lì.

Risolvi i problemi più comuni

Problema

Causa

Soluzione

Non arriva nulla in n8n

Hai inserito il Test URL in Survio o non hai pubblicato il flusso

Inserisci il Production URL in Survio e premi Publish

Survio non accetta il Webhook URL da n8n self-hosted

n8n mostra un indirizzo interno invece di quello pubblico

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

"Listen for test event" non mostra nulla anche dopo aver inviato il Sondaggio

Survio invia verso il Production URL; la modalità ascolto guarda il Test URL

Guarda la tab Executions

Una modifica non ha effetto

Il flusso è pubblicato, ma la modifica no (il pulsante Publish è con pallino)

Clicca di nuovo Publish

La stessa Risposta appare due volte

Hai impostato su Append Row, o non hai indicato la colonna di confronto

Usa Append or Update Row e scegli Response ID per il confronto

Una colonna resta vuota e ne compare una nuova in fondo

Il nome campo in Prepara riga non è perfettamente uguale all’intestazione

Rinomina il campo su Prepara riga esattamente come l’intestazione e cancella la colonna extra

Vedi [object Object] in una cella

Hai mappato una Risposta a scelta senza usare labels

Usa ?.answer?.labels?.[0]

Colonne riempite con Risposte sbagliate dopo una modifica al Sondaggio

Risposte prese per posizione nella lista

Mappa usando question.id

La colonna E-mail resta vuota

Hai mappato da data.email

Leggi l’e-mail dalla Risposta alla Domanda specifica o da un parametro URL

Mancano le Risposte precedenti alla configurazione

I Webhook inviano solo Risposte raccolte dopo essere stati creati

Esporta manualmente le vecchie Risposte da Survio e incollale sul foglio

Survio ha disattivato il Webhook

Il Webhook URL ha fallito l’invio per 5 giorni di fila

Risolvi il problema e riattiva il Webhook in Survio

Altre cose utili da sapere

  • Survio manda solo Risposte completate, una per volta, in pochi secondi.

  • Niente invii retroattivi: nessuna Risposta precedente la creazione del Webhook viene spedita, né durante una pausa.

  • Un invio fallito viene ritentato fino a 8 volte (circa 27 ore) e ogni tentativo attende fino a 30 secondi di risposta. Se abbini su Response ID, i doppi non ti danno problemi.

  • Dopo 5 giorni di fallimenti consecutivi, Survio disattiva il Webhook. Dovrai riattivarlo tu.

  • Mettere in pausa il Webhook conserva lo slot; eliminarlo invece è definitivo.

  • Survio non mostra log delle consegne nell’app. Il tab Executions di n8n è il tuo registro.

  • Inviare Risposte ai Webhook non consuma Risposte extra dal tuo piano.

Vuoi che lo configuriamo per te? Vai nella pagina Webhooks in Survio, clicca su Ottieni setup da esperto, dicci cosa vuoi automatizzare e il nostro team ti prepara, testa e consegna il tuo Webhook già pronto.

Hai ricevuto la risposta alla tua domanda?