Aller au contenu

Webhooks

Un webhook est la forme la plus simple de raccordement: un message HTTP vers une adresse que tu détermines. Slack, Discord et Microsoft Teams reçoivent de tels messages directement comme contribution dans un canal; tes propres systèmes peuvent en faire ce qu’ils veulent.

Emplois typiques: l’adresse de soutien signale les nouvelles demandes dans le canal de l’équipe. La confirmation de commande déclenche le système de gestion des marchandises. L’alerte serveur d’un client apparaît dans Discord.

  1. Ouvre Paramètres → Intégrations → Webhooks et active l’option Activer les webhooks.
  2. Choisis Ajouter un point de terminaison et entre un Nom et l’URL.
  3. Sous Modèle de charge utile, choisis Slack, Discord, Microsoft Teams ou Generic JSON. Le modèle remplit le Gabarit de charge utile (JSON) avec une structure de base adaptée, que tu peux modifier librement.
  4. Tester envoie un message d’essai avec des données d’exemple; chez Slack et compagnie, tu le vois aussitôt dans le canal.

L’URL s’obtient auprès du service concerné:

  • Slack: sous api.slack.com/apps, créer une application avec Incoming Webhooks; l’URL produite est le point de terminaison.
  • Discord: Paramètres du canal → Intégrations → Webhooks.
  • Teams: dans le canal, par l’application Workflows avec le modèle de publication lors d’une requête webhook.
  • Tes propres systèmes: toute adresse qui accepte du JSON par HTTP POST ou PUT.

Plusieurs points de terminaison sont possibles, chacun se désactive séparément: le canal de soutien et ton propre script peuvent coexister.

L’envoi passe uniquement par l’automatisation: l’action Envoyer un webhook dans une règle, avec le point de terminaison de ton choix comme cible.

Ce qui est envoyé exactement figure dans le gabarit de charge utile du point de terminaison. Tu y places des variables entre doubles accolades, qui seront remplies à l’envoi avec les données du courriel déclencheur: {{subject}}, {{from}}, {{from_name}}, {{to}}, {{cc}}, {{date}}, {{preview}} (le début du texte), {{tags}}, {{mailbox}}, {{account_id}} et {{rule_name}}. La Référence des variables sous le gabarit explique chacune d’elles. Un message Slack pour le canal de soutien ressemble par exemple à ceci:

{ "text": "Nouvelle demande de {{from_name}}: {{subject}}" }
  • Signature: si tu entres un Secret HMAC (optionnel), chaque requête contient l’en-tête X-YouniqMail-Signature: sha256=… avec une signature HMAC-SHA256 du contenu. Ton serveur vérifie ainsi que le message vient bien de toi.
  • Nouvelles tentatives: en cas d’erreur serveur (5xx) ou de problème réseau, YouniqMail réessaie jusqu’à trois fois, avec des pauses de 1, 2 et 4 secondes. Les refus (4xx) ne sont pas réessayés. Le délai d’expiration se règle par point de terminaison, 30 secondes au maximum.
  • Méthode: POST est la norme, PUT seulement si ton point de terminaison l’exige. Les redirections ne sont pas suivies.
  • Le message part vers le point de terminaison que tu indiques: vérifie l’URL soigneusement, car quiconque la connaît peut écrire dans le canal. Traite les URL de webhook comme des mots de passe.
  • C’est toi qui détermines le contenu: est transmis ce qui figure dans le gabarit. Qui n’insère que l’objet et l’expéditeur ne transmet que cela.
  • Fonction Pro: les webhooks font partie de l’étendue Pro.