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
- Ve a Alert Channels y haz clic en + New Alert Channel.
- Elige Webhook.
- Asigna un nombre (se muestra en la lista de canales) y pega la URL HTTPS que recibirá el POST.
- 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:
| Evento | valor event | Cuándo se dispara |
|---|---|---|
| Verificación fallida | check.failed | Una verificación pasa al estado fallido (assertion, error o timeout). |
| Verificación recuperada | check.recovered | Una verificación antes fallida vuelve a pasar. |
| Verificación degradada | check.degraded | El tiempo de respuesta supera el umbral de degradación sin fallar. |
| Caducidad SSL | ssl.expiry | 14, 7 y 3 días antes de que caduque un certificado HTTPS monitorizado, y el día de la caducidad. |
| Caducidad de dominio | domain.expiry | El registro de un dominio monitorizado está a punto de caducar. |
| Prueba | test | Haces 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,degradedo 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 URLshttpse 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
testantes 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
eventpara 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únevent. - 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.