Siirry pääsisältöön

Analytiikka – raporttisi päivittyvät automaattisesti: lähetä jokainen Survion vastaus Google Sheetiin

Lähetä jokainen täytetty Survion vastaus automaattisesti Google Sheetiin ja rakenna sen päälle reaaliaikainen kaavio tai Pivot-taulukko. Vaiheittainen opas n8n:llä ja ladattava valmis työnkulku.

Tekijä: Success Team Survio

Mihin tämä sopii?

Tapaus A – yksinkertainen, kaikille: yksi kaavio vastauksistasi, joka päivittyy jokaisen uuden vastauksen myötä.

Tapaus B – tiimeille, jotka vertaavat ryhmiä: Pivot-taulukko, jota voit suodattaa esimerkiksi kanavan, kielen tai minkä tahansa muun sarakkeen mukaan.

Jokainen vastaus, jonka kyselysi kerää, tallentuu uutena rivinä Google Sheetiin heti, kun se on lähetetty. Rakenna kaavio tai Pivot-taulukko vain kerran, ja raporttisi pysyy ajan tasalla itsestään: ei vientiä, ei kopiointia, ei odottelua, että joku laatii luvut.
​

Tämä on tapaus A:n raportti: kaavio, joka päivittyy jokaisen uuden vastauksen myötä:
​

The report tab with response counts and a column chart


​

Ja tämä on tapaus B:n Pivot-taulukko, suodatettuna kanavan mukaan viipaleella:
​

Pivot table with a slicer on the Channel column

Näin tämä toimii. Survio lähettää jokaisen täytetyn vastauksen webhook-osoitteeseen. Automaatiotyökalu (tässä ohjeessa n8n) vastaanottaa sen ja kirjoittaa yhden rivin Sheetiin. Survio hoitaa lähetyksen, n8n kirjoittamisen ja Google Sheets raportoinnin.

Oletko uusi Survion webhookien käyttäjä? Aloita ohjeella Webhooks: lähetä vastaukset muihin työkaluihin reaaliajassa ja palaa sitten tähän.
​

Mitä rakennat

Molempia raportteja syöttää sama asetelma: jokainen täytetty vastaus on uusi rivi välilehdellä responses.

Yhdellä silmäyksellä

Tapaus A: yksi kaavio

Tapaus B: raportti segmenteittäin

Tulos

Kaavio, joka näyttää vastausten jakautumisen ja päivittyy jokaisen uuden vastauksen jälkeen

Pivot-taulukko, jota voit suodattaa esimerkiksi kanavan, kielen tai muun sarakkeen mukaan

Työkalut

Survio, n8n, Google Sheets

Survio, n8n, Google Sheets (Pivot-taulukko ja viipale)

Paras käyttö

Pienyritykselle, joka haluaa yhden yksinkertaisen kaavion joka on aina ajan tasalla

Tiimille, joka vertailee ryhmiä, esimerkiksi verkkokauppa- ja myymäläasiakkaita

Ennen kuin aloitat

  • Survio-kysely maksullisella tilauksella. Webhookit eivät ole käytettävissä Free-tilauksessa, ja jokainen tilaus rajaa webhooksien määrän per kysely (ks. webhook-ohjeesta).

  • n8n-tili, n8n Cloud tai omalla palvelimella.

  • Google-tili Google Sheetsiä varten.

Tässä ohjeessa käytämme esimerkkinä lyhyttä asiakastyytyväisyyskyselyä: tähtiarviointi, valintakysymys "Kuinka tyytyväinen olet kokonaisuutena?", valintakysymys "Miten asioit tällä kertaa?", avoin kommentti ja vapaaehtoinen sähköposti. Kyselysi voi olla erilainen – yhdistät siellä omat kysymykset kohdassa 5.
​

Vaihe 1 — Valmistele Sheet

  1. Luo uusi Google Sheet ja nimeä ensimmäinen välilehti responses.

  2. Kirjoita riville 1 sarakkeiden otsikot. Käytämme: Response ID, Submitted, Rating (1-5), Satisfaction, Channel, What could we do better, E-mail, Order ID, Language ja Source.

