Webhook
Un webhook invia ogni nuova risposta di un modulo a un indirizzo a vostra scelta, per esempio un software gestionale o uno strumento di automazione.
Configurare il webhook
- Aprite lo Studio del modulo, scheda Automazioni.
- Nel blocco Webhook, inserite l'URL che riceverà le chiamate
(indirizzo
https://pubblico). - Inserite un segreto HMAC, una lunga stringa casuale che conservate anche dalla vostra parte.
- Salvate e verificate che l'automazione sia attiva.
Quando parte la chiamata
La chiamata parte a ogni nuova risposta, qualunque sia la provenienza: link pubblico, pagina integrata, app mobile, API o sessione condivisa. Viene inviata in background: l'invio del modulo non aspetta il vostro server.
Cosa riceve il vostro server
Una richiesta POST di tipo application/json:
{
"submission_id": 1234,
"form_slug": "ispezione-cantiere",
"data": { "...": "le risposte, domanda per domanda" },
"date_submitted": "2026-10-16T08:42:11+00:00"
}
L'intestazione X-Formsbuilder-Signature contiene sha256= seguito dalla
firma HMAC-SHA256 del corpo grezzo, calcolata con il vostro segreto.
Verificare la firma
import hashlib, hmac
def firma_valida(corpo: bytes, intestazione: str, segreto: str) -> bool:
atteso = "sha256=" + hmac.new(segreto.encode(), corpo, hashlib.sha256).hexdigest()
return hmac.compare_digest(atteso, intestazione)
Calcolate la firma sul corpo esatto ricevuto, prima di qualsiasi conversione JSON.
Errori e nuovi tentativi
Il vostro server deve rispondere entro 10 secondi. In caso di errore di rete o di risposta 5xx, la chiamata viene ripetuta fino a tre volte, a un minuto di distanza; una risposta 4xx non viene ripetuta. Gli indirizzi interni (rete privata, localhost) sono rifiutati.