Canal Webhook

Canal de Alerta Webhook

El canal webhook permite que LoadFocus envíe un HTTP POST con cuerpo JSON a cualquier URL que controles cuando una verificación monitorizada cambia de estado. Es el canal más flexible: cualquier cosa que acepte webhooks JSON entrantes, como Zapier, n8n, Make o tu propio servicio, puede recibir alertas de LoadFocus. PagerDuty y Opsgenie tienen sus propios canales (planes de pago) que envían el formato que esos servicios esperan.

Crear un canal webhook

  1. Ve a Alert Channels y haz clic en + New Alert Channel.
  2. Elige Webhook.
  3. Asigna un nombre (se muestra en la lista de canales) y pega la URL HTTPS que recibirá el POST.
  4. Haz clic en Guardar canal, habilita el canal en cualquier verificación y elige qué eventos recibirá con los selectores de enrutamiento por canal.

Cuándo llama LoadFocus a tu webhook

LoadFocus hace POST a tu URL en estos eventos:

Eventovalor eventCuándo se dispara
Verificación fallidacheck.failedUna verificación pasa al estado fallido (assertion, error o timeout).
Verificación recuperadacheck.recoveredUna verificación antes fallida vuelve a pasar.
Verificación degradadacheck.degradedEl tiempo de respuesta supera el umbral de degradación sin fallar.
Caducidad SSLssl.expiry14, 7 y 3 días antes de que caduque un certificado HTTPS monitorizado, y el día de la caducidad.
Caducidad de dominiodomain.expiryEl registro de un dominio monitorizado está a punto de caducar.
PruebatestHaces clic en el botón Test junto al canal.

Cuáles de estos eventos llegan a un canal lo controlan los selectores Fail / Recover / Degraded / SSL / Domain bajo el canal en la página de edición de la verificación. Todos están habilitados por defecto. El evento test se envía siempre que haces clic en Test.

Payload

El cuerpo del POST es application/json, enviado con la cabecera 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"
}

Referencia de campos:

  • source: siempre loadfocus. Úsalo para reconocer el remitente.
  • event: uno de check.failed, check.recovered, check.degraded, ssl.expiry, domain.expiry, test.
  • check.id / check.name / check.url: el monitor que disparó la alerta (null en un evento test).
  • status: el estado de la verificación al enviar (failed, passed, degraded o null en eventos de SSL, dominio y prueba).
  • location: la región desde la que se ejecutó la verificación (null en eventos de SSL, dominio y prueba).
  • timestamp: hora ISO-8601 UTC del evento.

Los eventos de caducidad SSL añaden un objeto details, los de caducidad de dominio añaden uno con domain, daysRemaining, expiresAt y source, y un evento test tiene un texto details.message. El ejemplo de 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" }
}

Seguridad y requisitos

  • Solo HTTPS. Las URLs de webhook deben empezar por https://. Las URLs http se rechazan.
  • Las direcciones privadas se bloquean. Para evitar server-side request forgery, LoadFocus resuelve tu hostname y no llama a direcciones privadas, loopback, link-local o CGNAT (por ejemplo 10.0.0.0/8, 127.0.0.1, 169.254.0.0/16, 192.168.0.0/16). Tu endpoint debe ser accesible en la internet pública.
  • Sin redirecciones. LoadFocus no sigue redirecciones HTTP en las llamadas webhook, así que apunta el canal a la URL final.
  • Timeout. Cada llamada expira a los 10 segundos. No hay reintento automático, así que tu receptor debe aceptar y encolar el payload rápidamente.
  • Verifica que funciona. Usa el botón Test para enviar un evento test antes de depender del canal. Un servicio gratuito como webhook.site sirve para inspeccionar el payload exacto.

Ejemplos de integración

  • Zapier / Make / n8n: inicia un flujo con un trigger "Catch Hook" o de webhook y ramifica según el campo event para publicar en un chat, crear tickets o actualizar una página de estado.
  • Tu propio servicio: acepta el POST, comprueba source === "loadfocus" y actúa según event.
  • PagerDuty y Opsgenie: usa sus propios canales de alerta (planes de pago), no el canal webhook.

Relacionado

  • Canales de Alerta: resumen de todos los tipos de canal y el enrutamiento de eventos por canal.