Aller au contenu
Docs

Guide pratique

Créez un endpoint de webhook, choisissez ses événements, ajoutez des filtres de contenu, envoyez un événement de test, activez ou désactivez le webhook, ou effectuez une rotation du secret.

Mis à jour le 1 oct. 2026

Dans ce guide, vous créez un webhook, le limitez aux événements dont vous avez besoin et vérifiez que votre endpoint reçoit des requêtes signées. Vous pouvez tout faire dans le tableau de bord ou avec l’API des webhooks.

Avant de commencer

  • Une URL publique qui accepte les requêtes POST. HTTPS est vivement recommandé. Les URL sur localhost ou sur des plages d’IP privées sont refusées ; pour le développement local, utilisez un tunnel comme ngrok ou Cloudflare Tunnel.
  • Un endpoint qui conserve le corps brut de la requête pour pouvoir vérifier la signature.
  • Pour l’API, une clé Full Access.
  • Un emplacement de webhook libre. Pay as you go inclut 3 endpoints, Pro 10, Business et Custom 100.

Créer le webhook

  1. Ouvrez la page Webhooks. Accédez à Email APIWebhooks et sélectionnez Add webhook.

  2. Saisissez un nom et une URL. Le nom doit être unique dans l’espace de travail, par exemple Production events. L’URL est celle de votre endpoint, par exemple https://acme.com/webhooks/emailit. Sélectionnez Create.

  3. Copiez le secret. La boîte de dialogue affiche le secret du webhook, qui commence par whsec_, avec l’avertissement « You can see the webhook secret only once. Store it safely. » Copiez-le dans l’environnement de votre application, par exemple sous le nom EMAILIT_WEBHOOK_SECRET, puis sélectionnez Done.

Un webhook créé dans le tableau de bord est abonné à tous les types d’événements. L’onglet Settings du webhook s’ouvre pour que vous puissiez le restreindre.

Choisir les événements

Un webhook reçoit soit tous les types d’événements, soit uniquement ceux que vous sélectionnez.

Dans l’onglet Settings du webhook, désactivez All events, puis sélectionnez les types dans la carte Events. Les événements sont regroupés par ressource (Emails, Domains, Audiences, Subscribers, Contacts, Templates, Suppressions, Email Verifications, Email Verification Lists), et chaque groupe a une case Select all. Sélectionnez Save.

Le sélecteur ne liste pas tous les types qu’Emailit envoie. email.canceled, email.held, email.unsubscribed, email.resubscribed, subscriber.resubscribed et les événements campaign.* parviennent aux webhooks dont l’option All events est activée, ou vous pouvez les ajouter à la liste via l’API. Le groupe Deprecated contient d’anciens noms d’événements qui ne sont plus envoyés. Consultez Types d’événements.

Filtrer les événements par contenu

Pay as you goProBusinessCustom

Un filtre de contenu ne livre un événement que si ses données correspondent à vos règles. Les filtres s’appliquent en plus de la sélection d’événements : un événement doit être sélectionné et correspondre au filtre.

Utilisez-le pour répartir le trafic entre plusieurs endpoints, par exemple un webhook par gamme de produits, ou pour écarter des événements que vous ignoreriez de toute façon dans votre code.

  • Mode de correspondance : All rules match (all) ou Any rule matches (any).
  • Règles : 25 au maximum. Chaque règle comporte un champ, un opérateur et une valeur.
  • Champ : un chemin à points dans le data.object de l’événement, par exemple to, status, meta.plan ou, pour les événements de clic, link.url. Le préfixe payload. est facultatif : payload.from et from sont équivalents.
  • Les comparaisons sont sensibles à la casse et comparent les valeurs sous forme de texte, sauf greater_than et less_than, qui comparent des nombres.
Opérateur Correspond lorsque le champ
equals / not_equals Est / n’est pas exactement égal à la valeur.
contains / not_contains Contient / ne contient pas la valeur.
starts_with / ends_with Commence / se termine par la valeur.
greater_than / less_than Est un nombre supérieur / inférieur à la valeur.
is_set / is_not_set A une valeur non vide / est absent ou vide. Aucune valeur nécessaire.
in / not_in Est égal / n’est égal à aucune des valeurs d’un tableau. Envoyez le tableau via l’API, comme dans l’exemple ci-dessous.

