Logo StartupKit
FR
Integrations

Référence des événements webhook

Formats des charges utiles, en-têtes et définitions des champs pour chaque événement webhook.

Pourquoi c’est important

Chaque livraison de webhook encapsule les données spécifiques à l’événement dans la même enveloppe. Cette référence documente le format exact de la charge utile pour chaque événement afin que vous puissiez les analyser et les traiter en toute confiance.

Enveloppe de la charge utile

{
  "event": "application.submitted",
  "created_at": "2025-01-15T14:30:00Z",
  "data": { }
}
Champ Type Description
event string Le type d’événement qui a déclenché cette livraison
created_at string Horodatage ISO 8601 du moment où l’événement s’est produit
data object Charge utile spécifique à l’événement (varie selon le type d’événement)

En-têtes de requête

Chaque requête webhook inclut les en-têtes suivants :

En-tête Exemple Description
Content-Type application/json Toujours JSON
X-Webhook-Event application.submitted Le type d’événement
X-Webhook-Signature a1b2c3d4... Condensé hexadécimal HMAC-SHA256
X-Webhook-Timestamp 2025-01-15T14:30:00Z Horodatage ISO 8601 utilisé dans la signature
User-Agent Kit-Webhooks/1.0 Identifie Kit comme l’expéditeur

Consultez Sécurité et livraison des webhooks pour les détails sur la vérification de la signature.

Événements de candidature

Événements : application.submitted, application.rejected, application.advanced, application.withdrawn, application.offer_extended

{
  "event": "application.submitted",
  "created_at": "2025-01-15T14:30:00Z",
  "data": {
    "id": 42,
    "candidate": {
      "id": 7,
      "name": "Jane Smith",
      "email": "[email protected]"
    },
    "job_posting": {
      "id": 3,
      "title": "Senior Engineer"
    },
    "current_stage": "Applied",
    "submitted_at": "2025-01-15T14:30:00Z",
    "rejected": false,
    "withdrawn": false,
    "offered": false
  }
}
Champ Type Description
id integer Identifiant de la candidature
candidate.id integer Identifiant du candidat
candidate.name string Nom complet du candidat
candidate.email string Adresse e-mail du candidat
job_posting.id integer Identifiant de l’offre d’emploi
job_posting.title string Intitulé de l’offre d’emploi
current_stage string Nom de l’étape actuelle du pipeline
submitted_at string | null Horodatage ISO 8601 de la soumission
rejected boolean Indique si la candidature a été rejetée
withdrawn boolean Indique si le candidat s’est retiré
offered boolean Indique si une offre a été proposée

Événements d’offre

Événements : offer.accepted, offer.declined, offer.candidate_accepted, offer.candidate_declined, offer.revised

  • offer.accepted / offer.declined — déclenchés lorsqu’un administrateur accepte ou décline une offre
  • offer.candidate_accepted / offer.candidate_declined — déclenchés lorsqu’un candidat répond à une offre
  • offer.revised — déclenché lorsqu’un administrateur révise l’offre avec de nouvelles conditions
{
  "event": "offer.candidate_accepted",
  "created_at": "2025-01-20T10:00:00Z",
  "data": {
    "id": 15,
    "status": "candidate_accepted",
    "details": "Senior Engineer — $150k base",
    "extended_at": "2025-01-18T09:00:00Z",
    "expires_at": "2025-01-25T23:59:59Z",
    "accepted_at": null,
    "declined_at": null,
    "candidate": {
      "id": 7,
      "name": "Jane Smith",
      "email": "[email protected]"
    },
    "job_posting": {
      "id": 3,
      "title": "Senior Engineer"
    }
  }
}
Champ Type Description
id integer Identifiant de l’offre
status string L’une des valeurs suivantes : pending, accepted, declined, candidate_accepted, candidate_declined, expired
details string | null Texte détaillant l’offre
extended_at string | null Date à laquelle l’offre a été proposée
expires_at string | null Date d’expiration de l’offre
accepted_at string | null Date à laquelle l’offre a été acceptée par un administrateur
declined_at string | null Date à laquelle l’offre a été déclinée par un administrateur
candidate object Détails du candidat (même format que les événements de candidature)
job_posting object Détails de l’offre d’emploi (même format que les événements de candidature)

Événements d’entretien

Événements : interview.scheduled, interview.confirmed, interview.completed, interview.cancelled, interview.no_show

{
  "event": "interview.scheduled",
  "created_at": "2025-01-16T09:00:00Z",
  "data": {
    "id": 28,
    "status": "scheduled",
    "scheduled_at": "2025-01-20T14:00:00Z",
    "duration_minutes": 60,
    "candidate": {
      "id": 7,
      "name": "Jane Smith",
      "email": "[email protected]"
    },
    "job_posting": {
      "id": 3,
      "title": "Senior Engineer"
    }
  }
}
Champ Type Description
id integer Identifiant de l’entretien
status string Statut de l’entretien (scheduled, confirmed, completed, cancelled, no_show)
scheduled_at string | null Horodatage ISO 8601 de l’heure prévue
duration_minutes integer Durée de l’entretien en minutes
candidate object Détails du candidat
job_posting object Détails de l’offre d’emploi

Événements d’exercice de code

Événements : code_assignment.submitted, code_assignment.auto_submitted

