Webhook a Slack, Discord y Teams
Un webhook (envío automático de un mensaje a una dirección indicada) es una forma universal de enviar una notificación a cualquier aplicación: Slack, Discord, Microsoft Teams o tu propio sistema. La conexión lleva unos minutos y ePulz.io formatea el mensaje para el servicio de destino de forma automática.
ePulz.io reconoce automáticamente el tipo de servicio de destino a partir de la dirección del webhook. Reconocemos: Slack (hooks.slack.com/services/...), Discord (discord.com/api/webhooks/... y discordapp.com/api/webhooks/...), Microsoft Teams incluyendo Power Automate / Workflows (*.webhook.office.com, outlook.office.com/webhook/..., *.logic.azure.com/workflows/...). Para las demás direcciones usamos un payload JSON genérico.
Conexión de Slack
- En Slack abre api.slack.com/apps y haz clic en Create New App → From scratch.
- Pon nombre a la aplicación (por ejemplo "ePulz Alerts") y elige el workspace al que debe pertenecer.
- En el menú de la izquierda elige Incoming Webhooks y actívalos en On.
- Haz clic en Add New Webhook to Workspace y selecciona el canal en el que quieres recibir las alertas.
- Copia la dirección del webhook generada (empieza por
https://hooks.slack.com/services/...). - En ePulz.io abre Ajustes → Notificaciones → Webhook, pega la dirección y guarda.
ePulz.io reconoce automáticamente que se trata de Slack y envía mensajes bien formateados con una barra de color (roja en caso de caída, verde al restablecerse) y un enlace de vuelta al panel.
Conexión de Discord
- En tu servidor de Discord haz clic derecho sobre el canal y elige Editar canal → Integraciones → Webhooks.
- Haz clic en Nuevo webhook, opcionalmente pon nombre al bot y configura un avatar.
- Haz clic en Copiar URL del webhook. La dirección tiene la forma
https://discord.com/api/webhooks/.... - En ePulz.io abre Ajustes → Notificaciones → Webhook, pega la dirección y guarda.
Para Discord también preparamos el formato del mensaje automáticamente: se usa un embed de Discord (un mensaje destacado con un marco) con el nombre del monitor, la descripción del problema y la hora.
Probar el webhook
Tras guardar la dirección, haz clic en Probar en los ajustes. Enviaremos un mensaje de prueba al canal de destino para que veas de inmediato cómo se verá la alerta. Si no llega nada, comprueba que has copiado la dirección completa correctamente y que el bot tiene acceso al canal.
Microsoft Teams (Adaptive Card)
Para Microsoft Teams (incluyendo las URL de Power Automate / Workflow logic.azure.com/workflows/...) enviamos el mensaje en formato Adaptive Card v1.4 envuelto en un mensaje:
{
"type": "message",
"attachments": [{
"contentType": "application/vnd.microsoft.card.adaptive",
"content": {
"type": "AdaptiveCard",
"version": "1.4",
"body": [
{"type": "TextBlock", "text": "Monitor DOWN: Sitio de producción", "weight": "bolder", "size": "large"},
{"type": "TextBlock", "text": "No disponible: HTTP 503", "wrap": true}
],
"actions": [
{"type": "Action.OpenUrl", "title": "Abrir en ePulz.io", "url": "https://epulz.io/dashboard/monitor/42"}
]
}
}]
}
En Teams, la dirección del webhook se obtiene del conector Incoming Webhook del canal, o de la plantilla de Power Automate "Post to Teams when a HTTP request is received".
Webhook propio (endpoint genérico)
Si necesitas enviar alertas a tu propia aplicación, introduce en los ajustes la dirección de tu endpoint (la dirección de destino). ePulz.io enviará allí una solicitud con el método POST y un cuerpo en formato JSON:
{
"event": "down",
"monitor": {
"name": "Sitio de producción",
"target": "https://example.com",
"url": "https://epulz.io/dashboard/monitor/42"
},
"message": "No disponible: HTTP 503",
"timestamp": "2026-05-31T14:23:45+00:00",
"source": "epulzio"
}
El campo event toma los valores down (caída), up (restablecimiento), ssl (expiración próxima del certificado SSL), domain (expiración próxima del dominio), anomaly (anomalía de respuesta) o test (envío de prueba). El campo monitor.name es el nombre del monitor, monitor.target es la dirección monitorizada y monitor.url es el enlace de vuelta al panel de ePulz.io.
Verificación de la firma (HMAC)
Opcionalmente puedes activar la firma en los ajustes: entonces firmamos cada solicitud con una clave secreta (HMAC SHA-256) y añadimos dos cabeceras:
X-ePulzio-Signature- firma en formatosha256=<hex digest>del cuerpo de la solicitudX-ePulzio-Event- el tipo de evento (el mismo valor que el campoeventdel cuerpo)
En tu endpoint basta con calcular el HMAC SHA-256 del cuerpo recibido con la misma clave secreta y compararlo con la cabecera. Si coinciden, la solicitud es auténtica y no fue alterada durante el tránsito.
#alerts). Así el canal no se satura con otras conversaciones y los mensajes críticos no se le escapan a nadie.