Gabriela Gavrailova

// Product Marketing Associate for Devs

Vous avez déjà entendu le terme webhook sans vraiment savoir de quoi il s’agit ? Prenons l’exemple des campagnes emailing qui sont envoyées à vos contacts. Lorsque vous envoyez des emails, vous pouvez obtenir des statistiques sur vos envois à partir du tableau de bord de votre plateforme emailing. Il s’agit par exemple du taux d’ouverture, du taux de clics, du taux d’emails présentant des erreurs… Au lieu de devoir vous rendre sur votre tableau de bord afin de consulter ces données, vous souhaiteriez pouvoir recevoir directement celles qui vous intéressent vraiment ? Eh bien c’est ce que permettent les webhooks.

Dans cet article, nous vous disons tout sur les webhooks, comment les configurer et comment les utiliser pour piloter votre stratégie emailing.

Qu’est-ce qu’un webhook ?

Imaginez que vous avez un magasin en ligne et que vous voulez proposer un code promotionnel à tous les lecteurs ouvrant votre email dans les premières 24 heures pour les remercier de leur engagement. Vous pouvez le faire manuellement, en vérifiant régulièrement vos statistiques d’ouverture. Mais cela vous ferait perdre un temps fou.

Ou alors vous pouvez le faire automatiquement avec des webhooks qui déclencheront l’envoi d’un email contenant le code promotionnel à toutes les personnes ayant ouvert votre email dans les temps. Ca parait bien plus efficace non ?

Pour faire simple, les webhooks permettent de déclencher une action suite à un événement. Ils sont généralement utilisés pour faire communiquer des systèmes. C’est la façon la plus simple de recevoir une alerte lorsque quelque chose se produit dans un autre système.

Comment fonctionnent les webhooks ?

Prenons l’exemple de votre banque. Lorsque vous effectuez un retrait, le distributeur vérifie le solde restant sur votre compte et sort le montant que vous avez demandé. Une fois cette opération effectuée, votre solde est mis à jour. Ce changement de solde déclenche une action : un SMS vous est envoyé avec les détails du retrait. C’est de cette façon que fonctionnent les webhooks. Un événement sert de déclencheur à une action.

En fait, un webhook est un rappel HTTP : un HTTP POST qui se produit lorsque quelque chose se passe, une notification d’événement via HTTP POST. Les webhooks sont utilisés pour les notifications en temps réel, de sorte que votre système peut être mis à jour dès que l’événement se produit.

Le plus souvent, les webhooks sont des points de rappel HTTP qui sont définis par l’utilisateur. Ils vous permettent d’enregistrer une URL http:// ou https:// où les données de l’événement peuvent être stockées au format JSON ou XML. Ensuite, vous pourrez faire ce que vous voulez avec les données que vous récupérez et stockez d’un événement.

La mécanique de base des webhooks consiste à faire une requête HTTP à l’URL spécifique d’un utilisateur. Un webhook effectue un rappel HTTP vers une URL qui doit être configurée par le système qui reçoit les données.

Cette URL est appelée webhook endpoint. Les webhook endpoints doivent être publics et il est important que cette URL appartienne au système destinataire. Le rappel est déclenché chaque fois qu’un événement pour lequel vous souhaitez avertir un autre système se produit.

Dans le cas de Mailjet, ce webhook est une URL que vous pouvez ajouter dans notre système, de sorte que vous pouvez recevoir des événements en lien avec l’envoi de vos emails, tels que « email envoyé », « email ouvert », « email cliqué », « email présentant une erreur », « email bloqué », « email mis en spam » ou « désinscription du contact ». De cette façon, vous pouvez suivre l’ensemble de vos messages ou suivre uniquement le(s) événement(s) qui vous intéressent. Par exemple, être uniquement informé(e) lorsqu’un email a été ouvert.

Reprenons l’exemple de notre distributeur. Lorsque vous retirez de l’argent, votre banque est notifiée et met à jour votre solde, ce qui indique au système de vous envoyer un SMS avec tous les détails. Les webhooks fonctionnent de la même façon. Le distributeur est une application/site tiers (fournisseur de webhook) qui envoie un signal lorsqu’un événement donné se produit. Le système qui vous envoie le SMS est ce qu’on appelle l’auditeur. L’auditeur est l’URL qui reçoit les appels webhooks et effectue ensuite une action prédéfinie – dans ce cas, l’envoi du SMS. Le webhook est un mécanisme de programmation conçu pour recevoir des données provenant d’un système externe, en temps réel. Dans ce cas, ce système est le compte bancaire. C’est plus clair maintenant ?

