Intégrations
Envoyer les réponses de formulaire à Google Sheets
YeetForm n'a pas de synchronisation native avec Google Sheets aujourd'hui, mais vous pouvez obtenir le même résultat - une ligne de feuille de calcul par réponse, ajoutée automatiquement - avec un petit Google Apps Script et un webhook. Cette page détaille le script exact (environ 15 lignes), comment le déployer comme application web, et comment pointer un webhook YeetForm vers l'URL obtenue. Cela prend quelques minutes et ne nécessite aucun serveur personnel.
Mise en place
Ajouter une intégration webhook
Google Sheets n'a pas de connecteur YeetForm natif, le pont est donc un webhook : ajoutez dans l'onglet Intégrations du formulaire un point de terminaison Webhooks pointant vers l'URL d'une application web Google Apps Script.
Créer l'Apps Script
Dans votre feuille cible, ouvrez Extensions → Apps Script, collez le script ci-dessous et déployez-le comme application web (Exécuter en tant que : Moi, Accès : Tous ceux qui ont le lien). Utilisez l'URL de déploiement comme point de terminaison de votre webhook.
function doPost(e) {
var payload = JSON.parse(e.postData.contents);
if (payload.event !== "response.created") return ContentService.createTextOutput("ignored");
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var labels = {};
(payload.fields || []).forEach(function (f) { labels[f.id] = f.label; });
var row = [payload.response_id, payload.submitted_at];
Object.keys(payload.answers).forEach(function (id) {
row.push(labels[id] || id, payload.answers[id]);
});
sheet.appendRow(row);
return ContentService.createTextOutput("ok");
}Déployer et récupérer l'URL
Le déploiement crée une URL du type https://script.google.com/macros/s/.../exec - collez-la dans le champ webhook YeetForm de l'étape 1.
Envoyer une réponse de test
Soumettez le formulaire (ou utilisez le bouton de test de l'intégration webhook) et vérifiez qu'une nouvelle ligne apparaît dans la feuille avec les réponses dans l'ordre.
Garder la feuille et le formulaire synchronisés
Si vous ajoutez ou retirez des champs plus tard, mettez à jour le mappage des colonnes du script - il lit les réponses par id de champ, pas par position, donc il ne décale pas silencieusement les colonnes existantes, mais un nouveau champ a besoin d'une nouvelle ligne dans le script.
Astuces
- →Utilisez le response_id de la réponse comme clé de déduplication dans la feuille (ne pas ajouter la ligne si une ligne avec cet id existe déjà), car un envoi de webhook réessayé renvoie la même réponse.
- →Mappez les colonnes à partir du tableau fields du payload (id vers label) plutôt que de coder en dur les id de champs, pour que le script survive à un renommage ou une réorganisation des champs.
- →C'est une recette basée sur un webhook, pas une intégration native - si le quota d'Apps Script ou votre compte pose problème, les lignes cessent d'apparaître silencieusement ; vérifiez le statut de livraison dans l'onglet Intégrations du formulaire plutôt que de ne surveiller que la feuille.