Introduction
Un webhook est un mécanisme de communication orienté événements qui permet de transmettre automatiquement des données entre des applications via le protocole HTTP.
Contrairement aux API traditionnelles où le client interroge régulièrement le serveur pour obtenir des mises à jour, un webhook fonctionne comme une API inversée. Il envoie des données au client dès qu'un événement spécifique se produit, éliminant ainsi le besoin d'interrogations répétées.
Liste des Webhooks
Atimeüs gère le mécanisme de webhook sur les évènements de création (created), mise à jour (updated) et suppression (deleted) pour les entités suivantes :
- Collaborateur (employee)
- Projet (project)
- Tâche d'un projet (project-task)
- Contrat (contract)
- Client (customer)
- Fournisseur (subcontractor)
- Contact (contact)
- Opportunité (opportunity)
- Candidat (candidate)
- Candidature (application)
- Tâche d'un utilisateur (user-task)
Il existe aussi des évènements plus spécifiques :
- Projet synchronisé (project.synced)
- Facture validée (invoice.validated)
- Devis validé (quote.validated)
- Opportunité gagnée (opportunity.won)
- Opportunité perdue (opportunity.lost)
- Candidature gagnée (application.won)
- Candidature perdue (application.lost)
Paramétrer un Webhook
Au préalable vous avez créé votre webhook sur Make, Zappier... et vous avez sauvegardé son URL.
- Ouvrir la Configuration > Externes > Webhooks
- Renseigner le formulaire Nouveau webhook
- URL = l'adresse du webhook sur laquelle seront postée les données
- Déclencheur = choix du ou des évènements à surveiller
- Cliquer sur Enregistrer
La liste affiche le statut du dernier évènement déclenché.
Consommer les données côté Webhook
Les données sont envoyées au format JSON. Le contenu des évènements génériques est :
- created
- trigger, le nom de l'évènement
- date, la date
- data, l'entité créée sérialisée
- updated
- trigger, le nom de l'évènement
- date, la date
- from, l'entité sérialisée avant sa mise à jour
- to, l'entité sérialisée après sa mise à jour
- deleted
- trigger, le nom de l'évènement
- date, la date
- id, l'identifiant de l'entité supprimée
Exemple :
{ "trigger":"subcontractor.updated", "date":"2025-10-14T13:17:37", "from": { "name":"NOVACONSULTO", "description":null, "comment":null, "refNumber":null, ... "id":"ddd46cc6-ea8d-49a8-9d1a-451eac8e6a15", "createDate":"2025-10-14T13:08:34.957", "creator":"pierre-yves.hemery@atimeus.com", "updateDate":"2025-10-14T13:14:33.703", "updateAuthor":"pierre-yves.hemery@atimeus.com" }, "to": { "name":"NOVACONSULTO", "description":"blah blah blah", "comment":null, "refNumber":null ... "id":"ddd46cc6-ea8d-49a8-9d1a-451eac8e6a15", "createDate":"2025-10-14T13:08:34.957", "creator":"pierre-yves.hemery@atimeus.com", "updateDate":"2025-10-14T13:17:37.167", "updateAuthor":"pierre-yves.hemery@atimeus.com" } }
Sécuriser l'appel au Webhook
Il est possible de sécuriser les appels en spécifiant un secret partagé.
Atimeüs ajoute alors à l'entête HTTP de l'appel 2 éléments
- X-Atimeus-Webhook-Signature avec la signature du message (HMAC SHA-256 avec le secret partagé) encodée en base64
- X-Atimeus-Webhook-Date avec la date
Cet article a-t-il été utile ?
C'est super !
Merci pour votre commentaire
Désolé ! Nous n'avons pas pu vous être utile
Merci pour votre commentaire
Commentaires envoyés
Nous apprécions vos efforts et nous allons corriger l'article