Gå til hovedinnhold

Analytics – rapportene dine oppdateres automatisk: send hvert Survio-svar til Google Sheets

Send hvert eneste fullførte Survio-svar direkte til et Google-regneark, og bygg et dynamisk diagram eller en pivottabell som alltid er oppdatert. Steg-for-steg-guide med n8n og ferdig arbeidsflyt du kan laste ned.

Skrevet av Success Team Survio

Hvilket scenario passer for deg?

Scenario A – enkelt og for alle: ett diagram over svarene dine som oppdateres med hvert nye svar.

Scenario B – for team som sammenligner grupper: en pivottabell du kan filtrere på kanal, språk eller hvilken som helst annen kolonne.

Hvert Survio-svar som spørreundersøkelsen din samler inn legger til en ny rad i et Google-regneark i det øyeblikket det sendes inn. Bygg et diagram eller en pivottabell på toppen én gang – rapporten din holder seg oppdatert av seg selv: ingen eksport, ingen kopiering, ingen venting på at noen forbereder tallene.
​

Dette er rapporten du får i scenario A, et diagram som oppdateres med hvert nye svar:
​

The report tab with response counts and a column chart


​

Og dette er pivottabellen i scenario B, filtrert på kanal med en slicer:
​

Pivot table with a slicer on the Channel column

Slik fungerer det. Survio sender hvert fullførte svar til en webhook-URL. Et automatiseringsverktøy (i denne guiden bruker vi n8n) tar imot det og skriver én rad inn i regnearket ditt. Survio står for utsendingen, n8n for innskrivingen, og regnearket viser rapporten.

Ny på webhooks i Survio? Start med Webhooks: send svarene dine til andre verktøy i sanntid, og kom tilbake hit.
​

Dette skal du bygge

Begge rapportene mates fra samme oppsett: hvert fullførte svar blir en rad i et ark kalt responses.

Kort oppsummert

Scenario A: ett diagram

Scenario B: rapport etter segment

Resultat

Et diagram over hvordan svarene fordeles, oppdatert med hvert nye svar

En pivottabell du kan filtrere på kanal, språk eller hvilken som helst annen kolonne

Verktøy

Survio, n8n, Google Sheets

Survio, n8n, Google Sheets (pivottabell og slicer)

Best egnet for

En liten bedrift som vil ha ett enkelt diagram som alltid er oppdatert

Et team som sammenligner grupper, for eksempel nettkunder og butikkunder

Før du starter

  • En Survio-spørreundersøkelse på en betalt plan. Webhooks er ikke tilgjengelig på Free-planen, og hver plan gir et visst antall webhooks per spørreundersøkelse (se artikkelen om webhooks).

  • En n8n-konto, n8n Cloud eller selvhostet.

  • En Google-konto for Google Sheets.

I denne guiden bruker vi en kort kundetilfredshetsundersøkelse: en stjernevurdering, et «Hvor fornøyd er du alt i alt?»-valgspørsmål, et «Hvordan handlet du denne gangen?»-valgspørsmål, åpen kommentar og et valgfritt e-postspørsmål. Din spørreundersøkelse kan se annerledes ut; du kobler dine egne spørsmål i steg 5.
​

Steg 1 — Forbered arket

  1. Lag et nytt Google-regneark og gi den første fanen navnet responses.

  2. Skriv inn kolonneoverskriftene i rad 1. Vi bruker Response ID, Submitted, Rating (1-5), Satisfaction, Channel, What could we do better, E-mail, Order ID, Language og Source.

Ha Response ID som første kolonne. Det er Survios unike ID for hvert svar. n8n bruker denne for å oppdatere eksisterende rad istedenfor å legge inn en duplikat hvis en levering forsøkes på nytt.

Steg 2 — Opprett webhook i n8n

  1. I n8n, opprett et nytt arbeidsflytskjema og legg til en Webhook-node som trigger.

  2. Sett HTTP-metode til POST.

  3. Bytt til fanen Production URL og kopier adressen.

  4. Klikk Publish. Produksjonsadressen godtar bare leveringer etter at flyten er publisert.

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

Bruk Production URL, ikke Test URL. Test URL lytter kun mens redigeringsverktøyet venter på en testhendelse, så Survios leveringer feiler straks du lukker redigeringsvinduet. Survio prøver mislykket levering igjen i omtrent ett døgn, og etter 5 dager med feil slår Survio av webhooken.

Steg 3 — Koble til spørreundersøkelsen i Survio

  1. Åpne spørreundersøkelsen og gå til Samle inn svar.

  2. I venstremenyen under Automatiseringer og integrasjoner, velg Webhooks og klikk + Legg til webhook.

  3. Lim inn n8n Production URL i Webhook-URL og klikk Lagre webhook. Webhooken aktiveres umiddelbart.

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


