Webhooks
Formgong envoie un POST JSON et une signature HMAC-SHA256 du corps brut. Le secret est dans les réglages du formulaire. Jusqu'à 5 tentatives, espacées de 30 s, 2 min, 10 min, 30 min et 2 h.
{
"event": "submission.created",
"form": { "id": "…", "name": "…" },
"submission": {
"id": "…",
"created_at": "2026-09-29T12:00:00.000Z",
"page_url": "https://example.com/",
"fields": { "name": "Olena", "email": "olena@example.com" },
"is_spam": false
}
}
Header X-Signature: sha256=…. Header X-Formgong-Event: submission.created.
import { createHmac, timingSafeEqual } from "node:crypto";
function verified(rawBody, signature, secret) {
const digest = createHmac("sha256", secret).update(rawBody).digest();
const got = Buffer.from(String(signature).replace(/^sha256=/, ""), "hex");
return got.length === digest.length && timingSafeEqual(got, digest);
}
Make, n8n, Zapier
Créez un module webhook (Make), un Webhook node (n8n) ou un Catch Hook (Zapier), puis collez cette URL dans les réglages du formulaire. Associez ensuite submission.fields.
Google Sheets
function doPost(e) {
const body = JSON.parse(e.postData.contents);
const fields = body.submission.fields;
SpreadsheetApp.getActive().getSheetByName("Leads").appendRow([
body.submission.created_at, fields.name, fields.email, fields.message,
]);
return ContentService.createTextOutput("ok");
}
KeyCRM
Il n'y a pas de connecteur natif. Dans n8n ou Make, recevez le webhook Formgong et appelez l'API KeyCRM avec votre propre clé. Les champs sont dans submission.fields.