Passer au contenu principal

Développez votre activité : chaque lead arrive instantanément dans votre CRM – envoyez les demandes de démo Survio vers une feuille ou HubSpot

Transformez un formulaire Survio en canal de prospects : chaque demande de démo devient une ligne dans Google Sheets avec un e-mail pour vous, ou un nouveau contact dans HubSpot. Suivez le guide avec n8n et des workflows prêts à l’emploi.

Écrit par Success Team Survio

Quel cas est fait pour vous ?

Cas A – simple, pour tous : chaque demande de démo arrive dans une feuille Google utilisée comme CRM, et vous recevez un e-mail.

Cas B – pour les équipes utilisant un CRM : chaque demande de démo devient un lead dans HubSpot, prêt pour votre équipe commerciale.

Un visiteur remplit votre formulaire de demande de démo et, quelques secondes plus tard, le lead est dans votre CRM. Une petite entreprise reçoit une nouvelle ligne dans sa feuille de leads et un e-mail auquel elle peut répondre ; une équipe commerciale obtient un nouveau contact dans HubSpot. Dans tous les cas, vous contactez le lead tant qu’il est encore sur votre site.
​

Voici l’e-mail que vous recevez pour chaque nouvelle demande de démo dans le cas A :
​

New demo request e-mail in Gmail


​

Et voici le nouveau contact dans HubSpot dans le cas B :
​

HubSpot contact created from a demo request: lifecycle stage Lead and the request in Message

Comment cela fonctionne-t-il ? Survio envoie chaque réponse remplie à une URL de webhook. Un outil d’automatisation (nous utilisons n8n dans ce guide) la reçoit et inscrit le lead là où vous travaillez. Survio effectue l’envoi, n8n fait le reste.

Nouveau sur les webhooks dans Survio ? Commencez par Webhooks : envoyer des réponses vers vos autres outils en temps réel, puis revenez ici.
​

Ce que vous allez construire

Les deux cas commencent pareil : un court formulaire de demande de démo sur votre site, envoyé à n8n par un webhook.

Aperçu

Cas A : une feuille comme CRM

Cas B : HubSpot

Résultat

Chaque demande devient une ligne dans Google Sheets avec une colonne Statut, et vous recevez un e-mail

Chaque demande devient un nouveau contact dans HubSpot CRM, prêt pour votre équipe commerciale

Outils

Survio, n8n, Google Sheets, Gmail

Survio, n8n, HubSpot

Idéal pour

Une petite entreprise qui suit elle-même ses leads

Une équipe commerciale déjà sur HubSpot

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, n8n Cloud ou auto-hébergé.

  • Cas A : un compte Google pour Google Sheets et Gmail. Cas B : un compte HubSpot.

Dans ce guide nous utilisons un formulaire de demande de démo court : nom, adresse e-mail pro (question e-mail), entreprise, taille de l’équipe (question à choix) et, en option, « Que souhaitez-vous voir dans la démo ? ». Votre formulaire peut différer ; à vous d’associer vos propres questions dans le cas A ou B.
​

Étape 1 — Ajoutez le formulaire à votre site

  1. Ouvrez votre sondage, allez à Collecte des réponses et choisissez Sur le web.

  2. Choisissez Fenêtre pop-up et définissez son affichage. Pour un court formulaire, activez Cacher la page d'accueil pour démarrer directement sur la première question.

  3. Cliquez sur Intégrer sur le site et collez le code sur votre site.

Pop-up window settings for the survey in Survio
Embed code for the pop-up window

Plus d’options, comme un bouton ou un widget latéral, sont décrites dans Intégrer un sondage sur votre site web.
​

Étape 2 — Cas A uniquement : préparez la feuille de leads

  1. Créez une nouvelle feuille Google Sheets et renommez son premier onglet leads.

  2. En ligne 1, saisissez les en-têtes : Response ID, Received, Name, E-mail, Company, Team size, What they want to see, Status et Language.

  3. Sélectionnez les cellules de la colonne Status sous l’en-tête, choisissez Insérer → Liste déroulante, ajoutez les options New, Contacted et Done (avec Ajouter un élément), puis cliquez sur Terminer.

Votre feuille est maintenant un CRM simple. Les nouveaux leads arrivent en New. Lorsque vous avez appelé ou écrit à quelqu’un, passez-le en Contacted, puis en Done une fois l’affaire conclue ou perdue. Filtrez la colonne Status pour voir qui doit encore être relancé.

Étape 3 — Créez le webhook dans n8n

  1. Dans n8n, créez un nouveau workflow et ajoutez un nœud Webhook comme déclencheur.

  2. Réglez HTTP Method sur POST.

  3. Passez à l’onglet Production URL et copiez l’adresse.

  4. Cliquez sur Publier. L’URL de production n’accepte les transmissions qu’une fois le workflow publié.

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

