Vous souhaitez utiliser les webhooks Discourse pour déclencher une tâche via Zapier ? C’est parti !
Astuce : Zapier propose désormais une intégration officielle Discourse avec des déclencheurs et des actions intégrés (par exemple, « Nouveau message », « Créer un message »). Pour les cas d’usage courants, cette option est plus simple que de configurer manuellement des webhooks génériques. Le guide ci-dessous décrit l’approche manuelle via webhook, qui offre plus de flexibilité et un accès à tous les types d’événements Discourse.
Zapier nécessite un déclencheur et une action. Dans ce tutoriel, le déclencheur sera un webhook Discourse et l’action consistera à envoyer un e-mail.
Envoyer un e-mail lors de tout événement utilisateur
Nous allons maintenant configurer un Zap pour envoyer un e-mail lors de tout événement utilisateur (par exemple, lorsqu’un utilisateur est créé, approuvé, mis à jour, connecté, déconnecté, suspendu, etc.). Pour déclencher sur un événement utilisateur spécifique, consultez la section Déclencher sur un événement utilisateur spécifique ci-dessous.
Créer un webhook Discourse
-
Créez un nouveau webhook Discourse pour un événement utilisateur
Nous mettrons à jour l’« URL de charge utile » une fois l’URL du webhook générée dans les étapes suivantes.
Créer un nouveau Zap
Cherchez ce bouton sur le tableau de bord Zapier : ![]()
Configurer le déclencheur
-
Sélectionnez Webhook comme déclencheur. Cherchez :
-
Choisissez le déclencheur
Vous devez sélectionner « Catch Hook » (Accrocher le crochet)
-
Vous pouvez passer l’étape « Configurer Webhooks by Zapier Hook ».
Appuyez simplement sur « Continuer ».
-
Tester le déclencheur
Copiez l’URL du webhook personnalisée générée et collez-la dans la section « URL de charge utile » du webhook Discourse créé précédemment.

Essayez maintenant de créer/mettre à jour/approuver un utilisateur sur votre instance Discourse.
Si vous avez suivi toutes les étapes correctement et créé/mis à jour/approuvé un utilisateur, vous verrez un message de succès sur Zapier :
Cliquer sur le lien hypertexte « voir votre hook » affichera les données analysées.
Configurer l’action sur Zapier
-
Sélectionnez E-mail comme action. Cherchez :
-
Appuyez sur « Enregistrer + Continuer »
-
Configurer le modèle d’e-mail
Modifiez davantage le modèle d’e-mail selon vos besoins. Notez que vous pouvez utiliser le bouton
+pour ajouter plus de données analysées via la réponse JSON.Testez maintenant l’action ; vous devriez recevoir un e-mail de la part de Zapier.
Activer le Zap
C’est tout ! Vous recevrez désormais un e-mail pour chaque événement utilisateur. La liste complète des événements utilisateur pouvant déclencher un webhook est :
| Nom de l’événement | Description |
|---|---|
user_created |
Un nouveau compte utilisateur est créé |
user_approved |
Un utilisateur est approuvé |
user_updated |
Un profil utilisateur est mis à jour |
user_logged_in |
Un utilisateur se connecte |
user_logged_out |
Un utilisateur se déconnecte |
user_confirmed_email |
Un utilisateur confirme son e-mail |
user_destroyed |
Un compte utilisateur est supprimé |
user_suspended |
Un utilisateur est suspendu |
user_unsuspended |
Un utilisateur est désuspendu |
user_anonymized |
Un compte utilisateur est anonymisé |
![]()
Déclencher sur un événement utilisateur spécifique
Vous souhaitez envoyer des e-mails uniquement pour un événement utilisateur spécifique, par exemple uniquement lors de la création de compte, mais pas lors d’une mise à jour ? Utilisez le déclencheur « Catch Raw Hook » (Accrocher le crochet brut).
- Cliquez sur « afficher moins d’options courantes »
- Cliquez sur « Catch Raw Hook »
- Suivez les étapes restantes pour configurer le déclencheur normalement.
Une fois le déclencheur configuré, ajoutez un filtre.
- Cliquez sur « Ajouter une étape »
- Cliquez sur « Filtre »
- Cliquez sur « Enregistrer et continuer »
- Sélectionnez « Headers Http X Discourse Event » dans le premier menu déroulant.
- Sélectionnez « (Texte) correspond exactement » dans le deuxième menu déroulant.
- Entrez l’en-tête complet pour lequel vous souhaitez filtrer (par exemple,
user_logged_out). - Si vous souhaitez que Zapier s’exécute sur plusieurs en-têtes, cliquez sur « +OR » et ajoutez-les comme pour le premier.
- Cliquez sur « Tester et continuer »
- Examinez le test de filtre, puis cliquez sur « Continuer »
Une fois le filtre configuré, configurez l’action de votre choix.
Utiliser l’en-tête complet du webhook
Pour accéder à l’en-tête, suivez les étapes précédentes : sélectionnez « Catch Raw Hook », puis ajoutez un filtre. Configurez le filtre pour ne continuer que si Headers Http X Discourse Event correspond à l’événement recherché.
La difficulté ici réside dans le fait que « Catch Raw Hook » transmet le corps brut du webhook. L’action finale que j’utilise nécessite des données analysées du corps. Ce qui fonctionne pour moi consiste à ajouter une action Code après le filtre. Dans la fenêtre modale de l’action Code, sélectionnez « Exécuter JavaScript » :
Zapier créera un objet inputData auquel vous pouvez ajouter des propriétés nommées. Ajoutez un nom pour votre propriété dans la colonne de gauche. Dans la colonne de droite, sélectionnez « Catch Raw Hook » dans le menu déroulant, puis choisissez « Raw Body » (Corps brut) :
Faites défiler la page vers le bas pour voir une zone de saisie de code :
Vous devez ensuite remplacer le code exemple par un code qui analyse le corps brut et renvoie un objet contenant les valeurs nécessaires pour votre action finale. Voici le code que j’utilise. L’objet renvoyé est utilisé par l’intégration Salesforce. Salesforce exige un nom de famille ; si aucun nom de famille n’existe, une erreur est renvoyée :
const parsed = JSON.parse(inputData.raw);
if (parsed.user) {
const user = parsed.user,
name = user.name,
userFields = user.user_fields;
let firstName,
lastName,
company;
if (name) {
const splitName = name.split(' ');
firstName = splitName[0];
lastName = splitName[1]
}
if (userFields) {
company = userFields['10'];
}
if (lastName) {
return {id: user.id,
username: user.username,
lastName: lastName,
firstName: firstName,
email: user.email,
company: company
};
} else {
return {error: "Missing last name"}
}
} else {
return {error: "A user object was not returned"};
}
Pour éviter d’effectuer une requête échouée dans l’action finale, un autre filtre Zapier peut être ajouté. Configurez ce filtre pour ne continuer que si le champ d’erreur renvoyé par le JavaScript n’existe pas :
Vous pouvez ensuite ajouter votre action finale. Pour sélectionner les champs à utiliser dans l’action finale, utilisez les propriétés renvoyées par l’action Exécuter JavaScript.























