Comment paramétrer un Webhook ?

Créé par Pierre-Yves HEMERY, Modifié le  Mar, 14 Oct. à 4:50 H par  Pierre-Yves HEMERY

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.


  1. Ouvrir la Configuration > Externes > Webhooks 
  2. 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 
  3. 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

Dites-nous comment nous pouvons améliorer cet article !

Sélectionner au moins l'une des raisons
La vérification CAPTCHA est requise.

Commentaires envoyés

Nous apprécions vos efforts et nous allons corriger l'article