Guide · Make.com + Webhooks + Google Sheets

Recevoir des données webhook dans Google Sheets avec Make.com

De nombreux outils peuvent envoyer un webhook quand quelque chose se produit : un paiement, un formulaire sur votre site, une inscription. Un custom webhook Make.com donne à cet outil une URL à appeler, et à partir de là, vous pouvez déposer les données dans Google Sheets. Les points qui posent souvent problème : apprendre à Make à quoi ressemblent les données, tester sans attendre un vrai événement, et empêcher des inconnus d'envoyer des données à votre URL.

Par Flowpaja · Publié le

Ce guide existe aussi en : English · Deutsch · Español · Français

Un custom webhook Make qui reçoit un POST JSON avec une clé API, un filtre qui exige une adresse e-mail, et Google Sheets Add a Row qui écrit une ligne par requête
Apprenez à Make la structure des données avec une requête de test, écartez les données incomplètes et protégez l'URL.
Transparence : tout ce que décrit ce guide fonctionne avec Make.com seul et les applications qu'il connecte. À la fin, nous mentionnons nos propres modèles Make et notre service de correction de scénarios sur Fiverr. Les noms de modules, réglages et limites ont été vérifiés en octobre 2026 avec Make's Webhooks app docs and webhooks overview (en anglais). Les menus et les limites évoluent ; vérifiez-les si quelque chose diffère.

Ce dont vous avez besoin

  • Un compte Make.com avec une connexion Google Sheets
  • Une feuille Google Sheets avec une ligne d'en-tête, par exemple : Reçu le, Nom, E-mail, Message
  • L'outil qui enverra le webhook, ou un moyen d'envoyer une requête de test (curl, Postman ou le client HTTP de votre choix)
  • Une idée approximative des champs que l'expéditeur inclura

Construction étape par étape

1. Créez le webhook

Créez un nouveau scénario et ajoutez Webhooks – Custom webhook comme déclencheur. Cliquez sur Add, donnez-lui un nom comme « Formulaire de contact du site » et enregistrez. Make affiche une URL qui ressemble à https://hook.<region>.make.com/<long-random-string>. Copiez-la. Traitez-la comme un mot de passe : toute personne qui la possède peut envoyer des données dans votre scénario.

2. Mettez-le en écoute

Cliquez sur Run once. Le module attend maintenant des données et l'indique. Il n'apprend la structure que lorsqu'il est en écoute : ne sautez donc pas cette étape.

3. Envoyez une requête d'exemple

Depuis un terminal, envoyez un exemple réaliste. Avec curl :

curl -X POST "https://hook.<region>.make.com/<your-id>" \
  -H "Content-Type: application/json" \
  -d '{"name": "Anna Berg", "email": "[email protected]", "message": "Hello"}'

Sous Windows, utilisez explicitement curl.exe dans PowerShell, car curl y est un alias d'une autre commande. Postman fonctionne aussi. Make répond par un court message « Accepted » et le module passe au vert.

4. Vérifiez que la structure de données a été déterminée

Ouvrez la bulle de sortie. Vous devriez voir name, email et message sous forme de champs. C'est la structure que Make utilisera dans le panneau de mapping. Si l'expéditeur peut ajouter d'autres champs plus tard, ou si certains sont facultatifs, envoyez un deuxième exemple qui les contient tous. Pour modifier la structure ultérieurement, cliquez sur Detect new values dans le module Custom webhook et envoyez une nouvelle requête. Si vous connaissez les champs à l'avance, vous pouvez plutôt choisir une structure de données dans les paramètres avancés du webhook ; Make rejette alors avec le statut 400 les requêtes qui ne correspondent pas.

5. Ajoutez un filtre pour les champs obligatoires

Cliquez sur la liaison qui suit le webhook et ajoutez un filtre : email, exists, et message, exists. Les requêtes incomplètes ou envoyées par erreur s'arrêtent alors ici au lieu de créer des lignes vides.

6. Ajoutez Google Sheets – Add a Row

