Pereiti prie pagrindinio turinio

Analitika – ataskaitos atsinaujina automatiškai: siųskite kiekvieną „Survio“ atsakymą į Google Sheets

Kiekvieną užpildytą „Survio“ atsakymą galite automatiškai gauti į Google Sheets ir ten susikurti interaktyvią diagramą ar pagrindinę lentelę. Vadovaukitės šiuo žingsnis po žingsnio gidu su n8n ir atsisiųskite paruoštą darbo eigą.

Parašė Success Team Survio

Kuris sprendimas jums tinkamiausias?

A atvejis – paprastas visiems: viena diagrama su jūsų atsakymais, kuri nuolat atsinaujina sulaukus naujų atsakymų.

B atvejis – komandoms, kurios lygina grupes: pagrindinė lentelė, kurią galima filtruoti pagal kanalą, kalbą ar kitą stulpelį.

Kiekvieną kartą, kai kas nors užpildo jūsų apklausą, atsakymas iškart tampa nauja eilute Google Sheets dokumente. Sukūrę diagramą ar pagrindinę lentelę, visada matysite naujausią ataskaitą – nereikės nieko eksportuoti, kopijuoti ar laukti, kol kažkas paruoš skaičius.
​

Tai pavyzdys, kaip atrodo A atvejo ataskaita – diagrama, kuri automatiškai atsinaujina gavusi naujų atsakymų:
​

The report tab with response counts and a column chart


​

O B atvejyje – štai pagrindinė lentelė, filtruojama pagal kanalą su skiltuku (slicer):
​

Pivot table with a slicer on the Channel column

Kaip tai veikia? „Survio“ siunčia kiekvieną užpildytą atsakymą į webhook adresą, o automatizavimo įrankis (šiame gide naudojame n8n) priima ir įrašo naują eilutę jūsų lentelėje. „Survio“ siunčia, n8n įrašo, o lentelė sukuria ataskaitą.

Nauja webhook „Survio“? Pradėkite nuo Webhooks: siųskite atsakymus į kitus įrankius realiu laiku, tada sugrįžkite čia.
​

Ką sukursite

Abu ataskaitų tipai generuojami taip pat: kiekvienas užpildytas atsakymas virsta eilute skirtuke responses.

Trumpai

A atvejis: diagrama

B atvejis: ataskaita pagal segmentą

Rezultatas

Diagrama, aiškiai rodanti atsakymų pasiskirstymą ir nuolat atsinaujinanti

Lanksti pagrindinė lentelė, kurią filtruosite pagal kanalą, kalbą ar kitą stulpelį

Įrankiai

„Survio“, n8n, Google Sheets

„Survio“, n8n, Google Sheets (pagrindinė lentelė ir skiltukas)

Rekomenduojama

Mažoms komandoms, norinčioms paprastos ir visada naujinamos diagramos

Komandoms, kurios nori lyginti grupes, pvz., internetinių ir fizinių parduotuvių klientus

Prieš pradedant

  • „Survio“ apklausa su mokamu planu. Webhook funkcija neprieinama Free plane. Kiekvienas mokamas planas leidžia nustatytą webhook’ų skaičių vienai apklausai (daugiau informacijos webhook’ų straipsnyje).

  • n8n paskyra: n8n Cloud arba talpinama pačių.

  • Google paskyra, reikalinga naudotis Google Sheets.

Čia rodysime pavyzdį su trumpa klientų pasitenkinimo apklausa: įvertinimas žvaigždutėmis, pasirinktiniai klausimai „Kaip vertinate bendrą pasitenkinimą?“, „Kaip šį kartą pirkote pas mus?“, atviras komentaras ir el. pašto laukas. Jūsų apklausa gali atrodyti kitaip – 5 žingsnyje galėsite susieti savo klausimus.
​

1 žingsnis – parenkite lentelę

  1. Sukurkite naują Google Sheets dokumentą ir pirmąją kortelę pervadinkite į responses.

  2. Pirmoje eilutėje įrašykite stulpelių pavadinimus. Mūsų pavyzdyje naudojame: Response ID, Submitted, Rating (1-5), Satisfaction, Channel, What could we do better, E-mail, Order ID, Language, Source.

