Pāriet uz galveno saturu

Analītika – jūsu atskaites vienmēr svaigas: sūtiet katru Survio atbildi uz Google Sheets automātiski

Katru pabeigto Survio atbildi nosūtiet uz Google Sheets automātiski, pēc tam izveidojiet dzīvu diagrammu vai dinamisko tabulu virs tās. Detalizēta pamācība ar n8n un gatavu darba plūsmu lejupielādei.

Autors: Success Team Survio

Kuru gadījumu izvēlēties?

A gadījums – vienkārši, visiem: viena diagramma ar jūsu atbildēm, kas atjauninās ar katru jaunu atbildi.

B gadījums – komandām, kas salīdzina grupas: dinamiskā tabula, ko varat filtrēt pēc kanāla, valodas vai citas kolonnas.

Katru atbildi, ko savāc jūsu aptauja, Google Sheets uzreiz reģistrē kā jaunu rindu brīdī, kad tā tiek iesniegta. Izveidojiet diagrammu vai dinamisko tabulu virs tās vienreiz, un jūsu atskaite būs aktuāla pati no sevis: nav eksporta, nav kopēšanas, nav jāgaida, kad kāds sagatavos skaitļus.
​

Šis ir A gadījuma atskaites piemērs — diagramma, kas atjaunojas ar katru jaunu atbildi:
​

The report tab with response counts and a column chart


​

Un šī ir B gadījuma dinamiskā tabula ar filtrēšanu pēc kanāla, izmantojot šķēlētāju:
​

Pivot table with a slicer on the Channel column

Kā tas darbojas. Survio katru pabeigtu atbildi nosūta uz webhook URL. Automatizācijas rīks (mēs izmantojam n8n šajā pamācībā) to saņem un ieraksta vienu rindu jūsu tabulā. Survio veic sūtīšanu, n8n veic ierakstīšanu, un pati tabula veido atskaiti.

Pirmo reizi dzirdat par Webhooks Survio? Sāciet ar Webhooks: sūtiet atbildes uz citiem rīkiem reāllaikā, tad atgriezieties šeit.
​

Ko jūs izveidosiet

Abas atskaites darbosies ar vienu un to pašu iestatījumu: katra pabeigta atbilde kļūst par jaunu rindu responses cilnē.

Īsumā

A gadījums: viena diagramma

B gadījums: atskaite pēc segmenta

Rezultāts

Diagramma par atbilžu sadalījumu, kas atjaunojas ar katru jaunu atbildi

Dinamiskā tabula, ko varat filtrēt pēc kanāla, valodas vai jebkuras citas kolonnas

Rīki

Survio, n8n, Google Sheets

Survio, n8n, Google Sheets (ar dinamisko tabulu un šķēlētāju)

Piemērots vislabāk

Mazam uzņēmumam, kas vēlas vienkāršu, vienmēr aktuālu diagrammu

Komandai, kas salīdzina grupas, piemēram, tiešsaistes un veikala klientus

Pirms sākat

  • Survio aptauja ar apmaksātu plānu. Webhooks nav pieejami Free plānā, un katram plānam ir noteikts webhook skaits uz aptauju (skatīt webhook rakstā).

  • n8n konts – n8n Cloud vai pašhostēts.

  • Google konts Google Sheets lietošanai.

Šajā pamācībā izmantojam īsu klientu apmierinātības aptauju: zvaigžņu vērtējumu, izvēles jautājumu "Cik kopumā esat apmierināti?", izvēles jautājumu "Kā šoreiz iepirkāties pie mums?", atvērtu komentāru un izvēles e-pasta jautājumu. Jūsu aptauja var atšķirties; savus jautājumus jānorāda 5. solī.
​

1. solis — Sagatavojiet tabulu

  1. Izveidojiet jaunu Google Sheets tabulu un pārdēvējiet pirmo cilni par responses.

  2. 1. rindā ierakstiet kolonnu virsrakstus. Mēs lietojam Response ID, Submitted, Rating (1-5), Satisfaction, Channel, What could we do better, E-mail, Order ID, Language un Source.

