Logo StartupKit
DE
Integrations

Webhook-Ereignis-Referenz

Nutzlaststrukturen, Header und Felddefinitionen für jedes Webhook-Ereignis.

Warum es wichtig ist

Jede Webhook-Lieferung verpackt ereignisspezifische Daten in dasselbe Hüllformat. Diese Referenz dokumentiert die genaue Nutzlaststruktur für jedes Ereignis, damit Sie sie sicher analysieren und darauf reagieren können.

Nutzlast-Hüllformat

{
  "event": "application.submitted",
  "created_at": "2025-01-15T14:30:00Z",
  "data": { }
}
Feld Typ Beschreibung
event string Der Ereignistyp, der diese Lieferung ausgelöst hat
created_at string ISO 8601-Zeitstempel des Ereigniszeitpunkts
data object Ereignisspezifische Nutzlast (variiert je nach Ereignistyp)

Anfrage-Header

Jede Webhook-Anfrage enthält diese Header:

Header Beispiel Beschreibung
Content-Type application/json Immer JSON
X-Webhook-Event application.submitted Der Ereignistyp
X-Webhook-Signature a1b2c3d4... HMAC-SHA256 Hex-Digest
X-Webhook-Timestamp 2025-01-15T14:30:00Z ISO 8601-Zeitstempel für die Signatur
User-Agent Kit-Webhooks/1.0 Identifiziert Kit als Absender

Signaturverifizierungsdetails finden Sie unter Webhook-Sicherheit & Zustellung.

Bewerbungsereignisse

Ereignisse: 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
  }
}
Feld Typ Beschreibung
id integer Bewerbungs-ID
candidate.id integer Kandidaten-ID
candidate.name string Vollständiger Name des Kandidaten
candidate.email string E-Mail-Adresse des Kandidaten
job_posting.id integer Stellenanzeigen-ID
job_posting.title string Titel der Stellenanzeige
current_stage string Name der aktuellen Pipeline-Phase
submitted_at string | null ISO 8601-Zeitstempel der Einreichung
rejected boolean Ob die Bewerbung abgelehnt wurde
withdrawn boolean Ob der Kandidat zurückgezogen hat
offered boolean Ob ein Angebot unterbreitet wurde

Angebotsereignisse

Ereignisse: offer.accepted, offer.declined, offer.candidate_accepted, offer.candidate_declined, offer.revised

  • offer.accepted / offer.declined — ausgelöst, wenn ein Administrator ein Angebot annimmt oder ablehnt
  • offer.candidate_accepted / offer.candidate_declined — ausgelöst, wenn ein Kandidat auf ein Angebot antwortet
  • offer.revised — ausgelöst, wenn ein Administrator das Angebot mit neuen Konditionen überarbeitet
{
  "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"
    }
  }
}
Feld Typ Beschreibung
id integer Angebots-ID
status string Eines von: pending, accepted, declined, candidate_accepted, candidate_declined, expired
details string | null Angebotsdetails-Text
extended_at string | null Wann das Angebot unterbreitet wurde
expires_at string | null Wann das Angebot abläuft
accepted_at string | null Wann das Angebot von einem Administrator angenommen wurde
declined_at string | null Wann das Angebot von einem Administrator abgelehnt wurde
candidate object Kandidatendetails (gleiche Struktur wie bei Bewerbungsereignissen)
job_posting object Stellenanzeigendetails (gleiche Struktur wie bei Bewerbungsereignissen)

Interview-Ereignisse

Ereignisse: 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"
    }
  }
}
Feld Typ Beschreibung
id integer Interview-ID
status string Interview-Status (scheduled, confirmed, completed, cancelled, no_show)
scheduled_at string | null ISO 8601-Zeitstempel der geplanten Zeit
duration_minutes integer Interview-Dauer in Minuten
candidate object Kandidatendetails
job_posting object Stellenanzeigendetails

Code-Assignment-Ereignisse

Ereignisse: 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"
    }
  }
}
Feld Typ Beschreibung
id integer Code-Einreichungs-ID
repo_url string GitHub-Repository-URL
submitted_at string | null Wann das Assignment eingereicht wurde
deadline_at string | null Assignment-Frist
candidate object Kandidatendetails
job_posting object Stellenanzeigendetails

Überprüfungsereignisse

Ereignisse: 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"
  }
}
Feld Typ Beschreibung
id integer Überprüfungs-ID
recommendation string Empfehlung des Prüfers
reviewer string Name des Prüfers
candidate object Kandidatendetails
job_posting object Stellenanzeigendetails
stage string Name der Pipeline-Phase, in der die Überprüfung eingereicht wurde

Stellenanzeigenereignisse

Ereignisse: 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"
  }
}
Feld Typ Beschreibung
id integer Stellenanzeigen-ID
title string Berufsbezeichnung
status string Aktueller Status (published, paused, closed)
location string Stellenstandort
department string Abteilungsname
employment_type string Beschäftigungsart (Full-time, Part-time, Contract usw.)
published_at string | null Wann die Anzeige veröffentlicht wurde
closed_at string | null Wann die Anzeige geschlossen wurde
public_url string Öffentliche Karriereportal-URL für diese Anzeige

Outreach-Ereignisse

Ereignisse: outreach.prospect.drafted, outreach.message.approved, outreach.message.sent, outreach.message.bounced, outreach.message.failed

Diese Ereignisse erfordern das Outreach-Add-on.

outreach.prospect.drafted

Wird ausgelöst, wenn die KI die Recherche eines Interessenten abgeschlossen und eine E-Mail entworfen hat.

{
  "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"
  }
}
Feld Typ Beschreibung
id string Interessenten-Präfix-ID
campaign_id string Kampagnen-Präfix-ID
company_name string Unternehmensname des Interessenten
display_name string Anzeigename des Interessenten
status string Interessentenstatus zum Zeitpunkt des Ereignisses

Hinweis: Die E-Mail-Adresse des Interessenten wird aus Webhook-Nutzlasten ausgeschlossen (im Ruhezustand verschlüsselt).

outreach.message.approved / sent / bounced / failed

Wird ausgelöst, wenn eine Nachricht den Status approved, sent, bounced oder failed erhält.

{
  "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
  }
}
Feld Typ Beschreibung
id string Nachrichten-Präfix-ID
campaign_id string Kampagnen-Präfix-ID
prospect_id string Interessenten-Präfix-ID
step_number integer Sequenzschritt-Nummer (1 = initial, 2+ = Nachfassungen)
subject string E-Mail-Betreffzeile
status string Eines von: approved, sent, bounced, failed
sent_at string | null Wann die E-Mail gesendet wurde
approved_at string | null Wann der Entwurf genehmigt wurde
retry_count integer Anzahl der versuchten Sendeversuche
last_error_code string | null SMTP-Fehlercode (vorhanden bei bounced/failed)

Hinweis: Der E-Mail-Text der Nachricht wird aus Webhook-Nutzlasten ausgeschlossen (im Ruhezustand verschlüsselt).

Test-Ereignisse

Ereignisse: test.ping

Das test.ping-Ereignis wird gesendet, wenn Sie auf Test-Ping senden in den Webhook-Einstellungen klicken. Verwenden Sie es, um Endpunktkonnektivität und Signaturvalidierung zu überprüfen.

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

Suchbegriff eingeben...