Palikite Response ID pačiame pirmame stulpelyje. Tai unikalus „Survio“ atsakymo ID. n8n jį naudoja norėdamas atnaujinti esamą eilutę, jei atsakymo siuntimas pasikartos.

2 žingsnis – kurkite webhook n8n

  1. n8n pridėkite naują darbo eigą ir įtraukite Webhook bloką kaip paleidėją.

  2. Nustatykite HTTP Method į POST.

  3. Pereikite į Production URL skirtuką ir nukopijuokite adresą.

  4. Spauskite Publish. Produkcijos adresas duomenis priims tik paskelbus darbo eigą.

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

Visada naudokite Production URL, ne Test URL. Test URL veikia tik tada, kai naršyklėje aktyviai laukiate bandymo įvykio – „Survio“ siuntimas nutrūks, jei užversite langą. „Survio“ bandys išsiųsti apie parą, o po 5 nesėkmių dienų webhook bus išjungtas.

3 žingsnis – prijunkite apklausą „Survio“

  1. Atidarykite pasirinktos apklausos nustatymus ir eikite į Gauti atsakymus.

  2. Kairiajame meniu, po Automatizacija ir integracija, pasirinkite Webhooks ir paspauskite + Pridėti webhook.

  3. Įklijuokite n8n Production URL į Webhook URL lauką ir spustelėkite Išsaugoti webhook. Webhook įsijungia iškart.

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


​

4 žingsnis – atlikite bandomą atsakymą ir raskite klausimų ID

  1. Atidarykite apklausos užpildymo nuorodą ir pateikite pilną atsakymą. „Survio“ perduoda tik užbaigtus atsakymus, tad nueikite iki pabaigos.

  2. n8n atidarykite Executions skirtuką. Duomenų rasite po kelių sekundžių.

  3. Pasirinkite įvykį ir spustelėkite Webhook bloką. Išskleiskite body, tada data, o po to answers. Kiekvienas atsakymas turi atskirus question.id, klausimo label ir answer.

  4. Užsirašykite pasirinktų klausimų ID. Galite panaudoti Pin funkciją, kad toje pačioje sesijoje galėtumėte testuoti daugiau kartų be naujo pateikimo.

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

Visada rinkitės atsakymus pagal klausimo ID. Atsakymai yra sąraše – jei pridėsite klausimą, sąrašas pasislinks, tad reikšmė gali būti priskirta neteisingai. Klausimo ID nekinta.

Reikia respondento el. pašto? Nenaudokite data.email, nes šis laukas bus tuščias, jeigu el. paštas įrašytas klausime ar URL parametre. El. paštą gaukite tiesiai iš atitinkamo klausimo atsakymo arba data.parameters.

5 žingsnis – kiekvienas atsakymas tampa eilute

Tam reikės dviejų blokų: Prepare row atrenka atsakymus iš visų duomenų, o Save response to sheet įrašo juos į jūsų lentelę.

Prepare row

  1. Pridėkite Edit Fields (Set) bloką po Webhook ir pavadinkite jį Prepare row.

  2. Skiltyje Fields to Set pridėkite lauką kiekvienam stulpeliui ir lauko tipą palikite String. Vardai turi tiksliai sutapti su stulpelių pavadinimais, reikšmės nurodomos pagal žemiau pateiktas formules.

  3. Pakeiskite klausimų ID (pvz., 90403153) į savo užrašytus ID, o Europe/Prague – į pageidaujamą laiko juostą.

Lauko pavadinimas

Reikšmė

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


​

Save response to sheet

  1. Pridėkite Google Sheets bloką po Prepare row, pavadinkite jį Save response to sheet ir pasirinkite operaciją Append or Update Row.

  2. Prijunkite Google paskyrą, pasirinkite norimą dokumentą Document (iš sąrašo arba įveskite ID pasirinkę By ID) ir kortelę responses Sheet lauke.

  3. Nustatykite Mapping Column Mode į Map Automatically ir Column to match on į Response ID.

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

Kodėl verta naudoti atskirą Prepare row žingsnį? Pasirinkus kitą lentelę ar kortelę Google Sheets bloke, n8n ištrina ten buvusias atitikimo taisykles. Suderinus viską Prepare row, nieko neprarasite – Google Sheets blokas automatiškai pritaikys laukus pagal pavadinimus.