Paturiet Response ID pirmajā kolonnā. Tā ir Survio unikālā id katrai atbildei. n8n to lieto, lai atjauninātu esošo rindu, nevis pievienotu dublikātu, kad piegāde tiek atkārtota.

2. solis — Izveidojiet webhook n8n

  1. n8n izveidojiet jaunu darba plūsmu un pievienojiet Webhook mezglu kā izsaukšanas punktu.

  2. Iestatiet HTTP Method uz POST.

  3. Pārslēdzieties uz Production URL cilni un nokopējiet adresi.

  4. Nospiediet Publish. Production URL pieņem tikai pēc publicēšanas.

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

Lietojiet Production URL, nevis Test URL. Test URL strādā tikai kamēr redaktors gaida testa notikumu, tāpēc Survio piegādes pārtrūkst līdzko logs ir aizvērts. Survio atkārto kļūdainas piegādes apmēram diennakti, un pēc 5 neveiksmēm webhook izslēdzas.

3. solis — Savienojiet aptauju Survio

  1. Atveriet savu aptauju un dodieties uz Saņemt atbildes.

  2. Kreisajā sānjoslā sadaļā Automatizācijas un integrācijas izvēlieties Webhooks un spiediet + Pievienot webhook.

  3. Ielīmējiet n8n Production URL laukā Webhook URL un nospiediet Saglabāt webhook. Webhook tiek ieslēgts uzreiz.

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


​

4. solis — Nosūtiet testatbildi un atrodiet savu jautājumu id

  1. Atveriet aptaujas parasto saiti un iesniedziet vienu pilnu atbildi. Survio sūta tikai pabeigtas atbildes, tāpēc spiediet līdz beigām.

  2. n8n atveriet Executions cilni. Piegāde ienāks dažu sekunžu laikā.

  3. Atveriet izpildi un klikšķiniet uz Webhook mezgla. Izvēršot body, tālāk data, tad answers, redzēsiet katra jautājuma question.id, label un answer.

  4. Atzīmējiet id katram jautājumam, kuru gribat kā kolonu. Var arī izmantot Pin, lai būvētu plūsmu bez jauna aptaujas iesnieguma.

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

Vienmēr izvēlieties atbildes pēc question id. Atbildes pienāk sarakstā. Ja vēlāk pievienosiet jautājumu, saraksts mainīsies un jūsu kolonnas var piepildīties ar nepareizām vērtībām. Jautājuma id nemainās.

Meklējat respondenta e-pastu? Nelietojiet data.email: tas būs tukšs, ja e-pasts ir no jautājuma vai URL parametra. Izlasi to atbildē uz savu e-pasta jautājumu vai no data.parameters.

5. solis — Pārvērtiet atbildi par rindu

Nepieciešami divi mezgli: Prepare row paņem atbildes no datiem, Save response to sheet raksta tās sheet'ā.

Prepare row

  1. Pievienojiet Edit Fields (Set) mezglu aiz Webhook un pārdēvējiet to par Prepare row.

  2. Pie Fields to Set pievienojiet katru sheet kolonnas lauku, tipu atstājiet String. Lauka nosaukumam jāsakrīt ar kolonnas nosaukumu; vērtību sk. zemāk.

  3. Aizstājiet jautājumu id ar atrastajiem 4. solī un Europe/Prague ar savu laika zonu.

Lauka nosaukums

Vērtība

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


​

Saglabājiet atbildi tabulā

  1. Pievienojiet Google Sheets mezglu aiz Prepare row, pārdēvējiet to par Save response to sheet un izvēlieties darbību Append or Update Row.

  2. Pievienojiet Google kontu, atlasiet vajadzīgo izklājlapas dokumentu (By ID vai sarakstā) un responses cilni pie Sheet.

  3. Iestatiet Mapping Column Mode uz Map Automatically un Column to match on uz Response ID.

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

Kāpēc atsevišķs Prepare row solis? Ja Google Sheets mezglā pārslēdz dokumentu vai cilni, n8n dzēš attiecīgo kartējumu šajā mezglā. Ar izteiksmēm Prepare row solī nekas nepazūd: Google Sheets mezgls tikai sasaista laukus ar kolonnas nosaukumiem.

