Webhook do Slack, Discord i Teams
Webhook (automatyczne wysłanie wiadomości na podany adres) to uniwersalny sposób, aby przesłać powiadomienie do dowolnej aplikacji - do Slacka, Discorda, Microsoft Teams lub do twojego własnego systemu. Podłączenie zajmuje kilka minut, a ePulz.io sformatuje wiadomość pod docelową usługę automatycznie.
ePulz.io automatycznie rozpoznaje typ docelowej usługi na podstawie adresu webhooka. Rozpoznajemy: Slack (hooks.slack.com/services/...), Discord (discord.com/api/webhooks/... oraz discordapp.com/api/webhooks/...), Microsoft Teams wraz z Power Automate / Workflows (*.webhook.office.com, outlook.office.com/webhook/..., *.logic.azure.com/workflows/...). Przy pozostałych adresach użyjemy generycznego payloadu JSON.
Podłączenie Slacka
- W Slacku otwórz api.slack.com/apps i kliknij Create New App → From scratch.
- Nazwij aplikację (na przykład "ePulz Alerts") i wybierz workspace, do którego ma należeć.
- W lewym menu wybierz Incoming Webhooks i przełącz je na On.
- Kliknij Add New Webhook to Workspace i wybierz kanał, na którym chcesz otrzymywać powiadomienia.
- Skopiuj wygenerowany adres webhooka (zaczyna się od
https://hooks.slack.com/services/...). - W ePulz.io otwórz Ustawienia → Powiadomienia → Webhook, wklej adres i zapisz.
ePulz.io automatycznie rozpozna, że chodzi o Slacka, i wysyła ładnie sformatowane wiadomości z kolorowym paskiem (czerwony przy awarii, zielony przy przywróceniu) oraz linkiem z powrotem do dashboardu.
Podłączenie Discorda
- Na serwerze Discord kliknij prawym przyciskiem na kanał i wybierz Edytuj kanał → Integracje → Webhooki.
- Kliknij Nowy webhook, ewentualnie nazwij bota i ustaw awatar.
- Kliknij Kopiuj URL webhooka. Adres ma postać
https://discord.com/api/webhooks/.... - W ePulz.io otwórz Ustawienia → Powiadomienia → Webhook, wklej adres i zapisz.
Także dla Discorda format wiadomości przygotujemy automatycznie - wykorzystywany jest Discord embed (wyróżniona wiadomość w ramce) z nazwą monitora, opisem problemu i czasem.
Przetestowanie webhooka
Po zapisaniu adresu kliknij w ustawieniach Przetestuj. Na docelowy kanał wyślemy wiadomość testową, abyś od razu zobaczył, jak będzie wyglądać powiadomienie. Jeśli nic nie dotrze, sprawdź, czy adres skopiowałeś poprawnie w całości i czy bot ma dostęp do kanału.
Microsoft Teams (Adaptive Card)
Dla Microsoft Teams (wraz z Power Automate / Workflow URL logic.azure.com/workflows/...) wysyłamy wiadomość w formacie Adaptive Card v1.4 opakowanej w wiadomość:
{
"type": "message",
"attachments": [{
"contentType": "application/vnd.microsoft.card.adaptive",
"content": {
"type": "AdaptiveCard",
"version": "1.4",
"body": [
{"type": "TextBlock", "text": "Monitor DOWN: Strona produkcyjna", "weight": "bolder", "size": "large"},
{"type": "TextBlock", "text": "Niedostępny: HTTP 503", "wrap": true}
],
"actions": [
{"type": "Action.OpenUrl", "title": "Otwórz w ePulz.io", "url": "https://epulz.io/dashboard/monitor/42"}
]
}
}]
}
W Teams adres webhooka pozyskuje się z konektora Incoming Webhook na kanale lub z szablonu Power Automate "Post to Teams when a HTTP request is received".
Własny webhook (generyczny endpoint)
Jeśli potrzebujesz wysyłać powiadomienia do własnej aplikacji, wpisz w ustawieniach adres swojego endpointu (adresu docelowego). ePulz.io wyśle tam żądanie metodą POST z treścią w formacie JSON:
{
"event": "down",
"monitor": {
"name": "Strona produkcyjna",
"target": "https://example.com",
"url": "https://epulz.io/dashboard/monitor/42"
},
"message": "Niedostępny: HTTP 503",
"timestamp": "2026-05-31T14:23:45+00:00",
"source": "epulzio"
}
Pole event przyjmuje wartości down (awaria), up (przywrócenie), ssl (zbliżające się wygaśnięcie certyfikatu SSL), domain (zbliżające się wygaśnięcie domeny), anomaly (anomalia odpowiedzi) lub test (wysyłka testowa). Pole monitor.name to nazwa monitora, monitor.target to monitorowany adres, a monitor.url to link z powrotem do dashboardu ePulz.io.
Weryfikacja podpisu (HMAC)
Opcjonalnie w ustawieniach możesz włączyć podpisywanie - każde żądanie podpiszemy wtedy tajnym kluczem (HMAC SHA-256) i dodamy dwa nagłówki:
X-ePulzio-Signature- podpis w formaciesha256=<hex digest>z treści żądaniaX-ePulzio-Event- typ zdarzenia (taka sama wartość jak poleeventw treści)
Na twoim endpoincie wystarczy obliczyć HMAC SHA-256 z odebranej treści tym samym tajnym kluczem i porównać z nagłówkiem. Jeśli się zgadzają, żądanie jest prawdziwe i nie zostało zmienione podczas przesyłania.
#alerts). Kanał nie zostanie wtedy zalany inną dyskusją, a krytyczne wiadomości nikomu nie umkną.