Webhooks
Un webhook envoie chaque nouvelle réponse d'un formulaire à une adresse de votre choix, par exemple un logiciel métier ou un outil d'automatisation.
Configurer le webhook
- Ouvrez le Studio du formulaire, onglet Automatisations.
- Dans le bloc Webhook, saisissez l'URL qui recevra les appels
(adresse
https://publique). - Saisissez un secret HMAC, une longue chaîne aléatoire que vous gardez aussi de votre côté.
- Enregistrez et vérifiez que l'automatisation est activée.
Quand l'appel part
L'appel part à chaque nouvelle réponse, quelle que soit sa provenance : lien public, page intégrée, application mobile, API ou session à plusieurs. Il est envoyé en arrière-plan : l'envoi du formulaire n'attend pas votre serveur.
Ce que reçoit votre serveur
Une requête POST avec le type application/json :
{
"submission_id": 1234,
"form_slug": "inspection-chantier",
"data": { "...": "les réponses, question par question" },
"date_submitted": "2026-10-16T08:42:11+00:00"
}
L'en-tête X-Formsbuilder-Signature contient sha256= suivi de la signature
HMAC-SHA256 du corps brut, calculée avec votre secret.
Vérifier la signature
import hashlib, hmac
def signature_valide(corps: bytes, entete: str, secret: str) -> bool:
attendu = "sha256=" + hmac.new(secret.encode(), corps, hashlib.sha256).hexdigest()
return hmac.compare_digest(attendu, entete)
Calculez la signature sur le corps exact reçu, avant toute conversion JSON.
Erreurs et nouvelles tentatives
Votre serveur doit répondre en moins de 10 secondes. En cas d'erreur réseau ou de réponse 5xx, l'appel est retenté jusqu'à trois fois, à une minute d'intervalle ; une réponse 4xx n'est pas retentée. Les adresses internes (réseau privé, localhost) sont refusées.