Skip to content

Recevoir les résultats ​

Omogen appelle votre URL de réception (réglée dans la section Webhooks de l'intégration) avec ces événements. Répondez un statut 2xx : le corps de votre réponse est ignoré.

ÉvénementQuandActif
report_generatedFin du processus d'entretienToujours
process_rejectedCandidature écartée avant tout entretienToujours
call_bookedLe candidat réserve un créneauOption Notifier les prises de rendez-vous
testVous cliquez sur Envoyer un webhook de testÀ la demande

report_generated ​

Les champs qui comptent ​

ChampValeursÀ quoi il sert
external_application_idvotre IDRetrouver la candidature chez vous
process.statuscompleted, incomplete, failed, expired, canceledSavoir si l'entretien a eu lieu
reports.interview_report.statusmatch, no_match, naLa décision
reports.interview_report.overall_scorede 0 à 1Le score (0.83 = 83 %)
report_urlURLOuvrir le rapport complet dans Omogen

Ne décidez jamais sur summary

summary est une synthèse rédigée pour un humain : sa formulation change sans préavis. Seuls status et overall_score ont un contrat stable.

Quand il est envoyé ​

process.statusRapport d'entretienCas
completedcompletEntretien mené, tous les critères évalués
incompletepartielEntretien mené, certains critères manquent
failednullCandidat injoignable, raccroché trop tôt, erreur technique
expirednullDélai dépassé sans entretien
cancelednullProcessus annulé dans Omogen

Si le CV ne correspond pas (cv_report.match_result: "no_match"), le processus s'arrête en completed sans entretien. Un candidat peut aussi rappeler après un état final : un nouveau report_generated suit. Gardez toujours le dernier reçu pour un process.id.

Exemple complet
jsonc
{
  "event_type": "report_generated",
  "timestamp": "2026-08-27T10:15:00Z",
  "process": {
    "id": "9b6e81e0-5736-4106-ba8b-86df6a43b663",
    "status": "completed",
    "failure_reason": null,              // { "code", "message" } si failed
    "use_case": "prequalification",
    "created_at": "2026-08-27T09:00:00Z"
  },
  "external_application_id": "APP-456",
  "external_candidate_id": "CAND-789",
  "external_job_id": null,
  "job_title": "Aide-soignant(e) de nuit",
  "reports": {
    "interview_report": {
      "status": "match",
      "overall_score": 0.83,
      "report_status": "completed",
      "is_complete": true,
      "summary": "Texte libre, pour lecture humaine",
      "evaluations": [
        { "criteria_name": "Expérience en EHPAD", "value": "5 ans",
          "is_mentioned": true, "is_satisfied": true, "is_knockout": false }
      ],
      "data_points": [
        { "criteria_name": "Disponibilité", "value": "immédiate", "is_mentioned": true }
      ]
    },
    "cv_report": { "status": "completed", "match_result": "match", "overall_score": 0.71 }
  },
  "appointment": null,
  "tags": [],
  "consent": { "status": "valid" },
  "report_url": "https://app.omogen.ai/report/9b6e81e0-5736-4106-ba8b-86df6a43b663",
  "calls": null
}

Le schéma complet est dans la Référence.

tags, failure_reason, consent
tagsSignification
early_hang_upRaccroché avant toute information utile
prefers_recruiterDemande à parler à un recruteur
not_interestedPas intéressé par le poste
not_availablePas disponible pour l'appel
to_reviewConversation incohérente, à vérifier
failure_reason.codeSignification
all_attempts_failedAucune tentative d'appel n'a abouti
early_hang_upRaccroché trop tôt
cv_requiredCV requis mais absent
cv_screening_failedÉchec technique du screening CV
cv_requirements_not_configuredAucun critère CV sur l'offre
technical_errorErreur technique interne

consent.status : valid (accepté), invalid (refusé), not_collected (pas de réponse explicite). consent vaut null sans étape de consentement.

Transcription et enregistrement ​

Avec l'option Joindre transcription et enregistrement, calls liste chaque appel du processus :

ChampContenu
started_atDébut de l'appel, null s'il n'a jamais démarré
statuscompleted, failed…
duration_msDurée en millisecondes
transcriptUne ligne par tour de parole : AI: pour l'agent, User: pour le candidat
recording_urlLien de l'enregistrement audio, ou null

Option désactivée : calls vaut null.

process_rejected ​

La candidature est écartée avant tout entretien (candidat déjà en cours, triage sans offre correspondante…). Même enveloppe que report_generated, avec process.status: "rejected" et un champ rejection_reason.

call_booked ​

Le candidat a réservé un créneau depuis son invitation. Envoyé à l'URL des rendez-vous si elle est renseignée, sinon à l'URL de réception.

Livraison ​

RègleValeur
MéthodePUT par défaut, POST au choix
Délai de réponse30 secondes
Échec (pas de 2xx)3 nouvelles tentatives, à 20 minutes d'intervalle
URL injoignableLes adresses de Alerter en cas d'échec d'envoi sont prévenues

Authentification ​

Par défaut, Omogen ajoute à chaque appel les en-têtes HTTP réglés dans l'intégration, typiquement votre x-api-key.

Votre URL exige OAuth 2.0

Choisissez l'authentification OAuth 2.0 (client credentials), puis renseignez l'URL du jeton, le client ID et le secret (scope et audience si votre fournisseur les exige).

  1. Omogen demande un jeton à votre URL de jeton :

    http
    POST <URL du jeton>
    Content-Type: application/x-www-form-urlencoded
    
    grant_type=client_credentials&client_id=…&client_secret=…
  2. Il l'envoie en Authorization: Bearer <jeton> sur chaque appel, en plus de vos en-têtes.

  3. Il le garde jusqu'à une minute avant son expiration (expires_in).

  4. Sur un 401 ou 403, il redemande un jeton et réessaie une fois.

Si votre URL filtre les adresses IP, demandez au support la liste des IP d'Omogen.

Documentation Omogen