Help en handleidingenMeldingen › Webhook naar Slack, Discord en Teams

Webhook naar Slack, Discord en Teams

4 min leestijd · Meldingen

Een webhook (een bericht dat automatisch naar een opgegeven adres wordt verstuurd) is een universele manier om een melding naar elke applicatie te sturen - naar Slack, Discord, Microsoft Teams of je eigen systeem. Het koppelen duurt een paar minuten en ePulz.io formatteert het bericht automatisch voor de doeldienst.

Webhookveld in de meldingsinstellingen
Het webhookadres plak je in de sectie Meldingen - het type dienst (Slack, Discord, Teams) herkennen we automatisch.

ePulz.io herkent het type doeldienst automatisch aan de hand van het webhookadres. We herkennen: Slack (hooks.slack.com/services/...), Discord (discord.com/api/webhooks/... en discordapp.com/api/webhooks/...), Microsoft Teams inclusief Power Automate / Workflows (*.webhook.office.com, outlook.office.com/webhook/..., *.logic.azure.com/workflows/...). Bij overige adressen gebruiken we een generieke JSON-payload.

Slack koppelen

  1. Open in Slack api.slack.com/apps en klik op Create New App → From scratch.
  2. Geef de app een naam (bijvoorbeeld "ePulz Alerts") en kies de workspace waar die bij hoort.
  3. Kies in het linkermenu Incoming Webhooks en zet ze op On.
  4. Klik op Add New Webhook to Workspace en selecteer het kanaal waarop je meldingen wilt ontvangen.
  5. Kopieer het gegenereerde webhookadres (het begint met https://hooks.slack.com/services/...).
  6. Open in ePulz.io Instellingen → Meldingen → Webhook, plak het adres en sla op.

ePulz.io herkent automatisch dat het om Slack gaat en stuurt netjes opgemaakte berichten met een gekleurde balk (rood bij een storing, groen bij herstel) en een link terug naar het dashboard.

Discord koppelen

  1. Klik op je Discord-server met de rechtermuisknop op het kanaal en kies Kanaal bewerken → Integraties → Webhooks.
  2. Klik op Nieuwe webhook, geef de bot eventueel een naam en stel een avatar in.
  3. Klik op Webhook-URL kopiëren. Het adres heeft de vorm https://discord.com/api/webhooks/....
  4. Open in ePulz.io Instellingen → Meldingen → Webhook, plak het adres en sla op.

Ook voor Discord geldt dat we de berichtopmaak automatisch voorbereiden - er wordt een Discord embed gebruikt (een gemarkeerd bericht met een kader) met de naam van de monitor, de probleembeschrijving en de tijd.

De webhook testen

Klik na het opslaan van het adres in de instellingen op Testen. We sturen een testbericht naar het doelkanaal, zodat je meteen ziet hoe de melding eruit zal zien. Als er niets binnenkomt, controleer dan of je het volledige adres correct hebt gekopieerd en of de bot toegang heeft tot het kanaal.

Microsoft Teams (Adaptive Card)

Voor Microsoft Teams (inclusief Power Automate / Workflow-URL's logic.azure.com/workflows/...) sturen we het bericht in het formaat Adaptive Card v1.4, verpakt in een bericht:

{
  "type": "message",
  "attachments": [{
    "contentType": "application/vnd.microsoft.card.adaptive",
    "content": {
      "type": "AdaptiveCard",
      "version": "1.4",
      "body": [
        {"type": "TextBlock", "text": "Monitor DOWN: Productiesite", "weight": "bolder", "size": "large"},
        {"type": "TextBlock", "text": "Niet bereikbaar: HTTP 503", "wrap": true}
      ],
      "actions": [
        {"type": "Action.OpenUrl", "title": "Openen in ePulz.io", "url": "https://epulz.io/dashboard/monitor/42"}
      ]
    }
  }]
}

In Teams haal je het webhookadres uit de connector Incoming Webhook in het kanaal, of uit de Power Automate-sjabloon "Post to Teams when a HTTP request is received".

Eigen webhook (generiek endpoint)

Als je meldingen naar je eigen applicatie wilt sturen, voer dan in de instellingen het adres van je endpoint (het doeladres) in. ePulz.io stuurt daar een verzoek met de methode POST en een body in JSON-formaat:

{
  "event": "down",
  "monitor": {
    "name": "Productiesite",
    "target": "https://example.com",
    "url": "https://epulz.io/dashboard/monitor/42"
  },
  "message": "Niet bereikbaar: HTTP 503",
  "timestamp": "2026-05-31T14:23:45+00:00",
  "source": "epulzio"
}

Het veld event neemt de waarden down (storing), up (herstel), ssl (naderende verloop van het SSL-certificaat), domain (naderende verloop van het domein), anomaly (responsanomalie) of test (testverzending) aan. Het veld monitor.name is de naam van de monitor, monitor.target is het bewaakte adres en monitor.url is de link terug naar het ePulz.io-dashboard.

Handtekeningverificatie (HMAC)

Optioneel kun je in de instellingen ondertekening inschakelen - we ondertekenen dan elk verzoek met een geheime sleutel (HMAC SHA-256) en voegen twee headers toe:

  • X-ePulzio-Signature - handtekening in de vorm sha256=<hex digest> van de body van het verzoek
  • X-ePulzio-Event - het type gebeurtenis (dezelfde waarde als het veld event in de body)

Op je endpoint hoef je alleen de HMAC SHA-256 van de ontvangen body met dezelfde geheime sleutel te berekenen en met de header te vergelijken. Als ze overeenkomen, is het verzoek echt en is het tijdens het transport niet gewijzigd.

Tip: Voor grotere teams raden we een apart Slack- of Discord-kanaal aan dat uitsluitend voor meldingen bedoeld is (bijvoorbeeld #alerts). Het kanaal raakt dan niet overspoeld door andere discussies en kritieke berichten ontgaan niemand.
Was deze handleiding nuttig?