Dar kartą spauskite Publish. Nauji pakeitimai aktyvuosis tik paskelbus iš naujo.

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

Svarbios detalės apie išraiškas:

  • Atsakymų pasirinkimai gaunami struktūra { ids, labels, value }. labels[0] yra pasirinkto atsakymo tekstas. Jei klausimas leidžia kelis pasirinkimus, naudokite labels.join(', '), kad viskas būtų viename langelyje. value rodys tekstą atsakyme „Kita“.

  • Laikas gaunamas UTC formatu. Submitted išraiška pavers jį į jūsų laiko juostą, o Google Sheets leis rūšiuoti ar grupuoti duomenis kaip datą ir laiką.

  • URL parametrai su brūkšneliu (pvz., order-id) – naudokite skliaustelius parameters['order-id']. „Survio“ leidžia tik tokią struktūrą, pabraukimo negalima.

  • Apklausos pavadinimas nesiunčiamas duomenų rinkinyje iš „Survio“. Jei kelios apklausos rašo į tą pačią lentelę, pridėkite stulpelį „Apklausa“ ir lauką „Apklausa“ žingsnyje Prepare row.

Pateikite dar vieną atsakymą – nauja eilutė matysis lentelėje beveik akimirksniu.

The responses tab in Google Sheets with one row per response


​

A atvejis – atsakymų diagramos sukūrimas

  1. Pridėkite naują kortelę, pavadinkite ją report.

  2. Langelį A1 įrašykite Satisfaction, o į B1 – Responses. Nuo A2 iki A6 įrašykite visus galimus pasirinkimus – lygiai taip, kaip apklausoje.

  3. B2 langelyje įveskite =COUNTIF(responses!D:D,A2) ir šią formulę nukopijuokite iki B6.

  4. Pažymėkite A1:B6 ir rinkitės Įterpti → Diagramą. Google Sheets pasiūlys stulpelinės diagramos tipą. Jei norite pakeisti pavadinimus, naudokitės Tinkinti → Diagramos ir ašių pavadinimai.

Su kiekvienu nauju atsakymu papildoma nauja eilutė skirtuke responses, o diagrama bei skaičiavimai atsinaujina automatiškai, kaip matėte pradžioje.
​

B atvejis – grupių palyginimas pagrindinėje lentelėje

  1. Kortelėje responses pažymėkite visą lentelę ir pasirinkite Įterpti → pagrindinę lentelę, tada pasirinkite Nauja lentelė.

  2. Prie Eilučių pridėkite Satisfaction. Prie Reikšmės – Response ID, keiskite Apibendrinimas pagal iš SUM į COUNTA.

  3. Spauskite Duomenys → Pridėti skiltuką ir pasirinkite Channel stulpelį. Išsirinkite pageidaujamas reikšmes ir spauskite OK. Gausite pagrindinę lentelę lygiai kaip straipsnio pradžioje.

Galėsite skirstyti pagal bet kurį stulpelį: Channel (jūsų klausimas), Language (respondento kalba), Source (pvz., tiesioginė nuoroda ar kvietimas el. paštu), Order ID ir kt.

Skiltuko pasirinkimai neišsaugomi kitam kartui. Iš naujo atidarius failą, skiltukas rodys visas reikšmes. Jei norite išsaugoti savo pasirinkimą, nustatykite jį kaip numatytą Skiltuko meniu.

Atsisiųskite paruoštą darbo eigą

Vietoj to, kad žingsnius 2 ir 5 atliktumėte nuo nulio, naudokitės mūsų šablonu. Atsisiųskite survio-responses-to-google-sheets.json iš straipsnio priedų ir:

  1. n8n susikurkite tuščią darbo eigą. Meniu (trys taškai) paspauskite Importuoti, tada Iš failo ir nurodykite atsisiųstą failą.

  2. Atsidarykite Prepare row ir pakeiskite klausimų ID į savo, taip pat atitinkamą laiko juostą.

  3. Atsidarykite Save response to sheet. Iki kol sukonfigūruosite, matysite raudoną įspėjamąjį ženklą. Prijunkite Google paskyrą, pasirinkite dokumentą ir kortelę responses. n8n automatiškai pakeis Mapping Column Mode į Map Each Column Manually – nustatykite grąžinti į Map Automatically ir Column to match on į Response ID.

  4. Atsidarykite Survio Webhook, nukopijuokite Production URL į „Survio“ (3 žingsnis) ir paspauskite Publish.

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