Pidä Response ID ensimmäisenä sarakkeena. Se on Survion yksilöllinen tunniste jokaiselle vastaukselle. n8n käyttää sitä rivin päivittämiseen eikä lisää tuplaa, jos toimitus toistuu.

Vaihe 2 — Luo webhook n8n:ään

  1. n8n:ssä luo uusi työnkulku ja lisää Webhook-solmu liipaisimeksi.

  2. Aseta HTTP Method asetukseen POST.

  3. Siirry Production URL -välilehdelle ja kopioi osoite.

  4. Klikkaa Julkaise. Production URL ottaa vastaan toimitukset vasta, kun työnkulku on julkaistu.

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

Käytä Production URL:ia, älä Test URL:ia. Test URL kuuntelee vain silloin kun editori odottaa testitapausta, joten Survion toimitukset epäonnistuvat heti, kun sen suljet. Survio yrittää epäonnistunutta lähetystä noin päivän ajan ja viiden päivän epäonnistumisten jälkeen webhook kytkeytyy pois päältä.

Vaihe 3 — Yhdistä kysely Survioon

  1. Avaa kyselysi ja siirry Kerää vastauksia.

  2. Vasemman sivupalkin Automaatio & Integraatiot -kohdasta valitse Webhooks ja klikkaa + Lisää webhook.

  3. Liitä n8n Production URL kohtaan Webhook URL ja klikkaa Tallenna webhook. Webhook aktivoidaan suoraan.

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


​

Vaihe 4 — Lähetä testivastaus ja selvitä kysymysten id-tunnukset

  1. Avaa kyselysi normaalin linkin kautta ja lähetä yksi täytetty vastaus. Survio lähettää ainoastaan täytetyt vastaukset, joten klikkaa loppuun asti.

  2. n8n:ssä avaa Suoritukset-välilehti. Toimitus tulee muutamassa sekunnissa.

  3. Avaa suoritus ja klikkaa Webhook-solmua. Laajenna body, sitten data, sitten answers. Jokainen vastaus näyttää question.id, label ja answer.

  4. Kirjaa jokaisen tarvittavan kysymyksen id tunnus ylös. Voit myös klikata Pin pitääksesi tämän vastauksen testidatana.

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

Valitse aina vastaukset kysymyksen id:n mukaan. Vastaukset saapuvat listana. Jos lisäät kysymyksen, järjestys muuttuu ja sarakkeet menevät väärin, jos et käytä id-tunnuksia. Kysymyksen id ei koskaan muutu.

Etsitkö vastaajan sähköpostia? Älä käytä data.email – se jää tyhjäksi, jos sähköposti on sähköpostikysymyksenä tai parametrina. Lue sähköposti omasta sähköpostikysymyksestä tai data.parameters -kohdasta.

Vaihe 5 — Muunna jokainen vastaus riviksi

Tässä tarvitaan kaksi solmua: Rivin valmistelu (Prepare row) poimii vastaukset ja Tallenna vastaus sheetiin (Save response to sheet) kirjoittaa ne Google Sheetiin.

Rivin valmistelu

  1. Lisää Webhookin jälkeen Edit Fields (Set) -solmu ja nimeä se Prepare row.

  2. Kohdassa Fields to Set lisää jokaiseen sheetin sarakkeeseen kenttä, tyyppi String. Kentän nimi täytyy olla täsmälleen sama kuin sarakeotsikko. Arvoksi laita alla oleva lauseke.

  3. Korvaa kysymysten id:t (90403153 jne.) niillä, jotka kirjoitit kohdassa 4, ja Europe/Prague omalla aikavyöhykkeelläsi.

Kentän nimi

Arvo

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


​

Tallenna vastaus Sheetiin

  1. Lisää Google Sheets -solmu Prepare row:n jälkeen, nimeä se Save response to sheet ja valitse toiminnoksi Lisää tai päivitä rivi (Append or Update Row).

  2. Yhdistä Google-tilisi ja valitse spreadsheet kohdassa Document (listasta tai liittämällä ID By ID -kohtaan) ja välilehdeksi responses Sheet-kohtaan.

  3. Aseta Mapping Column Mode arvoon Map Automatically ja Column to match on kohtaan Response ID.

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