​

Steg 4 — Send et testsvar og finn spørsmål-IDene

  1. Åpne spørreundersøkelsen via vanlig lenke og send inn ett fullført svar. Survio sender kun fullførte svar, så klikk deg helt til slutten.

  2. I n8n, åpne fanen Executions. Leveringen mottas etter noen sekunder.

  3. Åpne kjøringen og klikk på Webhook-noden. Utvid body, deretter data, så answers. Hvert svar viser question.id, label og answer.

  4. Skriv ned ID-en til alle spørsmålene du vil ha som kolonne. Du kan også bruke Pin for å fortsette med samme svar uten å sende inn på nytt.

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

Bruk alltid spørsmål-ID når du henter svar. Svarene kommer i en liste. Hvis du senere legger til et spørsmål i undersøkelsen, endres rekkefølgen og kolonnene fylles stille med feil svar. Spørsmål-IDen endrer seg aldri.

Leter du etter respondentens e-post? Ikke bruk data.email: det er tomt hvis e-postadressen kommer fra et e-postspørsmål eller en URL-parameter. Hent det fra svaret på e-postspørsmålet, eller fra data.parameters.

Steg 5 — Gjør hvert svar til en rad

Dette krever to noder: Forbered rad henter ut svarene, og Lagre svar til ark skriver dem inn i regnearket.

Forbered rad

  1. Legg til en Edit Fields (Set)-node etter Webhook-noden og gi den navnet Prepare row.

  2. Under Fields to Set legger du til ett felt for hver kolonne i arket og lar typen stå som String. Feltnavnet må matche kolonneoverskriften nøyaktig; verdien er uttrykket under.

  3. Bytt ut spørsmål-IDene (90403153 osv.) med dine fra steg 4, og Europe/Prague med din egen tidssone.

Feltnavn

Verdi

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


​

Lagre svar til ark

  1. Legg til en Google Sheets-node etter Prepare row, gi den navnet Save response to sheet og velg operasjonen Append or Update Row.

  2. Koble til Google-kontoen, velg ark under Document (fra listen, eller lim inn ID via By ID) og fanen responses under Sheet.

  3. Sett Mapping Column Mode til Map Automatically og Column to match on til Response ID.

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

Hvorfor eget Forbered rad-steg? Hvis du bytter ark eller fane i Google Sheets-noden, slettes kolonnemappingen. Med uttrykkene i Prepare row matcher Google Sheets-noden kun feltnavn mot kolonneoverskrifter.

Klikk Publish igjen. Endringer etter publisering blir aktive først når du publiserer på nytt.

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

Noen detaljer om disse uttrykkene:

  • Valgspørsmål kommer som { ids, labels, value }. labels[0] gir teksten til valgt alternativ. For flervalg kan du bruke labels.join(', ') for å vise alt i én celle. value inneholder tekst skrevet i «Annet».

  • Tidspunkt leveres i UTC. Submitted-feltet konverterer til din tidssone, og Google Sheets tolker kolonnen riktig som dato/tid for sortering og grupper.

  • URL-parametre med bindestrek må ha bracket-form som parameters['order-id']. Survio tillater ikke understrek i parameternavn.

  • Undersøkelsestittelen sendes ikke med fra Survio. Hvis flere spørreundersøkelser skriver til samme ark, kan du legg til en Spørreundersøkelse-kolonne og et Spørreundersøkelse-felt i Prepare row.

Send inn et nytt svar. En ny rad dukker opp i arket i løpet av få sekunder.

The responses tab in Google Sheets with one row per response


​

Scenario A — Diagram over svarene

  1. Legg til en fane kalt report.

  2. Skriv Satisfaction i A1 og Responses i B1. I A2 til A6, skriv inn svaralternativene nøyaktig slik de står i din spørreundersøkelse.

  3. Skriv =COUNTIF(responses!D:D,A2) i B2 og dra ned til B6.

  4. Merk A1:B6 og velg Sett inn → Diagram. Google Sheets foreslår kolonnediagram. For å endre tittel, gå til Tilpass → Diagram- og aksetitler.

Hvert nytt svar legger til en rad i responses, og antall og diagram oppdateres av seg selv – akkurat som øverst i denne artikkelen.
​

Scenario B — Sammenlign grupper med pivottabell

  1. Marker tabellen på responses-fanen og velg Sett inn → Pivottabell, så Ny fane.

  2. Under Rader legg til Satisfaction. Under Verdier legg til Response ID og bytt Sammenfatning fra SUM til COUNTA.

  3. Velg Data → Legg til slicer og velg Channel-kolonnen. Velg hvilke verdier du vil se og bekreft med OK. Resultatet ligner pivottabellen i starten av artikkelen.

