Aide et guidesNotifications › Webhook vers Slack, Discord et Teams

Webhook vers Slack, Discord et Teams

4 min de lecture · Notifications

Un webhook (envoi automatique d'un message vers une adresse donnée) est un moyen universel d'envoyer une notification vers n'importe quelle application - Slack, Discord, Microsoft Teams ou votre propre système. La connexion prend quelques minutes et ePulz.io formate le message pour le service cible automatiquement.

Champ webhook dans les paramètres de notifications
Vous collez l'adresse du webhook dans la section Notifications - nous reconnaissons le type de service (Slack, Discord, Teams) automatiquement.

ePulz.io reconnaît automatiquement le type de service cible d'après l'adresse du webhook. Nous reconnaissons : Slack (hooks.slack.com/services/...), Discord (discord.com/api/webhooks/... ainsi que discordapp.com/api/webhooks/...), Microsoft Teams y compris Power Automate / Workflows (*.webhook.office.com, outlook.office.com/webhook/..., *.logic.azure.com/workflows/...). Pour les autres adresses, nous utilisons une charge utile JSON générique.

Connexion de Slack

  1. Dans Slack, ouvrez api.slack.com/apps et cliquez sur Create New App → From scratch.
  2. Nommez l'application (par exemple "ePulz Alerts") et choisissez le workspace auquel elle doit appartenir.
  3. Dans le menu de gauche, choisissez Incoming Webhooks et basculez-les sur On.
  4. Cliquez sur Add New Webhook to Workspace et sélectionnez le canal sur lequel vous souhaitez recevoir les alertes.
  5. Copiez l'adresse du webhook générée (elle commence par https://hooks.slack.com/services/...).
  6. Dans ePulz.io, ouvrez Paramètres → Notifications → Webhook, collez l'adresse et enregistrez.

ePulz.io reconnaît automatiquement qu'il s'agit de Slack et envoie des messages joliment formatés avec une barre de couleur (rouge en cas de panne, vert lors du rétablissement) et un lien de retour vers le tableau de bord.

Connexion de Discord

  1. Sur votre serveur Discord, faites un clic droit sur le canal et choisissez Modifier le salon → Intégrations → Webhooks.
  2. Cliquez sur Nouveau webhook, nommez éventuellement le bot et définissez un avatar.
  3. Cliquez sur Copier l'URL du webhook. L'adresse a la forme https://discord.com/api/webhooks/....
  4. Dans ePulz.io, ouvrez Paramètres → Notifications → Webhook, collez l'adresse et enregistrez.

Pour Discord aussi, nous préparons le format du message automatiquement - un embed Discord est utilisé (un message mis en évidence avec un cadre) avec le nom du moniteur, la description du problème et l'heure.

Tester le webhook

Après avoir enregistré l'adresse, cliquez sur Tester dans les paramètres. Nous envoyons un message de test vers le canal cible afin que vous voyiez immédiatement à quoi ressemblera l'alerte. Si rien n'arrive, vérifiez que vous avez copié l'adresse complète correctement et que le bot a accès au canal.

Microsoft Teams (Adaptive Card)

Pour Microsoft Teams (y compris les URL Power Automate / Workflow logic.azure.com/workflows/...), nous envoyons le message au format Adaptive Card v1.4 encapsulé dans un message :

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

Dans Teams, l'adresse du webhook s'obtient depuis le connecteur Incoming Webhook du canal, ou depuis le modèle Power Automate "Post to Teams when a HTTP request is received".

Webhook personnalisé (endpoint générique)

Si vous devez envoyer des alertes vers votre propre application, saisissez dans les paramètres l'adresse de votre endpoint (l'adresse cible). ePulz.io y envoie une requête avec la méthode POST et un corps au format JSON :

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

Le champ event prend les valeurs down (panne), up (rétablissement), ssl (expiration imminente du certificat SSL), domain (expiration imminente du domaine), anomaly (anomalie de temps de réponse) ou test (envoi de test). Le champ monitor.name est le nom du moniteur, monitor.target est l'adresse surveillée et monitor.url est le lien de retour vers le tableau de bord ePulz.io.

Vérification de la signature (HMAC)

Vous pouvez activer la signature dans les paramètres en option - nous signons alors chaque requête avec une clé secrète (HMAC SHA-256) et ajoutons deux en-têtes :

  • X-ePulzio-Signature - signature au format sha256=<hex digest> du corps de la requête
  • X-ePulzio-Event - le type d'événement (la même valeur que le champ event dans le corps)

Sur votre endpoint, il suffit de calculer le HMAC SHA-256 du corps reçu avec la même clé secrète et de le comparer à l'en-tête. S'ils correspondent, la requête est authentique et n'a pas été modifiée pendant le transit.

Conseil : Pour les équipes plus grandes, nous recommandons un canal Slack ou Discord dédié exclusivement aux alertes (par exemple #alerts). Le canal ne sera alors pas submergé par d'autres discussions et les messages critiques n'échapperont à personne.
Ce guide vous a-t-il été utile ?