Dans l’onglet Settings du webhook, repérez la carte Filter. Choisissez le mode de correspondance, ajoutez des règles avec un champ, un opérateur et une valeur, puis sélectionnez Save. Laissez les règles vides pour livrer tous les événements sélectionnés. Sur Pay as you go, la carte est verrouillée et affiche Upgrade.

Autres exemples :

Objectif Règle
Uniquement les e-mails reçus sur une adresse précise to equals support@inbound.acme.com
Un seul domaine d’expéditeur from ends_with @billing.acme.com
Uniquement les e-mails que vous avez étiquetés avec des métadonnées meta.source equals checkout
Uniquement les clics sur votre page de tarifs link.url starts_with https://acme.com/pricing
Uniquement les e-mails qui contiennent un ID client meta.customer_id is_set

Si un espace de travail passe à Pay as you go, les filtres existants restent enregistrés mais sont ignorés, et tous les événements sélectionnés sont livrés.

Envoyer un événement de test

Un test envoie immédiatement un exemple d’événement à votre URL, signé avec le secret actuel du webhook. Les événements sélectionnés et les filtres sont ignorés, la requête ne fait l’objet d’aucune nouvelle tentative et elle n’apparaît pas dans l’onglet Requests. Chaque webhook autorise 5 tests par minute.

Sur la page du webhook, ouvrez le menu d’actions (…) et sélectionnez Send test. Choisissez un type d’événement et sélectionnez Send test. La boîte de dialogue affiche « Your endpoint returned 200 » (ou le statut renvoyé par votre endpoint) et le corps de la réponse. « Could not reach the endpoint » signifie que la requête n’a pas obtenu de réponse HTTP, par exemple à cause d’une erreur DNS, d’un timeout ou d’une redirection.

Les événements de test utilisent des données d’exemple, avec un event_id qui commence par evt_test_, et leur structure peut légèrement différer de celle des événements réels. Construisez votre gestionnaire à partir de la référence des événements et confirmez avec un envoi réel.

Activer ou désactiver un webhook

Désactivez un webhook pour arrêter les livraisons sans perdre ses paramètres, par exemple pendant une maintenance.

  • Tableau de bord : ouvrez le menu d’actions et sélectionnez Disable webhook ou Enable webhook. La page du webhook affiche le statut Enabled ou Disabled.
  • API : appelez Mettre à jour un webhook avec {"enabled": false} ou {"enabled": true}.

Tant qu’un webhook est désactivé, les nouveaux événements ne sont pas mis en file d’attente pour lui, et les requêtes qui attendent déjà une nouvelle tentative sont suspendues. Les événements survenus pendant la désactivation ne sont pas livrés plus tard ; si vous en avez besoin, lisez-les avec l’API des événements. Emailit désactive aussi automatiquement les webhooks après 3 jours d’échecs ; consultez Nouvelles tentatives et échecs.

La suppression d’un webhook entraîne la perte de tous ses événements en attente.

Effectuer une rotation du secret

Effectuez une rotation du secret s’il a pu fuiter, ou régulièrement, par précaution.

L’ancien secret cesse immédiatement de fonctionner, et toutes les requêtes suivantes, y compris les nouvelles tentatives d’événements plus anciens, sont signées avec le nouveau. Pour effectuer la rotation sans rejeter de requêtes, faites accepter les deux secrets à votre endpoint pendant quelques minutes, réinitialisez le secret, déployez la nouvelle valeur, puis retirez l’ancienne.

Vérifier le résultat

  1. Envoyez un événement de test et vérifiez que votre endpoint renvoie 2xx.
  2. Envoyez un vrai e-mail, ou déclenchez l’événement auquel vous êtes abonné.
  3. Dans l’onglet Requests du webhook, la requête affiche Delivered. L’heure Last used du webhook est mise à jour.

Cette page vous a-t-elle été utile ?

Merci pour votre retour.

Merci, nous lisons chaque message.