Utilisez l’URL de production, pas celle de test. L’URL de test n’écoute que tant que l’éditeur attend un événement test ; les envois de Survio échouent dès que vous quittez. Survio réessaie un envoi en échec pendant environ une journée, et après 5 jours d’échec il désactive le webhook.

Étape 4 — Connectez le sondage dans Survio

  1. Ouvrez votre sondage et allez à Collecte des réponses.

  2. Dans la barre latérale gauche, sous Automatismes & Intégrations, sélectionnez Webhooks et cliquez sur + Ajouter un webhook.

  3. Collez l’URL de production n8n dans Webhook URL et cliquez sur Sauvegarder le webhook. Le webhook est activé immédiatement.

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


​

Étape 5 — Envoyez une demande test et trouvez les IDs de vos questions

  1. Remplissez le formulaire comme d’habitude et validez-le ; Survio n’envoie que les réponses complètes.

  2. Dans n8n, ouvrez l’onglet Exécutions. L’envoi arrive en quelques secondes.

  3. Ouvrez l'exécution et cliquez sur le nœud Webhook. Déroulez body, puis data, puis answers. Chaque réponse affiche son question.id, le label de la question et la réponse.

  4. Notez l’ID de chaque question. Vous pouvez aussi cliquer sur Épingler pour continuer la configuration sans devoir soumettre à chaque fois un nouveau formulaire.

Webhook node output in n8n with a demo request

Sélectionnez toujours les réponses par ID de question. Les réponses arrivent sous forme de liste. Si vous ajoutez une question, la liste change d’ordre mais les IDs restent inchangés.

L’e-mail du lead se trouve dans les réponses. N’utilisez pas data.email : il reste vide si l’e-mail est collecté via une question e-mail. Lisez-le dans la réponse à la question e-mail.

Cas A — Une feuille comme CRM, plus un e-mail

Le workflow comporte trois étapes après le webhook : Préparer le lead extrait les réponses, Enregistrer le lead dans la feuille ajoute la ligne, et Envoyer un e-mail au nouveau lead vous prévient.
​

Préparer le lead

  1. Ajoutez un nœud Modifier champs (Définir) après le Webhook et renommez-le Préparer le lead.

  2. Dans Champs à définir, ajoutez un champ pour chaque colonne de votre feuille et laissez leur type String. Le nom du champ doit être identique à l’en-tête, la valeur est l’expression ci-dessous.

  3. Remplacez les IDs (90403243...) par ceux notés à l’étape 5, et Europe/Prague par votre fuseau horaire.

Nom du champ

Valeur

Response ID

{{ $json.body.data.responseId }}

Received

{{ DateTime.fromISO($json.body.data.submitted).setZone('Europe/Prague').toFormat('yyyy-MM-dd HH:mm') }}

Name

{{ $json.body.data.answers.find(a => a.question.id === 90403243)?.answer ?? "" }}

E-mail

{{ $json.body.data.answers.find(a => a.question.id === 90403263)?.answer ?? "" }}

Company

{{ $json.body.data.answers.find(a => a.question.id === 90403245)?.answer ?? "" }}

Team size

{{ $json.body.data.answers.find(a => a.question.id === 90403247)?.answer?.labels?.[0] ?? "" }}

What they want to see

{{ $json.body.data.answers.find(a => a.question.id === 90403244)?.answer ?? "" }}

Status

New (texte brut, pas une expression)

Language

{{ $json.body.data.langCode }}

Prepare lead node in n8n with Fields to Set

Enregistrer le lead dans la feuille

  1. Ajoutez un nœud Google Sheets après Préparer le lead, renommez-le Enregistrer le lead dans la feuille et choisissez l’opération Ajouter ou mettre à jour une ligne.

  2. Connectez votre compte Google, puis choisissez votre fichier dans Document et l’onglet leads dans Sheet.

  3. Définissez Mode d’association des colonnes sur Mapper automatiquement et Colonne de correspondance sur Response ID.

  4. Dans Options, ajoutez Format de la cellule et sélectionnez Laisser n8n formater. Sinon, Google Sheets pourrait transformer des valeurs comme 2-10 en dates.

Save lead to sheet node: Append or Update Row, Map Automatically, Column to match on Response ID

Pourquoi une étape séparée Préparer le lead ? Quand vous changez de feuille sur le nœud Google Sheets, n8n efface la correspondance des colonnes. Avec les champs dans Préparer le lead, rien n’est perdu.

