Lobsite-Webhooks es el user agent de los webhooks que envía Lobsite. Un sitio de Lobsite con un formulario puede enviar cada envío a una dirección de webhook que su propietario configuró en lobsite.toml, y estas peticiones son esas entregas. Si lo ves en tus registros, alguien apuntó el webhook de un formulario a tu servidor: normalmente tú, desde tu propio sitio de Lobsite.
Cómo es una petición
Cada envío aceptado que no es spam es un POST con un cuerpo 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"
}
Los webhooks solo van a direcciones https:// que no resuelven a redes privadas o internas.
Comprueba que una petición viene de verdad de Lobsite
El user agent se puede falsificar; la firma no. X-Lobsite-Signature lleva una marca de tiempo t y v1, el HMAC-SHA256 en hexadecimal de "<t>.<raw body>" con el secreto del webhook del formulario, que se muestra una vez en el panel de Lobsite. Calcula el mismo valor a partir del cuerpo sin procesar, compara en tiempo constante y rechaza un t de hace más de 5 minutos.
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));
}
Reintentos
Una respuesta 2xx en menos de 10 segundos cuenta como entregada. Cualquier otra cosa se reintenta 5 veces: tras 1 minuto, 5 minutos, 30 minutos, 2 horas y 12 horas. X-Lobsite-Delivery se mantiene igual entre reintentos, así que puedes saltarte una entrega que ya procesaste.
Preguntas frecuentes
¿Cómo detengo estas peticiones?
Si el sitio es tuyo, quita webhook del formulario en lobsite.toml y despliega. Si no lo es, responde con un error: cada envío se intenta 6 veces en total y luego se descarta. Si siguen llegando, denúncialas en la página Denunciar abuso con el valor de X-Lobsite-Delivery y lo revisaremos.
¿Qué planes envían webhooks?
Los webhooks forman parte del plan Standard. Los sitios del plan gratuito reciben en su lugar avisos por correo. Consulta la documentación de formularios.
¿Por qué recibo el mismo envío dos veces?
Tu servidor respondió demasiado lento o con un error la primera vez, así que se reintentó. Sáltate las entregas cuyo X-Lobsite-Delivery ya hayas visto.