Când este util acest caz pentru dvs.?
Cazul A – simplu, pentru oricine: un grafic al răspunsurilor dvs. care se actualizează cu fiecare nou răspuns primit.
Cazul B – pentru echipe care vor să compare grupuri: un tabel pivot pe care îl puteți filtra după canal, limbă sau orice altă coloană.
Fiecare răspuns pe care chestionarul dvs. îl colectează ajunge ca un rând nou într-un Google Sheet în momentul în care este trimis. Construiți o dată un grafic sau un tabel pivot peste el, iar raportul dvs. rămâne mereu actualizat: fără exporturi, fără copiere, fără să așteptați ca cineva să pregătească datele.
Acesta este raportul pe care îl obțineți în cazul A, un grafic ce se actualizează cu fiecare răspuns nou:
Iar acesta este tabelul pivot din cazul B, filtrat după canal cu un segmentator:
Cum funcționează. Survio trimite fiecare răspuns completat către un URL webhook. Un instrument de automatizare (folosim n8n în acest ghid) îl primește și inserează un rând în sheet-ul dvs. Survio se ocupă de trimitere, n8n de scriere, iar sheet-ul de raportare.
Nu ați mai folosit webhooks în Survio? Începeți cu Webhooks: trimiteți răspunsuri către celelalte instrumente ale dvs. în timp real, apoi reveniți aici.
Ce veți construi
Ambele rapoarte sunt alimentate de aceeași configurare: fiecare răspuns completat devine un rând pe o filă numită responses.
Dintr-o privire | Cazul A: un grafic | Cazul B: raport pe segmente |
Rezultat | Un grafic cu distribuția răspunsurilor, actualizat cu fiecare răspuns nou | Un tabel pivot pe care îl puteți filtra după canal, limbă sau altă coloană |
Instrumente | Survio, n8n, Google Sheets | Survio, n8n, Google Sheets (tabel pivot și segmentator) |
Ideal pentru | O afacere mică ce dorește un grafic simplu mereu actualizat | O echipă care compară grupuri, de exemplu clienți online și la magazin |
Înainte de a începe
Un chestionar Survio pe un plan cu plată. Webhooks nu sunt disponibile pe planul Free, iar fiecare plan permite un număr de webhooks per chestionar (vedeți articolul despre webhooks).
Un cont n8n, n8n Cloud sau self-hosted.
Un cont Google pentru Google Sheets.
În acest ghid folosim un scurt chestionar de satisfacția clientului: o evaluare cu stele, o întrebare "Per total, cât de mulțumit sunteți?" de tip alegere, o întrebare "Cum ați cumpărat de la noi de această dată?" de tip alegere, un comentariu deschis și o întrebare opțională de e-mail. Chestionarul dvs. poate arăta diferit; veți asocia propriile întrebări la pasul 5.
Pasul 1 — Pregătiți sheet-ul
Creați un Google Sheet nou și redenumiți prima filă în
responses.În rândul 1, introduceți anteturile coloană. Noi folosim
Response ID,Submitted,Rating (1-5),Satisfaction,Channel,What could we do better,E-mail,Order ID,LanguageșiSource.
Păstrați Response ID ca prima coloană. Este identificatorul unic al Survio pentru fiecare răspuns. n8n îl folosește pentru a actualiza rândul existent în loc să adauge duplicate când are loc o retrimitere.
Pasul 2 — Creați webhook-ul în n8n
În n8n, creați un workflow nou și adăugați un nod Webhook ca declanșator.
Setați HTTP Method pe POST.
Comutați la fila Production URL și copiați adresa.
Faceți clic pe Publish. Production URL acceptă livrări doar după publicare.
Folosiți Production URL, nu Test URL. Test URL ascultă doar cât timp editorul așteaptă un eveniment de test, astfel încât livrările Survio eșuează imediat după ce îl închideți. Survio retrimite o livrare eșuată timp de aproximativ o zi, iar după 5 zile de eșec webhook-ul este dezactivat.
Pasul 3 — Conectați chestionarul în Survio
Deschideți chestionarul și mergeți la Primiți răspunsuri.
În bara laterală, sub Automatizări & Integrări, selectați Webhooks și faceți clic pe + Adăugați un webhook.
Lipiți Production URL din n8n în Webhook URL și faceți clic pe Salvați webhook. Webhook-ul este activat imediat.
Pasul 4 — Trimiteți un răspuns de test și găsiți id-urile întrebărilor
Deschideți chestionarul prin linkul obișnuit și trimiteți un răspuns complet. Survio trimite doar răspunsuri finalizate, deci parcurgeți tot chestionarul până la final.
În n8n, deschideți fila Executions. Livrarea ajunge în câteva secunde.
Deschideți execuția și dați clic pe nodul Webhook. Extindeți
body, apoidata, apoianswers. Fiecare răspuns conținequestion.id,labelal întrebării șianswer.Notați id-ul fiecărei întrebări pe care doriți să o aveți ca și coloană. Puteți și fixa răspunsul (Pin) ca să construiți pe el în continuare fără să retrimiteți chestionarul.
Selectați mereu răspunsurile după id-ul întrebării. Răspunsurile ajung ca listă. Dacă ulterior adăugați o întrebare, pozițiile din listă se schimbă, iar coloanele s-ar umple cu alte răspunsuri. Id-urile întrebărilor nu se modifică niciodată.
Căutați e-mailul respondentului? Nu folosiți data.email: rămâne gol dacă e-mailul vine dintr-o întrebare sau parametru URL. Citiți-l din răspunsul la întrebarea de e-mail sau din data.parameters.
Pasul 5 — Transformați fiecare răspuns într-un rând
Aveți nevoie de două noduri: Prepare row preia răspunsurile, iar Save response to sheet le scrie în sheet.
Prepare row
Adăugați un nod Edit Fields (Set) după Webhook și redenumiți-l
Prepare row.La Fields to Set, adăugați câte un câmp pentru fiecare coloană și lăsați tipul String. Numele câmpului trebuie să coincidă exact cu antetul coloanei; valoarea este expresia de mai jos.
Înlocuiți id-urile întrebărilor cu cele notate la pasul 4 și Europe/Prague cu fusul dvs. orar.
Nume câmp | Valoare |
Response ID |
|
Submitted |
|
Rating (1-5) |
|
Satisfaction |
|
Channel |
|
What could we do better |
|
| |
Order ID |
|
Language |
|
Source |
|
Save response to sheet
Adăugați un nod Google Sheets după Prepare row, redenumiți-l
Save response to sheetși alegeți operațiunea Append or Update Row.Conectați contul Google, apoi selectați spreadsheet-ul la Document (din listă sau introduceți ID-ul cu By ID) și fila
responsesla Sheet.Setați Mapping Column Mode pe Map Automatically și Column to match on pe Response ID.
De ce pas separat Prepare row? Dacă schimbați sheet-ul sau fila în nodul Google Sheets, n8n golește maparea internă. Cu expresiile din Prepare row nu se pierde nimic – nodul Google Sheets doar mapează numele câmpurilor la anteturi.
Faceți clic pe Publish din nou. Modificările după publicare devin active doar după ce publicați din nou.
Câteva detalii despre expresii:
Întrebările de tip alegere vin ca
{ ids, labels, value }.labels[0]e textul opțiunii selectate. Pentru alegere multiplă, folosițilabels.join(', ')pentru a pune toate opțiunile într-o celulă.valueconține textul introdus la „Altă variantă”.Orele sosesc în UTC. Expresia Submitted le transformă în fusul dvs. orar, și Google Sheets poate sorta/grupa data și ora.
Parametrii URL cu cratimă în nume (ex:
order-id) trebuie accesați cuparameters['order-id']. Survio nu permite underscore în nume de parametri.Titlul chestionarului nu e trimis. Dacă mai multe chestionare scriu în același sheet, adăugați o coloană Survey și câmp manual cu numele chestionarului la Prepare row.
Trimiteți un alt răspuns. Un nou rând apare în sheet în câteva secunde.
Cazul A — Graficul răspunsurilor
Adăugați o filă numită
report.Scrieți
Satisfactionîn A1 șiResponsesîn B1. Din A2 în A6, introduceți opțiunile de răspuns exact ca în chestionar.În B2 introduceți
=COUNTIF(responses!D:D,A2)și copiați în jos până la B6.Selectați A1:B6 și alegeți Insert → Chart. Pentru titlu, mergeți la Customize → Chart & axis titles.
Orice răspuns nou adaugă un rând pe responses, iar numărătoarea și graficul se actualizează automat, similar cu graficul de la începutul articolului.
Cazul B — Comparați grupuri cu tabel pivot
Pe fila
responses, selectați datele și alegeți Insert → Pivot table, apoi New sheet.La Rows, adăugați Satisfaction. La Values, adăugați Response ID și schimbați Summarize by din SUM în COUNTA.
Alegeți Data → Add a slicer și selectați coloana Channel. Bifați valorile dorite și confirmați cu OK. Rezultatul va semăna cu tabelul pivot prezentat la începutul acestui articol.
Puteți filtra după orice coloană: Channel (propria întrebare), Language (limba de răspuns a chestionarului), Source (sursa răspunsului – link direct sau invitație prin e-mail, de exemplu) sau Order ID.
O selecție în segmentator nu este salvată pentru următoarea vizită. La redeschidere, segmentatorul arată toate valorile. Pentru a salva o selecție, setați-o ca implicită din meniul segmentatorului.
Descărcați workflow-ul gata făcut
În loc să construiți pașii 2 și 5 manual, începeți de la workflow-ul nostru. Descărcați survio-responses-to-google-sheets.json din fișierele articolului, apoi:
În n8n, creați un workflow gol. Deschideți meniul (trei puncte) de lângă nume și alegeți Import > From file. Selectați fișierul descărcat.
Deschideți Prepare row și înlocuiți id-urile întrebărilor și fusul orar cu ale dvs.
Deschideți Save response to sheet. Va apărea un avertisment roșu până configurați. Conectați contul Google și selectați sheet-ul și fila
responses. n8n va schimba Mapping Column Mode în Map Each Column Manually: setați-l din nou pe Map Automatically și Column to match on pe Response ID.Deschideți Survio Webhook, copiați Production URL în Survio (pasul 3) și faceți clic pe Publish.
Testați cap-coadă
Trimiteți un răspuns prin linkul chestionarului. Un rând apare pe fila
responsesîn câteva secunde.Verificați ca Response ID să fie completat. Acesta previne duplicatele.
Verificați fila Executions în n8n. Fiecare livrare și datele apar acolo.
Depanare
Simptom | Cauză | Remediere |
Nimic nu ajunge în n8n | Test URL e introdus în Survio sau workflow-ul nu e publicat | Copiați Production URL în Survio și faceți clic pe Publish |
Survio nu salvează URL-ul webhook de la n8n self-hosted | n8n afișează adresă internă în loc de publică | Setați |
„Listen for test event” nu arată nimic deși un chestionar a fost trimis | Survio trimite pe Production URL; ascultarea e pe Test URL | Verificați fila Executions |
Ultima modificare nu are efect | Workflow-ul e publicat, dar schimbarea nu (butonul Publish are punct) | Faceți clic din nou pe Publish |
Apare același răspuns de două ori | Setat pe Append Row sau nu s-a ales coloana de asociere | Folosiți Append or Update Row și asociați pe Response ID |
O coloană rămâne goală și apare una nouă la final | Numele din Prepare row nu corespunde antetului | Redenumiți câmpul ca să corespundă și ștergeți coloana suplimentară |
O celulă arată [object Object] | Întrebare alegere mapată fără | Folosiți |
Coloanele preiau răspunsuri greșite după ce editați chestionarul | Ați ales răspunsurile după poziție în listă | Selectați-le după |
Coloana E-mail rămâne goală | Mapată din | Luați e-mailul din întrebarea de e-mail sau parametru URL |
Răspunsurile anterioare configurării lipsesc | Webhooks trimit doar răspunsuri transmise după creare | Exportați răspunsurile vechi din Survio și introduceți-le manual |
Survio a dezactivat webhook-ul | URL-ul webhook-ului a eșuat 5 zile la rând | Remediați cauza și reactivați webhook-ul în Survio |
Bine de știut
Survio trimite doar răspunsuri completate, un mesaj pentru fiecare, în câteva secunde.
Nu se trimit retroactiv răspunsuri de dinaintea webhook-ului sau din perioada cât a fost dezactivat.
O livrare eșuată se retrimite de până la 8 ori în circa 27 de ore, fiecare încercare așteptând până la 30 de secunde. Asocierea după Response ID face ca retrimiterile să nu dăuneze datelor.
Dacă livrările eșuează 5 zile la rând, Survio dezactivează webhook-ul și trebuie să îl reactivați.
Pauzarea unui webhook păstrează locul, ștergerea e definitivă.
Survio nu ține istoric de livrări în aplicație. Fila Executions din n8n ține evidența.
Trimiterea răspunsurilor prin webhooks nu consumă suplimentar răspunsuri din planul dvs.
Preferăți să ne ocupăm noi? Pe pagina Webhooks din Survio, faceți clic pe Primiți configurare de la un expert, spuneți-ne ce doriți să automatizați, iar echipa noastră va crea, testa și preda un webhook funcțional.