Patikrinkite visą eigą

  1. Pateikite atsakymą naudodami apklausos nuorodą. Nauja eilutė skirtuke responses atsiras po kelių sekundžių.

  2. Patikrinkite, ar užpildytas Response ID laukas. Tai apsaugo nuo dublikatų.

  3. Peržiūrėkite viską n8n Executions skirtuke – čia matysite visus siuntimus ir jų duomenis.

Dažniausios problemos ir kaip jas išspręsti

Simptomas

Priežastis

Sprendimas

n8n negauna duomenų

„Survio“ nurodytas Test URL arba darbo eiga dar neišpublikuota

Įsitikinkite, kad „Survio“ įrašytas Production URL ir paspauskite Publish

„Survio“ neišsaugo webhook'ų URL iš savarankiškai talpinamo n8n

n8n grąžina vidinį adresą vietoj tikro viešojo

Nustatykite n8n WEBHOOK_URL reikšmę kaip viešą https adresą ir pakartokite veiksmą

„Listen for test event“ nieko nerodo, nors pateikėte apklausą

„Survio“ siunčia į Production URL, kol klausymas vyksta Test URL

Naudokitės Executions skirtuku vietoje testavimo režimo

Pakeitimai neveikia

Darbo eiga paskelbta, bet nauji pakeitimai dar ne (Publish rodo tašką)

Dar kartą spauskite Publish

Tas pats atsakymas įrašomas du kartus

Naudojama Append Row arba nenurodytas atitikimo stulpelis

Pasirinkite Append or Update Row ir derinkite pagal Response ID

Stulpelis lieka tuščias, o gale atsiranda naujas stulpelis

Prepare row lauko pavadinimas nesutampa su stulpelio pavadinimu

Pervadinkite lauką Prepare row bloke ir panaikinkite nereikalingą (tuščią) stulpelį lentelėje

Langelis rodo [object Object]

Pasirinkimo atsakymas be labels

Naudokite ?.answer?.labels?.[0]

Pakeitus apklausos klausimus, stulpeliai užsipildo neteisingai

Atsakymai paimti pagal sąrašo poziciją

Visada naudokitės question.id

El. pašto stulpelis lieka tuščias

Imamas iš data.email

Naudokite atsakymą iš klausimo arba parametrą iš URL

Nematyti senų atsakymų

Webhook siunčia tik naujus atsakymus, pateiktus po webhook sukūrimo

Senuosius atsakymus eksportuokite iš „Survio“ ir įkelkite juos rankiniu būdu

„Survio“ išjungė webhook

Webhook 5 dienas iš eilės nepriėmė duomenų

Ištaisykite priežastį, tada rankiniu būdu vėl įjunkite webhook „Survio“

Ką svarbu žinoti

  • „Survio“ siunčia tik užbaigtus atsakymus – kiekvieną atskira žinute per kelias sekundes.

  • Siunčiama tik naujiems atsakymams: senesnių neperduoda, taip pat nesiunčia, kai webhook buvo pristabdytas.

  • Nesėkmės atveju siuntimas kartojamas iki 8 kartų (apie 27 valandas), laukiant iki 30 sekundžių atsako. Derinant pagal Response ID pakartotiniai bandymai neužpildo duomenų antrą kartą.

  • Jei 5 dienas iš eilės siuntimas nesiseka, „Survio“ automatiškai išjungs webhook – reikės jį vėl įjungti rankiniu būdu.

  • Webhook pristabdymas laikinai sustabdo siuntimą, tačiau ištrynimas yra negrįžtamas.

  • „Survio“ nekaupia siuntimo istorijos pačioje platformoje – viską matysite tik n8n Executions skiltyje.

  • Atsakymų siuntimas į webhook nenaudoja papildomų jūsų plano atsakymų limitų.

Norėtumėte, kad viską paruoštume už jus? „Survio“ webhook puslapyje spustelėkite Gauti eksperto nustatymus, aprašykite, ko tikitės, ir mūsų komanda paruoš, ištestuos ir perduos jums veikiantį webhook sprendimą.

Ar gavote atsakymą į savo klausimą?