Lobsite-Webhooks est le user agent des webhooks que Lobsite envoie. Un site Lobsite doté d’un formulaire peut envoyer chaque réponse à une adresse de webhook que son propriétaire a définie dans lobsite.toml, et ces requêtes sont ces envois. Si vous le voyez dans vos journaux, quelqu’un a fait pointer le webhook d’un formulaire vers votre serveur : en général vous-même, depuis votre propre site Lobsite.
À quoi ressemble une requête
Chaque réponse acceptée et non considérée comme spam donne un POST avec un corps JSON :
POST /hooks/contact HTTP/1.1
Content-Type: application/json
User-Agent: Lobsite-Webhooks/1
X-Lobsite-Event: form.submission
X-Lobsite-Delivery: dlv_3m9q…
X-Lobsite-Signature: t=1760372438,v1=5257a869…
{
"type": "form.submission",
"id": "sub_8x2k…",
"site": "quiet-fox-4821",
"form": "contact",
"data": { "email": "ana@example.com", "message": "Hi!" },
"created_at": "2026-10-13T16:20:38Z"
}
Les webhooks ne partent que vers des adresses https:// qui ne pointent pas vers des réseaux privés ou internes.
Vérifier qu’une requête vient vraiment de Lobsite
Le user agent peut être usurpé ; la signature, non. X-Lobsite-Signature contient un horodatage t et v1, le HMAC-SHA256 hexadécimal de "<t>.<raw body>" avec le secret de webhook du formulaire, affiché une seule fois dans le tableau de bord Lobsite. Calculez la même valeur à partir du corps brut, comparez en temps constant et rejetez un t vieux de plus de 5 minutes.
import { createHmac, timingSafeEqual } from "node:crypto";
function verified(secret, header, rawBody) {
const { t, v1 } = Object.fromEntries(header.split(",").map((p) => p.split("=")));
if (Math.abs(Date.now() / 1000 - Number(t)) > 300) return false;
const expected = createHmac("sha256", secret).update(`${t}.${rawBody}`).digest("hex");
return v1?.length === expected.length && timingSafeEqual(Buffer.from(v1), Buffer.from(expected));
}
Nouvelles tentatives
Une réponse 2xx en moins de 10 secondes vaut livraison. Tout le reste est retenté 5 fois : après 1 minute, 5 minutes, 30 minutes, 2 heures et 12 heures. X-Lobsite-Delivery reste le même d’une tentative à l’autre : vous pouvez ignorer un envoi déjà traité.
Questions fréquentes
Comment arrêter ces requêtes ?
Si le site est à vous, retirez webhook du formulaire dans lobsite.toml et déployez. Sinon, répondez par une erreur : chaque réponse est tentée 6 fois au total, puis abandonnée. Si elles continuent, signalez-les sur la page Signaler un abus avec la valeur de X-Lobsite-Delivery, et nous examinerons la situation.
Quelles offres envoient des webhooks ?
Les webhooks font partie de l’offre Standard. Les sites de l’offre gratuite reçoivent à la place des notifications par e-mail. Voir la documentation des formulaires.
Pourquoi est-ce que je reçois deux fois la même réponse ?
Votre serveur a répondu trop lentement ou par une erreur la première fois, donc l’envoi a été retenté. Ignorez les envois dont vous avez déjà vu le X-Lobsite-Delivery.