Nospiediet Publish vēlreiz – izmaiņas pēc publicēšanas darbojas tikai pēc vēl viena publicēšanas klikšķa.

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

Daži padomi par šīm izteiksmēm:

  • Izvēles jautājumi ienāk kā { ids, labels, value }. labels[0] ir atlasītā atbilde. Daudzizvēļu jautājumiem izmantojiet labels.join(', ') – visas vērtības vienā šūnā. value ir teksts laukā "Cits".

  • Laiki pienāk UTC. Submitted pārvērš tos jūsu laika zonā, un Google Sheets ar tiem var kārtot vai grupēt.

  • URL parametri ar defisi, piemēram, order-id, jāraksta iekavās parameters['order-id']. Survio neatļauj pasvītrojumus nosaukumos.

  • Aptaujas nosaukums nav starp datiem, ko Survio sūta. Ja vairākas aptaujas raksta vienā tabulā, pievienojiet Survey kolonnu un Prepare row solī norādiet nosaukumu manuāli.

Iesniedziet vēl vienu atbildi. Jauna rinda tabulā parādīsies pāris sekunžu laikā.

The responses tab in Google Sheets with one row per response


​

A gadījums — diagrammas izveide

  1. Pievienojiet cilni ar nosaukumu report.

  2. A1 ievadiet Satisfaction, B1 — Responses. No A2 līdz A6 norādiet aptaujas atbilžu variantus.

  3. B2 ierakstiet =COUNTIF(responses!D:D,A2) un nokopējiet līdz B6.

  4. Iezīmējiet A1:B6 un izvēlieties Ievietot → Diagramma. Google Sheets ieteiks kolonnas diagrammu. Nosaukumu mainīt var sadaļā Pielāgot → Diagrammas un asi virsraksti.

Katrs jauns atbilžu ieraksts pievieno rindu responses cilnei, un diagramma pati automātiski atjauninās – gluži kā šī raksta sākumā.
​

B gadījums — grupu salīdzināšana ar dinamisko tabulu

  1. responses cilnē iezīmējiet tabulu un izvēlieties Ievietot → Pivot table, pēc tam Jauna lapa.

  2. Pie Rows pievienojiet Satisfaction. Pie Values pievienojiet Response ID un nomainiet no SUM uz COUNTA.

  3. Izvēlieties Dati → Pievienot šķēlētāju un izvēlieties Channel kolonnu. Atlasiet datus un apstipriniet ar Labi – rezultāts būs līdzīgs šo rakstu sākumā redzamajam piemēram.

Šķēlēt varat pēc jebkuras kolonnas: Channel (savā jautājumā), Language (valoda, kurā atbildēts aptaujā), Source (kā atbilde ienāca, piemēram, ar tiešo saiti vai e-pasta uzaicinājumu) vai Order ID.

Šķēlētāja izvēle pēc noklusējuma nesaglabājas. Atverot failu atkārtoti, šķēlētājs rādīs visas vērtības; lai saglabātu izvēli, norādiet to kā noklusēto šķēlētāja izvēlnē.

Lejupielādējiet gatavu darba plūsmu

Lai nevajadzētu veidot 2. un 5. soli no sākuma, vienkārši lejupielādējiet mūsu darba plūsmu survio-responses-to-google-sheets.json šī raksta beigās un:

  1. n8n izveidojiet tukšu darba plūsmu. Atveriet izvēlni (trīs punkti) blakus nosaukumam un izvēlieties Importēt → No faila. Atlasiet lejupielādēto failu.

  2. Atveriet Prepare row un nomainiet jautājumu id uz saviem, kā arī laika zonu uz nepieciešamo.

  3. Atveriet Save response to sheet. Kamēr nav pievienots Google konts un izvēlēta tabula ar responses cilni, redzēsiet brīdinājumu. Kad tas izdarīts, n8n bieži pārslēdz Mapping Column Mode uz Map Each Column Manually – atgrieziet uz Map Automatically, un Column to match on noregulējiet uz Response ID.

  4. Atveriet Survio Webhook, nokopējiet Production URL, ielīmējiet Survio (skatīt 3. soli) un spiediet Publish.

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

