Webhook vers Slack, Discord et Teams
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.
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
- Dans Slack, ouvrez api.slack.com/apps et cliquez sur Create New App → From scratch.
- Nommez l'application (par exemple "ePulz Alerts") et choisissez le workspace auquel elle doit appartenir.
- Dans le menu de gauche, choisissez Incoming Webhooks et basculez-les sur On.
- Cliquez sur Add New Webhook to Workspace et sélectionnez le canal sur lequel vous souhaitez recevoir les alertes.
- Copiez l'adresse du webhook générée (elle commence par
https://hooks.slack.com/services/...). - 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
- Sur votre serveur Discord, faites un clic droit sur le canal et choisissez Modifier le salon → Intégrations → Webhooks.
- Cliquez sur Nouveau webhook, nommez éventuellement le bot et définissez un avatar.
- Cliquez sur Copier l'URL du webhook. L'adresse a la forme
https://discord.com/api/webhooks/.... - 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 formatsha256=<hex digest>du corps de la requêteX-ePulzio-Event- le type d'événement (la même valeur que le champeventdans 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.
#alerts). Le canal ne sera alors pas submergé par d'autres discussions et les messages critiques n'échapperont à personne.