Miksi erillinen Prepare row -solmu? Jos vaihdat sheetiä tai välilehteä Google Sheets -solmussa, n8n tyhjentää kenttien mapituksen sieltä. Kun kentät tehdään Prepare row:ssa, mitään ei katoa – Google Sheets -solmussa yhdistetään vain nimet kenttiin.

Klikkaa taas Julkaise. Muutokset tulevat voimaan vasta julkaistessa uudelleen.

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

Lisätietoja lausekkeista:

  • Valintakysymykset tulevat muodossa { ids, labels, value }. labels[0] on valitun vaihtoehdon teksti. Jos kyseessä on monivalintakysymys, käytä labels.join(', '), jotta kaikki valinnat näkyvät yhdessä solussa. value on käyttäjän kirjoittama "Muu"-vaihtoehto.

  • Aika tulee UTC-ajassa. Submitted-lauseke muuntaa sen aikavyöhykkeellesi ja Google Sheets käsittelee sen päivämääränä ja kellonaikana, joita voi lajitella ja ryhmitellä.

  • URL-parametrit, joissa on väliviiva nimessä, kuten order-id, täytyy hakea muodossa parameters['order-id']. Survio ei salli alaviivaa parametrin nimessä.

  • Kyselyn nimeä ei lähetetä Surviosta. Jos useampi kysely kirjoittaa samaan Sheetiin, lisää sarake nimellä Survey ja lisää Survey-kenttä Prepare row -solmuun kyselyn nimeä varten.

Lähetä uusi vastaus, niin uusi rivi ilmestyy sheetiin muutamassa sekunnissa.

The responses tab in Google Sheets with one row per response


​

Tapaus A — Kaavio vastauksista

  1. Lisää välilehti nimellä report.

  2. Kirjoita soluun A1 Satisfaction ja soluun B1 Responses. Soluihin A2–A6 listaa vastausvaihtoehdot täsmälleen kuten kyselyssä.

  3. B2:een syötä =COUNTIF(responses!D:D,A2) ja kopioi alas B6:een.

  4. Valitse A1:B6 ja valitse Lisää → Kaavio. Google Sheets ehdottaa pylväskaaviota. Jos haluat muuttaa otsikkoa, mene Muokkaa → Kaavion ja akselin otsikot.

Jokainen uusi vastaus lisää rivin responses-välilehdelle, ja lukemat sekä kaavio päivittyvät automaattisesti, kuten tämän ohjeen alun kaaviossa.
​

Tapaus B — Vertaa ryhmiä Pivot-taulukolla

  1. Valitse responses-välilehti, merkitse taulukko ja valitse Lisää → Pivot-taulukko, sitten Uusi välilehti.

  2. Lisää Rivit -kohtaan Satisfaction. Arvot -kohdasta valitse Response ID ja muuta yhteenvedoksi COUNTA.

  3. Valitse Data → Lisää viipale ja valitse haluamasi arvot esimerkiksi Channel-sarakkeesta. Vahvista OK:lla. Näet samanlaisen Pivot-taulukon kuin tämän ohjeen alussa.

Voit rajata millä tahansa sarakkeella: Channel (oma kysymyksesi), Language (vastauskieli), Source (esim. suora linkki tai sähköpostikutsu) tai Order ID.

Viipaleen valintaa ei säilytetä seuraavaan kertaan. Kun tiedosto avataan uudestaan, viipale näyttää kaikki vaihtoehdot. Saat vakiosuodatuksen tallennettua valitsemalla oletuksena viipaleen asetuksista.

Hae valmis työnkulku

Voit rakentaa vaiheet 2 ja 5 itse tai aloittaa valmiista työnkulusta. Lataa tiedosto survio-responses-to-google-sheets.json tämän artikkelin liitteistä, sitten:

  1. n8n:ssä luo tyhjä työnkulku. Avaa valikko (kolme pistettä) työnkulun nimen vierestä ja valitse Tuo, sitten Tiedostosta. Valitse lataamasi tiedosto.

  2. Avaa Prepare row ja korvaa kysymysten id:t sekä aikavyöhyke omillasi.

  3. Avaa Save response to sheet. Näet punaisen varoituksen kunnes asetukset on kunnossa. Yhdistä Google-tili, valitse spreadsheet ja välilehti responses. n8n vaihtaa Mapping Column Mode:n Map Each Column Manually -tilaan: vaihda takaisin Map Automatically ja Column to match on:ksi Response ID.

  4. Avaa Survio Webhook, kopioi Production URL kohtaan Survio (vaihe 3) ja klikkaa Julkaise.

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

