Workbots Formations

Webhooks

Recevez les événements de Workbots en temps réel sur vos serveurs.

Un webhook, c'est une notification automatique. Quand quelque chose se produit dans votre espace Workbots, par exemple la création d'un apprenant, Workbots envoie aussitôt un message à l'adresse web de votre choix. Votre outil reçoit l'information sans que personne ait à la ressaisir.

Les webhooks sont en cours de déploiement. L'interface est visible sous Paramètres → Développeur → Webhooks. Cette page décrit ce que vous y voyez.

Comment ça marche

Le principe tient en quatre temps.

1

Vous donnez une adresse à Workbots

Cette adresse s'appelle un endpoint. C'est une URL de votre serveur, ou une URL fournie par un outil comme Make ou Zapier. Elle ressemble à https://hooks.mon-of.fr/workbots.

2

Vous choisissez les événements qui vous intéressent

Vous n'êtes pas obligé de tout recevoir. Un endpoint peut n'écouter qu'un seul événement, comme apprenant.created, ou plusieurs à la fois.

3

Workbots appelle votre adresse

Dès que l'événement se produit, Workbots envoie une requête HTTP POST à votre endpoint, avec les informations de l'objet concerné au format JSON.

4

Votre serveur répond

Votre serveur doit répondre rapidement avec un code de succès (200 ou 204). Toute autre réponse est considérée comme un échec, et la livraison est réessayée.

Capture à venir

La section Webhooks dans Paramètres → Développeur

Créer un endpoint

Depuis Paramètres → Développeur → Webhooks, cliquez sur Ajouter un endpoint, puis renseignez :

  • L'URL de votre serveur. Elle doit être publique et accessible en HTTPS.
  • Les événements à écouter. Cochez ceux dont vous avez besoin.

Une fois l'endpoint créé, il apparaît dans le tableau, avec quatre colonnes.

ColonneCe qu'elle affiche
URLL'adresse appelée, avec l'identifiant de l'endpoint en dessous
ÉvénementsLes événements écoutés. Au-delà de deux, un compteur indique le reste
StatutActif, En échec ou En pause
Dernière livraisonLe temps écoulé depuis le dernier envoi

Les trois statuts

StatutCe qu'il signifie
ActifL'endpoint fonctionne, les dernières livraisons ont réussi
En échecPlusieurs livraisons récentes ont renvoyé une erreur
En pauseL'endpoint ne reçoit plus aucun événement, vous l'avez suspendu

Le menu d'actions, à droite de chaque ligne, propose Modifier, Mettre en pause (ou Reprendre) et Supprimer.

Mettez un endpoint en pause plutôt que de le supprimer quand vous intervenez sur votre serveur. Vous le reprendrez ensuite sans avoir à le recréer.

Les événements disponibles

Les événements portent sur vos sept bases de données. Le nom suit toujours la forme objet.action.

BaseÉvénements
Apprenantsapprenant.created, apprenant.updated
Entreprisesentreprise.created, entreprise.updated
Intervenantsintervenant.created, intervenant.updated
Lieuxlieu.created, lieu.updated
Financeursfinanceur.created, financeur.updated
Établissementsetablissement.created, etablissement.updated
Maîtres d'apprentissagemaitre_apprentissage.created, maitre_apprentissage.updated

Le contenu d'un message

Chaque livraison transporte un objet JSON. Il contient l'identifiant de l'événement, son type, sa date, et les données de l'objet concerné.

{
  "id": "evt_01HRX2",
  "type": "apprenant.created",
  "createdAt": "2026-07-13T12:48:21Z",
  "data": {
    "id": "obj_4F2k",
    "organizationId": "org_workbots"
  }
}
ChampCe qu'il contient
idL'identifiant unique de l'événement, utile pour éviter les doublons
typeLe nom de l'événement, par exemple apprenant.created
createdAtLa date et l'heure de l'événement, au format ISO 8601 en UTC
dataLes données de l'objet concerné, dont son identifiant et celui de votre organisme

Enregistrez l'id de chaque événement traité. Si la même livraison vous parvient deux fois, à la suite d'un réessai par exemple, vous saurez l'ignorer.

Vérifier la signature

Votre endpoint est une adresse publique. N'importe qui pourrait lui envoyer un faux message en se faisant passer pour Workbots. La signature sert à écarter ce risque.