Envoyer un e-mail au nouveau lead

  1. Ajoutez un nœud Gmail après Enregistrer le lead dans la feuille, renommez-le Envoyer un e-mail au nouveau lead, puis choisissez Message et Envoyer.

  2. Connectez votre compte Gmail et renseignez votre adresse dans À.

  3. Pour Objet, indiquez Nouvelle demande de démo : {{ $('Préparer le lead').item.json.Name }} ({{ $('Préparer le lead').item.json.Company }}).

  4. Définissez Type d’e-mail sur HTML et composez le Message avec les détails du lead, par exemple {{ $('Préparer le lead').item.json['E-mail'] }} pour l’adresse mail.

  5. Dans Options, ajoutez Répondre à avec {{ $('Préparer le lead').item.json['E-mail'] }} afin que la réponse parte directement vers le lead, et désactivez Ajouter attribution n8n.

Gmail node E-mail the new lead with To, Subject, Message and Send Replies To

Cliquez de nouveau sur Publier. Les changements sont appliqués uniquement après cette publication.

n8n workflow: Survio Webhook, Prepare lead, Save lead to sheet, E-mail the new lead

Faites une demande de démo test. Une nouvelle ligne avec le statut New apparaît dans votre feuille, et l’e-mail présenté plus haut vous est envoyé immédiatement.

The leads tab in Google Sheets with a Status dropdown


​

Cas B — Envoyez chaque demande de démo dans HubSpot

Ici, le lead est directement ajouté dans HubSpot CRM comme contact au stade Lead, pour prise en charge par votre équipe commerciale. Le workflow se compose de deux étapes après le webhook : Préparer le lead et Créer ou mettre à jour un contact.

Préparer le lead

Ajoutez un nœud Modifier champs (Définir) après le Webhook, nommez-le Préparer le lead, et ajoutez ces champs String. Remplacez les IDs de questions par les vôtres.

Nom du champ

Valeur

E-mail

{{ $json.body.data.answers.find(a => a.question.id === 90403263)?.answer ?? "" }}

First name

{{ ($json.body.data.answers.find(a => a.question.id === 90403243)?.answer ?? "").trim().split(" ")[0] }}

Last name

{{ ($json.body.data.answers.find(a => a.question.id === 90403243)?.answer ?? "").trim().split(" ").slice(1).join(" ") }}

Company

{{ $json.body.data.answers.find(a => a.question.id === 90403245)?.answer ?? "" }}

Message

Demande de démo depuis Survio. Taille d’équipe : {{ $json.body.data.answers.find(a => a.question.id === 90403247)?.answer?.labels?.[0] }}. Souhaite voir : {{ $json.body.data.answers.find(a => a.question.id === 90403244)?.answer }}

Les champs First name et Last name découpent le nom d’après une seule question « Votre nom ». Si votre formulaire sépare prénom et nom, utilisez pour chaque champ l’ID correspondant.
​

Créer ou mettre à jour un contact

  1. Ajoutez un nœud HubSpot après Préparer le lead, renommez-le Créer ou mettre à jour un contact et choisissez la ressource Contact et l’opération Créer ou mettre à jour.

  2. Connectez votre compte HubSpot.

  3. Indiquez E-mail : {{ $json['E-mail'] }}. HubSpot utilise l’e-mail pour retrouver un contact existant, qui sera alors mis à jour, plutôt que dupliqué.

  4. Dans Propriétés du contact, cliquez sur Ajouter une propriété et ajoutez First Name, Last Name, Company Name et Message à partir des champs de Préparer le lead, puis indiquez Lifecycle Stage Name or ID sur Lead.

HubSpot node Create or update contact with Email, contact properties and Lifecycle Stage Lead

Cliquez de nouveau sur Publier.

n8n workflow: Survio Webhook, Prepare lead, Create or update contact

Le contact peut être lié à une entreprise automatiquement. Si HubSpot trouve une société avec le même domaine e-mail, elle y associe le contact, qui peut alors devenir celui du propriétaire de la société. C’est généralement souhaité ; vérifiez-le lors d’un test.

Récupérez le workflow prêt à l’emploi