Sélectionnez le classeur et la feuille. Mappez :

  • Reçu le : {{formatDate(now; "YYYY-MM-DD HH:mm")}}
  • Nom : {{1.name}}
  • E-mail : {{trim(1.email)}}
  • Message : {{1.message}}

Le 1. correspond au numéro du module webhook dans cet exemple : utilisez le panneau de mapping pour trouver le vôtre.

7. Gérez les données imbriquées

Les payloads réels contiennent souvent des objets ou des arrays imbriqués, comme customer.address.city ou une liste d'items. Les objets imbriqués se mappent en parcourant l'arborescence dans le panneau de mapping. Les arrays nécessitent un itérateur si chaque élément doit devenir sa propre ligne. Si vous voulez une seule ligne, utilisez join(map(...)) pour transformer l'array en texte.

8. Renvoyez une réponse si l'expéditeur en a besoin

Certains outils attendent une réponse précise, comme {"status": "ok"}. Ajoutez Webhooks – Webhook response, réglez le statut sur 200 et le body sur ce qu'attend l'expéditeur. Sans ce module, Make répond par un message « Accepted » par défaut. Make attend la réponse jusqu'à 180 secondes ; au-delà, il renvoie quand même 200 Accepted.

9. Sécurisez l'URL

Voici les options concrètes, de la plus simple à la plus poussée :

  • Gardez l'URL secrète. Ne la collez pas dans des dépôts publics, des captures d'écran ou du JavaScript côté client que les visiteurs peuvent lire.
  • Utilisez l'authentification par API Key. Lorsque vous créez ou modifiez le webhook, ajoutez une ou plusieurs clés API. L'expéditeur inclut alors la clé dans un en-tête x-make-apikey, et Make rejette directement au niveau du webhook les requêtes sans clé valide.
  • Limitez par adresse IP. Si l'expéditeur publie des adresses IP fixes, saisissez-les, séparées par des virgules, dans le paramètre IP restrictions du webhook (les plages CIDR fonctionnent aussi). Les requêtes provenant d'autres adresses ne sont pas traitées.
  • Si l'expéditeur ne peut pas envoyer cet en-tête, vérifiez plutôt un secret partagé. Demandez-lui d'ajouter un en-tête comme x-webhook-secret avec une longue valeur aléatoire. Dans les paramètres avancés du webhook, réglez Get request headers sur Yes, puis ajoutez un filtre : l'en-tête est égal à votre secret. Les requêtes qui ne l'ont pas s'arrêtent au filtre.
  • Si l'URL a fuité, créez un nouveau webhook et mettez à jour l'expéditeur. L'ancienne URL n'atteint alors plus votre scénario.

Un secret vérifié dans un filtre n'empêche pas les requêtes d'atteindre Make : chacune lance tout de même une exécution, et le déclencheur webhook consomme des crédits. Il les empêche seulement d'atteindre votre feuille. L'authentification par API Key et les IP restrictions agissent au niveau du webhook lui-même, mais traitez de toute façon l'URL comme un secret.

10. Activez et testez en conditions réelles

Activez le scénario, déclenchez un vrai événement dans l'outil expéditeur, puis vérifiez l'onglet History et la feuille. Par défaut, un scénario à webhook s'exécute immédiatement à l'arrivée des données ; laissez ce réglage, sauf si vous voulez traiter la file d'attente par lots selon un planning. Notez qu'un scénario réglé pour s'exécuter immédiatement est désactivé après sa première erreur : envisagez donc une route de gestion des erreurs, comme dans notre guide sur les error handlers de Make.

Erreurs fréquentes et solutions

Le module attend indéfiniment. La requête est partie vers la mauvaise URL ou la mauvaise région, ou l'expéditeur a été bloqué par un pare-feu ou une faute de frappe. Comparez l'URL caractère par caractère et assurez-vous que Run once est actif avant d'envoyer.

Les champs n'apparaissent pas dans le panneau de mapping. La structure a été déterminée à partir d'une requête vide ou différente. Redéterminez la structure de données (Redetermine data structure), envoyez un exemple complet et vérifiez la bulle.

