À qui s’adresse ce guide ?
Cas A – usage simple, pour tous : un graphique de vos réponses qui se met à jour à chaque nouvelle réponse.
Cas B – pour les équipes comparant des groupes : un tableau croisé dynamique que vous pouvez filtrer par canal, langue ou toute autre colonne.
Chaque réponse que votre sondage collecte s’ajoute comme une nouvelle ligne dans un Google Sheet dès qu’elle est soumise. Créez un graphique ou un tableau croisé dynamique dessus une seule fois, et vos rapports restent à jour automatiquement : pas d’export, pas de copie, pas d’attente pour que quelqu’un prépare les chiffres.
Voici le rapport que vous obtenez dans le cas A, un graphique qui se met à jour à chaque nouvelle réponse :
Et voici le tableau croisé dynamique du cas B, filtré par canal avec un segment :
Fonctionnement. Survio envoie chaque réponse complétée à une URL de webhook. Un outil d’automatisation (nous utilisons n8n dans ce guide) la reçoit et écrit une ligne dans votre feuille. Survio s’occupe de l’envoi, n8n de l’écriture, et la feuille réalise le reporting.
Nouveau sur les webhooks dans Survio ? Commencez par Webhooks : envoyer les réponses vers vos autres outils en temps réel, puis revenez ici.
Ce que vous allez construire
Les deux rapports s’alimentent via la même configuration : chaque réponse complétée devient une ligne sur un onglet nommé responses.
En un coup d’œil | Cas A : un graphique | Cas B : rapport par segment |
Résultat | Un graphique illustrant la répartition des réponses, mis à jour avec chaque nouvelle réponse | Un tableau croisé dynamique filtrable par canal, langue ou toute autre colonne |
Outils | Survio, n8n, Google Sheets | Survio, n8n, Google Sheets (tableau croisé dynamique et segment) |
Idéal pour | Une petite entreprise qui souhaite un graphique simple toujours actualisé | Une équipe qui compare des groupes, par exemple des clients en ligne et en magasin |
Avant de commencer
Un sondage Survio sur un plan payant. Les webhooks ne sont pas disponibles sur le plan Free, et chaque plan autorise un nombre défini de webhooks par sondage (voir l’article sur les webhooks).
Un compte n8n, en Cloud ou auto-hébergé.
Un compte Google pour Google Sheets.
Dans ce guide, nous utilisons un court questionnaire de satisfaction client : une évaluation - classement par étoiles, une question à choix « Globalement, quel est votre niveau de satisfaction ? », une question à choix « Comment avez-vous effectué votre achat cette fois ? », un commentaire libre et une question e-mail (optionnelle). Votre sondage peut être différent ; vous ferez le mapping de vos propres questions à l’étape 5.
Étape 1 — Préparer la feuille
Créez une nouvelle feuille Google Sheets et renommez le premier onglet en
responses.En ligne 1, saisissez les en-têtes de colonnes. Nous utilisons
Response ID,Submitted,Rating (1-5),Satisfaction,Channel,What could we do better,E-mail,Order ID,LanguageetSource.
Laissez Response ID comme première colonne. Il s’agit de l’identifiant unique Survio pour chaque réponse. n8n l’utilise pour mettre à jour la ligne existante au lieu d’ajouter un doublon lors de retentatives de livraison.
Étape 2 — Créer le webhook dans n8n
Dans n8n, créez un nouveau workflow et ajoutez un nœud Webhook comme déclencheur.
Définissez HTTP Method sur POST.
Passez sur l’onglet Production URL et copiez l’adresse.
Cliquez sur Publish. L’URL de production accepte les livraisons uniquement quand le workflow est publié.
Utilisez bien l’URL de production et non celle de test. L’URL de test n’est active que lorsque l’éditeur attend un événement test ; dès que vous le fermez, Survio n’arrive plus à livrer. Survio retente une livraison échouée pendant environ une journée et après 5 jours d’échecs, le webhook est désactivé.
Étape 3 — Connecter le sondage dans Survio
Ouvrez votre sondage et allez dans Collecte des réponses.
Dans la barre latérale gauche, sous Automatisations & Intégrations, sélectionnez Webhooks puis cliquez sur + Ajouter un webhook.
Collez l’URL de production n8n dans URL du webhook et cliquez sur Sauvegarder le webhook. Le webhook s’active immédiatement.
Étape 4 — Envoyer une réponse test et trouver les id de questions
Ouvrez votre sondage par son lien habituel et soumettez une réponse complète. Survio n’envoie que les réponses finalisées donc allez jusqu’au bout.
Dans n8n, ouvrez l’onglet Executions. La livraison arrive en quelques secondes.
Ouvrez l’exécution puis cliquez sur le nœud Webhook. Déroulez
body, puisdata, puisanswers. Chaque réponse indique sonquestion.id, lelabelde la question et laanswer.Notez l’id de chaque question que vous souhaitez comme colonne. Vous pouvez aussi cliquer sur Pin pour continuer à travailler dessus sans refaire de soumission.
Sélectionnez toujours les réponses par l’id de question. Les réponses arrivent sous forme de liste. Si vous ajoutez une question plus tard, les positions bougent et les colonnes risqueraient d’être mal remplies. Les ids de question, eux, ne changent jamais.
Vous cherchez l’e-mail du répondant ? N’utilisez pas data.email : il reste vide si l’e-mail provient d’une question ou d’un paramètre URL. Lisez-le depuis la réponse à la question e-mail ou depuis data.parameters.
Étape 5 — Transformer chaque réponse en ligne
Utilisez deux nœuds : Préparer la ligne extrait les réponses et Sauvegarder la réponse dans la feuille les écrit dans votre feuille.
Préparer la ligne
Ajoutez un nœud Edit Fields (Set) après le nœud Webhook et renommez-le
Prepare row.Dans Fields to Set, ajoutez un champ pour chaque colonne de votre feuille, gardez le type String. Le nom du champ doit correspondre exactement à l’en-tête de colonne ; la valeur est l’expression ci-dessous.
Remplacez les ids de questions par ceux notés à l’étape 4, et Europe/Prague par votre fuseau horaire.
Nom du champ | Valeur |
Response ID |
|
Submitted |
|
Rating (1-5) |
|
Satisfaction |
|
Channel |
|
What could we do better |
|
| |
Order ID |
|
Language |
|
Source |
|
Sauvegarder la réponse dans la feuille
Ajoutez un nœud Google Sheets après Préparer la ligne, renommez-le
Sauvegarder la réponse dans la feuilleet choisissez l’opération Append or Update Row.Connectez votre compte Google, puis sélectionnez votre tableur sous Document (dans la liste ou en collant son ID avec By ID) et l’onglet
responsessous Sheet.Réglez Mapping Column Mode sur Map Automatically et Column to match on sur Response ID.
Pourquoi une étape Préparer la ligne ? Lorsque vous changez de tableur ou d’onglet dans le nœud Google Sheets, n8n efface le mapping des colonnes ; les expressions dans Préparer la ligne assurent que rien n’est perdu et Google Sheets ne fait que relier le nom du champ à la colonne correspondante.
Cliquez de nouveau sur Publish. Toute modification réalisée après la publication doit être republiée pour être prise en compte.
Quelques précisions sur les expressions :
Les questions à choix arrivent comme
{ ids, labels, value }.labels[0]est le texte de l’option choisie. Pour une question à choix multiples,labels.join(', ')met toutes les réponses dans une cellule.valuecorrespond à l’option « Autre » si elle est renseignée.Les dates sont transmises en UTC. L’expression dans la colonne Submitted les convertit pour votre fuseau horaire, ce qui rend leur tri et regroupement possible dans Google Sheets.
Les paramètres d’URL avec un tiret dans le nom, comme
order-id, nécessitent la notation crochetsparameters['order-id']. Survio n’autorise pas les underscores dans les noms de paramètres.Le titre du sondage n’est pas présent dans les données envoyées par Survio. Si plusieurs sondages écrivent dans une même feuille, ajoutez une colonne Sondage dans la feuille et un champ Sondage dans Préparer la ligne avec le nom du sondage.
Envoyez une autre réponse test. Une nouvelle ligne apparaît dans la feuille dans la seconde.
Cas A — Afficher les réponses par un graphique
Ajoutez un onglet nommé
report.Tapez
Satisfactionen A1 etResponsesen B1. De A2 à A6, consignez les options exactement comme dans votre questionnaire.En B2, entrez
=COUNTIF(responses!D:D,A2)puis étirez jusqu’à B6.Sélectionnez A1:B6 et via le menu choisissez Insertion → Graphique. Google Sheets propose un graphique en colonnes. Pour changer son titre, ouvrez Personnaliser → Titres du graphique et des axes.
À chaque nouvelle réponse dans responses, le décompte et le graphique sont mis à jour automatiquement, comme celui au début de l’article.
Cas B — Comparer les groupes avec un tableau croisé dynamique
Sur l’onglet
responses, sélectionnez le tableau puis Insertion → Tableau croisé dynamique, puis Nouvelle feuille.Sous Lignes, ajoutez Satisfaction. Sous Valeurs, ajoutez Response ID puis modifiez Résumer par de SOMME à NBVAL.
Passez à Données → Ajouter un segment et choisissez la colonne Channel. Sélectionnez les valeurs souhaitées et confirmez avec OK. Le résultat ressemble au tableau croisé dynamique montré plus haut.
Vous pouvez segmenter par n’importe quelle colonne : Channel (votre propre question), Language (version linguistique du sondage), Source (mode d’arrivée — ex. lien direct ou invitation par e-mail) ou Order ID.
Un segment ne conserve pas la sélection à la prochaine ouverture. À la réouverture du fichier, toutes les valeurs s’affichent. Pour enregistrer une sélection, définissez-la par défaut dans le menu du segment.
Télécharger le workflow prêt à l’emploi
Plutôt que de réaliser les étapes 2 et 5 à la main, commencez avec notre workflow clés en main. Téléchargez survio-responses-to-google-sheets.json en pièce jointe en fin d’article, puis :
Dans n8n, créez un workflow vide. Ouvrez le menu (trois points) à côté du nom du workflow puis choisissez Import, puis From file. Sélectionnez le fichier téléchargé.
Ouvrez Prepare row et remplacez les ids de questions et le fuseau horaire adéquats.
Ouvrez Sauvegarder la réponse dans la feuille. L’avertissement rouge disparaîtra une fois configuré. Connectez votre compte Google, sélectionnez votre tableur et l’onglet
responses. n8n passe le Mapping Column Mode sur Map Each Column Manually : repassez-le sur Map Automatically et mettez Column to match on sur Response ID.Ouvrez Survio Webhook, copiez l’URL de production dans Survio (étape 3) et cliquez sur Publish.
Tester de bout en bout
Soumettez une réponse via le lien du sondage. Une ligne apparaît sur l’onglet
responsesen quelques secondes.Vérifiez que Response ID est rempli. C’est ce qui empêche les doublons.
Regardez l’onglet Executions dans n8n; chaque livraison y est listée.
Dépannage
Symptôme | Cause | Solution |
Rien n’arrive dans n8n | URL de test renseignée sur Survio ou workflow non publié | Collez l’URL de production dans Survio et cliquez sur Publish |
Survio ne peut pas enregistrer l’URL du webhook venant de n8n auto-hébergé | n8n affiche une adresse interne au lieu de l’adresse publique | Mettez le paramètre |
« Listen for test event » n’affiche rien même si le sondage a été soumis | Survio envoie à l’URL de production ; le test écoute l’URL de test | Regardez dans l’onglet Executions |
Votre dernier changement n’a pas d’effet | Le workflow est publié mais la modification pas encore (le bouton Publish montre un point) | Cliquez sur Publish à nouveau |
Une réponse apparaît deux fois | Opération réglée sur Append Row ou pas de colonne de correspondance | Utilisez Append or Update Row et faites la correspondance sur Response ID |
Une colonne reste vide et une nouvelle colonne apparaît à la fin | Le nom du champ dans Préparer la ligne ne correspond pas à l’en-tête colonne | Corrigez le nom dans Préparer la ligne, puis retirez la colonne supplémentaire |
Une cellule affiche [object Object] | Réponse à choix mappée sans | Utilisez |
Les colonnes affichent de mauvaises réponses après modification du sondage | Réponses mappées selon la position dans la liste | Sélectionnez-les toujours via |
Colonne E-mail vide | Champ mappé sur | Récupérez l’e-mail depuis la réponse à la question e-mail ou depuis un paramètre URL |
Les réponses déjà soumises avant la configuration n’apparaissent pas | Les webhooks n’envoient que les réponses reçues après leur création | Exportez les réponses précédentes depuis Survio et copiez-les dans la feuille |
Le webhook Survio est désactivé | L’URL du webhook échoue 5 jours consécutifs | Corrigez la cause puis réactivez le webhook dans Survio |
À savoir
Survio envoie uniquement les réponses complètes, un message par réponse, en quelques secondes.
Aucune donnée n’est envoyée rétroactivement : ni les réponses d’avant la création du webhook ni celles réalisées pendant une pause.
Une livraison échouée est retentée jusqu’à 8 fois sur près de 27h, chaque tentative durant jusqu’à 30 secondes. Faire la correspondance sur Response ID empêche les doublons lors de retentatives.
En cas d’échec 5 jours durant, Survio désactive le webhook ; vous devrez le réactiver après correction.
Mettre un webhook en pause garde sa place ; le supprimer est définitif.
Survio ne conserve pas d’historique de livraison dans l’application. L’onglet Executions de n8n fait office de journal.
Envoyer des réponses via webhook n’utilise aucune réponse en plus de votre forfait Survio.
Vous souhaitez une configuration experte ? Depuis la page Webhooks de Survio, cliquez sur Obtenir une configuration experte, expliquez-nous vos attentes et notre équipe s’occupe de tout : configuration, test et remise d’un webhook fonctionnel.
