Documentación / Webhooks
Webhooks
Configura un endpoint en Ajustes → Webhooks y Meshwire enviará por POST una carga JSON firmada por cada evento suscrito.
Catálogo de eventos
| Evento | Descripción |
|---|---|
| bot.published | Se publicó una nueva versión del flujo |
| subscriber.created | Un nuevo suscriptor se unió a un bot |
| subscriber.blocked | Un suscriptor bloqueó al bot |
| broadcast.completed | Una difusión terminó de enviarse |
| broadcast.failed | Una difusión no pudo enviarse |
| message.inbound | Se recibió un mensaje entrante |
Verificación de firmas
Cada solicitud incluye una cabecera X-Meshwire-Signature : un resumen hexadecimal HMAC-SHA256 del cuerpo bruto de la solicitud, firmado con el secreto de tu endpoint.
const expected = crypto
.createHmac("sha256", endpointSecret)
.update(rawBody)
.digest("hex");
if (expected !== req.headers["x-botforge-signature"]) {
return res.status(401).end();
}Reintentos y retroceso
Las entregas que no reciben un 2xx en 5 segundos se reintentan con retroceso exponencial: 1 min, 5 min, 30 min, 2 h, luego 12 h, hasta un máximo de 24 horas. Tras fallar el último intento, el endpoint se marca y se te notificará por correo. Los endpoints con una tasa de fallos superior al 50 % en 1 hora se desactivan temporalmente.
Ejemplo de carga útil
{
"id": "evt_3n7f",
"type": "broadcast.completed",
"createdAt": "2024-05-02T14:03:11Z",
"data": {
"broadcastId": "bcast_7f1",
"botId": "bot_9k2",
"stats": { "total": 4210, "delivered": 4180, "blocked": 19, "failed": 11 }
}
}