Au lieu de tout construire manuellement à l’étape 3 pour votre cas, vous pouvez partir de notre workflow. Téléchargez le fichier adapté à la fin de cet article : survio-demo-requests-to-sheet-and-gmail.json pour le cas A ou survio-demo-requests-to-hubspot.json pour le cas B. Ensuite :

  1. Dans n8n, créez un workflow vide. Ouvrez le menu à trois points à côté du nom du workflow, choisissez Importer, puis Depuis un fichier. Sélectionnez le fichier téléchargé.

  2. Dans Préparer le lead, remplacez les IDs de questions par les vôtres, et pour le cas A, le fuseau horaire si besoin.

  3. Cas A : ouvrez Enregistrer le lead dans la feuille. Si une alerte rouge s’affiche, la configuration n’est pas complète. Connectez votre compte Google et sélectionnez le bon fichier/onglet leads. n8n passe alors Mapper chaque colonne manuellement : repassez sur Mapper automatiquement et mettez Colonne de correspondance sur Response ID. Puis ouvrez Envoyer un e-mail au nouveau lead, connectez votre Gmail et renseignez votre adresse.

  4. Cas B : ouvrez Créer ou mettre à jour un contact et connectez votre compte HubSpot.

  5. Dans Survio Webhook, copiez l’URL de production dans Survio (étape 4) et cliquez sur Publier.

n8n workflow menu with Import and From file

Testez de bout en bout

  1. Ouvrez votre site, remplissez le formulaire pop-up et validez-le.

  2. Cas A : vérifiez qu’une ligne au statut New apparaît dans l’onglet leads et que l’e-mail est bien reçu. Répondez et vérifiez que la réponse arrive au lead.

  3. Cas B : ouvrez HubSpot et vérifiez que le contact existe au stade Lead avec la demande de démo dans son Message.

  4. Consultez l’onglet Exécutions dans n8n. Chaque envoi y est listé.

Dépannage

Symptôme

Cause

Solution

Rien n’arrive dans n8n

L’URL de test est dans Survio, ou le workflow n’est pas publié

Copiez l’URL de production dans Survio et cliquez sur Publier

Survio refuse l’URL webhook d’un n8n auto-hébergé

n8n affiche une adresse interne au lieu de l’adresse publique

Définissez la variable WEBHOOK_URL de n8n sur votre adresse publique https et copiez à nouveau l’URL

"Écouter un événement test" n’affiche rien après soumission

Survio envoie sur l’URL de production ; l’écoute est sur l’URL de test

Consultez l’onglet Exécutions à la place

Votre dernier changement n’a aucun effet

Le workflow est publié, mais le changement ne l’est pas (le bouton Publier affiche un point)

Cliquez à nouveau sur Publier

Une colonne reste vide, une nouvelle colonne apparaît

Un nom de champ dans Préparer le lead ne correspond pas à l’en-tête

Renommez le champ pour le faire correspondre, puis supprimez la colonne de trop

Le même lead apparaît deux fois

Opération définie sur Ajouter ligne seulement, ou aucune colonne de correspondance

Utilisez Ajouter ou mettre à jour une ligne et faites la correspondance sur Response ID

La réponse va vers vous plutôt que vers le lead

Répondre à n’est pas paramétré dans le nœud Gmail

Ajoutez Répondre à avec l’e-mail du lead dans Options

Taille d’équipe affichée comme date

Google Sheets lit 2-10 comme une date

Dans Enregistrer le lead dans la feuille, mettez Format de la cellule sur Laisser n8n formater

Adresse e-mail manquante

Lecture sur data.email

Lisez-la dans la réponse à la question e-mail

Créer ou mettre à jour un contact échoue

Adresse e-mail vide ou invalide, ou connexion HubSpot expirée

Rendez la question e-mail obligatoire et reconnectez HubSpot dans le nœud

Survio a désactivé le webhook

L’URL du webhook a échoué pendant 5 jours consécutifs

Corrigez la cause, puis réactivez le webhook dans Survio

Bon à savoir

  • Survio n’envoie que des réponses terminées, une par message, en quelques secondes. Un formulaire quitté en cours ne sera pas envoyé.

  • Rien n’est envoyé rétroactivement : ni les réponses précédant la création du webhook, ni celles générées pendant qu’il était en pause.

  • Un échec d’envoi est réessayé jusqu’à 8 fois sur environ 27 heures, avec 30 secondes d’attente à chaque tentative. Faire la correspondance sur Response ID évite de créer des doublons même avec les renvois.

  • Si l’envoi échoue 5 jours de suite, Survio désactive le webhook ; il faudra le réactiver.

  • Mettre un webhook en pause conserve son emplacement ; le supprimer le retire définitivement.

  • Survio ne conserve pas d’historique des envois dans l’interface. L’onglet Exécutions de n8n fait office de journal.

  • L’envoi de réponses à des webhooks n’utilise pas plus de réponses sur votre plan.

Vous préférez nous laisser faire ? Rendez-vous sur la page Webhooks de Survio, cliquez sur Obtenir l'installation par un expert, expliquez-nous vos besoins, et notre équipe configurera, testera et vous livrera un webhook prêt à l'emploi.

Avez-vous trouvé la réponse à votre question ?