Webhooks et notifications : Webhook (sortant), Slack, Discord et Telegram
Comment faire en sorte que l’app vous prévienne, vous ou votre équipe, en dehors d’elle (un canal Slack, un serveur Discord, un groupe Telegram) et comment envoyer des données à une automatisation à vous, sur Zapier, Make ou une adresse personnelle.
Sans l’intégration, la notification ne part pas : l’automatisation qui utilise le canal ne livre rien, et l’action de l’app est refusée avec l’avertissement que le canal n’est pas configuré dans cette app.
Avant de commencer
- Plan : Slack et Discord fonctionnent dans tous les plans, y compris le Free. Telegram et Webhook (sortant) demandent le plan Builder, et pour eux le plan est vérifié à chaque envoi : si le compte quitte le Builder, ils s’arrêtent ;
- Coût : créer des webhooks et des bots sur ces services est gratuit. Chaque envoi fait par l’app consomme des crédits d’intégration, et seulement quand la destination accepte ;
- L’adresse du webhook est un mot de passe. Toute personne qui a l’URL d’un webhook Slack ou Discord peut publier dans votre canal. Ne publiez l’URL nulle part.
Tous se trouvent dans l’onglet Intégrations : Slack, Discord et Telegram dans la catégorie Notifications, Webhook (sortant) dans Automatisation.
Slack
Champ de la carte : Incoming Webhook URL.
- sur api.slack.com/apps, créez une app dans votre workspace ;
- dans Incoming Webhooks, activez la fonctionnalité et cliquez sur Add New Webhook to Workspace ;
- choisissez le canal qui recevra les notifications et autorisez ;
- copiez l’URL générée (elle commence par
https://hooks.slack.com/services/) ; - sur la carte Slack, collez l’URL et cliquez sur Enregistrer et activer.
Chaque webhook Slack publie dans un seul canal. Pour un autre canal, créez un autre webhook.
Discord
Champs de la carte : Webhook URL, Bot Token (pour les DM aux utilisateurs) et Invitation au serveur (facultatif).
Pour des notifications dans un canal, seule la Webhook URL est nécessaire :
- dans Discord, ouvrez les Paramètres du serveur → Intégrations → Webhooks ;
- cliquez sur Nouveau webhook, choisissez le canal et copiez l’URL du webhook ;
- sur la carte Discord, collez l’URL et cliquez sur Enregistrer et activer.
Message privé aux utilisateurs de l’app
Pour que l’app envoie un message privé (DM) aux personnes qui l’utilisent, et non dans un canal, trois choses sont nécessaires :
- un bot créé sur discord.com/developers/applications, avec le jeton collé dans Bot Token (pour les DM aux utilisateurs) ;
- la connexion avec Discord active dans l’onglet Authentification : c’est elle qui relie la personne de l’app à son compte Discord ;
- que la personne se soit connectée à l’app avec Discord.
Les personnes qui ne se sont pas connectées avec Discord reçoivent la notification dans l’app, à la place du DM.
Telegram
Champ de la carte : Bot token.
Ce que fait l’app : envoyer un message à un chat, groupe ou canal Telegram, par votre bot.
- dans Telegram, ouvrez une conversation avec @BotFather et envoyez
/newbot; - choisissez le nom et l’identifiant du bot. BotFather répond avec le jeton (quelque chose comme
123456:ABC-DEF…) ; - sur la carte Telegram, collez le jeton et cliquez sur Enregistrer et activer ;
- ajoutez le bot au groupe ou au canal qui recevra les messages. Dans un canal, il doit être administrateur. Dans une conversation privée, la personne doit avoir démarré la conversation avec le bot auparavant.
Pour envoyer, l’app a besoin de l’ID du chat de destination. Indiquez-le dans le chat de l’assistant avec votre demande.
Webhook (sortant)
Champ de la carte : URL de destination.
Ce que fait l’app : envoyer un POST avec les données en JSON à l’URL que vous avez enregistrée. C’est la façon de relier l’app à n’importe quelle automatisation à vous : un Zap sur Zapier, un scénario sur Make, un flux sur n8n ou une adresse personnelle.
- dans le service d’automatisation, créez un déclencheur de type webhook et copiez l’URL qu’il génère ;
- sur la carte Webhook (sortant), collez-la dans URL de destination et cliquez sur Enregistrer et activer ;
- demandez dans le chat ce que l’app doit envoyer et quand (par exemple, « quand une commande est créée, envoie la commande au webhook »).
Deux règles côté destination :
- l’URL doit être publique. Les adresses de réseau interne sont refusées ;
- la destination doit répondre avec succès (code 2xx). Toute autre réponse, y compris une redirection, compte comme un échec, et un échec n’est pas facturé.
Tester
Ces cartes ne testent pas l’identifiant à l’enregistrement : Connectée veut dire qu’il a été enregistré. Vous pouvez tester l’URL avant même d’impliquer l’app.
Slack ou Discord, directement depuis votre ordinateur : dans un terminal, lancez la commande ci-dessous en remplaçant l’URL. Un message doit apparaître dans le canal.
# Slack
curl -X POST -H "Content-Type: application/json" -d '{"text":"test"}' "VOTRE_URL_SLACK"
# Discord
curl -X POST -H "Content-Type: application/json" -d '{"content":"test"}' "VOTRE_URL_DISCORD"
Depuis l’app : demandez dans le chat un bouton de test qui déclenche la notification (cela consomme des crédits d’IA, comme toute construction). Utilisez le bouton et vérifiez le canal, le groupe ou l’historique du service d’automatisation. En cas d’échec, l’erreur affichée contient la réponse de la destination.
Problèmes courants
- Le curl fonctionne et l’app n’envoie rien. Vérifiez que vous avez collé la même URL sur la carte et que le solde de crédits d’intégration n’est pas épuisé ;
- Webhook (sortant) échoue avec « la destination a refusé ». Le service de destination a répondu par une erreur ou une redirection. Regardez le code affiché dans le message et l’historique du service ;
- « webhook_url invalide ou pointant vers un réseau interne ». L’URL n’est pas publique (adresse locale, IP interne). Utilisez l’URL publique du service ;
- Telegram ne livre pas. Le bot n’est pas dans le groupe, n’est pas administrateur du canal, ou la personne n’a jamais démarré de conversation avec lui. Vérifiez aussi l’ID du chat ;
- Le DM Discord arrive comme notification dans l’app. La personne ne s’est pas connectée à l’app avec Discord, ou la connexion avec Discord n’est pas active ;
- L’URL d’un webhook a fuité. Supprimez le webhook dans Slack ou Discord, créez-en un autre et collez la nouvelle
URL sur la carte. Pour Telegram, générez un nouveau jeton avec
/revokeauprès de @BotFather.