Webhook do Slack, Discord a Teams
Webhook (automatické odeslání zprávy na zadanou adresu) je univerzální způsob, jak poslat upozornění do jakékoli aplikace - do Slacku, Discordu, Microsoft Teams nebo do vašeho vlastního systému. Připojení zabere pár minut a ePulz.io si zprávu naformátuje podle cílové služby automaticky.
ePulz.io automaticky rozpozná typ cílové služby podle adresy webhooku. Rozpoznáme: Slack (hooks.slack.com/services/...), Discord (discord.com/api/webhooks/... i discordapp.com/api/webhooks/...), Microsoft Teams včetně Power Automate / Workflows (*.webhook.office.com, outlook.office.com/webhook/..., *.logic.azure.com/workflows/...). U ostatních adres použijeme generický JSON payload.
Připojení Slacku
- Ve Slacku otevřete api.slack.com/apps a klikněte na Create New App → From scratch.
- Pojmenujte aplikaci (například "ePulz Alerts") a vyberte workspace, do kterého má patřit.
- V levém menu zvolte Incoming Webhooks a přepněte je na On.
- Klikněte na Add New Webhook to Workspace a vyberte kanál, do kterého chcete dostávat upozornění.
- Zkopírujte vygenerovanou adresu webhooku (začíná na
https://hooks.slack.com/services/...). - V ePulz.io otevřete Nastavení → Oznámení → Webhook, vložte adresu a uložte.
ePulz.io automaticky rozpozná, že jde o Slack, a posílá pěkně naformátované zprávy s barevným pruhem (červená při výpadku, zelená při obnově) a odkazem zpět do dashboardu.
Připojení Discordu
- Na Discord serveru klikněte pravým tlačítkem na kanál a vyberte Upravit kanál → Integrace → Webhooky.
- Klikněte na Nový webhook, případně pojmenujte bota a nastavte avatar.
- Klikněte na Kopírovat URL webhooku. Adresa má tvar
https://discord.com/api/webhooks/.... - V ePulz.io otevřete Nastavení → Oznámení → Webhook, vložte adresu a uložte.
I pro Discord platí, že formát zprávy připravíme automaticky - využívá se Discord embed (zvýrazněná zpráva s rámečkem) s názvem monitoru, popisem problému a časem.
Otestování webhooku
Po uložení adresy klikněte v nastavení na Otestovat. Do cílového kanálu pošleme testovací zprávu, abyste hned viděli, jak bude upozornění vypadat. Pokud nic nedorazí, zkontrolujte, zda jste adresu zkopírovali správně celou a zda má bot přístup do kanálu.
Microsoft Teams (Adaptive Card)
Pro Microsoft Teams (včetně Power Automate / Workflow URL logic.azure.com/workflows/...) posíláme zprávu ve formátu Adaptive Card v1.4 zabaleného do zprávy:
{
"type": "message",
"attachments": [{
"contentType": "application/vnd.microsoft.card.adaptive",
"content": {
"type": "AdaptiveCard",
"version": "1.4",
"body": [
{"type": "TextBlock", "text": "Monitor DOWN: Produkční web", "weight": "bolder", "size": "large"},
{"type": "TextBlock", "text": "Nedostupný: HTTP 503", "wrap": true}
],
"actions": [
{"type": "Action.OpenUrl", "title": "Otevřít v ePulz.io", "url": "https://epulz.io/dashboard/monitor/42"}
]
}
}]
}
V Teams se adresa webhooku získá z konektoru Incoming Webhook v kanále, případně z Power Automate šablony "Post to Teams when a HTTP request is received".
Vlastní webhook (generický endpoint)
Pokud potřebujete posílat upozornění do vlastní aplikace, vložte do nastavení adresu svého endpointu (cílové adresy). ePulz.io tam pošle požadavek metodou POST s tělem ve formátu JSON:
{
"event": "down",
"monitor": {
"name": "Produkční web",
"target": "https://example.com",
"url": "https://epulz.io/dashboard/monitor/42"
},
"message": "Nedostupný: HTTP 503",
"timestamp": "2026-05-31T14:23:45+00:00",
"source": "epulzio"
}
Pole event nabývá hodnot down (výpadek), up (obnova), ssl (blížící se expirace SSL certifikátu), domain (blížící se expirace domény), anomaly (anomálie odezvy) nebo test (testovací odeslání). Pole monitor.name je název monitoru, monitor.target je sledovaná adresa a monitor.url je odkaz zpět do dashboardu ePulz.io.
Ověření podpisu (HMAC)
Volitelně si v nastavení můžete zapnout podepisování - každý požadavek pak podepíšeme tajným klíčem (HMAC SHA-256) a přidáme dvě hlavičky:
X-ePulzio-Signature- podpis ve formátusha256=<hex digest>z těla požadavkuX-ePulzio-Event- typ události (stejná hodnota jako poleeventv těle)
Na vašem endpointu stačí vypočítat HMAC SHA-256 z přijatého těla stejným tajným klíčem a porovnat s hlavičkou. Pokud se shodují, požadavek je pravý a během přenosu nebyl změněn.
#alerts). Kanál se pak nezahltí jinou diskusí a kritické zprávy nikomu neuniknou.