Workbots ajoute à chaque requête un en-tête Workbots-Signature. Cet en-tête est calculé à partir du contenu du message et d'un secret que vous seul connaissez : la clé de signature.

Où trouver la clé de signature

Elle est affichée en haut de la section Webhooks, sous le libellé Clé de signature. Elle commence par whsec_. Vous pouvez la révéler, la copier, ou la Régénérer.

Si vous régénérez la clé, la précédente reste valable 24 heures. Ce délai vous laisse le temps de déployer la nouvelle clé sur vos serveurs sans interrompre les livraisons. Passé ce délai, l'ancienne clé cesse d'être acceptée.

Comment la vérifier

Le principe : votre serveur recalcule la signature à partir du corps brut de la requête et de votre clé secrète, puis la compare à celle reçue dans l'en-tête. Si les deux correspondent, le message vient bien de Workbots.

import crypto from "crypto";

function verifierSignature(corpsBrut: string, signatureRecue: string, secret: string) {
  const attendue = crypto
    .createHmac("sha256", secret)
    .update(corpsBrut, "utf8")
    .digest("hex");

  // Comparaison à temps constant, pour ne pas fuiter d'information
  return crypto.timingSafeEqual(
    Buffer.from(attendue),
    Buffer.from(signatureRecue),
  );
}

Calculez la signature sur le corps brut de la requête, avant tout traitement JSON. Si vous décodez puis réencodez le JSON, le moindre espace en plus ou en moins change le résultat, et la vérification échoue.

Ne publiez jamais votre clé de signature. Elle ne doit figurer ni dans votre code source versionné, ni dans un ticket, ni dans une capture d'écran. Rangez-la dans une variable d'environnement.

Suivre les livraisons

Sous le tableau des endpoints, le bloc Livraisons récentes liste les envois des dernières 24 heures. Un sélecteur permet d'afficher Toutes les livraisons ou seulement les Échouées.

Chaque ligne affiche l'heure, le nom de l'événement, l'endpoint appelé, le code de réponse HTTP et la durée en millisecondes. Une icône signale les livraisons qui ont fait l'objet d'un réessai.

Code de réponseCe qu'il indique
200, 204Votre serveur a bien reçu et accepté le message
4xx (par exemple 429)Votre serveur a refusé le message, souvent parce qu'il est saturé
5xx (par exemple 502)Votre serveur est en erreur ou n'a pas répondu à temps

Capture à venir

Le journal des livraisons récentes, filtré sur les échecs

Rejouer une livraison

Cliquez sur une ligne du journal pour la déplier. Vous y voyez l'identifiant de l'événement, le numéro de la tentative, la durée, ainsi que deux blocs de code : la Requête envoyée par Workbots et la Réponse renvoyée par votre serveur. Chaque bloc peut être copié d'un clic.

Le bouton Renvoyer relance la livraison à l'identique. Utilisez-le quand votre serveur était momentanément indisponible et que vous voulez rattraper l'événement manqué.

Le lien Voir toutes les livraisons, en bas du bloc, ouvre l'historique complet au-delà des dernières 24 heures.

Brancher à Make ou Zapier

Vous n'avez pas besoin d'un serveur pour recevoir un webhook. Les outils d'automatisation en fournissent un.

1

Créez un scénario dans votre outil

Dans Make, ajoutez un module Webhooks → Custom webhook. Dans Zapier, créez un déclencheur Webhooks by Zapier → Catch Hook.

2

Copiez l'adresse fournie

L'outil génère une URL, du type https://hook.eu2.make.com/... ou https://hooks.zapier.com/hooks/catch/.... Copiez-la.

3

Créez l'endpoint dans Workbots

Collez cette URL dans Ajouter un endpoint, puis cochez les événements à écouter.

4

Déclenchez un événement de test

Créez un apprenant de test dans Workbots. Votre outil reçoit le message et vous montre sa structure. Vous pouvez alors construire la suite du scénario, par exemple l'ajout d'une ligne dans un tableur ou la création d'un contact dans votre CRM.

5

Vérifiez dans le journal

Revenez dans Livraisons récentes et contrôlez que la livraison affiche bien un code 200.

Bonnes pratiques

Aller plus loin