Alors que pouvez-vous faire avec des webhooks ? Entre autres, vous pouvez :

  • Synchroniser les systèmes en temps réel ;
  • Envoyez n’importe quel type de notification ;
  • Traitez les données comme vous le souhaitez ;
  • Créer des rapports ;
  • Et bien d’autres choses encore en fonction de vos besoins !

 

Pourquoi avez-vous besoin d’un webhook ?

Il y a deux façons dont vos applications peuvent communiquer entre elles pour partager de l’information : les sondages et les webhooks. Dans notre exemple avec la banque, utiliser le sondage consisterait à aller à votre banque et à demander quel est votre solde chaque fois que vous faites un retrait.

Aujourd’hui, il est impensable de ne pas pouvoir accéder à l’information plus simplement en temps réel. Il n’est pas possible de réaliser des sondages toutes les minutes pour demander des exports importants que votre système devrait analyser, ce qui risquerait d’entraîner une surcharge du système ou la perte des données en cas de bug. L’utilisation de HTTP est une solution beaucoup plus simple, car les webhooks sont des messages automatisés envoyés depuis des applications quand un événement se produit.

polling_vs_webhook

Source : Cloud Elements – Jetez un coup d’œil à leur post pour en savoir plus sur la différence entre un sondage et l’utilisation webhook.

Vous pouvez utiliser les webhooks de 2 façons :

  1. Pour recevoir une notification d’événement et la stocker.
  2. Pour recevoir une notification d’événement et la transmettre.

Examinons ces deux scénarios de plus près.

Pour recevoir une notification d’événement et la stocker

Le “push” est la manière la plus simple d’utiliser les webhooks. Comme nous l’avons déjà mentionné, il n’est pas nécessaire d’interroger vos données toutes les quelques minutes pour savoir s’il y a de nouvelles informations. Vous pouvez simplement obtenir les nouvelles informations directement à l’aide de webhooks. Vous pourrez stocker l’information jusqu’à ce que vous en ayez besoin. En gros, le système que vous avez configuré avec votre webhook va “push” l’information dont vous avez besoin.

Pour recevoir une notification d’événement et la transmettre

Le “pipe” se produit lorsque votre webhook ne reçoit pas seulement les informations qu’il écoute, mais qu’il en fait quelque chose de nouveau, comme déclencher des actions. Par exemple, vous pouvez créer un script, enregistrer son URL sur votre site, et envoyer un email automatique à un visiteur lorsqu’il crée un compte sur votre site. Ou vous pouvez créer un script qui met à jour la quantité de produits disponibles chaque fois qu’un nouvel achat est effectué.

Avec les webhooks, vous pouvez faire tout ce dont vous avez besoin. C’est simple et efficace, car vous ne perdez pas votre temps à demander d’énormes quantités de données. Vous recevez les nouvelles données quand elles arrivent !

Comment pouvez-vous utilisez les webhooks avec Mailjet ?

Revenons à Mailjet. Avec les webhooks, vous pouvez facilement recevoir chaque événement – par exemple “email non délivré” – juste après qu’il se soit produit. Imaginez un scénario catastrophe : vous envoyez un email important à l’ensemble de vos contacts. Dans les 15 minutes suivant l’envoi de l’email, plus de 60 % de vos emails ne sont pas délivrés ? Grâce aux événements que vous recevez en temps réel, vous serez en mesure de le détecter le problème rapidement et de réagir immédiatement pour résoudre la situation.

Vous pouvez aussi utiliser les événements pour créer votre tableau de bord personnalisé dans n’importe quelle application interne que vous utilisez, pour traiter les données que vous voulez, comme vous le souhaitez. Vous ne recevrez que les événements dont vous avez besoin et suivrez les données les plus pertinentes. Vous pouvez également utiliser les événements reçus sur votre webhook comme déclencheurs pour l’envoi d’un nouvel email, afin de créer un flux automatisé personnalisé pour tous vos utilisateurs.
Exemples d’événement Mailjet

Regardons de plus près à quoi ressemblent les événements que vous recevez sur ces webhooks. Voici ce que vous obtiendrez quand vous recevez un événement de type “email ouvert” :

{
“event”: “open”,
“time”: 1433103519,
“MessageID”: 19421777396190490,
“email”: “api@mailjet.com”,
“mj_campaign_id”: 7173,
“mj_contact_id”: 320,
“customcampaign”: “”,
“CustomID”: “helloworld”,
“Payload”: “”,
“ip”: “127.0.0.1”,
“geo”: “US”,
“agent”: “Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0”
}