Notestējiet visu procesu

  1. Iesniedziet atbildi, izmantojot aptaujas saiti. Jauna rinda tiks pievienota responses cilnē pāris sekunžu laikā.

  2. Pārbaudiet, vai Response ID ir aizpildīts. Tas novērš dublikātus.

  3. Aplūkojiet n8n cilni Executions. Tur redzama katra piegāde un dati.

Problēmu novēršana

Simptoms

Iemesls

Risinājums

Dati nenonāk n8n

Survio izmantots Test URL vai plūsma nav publicēta

Iekopējiet Production URL Survio un nospiediet Publish

Survio nepieņem pašhostētu n8n webhook URL

n8n rāda iekšējo adresi, ne publisko

Iestatiet n8n WEBHOOK_URL uz savu publisko https adresi un atkārtoti nokopējiet URL

"Listen for test event" nekā nerāda, lai gan aptauja aizpildīta

Survio sūta uz Production URL, bet pārbaudes režīms skatās Test URL

Pārbaudiet cilni Executions

Jūsu jaunākās izmaiņas nestrādā

Plūsma publicēta, bet izmaiņas nav iepubliskotas (Publish poga ar punktu)

Nospiediet Publish vēlreiz

Tā pati atbilde parādās divreiz

Iestatīts Append Row vai nav definēta saskaņošanas kolonna

Izvēlieties Append or Update Row un saskaņojiet pēc Response ID

Kolonna paliek tukša, beigās parādās jauna kolonna

Prepare row lauka nosaukums nesakrīt ar kolonnas virsrakstu

Pārsauciet lauku, lai tas identiski sakristu – lieko kolonnu dzēsiet

Šūnā redzams [object Object]

Izvēles atbilde kartēta bez labels

Izmantojiet ?.answer?.labels?.[0]

Pēc aptaujas labojuma kolonnas iepildās ar nepareizām atbildēm

Atbildes kartētas pēc secības sarakstā

Vienmēr kartējiet pēc question.id

E-pasta kolonna paliek tukša

Kartēts no data.email

Izlasi e-pastu no jautājuma atbildes vai no URL parametra

Trūkst atbilžu, kas bija pirms integrācijas

Webhooks sūta tikai pēc izveidošanas iesniegtās atbildes

Eksportējiet vecās atbildes no Survio un ievietojiet tās tabulā

Survio atslēdzis Webhook

Webhook neizdevās 5 dienas pēc kārtas

Izlabojiet iemeslu un atkal ieslēdziet Webhook Survio

Noderīgi zināt

  • Survio sūta tikai pabeigtās atbildes, katru atsevišķi, pāris sekunžu laikā.

  • Dati netiek sūtīti atpakaļejoši: ne atbildes pirms webhook izveides, ne pauzes laikā iesniegtās.

  • Atsūtīšana kļūdas gadījumā notiek līdz 8 reizēm ~27 h laikā, katru reizi gaidot līdz 30 sekundēm. Ja saskaņojat pēc Response ID, atkārtojumi nerada dublikātus.

  • Ja 5 dienas pēc kārtas piegādes neizdodas, Survio izslēdz Webhook – pēc tam tas jāaktivizē no jauna.

  • Webhook pauzēšana saglabā nišu; dzēšana – neatgriezeniska.

  • Survio neglabā piegāžu vēsturi lietotnē. n8n cilne Executions ir jūsu žurnāls.

  • Atbilžu sūtīšana uz webhook neizmanto papildu atbildes no jūsu plāna.

Gribat, lai iestatām visu mēs? Webhook sadaļā Survio spiediet Saņemt eksperta uzstādījumu, pastāstiet, ko vēlaties, un mūsu komanda uztaisīs, notestēs un nodo jums gatavu webhook.

Vai saņēmāt atbildi uz savu jautājumu?