{
  "event": "code_assignment.submitted",
  "created_at": "2025-01-22T16:45:00Z",
  "data": {
    "id": 11,
    "repo_url": "https://github.com/org/assignment-jane-smith",
    "submitted_at": "2025-01-22T16:45:00Z",
    "deadline_at": "2025-01-25T23:59:59Z",
    "candidate": {
      "id": 7,
      "name": "Jane Smith",
      "email": "[email protected]"
    },
    "job_posting": {
      "id": 3,
      "title": "Senior Engineer"
    }
  }
}
Champ Type Description
id integer Identifiant de la soumission de code
repo_url string URL du dépôt GitHub
submitted_at string | null Date de soumission de l’exercice
deadline_at string | null Date limite de l’exercice
candidate object Détails du candidat
job_posting object Détails de l’offre d’emploi

Événements d’évaluation

Événements : review.submitted

{
  "event": "review.submitted",
  "created_at": "2025-01-23T11:00:00Z",
  "data": {
    "id": 9,
    "recommendation": "strong_yes",
    "reviewer": "Alex Johnson",
    "candidate": {
      "id": 7,
      "name": "Jane Smith",
      "email": "[email protected]"
    },
    "job_posting": {
      "id": 3,
      "title": "Senior Engineer"
    },
    "stage": "Technical Interview"
  }
}
Champ Type Description
id integer Identifiant de l’évaluation
recommendation string Recommandation de l’évaluateur
reviewer string Nom de l’évaluateur
candidate object Détails du candidat
job_posting object Détails de l’offre d’emploi
stage string Nom de l’étape du pipeline où l’évaluation a été soumise

Événements d’offre d’emploi

Événements : job_posting.published, job_posting.paused, job_posting.closed, job_posting.reopened

{
  "event": "job_posting.published",
  "created_at": "2025-01-10T08:00:00Z",
  "data": {
    "id": 3,
    "title": "Senior Engineer",
    "status": "published",
    "location": "Remote",
    "department": "Engineering",
    "employment_type": "Full-time",
    "published_at": "2025-01-10T08:00:00Z",
    "closed_at": null,
    "public_url": "https://careers.example.com/senior-engineer"
  }
}
Champ Type Description
id integer Identifiant de l’offre d’emploi
title string Intitulé du poste
status string Statut actuel (published, paused, closed)
location string Lieu du poste
department string Nom du département
employment_type string Type de contrat (Full-time, Part-time, Contract, etc.)
published_at string | null Date de publication de l’offre
closed_at string | null Date de clôture de l’offre
public_url string URL publique de l’offre sur le portail carrières

Événements Outreach

Événements : outreach.prospect.drafted, outreach.message.approved, outreach.message.sent, outreach.message.bounced, outreach.message.failed

Ces événements nécessitent le module complémentaire Outreach.

outreach.prospect.drafted

Déclenché lorsque l’IA termine la recherche sur un prospect et la rédaction d’un e-mail.

{
  "event": "outreach.prospect.drafted",
  "created_at": "2026-03-12T10:00:00Z",
  "data": {
    "id": "op_abc123",
    "campaign_id": "oc_def456",
    "company_name": "Acme Corp",
    "display_name": "Jane Smith",
    "status": "drafted"
  }
}
Champ Type Description
id string Identifiant préfixé du prospect
campaign_id string Identifiant préfixé de la campagne
company_name string Nom de l’entreprise du prospect
display_name string Nom d’affichage du prospect
status string Statut du prospect au moment de l’événement

Remarque : l’adresse e-mail du prospect est exclue des charges utiles webhook (chiffrée au repos).

outreach.message.approved / sent / bounced / failed

Déclenché lorsqu’un message passe au statut approved, sent, bounced ou failed.

{
  "event": "outreach.message.sent",
  "created_at": "2026-03-12T10:15:00Z",
  "data": {
    "id": "om_ghi789",
    "campaign_id": "oc_def456",
    "prospect_id": "op_abc123",
    "step_number": 1,
    "subject": "Quick question about Acme's hiring workflow",
    "status": "sent",
    "sent_at": "2026-03-12T10:15:00Z",
    "approved_at": "2026-03-12T09:30:00Z",
    "retry_count": 0,
    "last_error_code": null
  }
}
Champ Type Description
id string Identifiant préfixé du message
campaign_id string Identifiant préfixé de la campagne
prospect_id string Identifiant préfixé du prospect
step_number integer Numéro de l’étape dans la séquence (1 = initial, 2+ = relances)
subject string Objet de l’e-mail
status string L’une des valeurs suivantes : approved, sent, bounced, failed
sent_at string | null Date d’envoi de l’e-mail
approved_at string | null Date d’approbation du brouillon
retry_count integer Nombre de tentatives d’envoi effectuées
last_error_code string | null Code d’erreur SMTP (présent en cas de bounced/failed)

Remarque : le corps de l’e-mail du message est exclu des charges utiles webhook (chiffré au repos).

Événements de test

Événements : test.ping

L’événement test.ping est envoyé lorsque vous cliquez sur Envoyer un ping de test dans les paramètres du webhook. Utilisez-le pour vérifier la connectivité de votre point de terminaison et la validation de la signature.

{
  "event": "test.ping",
  "created_at": "2025-01-15T14:30:00Z",
  "data": {}
}

Tapez pour rechercher...