Le body arrive sous forme d'une seule valeur texte au lieu de champs. L'expéditeur a utilisé le mauvais content type. Pour du JSON, l'en-tête doit être Content-Type: application/json. Les données encodées en formulaire fonctionnent aussi, mais l'expéditeur doit indiquer de quel format il s'agit.

Les données arrivent, mais rien n'atteint la feuille. Le scénario est désactivé, donc les requêtes attendent dans la file d'attente du webhook, ou bien le filtre de l'étape 5 les a bloquées. Ouvrez Webhooks dans la barre latérale gauche, sélectionnez le webhook et vérifiez son onglet Queue, puis vérifiez la condition du filtre. Une fois le scénario activé, les éléments en file d'attente sont traités.

Lignes en double. Certains expéditeurs réessaient s'ils ne reçoivent pas rapidement une réponse de succès, et d'autres envoient deux fois le même événement. Incluez si possible un ID d'événement dans le payload et vérifiez-le dans la feuille avant d'ajouter une ligne, comme dans notre guide Typeform vers Google Sheets.

Un champ présent hier est maintenant vide. L'expéditeur a modifié son payload. Examinez une nouvelle requête dans la bulle, redéterminez la structure et mettez à jour votre mapping. Utilisez ifempty() pour les champs parfois absents.

Questions fréquentes

Le payload a-t-il une taille maximale ?
Oui. Make accepte des payloads jusqu'à 5 Mo sur tous les forfaits : pour un fichier volumineux, envoyez donc un lien plutôt que le fichier lui-même. Make accepte aussi jusqu'à 300 requêtes par tranche de 10 secondes et répond à tout dépassement par le statut 429.
Plusieurs outils peuvent-ils envoyer vers le même webhook ?
Techniquement oui, mais des structures différentes sèment la confusion dans le mapping. Des webhooks séparés pour chaque expéditeur sont plus faciles à déboguer.
Puis-je tester sans le véritable outil ?
Oui. C'est précisément le rôle de la requête curl ou Postman de l'étape 3. Envoyez des données de la même forme que celles que vous attendez.
Est-ce que cela fonctionne quand le scénario est désactivé ?
Le webhook reste joignable, et les requêtes attendent dans sa file d'attente jusqu'à ce que vous activiez le scénario. La file peut contenir jusqu'à 667 éléments par tranche de 10 000 crédits de votre forfait mensuel, dans la limite de 10 000. Lorsqu'elle est pleine, Make rejette les nouvelles requêtes avec le statut 400. Un webhook qui n'est rattaché à aucun scénario pendant plus de 5 jours est désactivé.

Votre webhook vous joue des tours ?

Nous ne vendons pas de modèle de webhook. Si les requêtes n'arrivent pas, si des champs manquent ou si des lignes sont en double, envoyez le blueprint exporté et une description du problème à notre service de correction de scénarios Make sur Fiverr (en anglais), sans partager vos identifiants. Nos modèles Make.com (en anglais) couvrent les relances de factures, le suivi des devis et les leads issus de formulaires. Vous voulez vos commandes Shopify dans une feuille sans configurer le webhook vous-même ? Découvrez notre service d'envoi des commandes Shopify vers Google Sheets et Slack sur Fiverr (en anglais), à partir de 80 $ US.

Votre propre scénario rencontre une erreur ? Notre service de correction et débogage de scénarios Make sur Fiverr (en anglais) commence à 25 $ US. Envoyez le blueprint exporté et une description de l'erreur, sans identifiants.

← Tous les guides · Tous les modèles (en anglais)

Make, Typeform, Google, Gmail, Google Sheets et Google Drive sont des marques appartenant à leurs propriétaires respectifs. Flowpaja est indépendante, sans affiliation ni approbation de ces entreprises. Les menus et les limites des forfaits peuvent évoluer ; consultez la documentation actuelle de chaque fournisseur.

Note : cette traduction a été réalisée avec l'aide de l'IA.