Canal Webhook
Canal d'alerte Webhook
Le canal webhook permet à LoadFocus d'envoyer une requête HTTP POST avec un corps JSON vers l'URL de votre choix lorsqu'une vérification surveillée change d'état. C'est le canal le plus flexible : tout ce qui accepte les webhooks JSON entrants, comme Zapier, n8n, Make ou votre propre service, peut recevoir les alertes LoadFocus. PagerDuty et Opsgenie ont leurs propres canaux (forfaits payants) qui envoient le format que ces services attendent.
Créer un canal webhook
- Allez dans les Canaux d'alerte et cliquez sur Nouveau canal d'alerte.
- Choisissez Webhook.
- Donnez un nom (affiché dans la liste des canaux) et collez l'URL HTTPS qui recevra le POST.
- Cliquez sur Enregistrer le canal, activez le canal sur une vérification et choisissez les événements qu'il recevra avec les pastilles de routage par canal.
Quand LoadFocus appelle votre webhook
LoadFocus envoie un POST à votre URL pour ces événements :
| Événement | valeur event | Quand il se déclenche |
|---|---|---|
| Vérification échouée | check.failed | Une vérification passe en échec (assertion, erreur ou timeout). |
| Vérification rétablie | check.recovered | Une vérification précédemment en échec repasse au vert. |
| Vérification dégradée | check.degraded | Le temps de réponse dépasse le seuil de dégradation sans échouer. |
| Expiration SSL | ssl.expiry | 14, 7 et 3 jours avant l'expiration d'un certificat HTTPS surveillé, et le jour de l'expiration. |
| Expiration de domaine | domain.expiry | L'enregistrement d'un domaine surveillé est sur le point d'expirer. |
| Test | test | Vous cliquez sur le bouton Test à côté du canal. |
Les pastilles Fail / Recover / Degraded / SSL / Domain sous le canal, sur la page d'édition de la vérification, déterminent lesquels de ces événements atteignent un canal. Tous sont activés par défaut. L'événement test est toujours envoyé quand vous cliquez sur Test.
Payload
Le corps du POST est application/json, envoyé avec l'en-tête User-Agent: LoadFocus-Webhook/1.0 :
{"source": "loadfocus","event": "check.failed","check": {"id": "75be9e45e858177eea4a18bbdc765472","name": "Designerbox","url": "https://designerbox.ai"},"status": "failed","location": "us-east-1","timestamp": "2026-06-07T12:00:00.000Z"}
Référence des champs :
- source : toujours
loadfocus. Utilisez-le pour reconnaître l'émetteur. - event : l'un de
check.failed,check.recovered,check.degraded,ssl.expiry,domain.expiry,test. - check.id / check.name / check.url : le moniteur qui a déclenché l'alerte (null dans un événement
test). - status : le statut de la vérification à l'envoi (
failed,passed,degradedou null pour les événements SSL, domaine et test). - location : la région d'où la vérification a été exécutée (null pour les événements SSL, domaine et test).
- timestamp : heure ISO-8601 UTC de l'événement.
Les événements d'expiration SSL ajoutent un objet details, ceux d'expiration de domaine en ajoutent un avec domain, daysRemaining, expiresAt et source, et un événement test a un texte details.message. L'exemple SSL :
{"source": "loadfocus","event": "ssl.expiry","check": { "id": "...", "name": "...", "url": "https://..." },"status": null,"location": null,"timestamp": "2026-06-07T12:00:00.000Z","details": { "daysRemaining": 7, "validTo": "Jun 14 23:59:59 2026 GMT" }}
Sécurité et prérequis
- HTTPS uniquement. Les URLs de webhook doivent commencer par
https://. Les URLshttpsont rejetées. - Les adresses privées sont bloquées. Pour empêcher le server-side request forgery, LoadFocus résout votre nom d'hôte et n'appelle pas les adresses privées, loopback, link-local ou CGNAT (par exemple
10.0.0.0/8,127.0.0.1,169.254.0.0/16,192.168.0.0/16). Votre endpoint doit être accessible sur l'internet public. - Pas de redirections. LoadFocus ne suit pas les redirections HTTP sur les appels webhook, pointez donc le canal vers l'URL finale.
- Timeout. Chaque appel expire après 10 secondes. Il n'y a pas de relance automatique, votre récepteur doit donc accepter et mettre en file la payload rapidement.
- Vérifiez que ça marche. Utilisez le bouton Test pour envoyer un événement
testavant de compter sur le canal. Un service gratuit comme webhook.site permet d'inspecter la payload exacte.
Exemples d'intégration
- Zapier / Make / n8n : démarrez un workflow via un trigger "Catch Hook" ou webhook et branchez sur le champ
eventpour publier dans un chat, créer des tickets ou mettre à jour une page de statut. - Votre propre service : acceptez le POST, vérifiez
source === "loadfocus"et agissez selonevent. - PagerDuty et Opsgenie : utilisez leurs propres canaux d'alerte (forfaits payants), pas le canal webhook.
Voir aussi
- Canaux d'alerte : vue d'ensemble de tous les types de canaux et du routage des événements par canal.