Introduction aux Webhooks
Les webhooks permettent à JobAffinity de notifier votre système lorsqu’une candidature change d’étape. Les notifications sont envoyées par lots, dans les minutes qui suivent le changement.Événements disponibles
L’événementProcessStepChange est émis à chaque changement d’étape d’une candidature. Si vous avez besoin d’autres événements, indiquez-le au support.
Configuration
Pour activer les webhooks, contactez le support d’Intuition-Software : support@intuition-software.fr, en indiquant l’URL HTTPS de votre endpoint. Une seule URL est configurée par organisation. Le corps de la notification ne contient aucune donnée personnelle : seulement des identifiants et des liens vers l’API REST. Nous recommandons d’inclure un jeton secret non devinable dans l’URL (par exemplehttps://exemple.fr/webhook/jobaffinity/7f3a9c2e...) et de rejeter tout appel qui ne le porte pas.
Si vous avez d’autres besoins (authentification de l’appel, signature, événements supplémentaires), indiquez-le au support.
Format de la notification
JobAffinity envoie une requêtePOST avec un corps JSON :
_self,candidate._self,job._self: chemins à préfixer parhttps://jobaffinity.frpour obtenir le détail via l’API RESTid,candidate.id,job.id: identifiants de la candidature, du candidat et de l’offrestep.name: nom de l’étape courantestep.status: position de l’étape dans le processus :START(première étape),CURRENT(étape intermédiaire) ouEND(étape finale)step.date: date d’entrée dans l’étape, au formatYYYY-MM-DD HH:MM:SS
La notification décrit l’état de la candidature au moment de l’envoi. Si une candidature change plusieurs fois d’étape avant l’envoi, une seule notification est émise, portant la dernière étape. Traitez chaque notification comme un signal « cette candidature a changé » et relisez son état via l’API, plutôt que comme un journal d’événements.
Historique des appels Webhook
Vous pouvez consulter l’historique des appels webhook effectués par JobAffinity.Requête
Réponse
Champs de la réponse
id: identifiant de l’appel, utilisé pour la paginationevent: Type d’événement déclenchédatetime: Date et heure de l’appel webhookresponse_status: Code de statut HTTP retourné par votre endpoint, ou0si l’endpoint n’a pas pu être joint (le message d’erreur est alors dansresponse_body)response_body: Corps de la réponse de votre endpointapplication: Référence à la candidature concernée
Cette ressource est paginée. Utilisez le champ
_next pour parcourir l’historique complet.Implémentation d’un endpoint
Bonnes pratiques
- Répondez rapidement : Acquittez la requête puis traitez-la de façon asynchrone
- Retournez un code 2xx : Le code et les 1024 premiers caractères de votre réponse sont conservés dans l’historique
- Vérifiez le jeton : Rejetez les appels qui ne portent pas votre jeton secret
- Rendez le traitement idempotent : Relisez l’état courant de la candidature via l’API à chaque notification
- Loggez les appels : Conservez une trace des webhooks reçus pour le débogage
Exemple d’endpoint (Python/Flask)
Exemple d’endpoint (Node.js/Express)
Monitoring
Utilisez l’historique des webhooks pour vérifier que votre endpoint répond correctement, déboguer les erreurs et auditer les notifications reçues. Unresponse_status à 0 signifie que votre endpoint n’a pas pu être joint ; response_body contient alors le message d’erreur.