Vous pouvez voir quel message a été ouvert, à quel moment précis, etc. Maintenant, regardons ce que vous obtenez lorsque vous recevez un événement de type “erreur” :

{
“event”: “bounce”,
“time”: 1430812195,
“MessageID”: 13792286917004336,
“email”: “bounce@mailjet.com”,
“mj_campaign_id”: 0,
“mj_contact_id”: 0,
“customcampaign”: “”,
“CustomID”: “helloworld”,
“Payload”: “”,
“blocked”: true,
“hard_bounce”: true,
“error_related_to”: “recipient”,
“error”: “user unknown”
}

Ici, vous pouvez voir ce qui a généré l’erreur dans le champ « erreur ». Dans cet exemple, il s’agit d’un « utilisateur inconnu ». Cela vous permet de détecter les adresses emails erronées. Vous pouvez utiliser le webhook pour synchroniser deux systèmes afin de nettoyer vos listes de contacts incorrects par exemple.

Comment configurer un webhook avec Mailjet ?

Tout d’abord, vous aurez besoin de l’URL du système à partir duquel vous voulez recevoir les événements. Une fois que vous l’avez, tout le reste est très simple. Cette URL accepte les données et peut activer un workflow pour transformer les données en quelque chose d’utile. Il y a deux façons de configurer vos webhooks dans Mailjet.

  1. En utilisant notre API ;
  2. En utilisant notre interface.

 

En utilisant notre API

Vous n’aurez qu’à passer un simple appel pour configurer l’URL que vous voulez utiliser. Voici l’appel :

curl -s \
-X POST \
–user “$MJ_APIKEY_PUBLIC:$MJ_APIKEY_PRIVATE” \
https://api.mailjet.com/v3/REST/eventcallbackurl \
-H ‘Content-Type: application/json’ \
-d ‘{
“EventType”:”open”,
“Url”:”https://mydomain.com/event_handler”,
“Version”:2
}’

Dans cet exemple, l’URL permet d’écouter les événements de type “email ouvert”. Chaque fois que quelqu’un ouvrira votre email, vous recevrez un événement comme celui que nous avons vu ci-dessus. Ensuite, vous pouvez soit stocker les données, soit déclencher une action, telle que l’envoi d’un nouvel email.

Vous voyez, c’est simple ! Un seul appel et tout est fait. Vous pouvez consulter notre documentation dès à présent pour commencer.

En utilisant notre interface

Nous offrons également la possibilité de configurer le webhook à partir de notre interface. Vous pouvez le faire, rendez-vous sur la page « Mon compte ». Dans la section « Reste API », cliquez sur « Tracking des événements (triggers) ».

Event-tracking-mailjet

Vous pouvez ajouter un webhook pour l’ensemble des événements liés à vos emails, ou en créer un spécifique pour chaque type d’événement.

events-interface-setup-mailjet

Vous pourrez également tester l’URL que vous avez spécifiée pour vous assurer qu’elle fonctionne correctement. Si tout se passe bien, il retournera un 200 OK HTTP. Pour tout autre code HTTP, notre serveur réessaiera la requête plus tard.

Notre système va réessayer en suivant ces règles :

  • 10 essais, avec 30 secondes entre chaque essai ;
  • Après cela : 10 tentatives, avec 30 minutes entre chaque tentative ;
  • Si aucune de ces tentatives ne fonctionne, l’URL sera suspendue.

Gardez un œil sur votre webhook pour toute réponse autre qu’un 200 OK. 😉

Et voilà ! Vous disposez d’un webhook fonctionnel qui peut recevoir vos événements en lien avec vos envois d’emails. Utilisez ce webhook dans votre configuration pour recevoir vos propres statistiques ou workflows personnalisés.

En conclusion

Vous savez désormais ce qu’est un webhook et pourquoi c’est le moyen le plus simple de suivre tout type d’événements sur le Web. Il suffit de configurer votre “auditeur » et de décider quoi faire avec les événements qu’il capte.

L’utilisation des événements de Mailjet vous aidera à suivre tout ce qui se passe avec vos emails. C’est par exemple le moyen idéal de nettoyer vos listes ou de créer votre propre tableau de bord dans l’application interne de votre entreprise.

Si vous voulez être le/la premier/ère à connaître les dernières tendances technologiques, suivez-nous sur Twitter et Facebook.