Testaa alusta loppuun

  1. Lähetä vastaus kyselylinkin kautta. Rivi ilmestyy responses-välilehdelle muutamassa sekunnissa.

  2. Varmista että Response ID täyttyy – se estää duplikaatit.

  3. Tarkista n8n:n Suoritukset-välilehdeltä jokainen toimitus ja data.

Vianetsintä

Oire

Syy

Korjaus

n8n ei saa mitään

Test URL on käytössä Surviossa tai työnkulkua ei ole julkaistu

Kopioi Production URL Survioon ja klikkaa Julkaise

Survio ei hyväksy webhook-urlia itsehostatusta n8n:stä

n8n näyttää sisäisen osoitteen eikä julkista

Aseta n8n:n WEBHOOK_URL -asetus julkiseen https-osoitteeseesi ja kopioi osoite uudestaan

"Listen for test event" ei näytä mitään vaikka kysely on lähetetty

Survio lähettää Production URL:iin, kuuntelu odottaa Test URL:ia

Tarkista Suoritukset-välilehdeltä toimitukset

Viimeisin muutos ei vaikuta

Työnkulku julkaistu, mutta muutoksia ei (Julkaise-painikkeessa piste)

Klikkaa Julkaise uudestaan

Sama vastaus näkyy kahdesti

Toiminto asetettu vain lisää rivi eikä sarakkeita täsmäytetty

Käytä Lisää tai päivitä rivi ja täsmää Response ID

Solu jää tyhjäksi, uusi sarake ilmestyy loppuun

Prepare rowssa kentän nimi ei vastaa sarakeotsikkoa

Nimeä kenttä täsmälleen kuten otsikko ja poista ylimääräinen sarake

Solussa lukee [object Object]

Valintavastaus mapattu ilman labels-kenttää

Käytä ?.answer?.labels?.[0]

Sarakkeet täyttyvät väärin kyselyn muokkauksen jälkeen

Vastaukset poimittu järjestyksen perusteella

Poimi ne question.id-kentän mukaan

Sähköposti jää tyhjäksi

Poimittu data.email-kentästä

Lue sähköposti sähköpostikysymyksen vastauksesta tai URL-parametristä

Ennen asetuksia lähetetyt vastaukset puuttuvat

Webhookit lähettävät vain niiden luomisen jälkeen tulleet vastaukset

Vie aiemmat vastaukset Surviosta ja liitä Sheetiin

Survio kytki webhookin pois päältä

Webhook URL epäonnistui viisi päivää peräkkäin

Korjaa ongelma ja ota webhook käyttöön uudestaan Surviossa

Hyvä tietää

  • Survio lähettää vain täytetyt vastaukset, yksi viesti per vastaus, muutaman sekunnin viiveellä.

  • Mikään ei lähetetä jälkikäteen: ei vastauksia ennen webhookin perustamista eikä pausettuna olleilta ajoilta.

  • Epäonnistunutta toimitusta yritetään enintään 8 kertaa noin 27 tunnin aikana ja jokainen yritys odottaa maksimissaan 30 sekuntia vastausta. Response ID:n käyttö estää duplikaatio-ongelmat.

  • Jos toimitus epäonnistuu viitenä peräkkäisenä päivänä, Survio poistaa webhookin käytöstä ja se pitää aktivoida uudelleen.

  • Webhookin pausoiminen säilyttää paikan; poistaminen on pysyvää.

  • Survio ei säilytä toimituslokia sovelluksessa. n8n:n Suoritukset-välilehti toimii lokeina.

  • Vastausten lähettäminen webhookiin ei vähennä vastaussaldoa tilauksestasi.

Haluatko että me hoidamme tämän puolestasi? Surviossa Webhooks-sivulla klikkaa Pyydä asiantuntija-asennusta, kerro toiveesi, ja tiimimme toteuttaa webhookin, testaa sen ja toimittaa käyttöösi.

Vastasiko tämä kysymykseesi?