Du kan filtrere på alle kolonner: Channel (ditt eget spørsmål), Language (språkversjonen respondenten svarte på), Source (hvordan svaret kom inn, f.eks. direkte lenke eller e-postinvitasjon) eller Order ID.

Et slicervalg lagres ikke til neste gang. Når filen åpnes på nytt, vises alle verdier igjen. For å lagre valget, trykk lagre som standard i slicer-menyen.

Last ned ferdig arbeidsflyt

I stedet for å bygge steg 2 og 5 selv, kan du ta utgangspunkt i vår arbeidsflyt. Last ned filen survio-responses-to-google-sheets.json fra vedleggene nederst i artikkelen, og gjør så dette:

  1. I n8n, opprett en tom arbeidsflyt. Åpne menyen (tre prikker ved navnet) og velg Import, deretter From file. Velg filen du har lastet ned.

  2. Åpne Prepare row og bytt spørsmål-IDene med dine egne og tidssonen til din tidssone.

  3. Åpne Save response to sheet. Den viser et rødt varsel til alt er satt opp. Koble til Google-kontoen og velg regnearket og fanen responses. n8n endrer Mapping Column Mode til Map Each Column Manually – sett det tilbake til Map Automatically og Column to match on til Response ID.

  4. Åpne Survio Webhook, kopier Production URL inn i Survio (steg 3) og klikk Publish.

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

Test hele prosessen

  1. Send inn et svar via undersøkelseslenken. En rad dukker opp på responses-fanen i løpet av få sekunder.

  2. Sjekk at Response ID er utfylt. Det hindrer duplikater.

  3. Se på Executions-fanen i n8n. Hver levering og dens data vises der.

Feilsøking

Symptom

Årsak

Løsning

Ingenting ankommer i n8n

Test URL er brukt i Survio, eller arbeidsflyten er ikke publisert

Legg inn Production URL i Survio og trykk Publish

Survio godtar ikke webhook-URL fra selvhostet n8n

n8n viser en intern adresse i stedet for offentlig

Sett n8n sin WEBHOOK_URL til din offentlige https-adresse og kopier adressen på nytt

"Lytt etter testhendelse" viser ingenting etter innsending

Survio sender til Production URL; lyttingen skjer på Test URL

Bruk Executions-fanen i stedet

Seneste endringen har ingen effekt

Arbeidsflyten er publisert, men endringen ikke, (Publish-knappen viser prikk)

Klikk Publish på nytt

Samme svar vises to ganger

Operasjon satt til Append Row, eller ingen match-kolonne

Bruk Append or Update Row og match på Response ID

En kolonne mangler data og en ny kolonne dukker opp til slutt i arket

Feltnavn i Prepare row samsvarer ikke nøyaktig med kolonneoverskriften

Endre feltnavnet i Prepare row så det matcher, og slett den ekstra kolonnen

En celle viser [object Object]

Valgspørsmål er koblet uten labels

Bruk ?.answer?.labels?.[0]

Kolonnene viser feil svar etter at du har endret spørreundersøkelsen

Svarene blir hentet etter posisjon i listen

Hent dem etter question.id

E-postkolonnen forblir tom

Hentet fra data.email

Hent e-post fra e-postspørsmålet eller URL-parameter

Svar gitt før oppsettet mangler

Webhooks sender bare innsendte svar etter at webhooken ble opprettet

Eksporter de tidligere svarene fra Survio og lim dem inn

Survio har deaktivert webhooken

Webhook-URL feilet i 5 dager på rad

Fiks feilen og aktiver webhooken igjen i Survio

Greit å vite

  • Survio sender bare fullførte svar, ett om gangen, i løpet av sekunder.

  • Ingenting sendes retroaktivt: ikke svar fra før webhooken fantes, og ikke svar mens den var slått av.

  • En mislykket levering forsøkes på nytt opptil 8 ganger over ca. 27 timer, og hvert forsøk venter opptil 30 sekunder. Matching på Response ID gjør at gjentatte forsøk ikke lager duplikater.

  • Hvis leveringer feiler i 5 dager på rad, deaktiverer Survio webhooken – du må selv slå den på igjen.

  • Om du pauser en webhook, beholder du plassen i listen. Sletter du den, er den borte for godt.

  • Survio lagrer ikke leveringshistorikk i appen. Executions-fanen i n8n er loggen din.

  • Svar sendt til webhooks bruker ikke flere svar fra abonnementet.

Vil du heller at vi setter det opp? På Webhooks-siden i Survio, klikk Få eksperthjelp, fortell oss hva du ønsker, så bygger vi alt, tester og gir deg en fungerende webhook.

Svarte dette på spørsmålet?