Documentation / Webhooks
Webhooks
Configurez un endpoint dans Paramètres → Webhooks et Meshwire enverra par POST une charge JSON signée pour chaque événement souscrit.
Catalogue des événements
| Événement | Description |
|---|---|
| bot.published | Une nouvelle version de flux a été publiée |
| subscriber.created | Un nouvel abonné a rejoint un bot |
| subscriber.blocked | Un abonné a bloqué le bot |
| broadcast.completed | Une diffusion a terminé son envoi |
| broadcast.failed | L'envoi d'une diffusion a échoué |
| message.inbound | Un message entrant a été reçu |
Vérification des signatures
Chaque requête inclut un en-tête X-Meshwire-Signature : une empreinte hexadécimale HMAC-SHA256 du corps brut de la requête, signée avec le secret de votre endpoint.
const expected = crypto
.createHmac("sha256", endpointSecret)
.update(rawBody)
.digest("hex");
if (expected !== req.headers["x-botforge-signature"]) {
return res.status(401).end();
}Nouvelles tentatives et recul
Les livraisons qui ne reçoivent pas de 2xx dans les 5 secondes sont retentées avec un recul exponentiel : 1 min, 5 min, 30 min, 2 h, puis 12 h, pendant jusqu'à 24 heures. Après l'échec de la dernière tentative, l'endpoint est signalé et vous serez notifié par e-mail. Les endpoints dont le taux d'échec dépasse 50 % sur 1 heure sont temporairement désactivés.
Exemple de charge utile
{
"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 }
}
}