Docs
← chronapilot.com v 2026-05-12

Webhook event catalog

Every webhook event ChronaPilot fires. Subscribe to a subset on each endpoint, or use ["*"] to receive everything.

EventGroupDescription
event.createdSchedulingFired when an event is created.
event.updatedSchedulingFired when any event field is updated.
event.cancelledSchedulingFired when an event is cancelled.
event.deletedSchedulingFired when an event is hard-deleted (and removed from the source provider when cascaded).
event.rescheduledSchedulingSpecialized — fires only when time-of-day fields change.
event.attendee_respondedSchedulingAn attendee responded to an invitation.
connection.connectedSyncA user completed the OAuth flow and a connection is now active.
connection.disconnectedSyncA connection was disconnected by the user or admin.
connection.token_expiredSyncRefresh token failed; the connection requires re-consent.
connection.sync_completedSyncA full sync round-trip finished successfully.
connection.sync_failedSyncA sync attempt failed.
departure.computedIntelligenceThe first departure window has been computed for an event.
departure.updatedIntelligenceAn existing departure window has been recomputed (traffic shifted, weather changed).
departure.threshold_reachedIntelligenceUser is within their pre-alert window before recommended departure.
event.health_degradedIntelligenceHealth score dropped below the configured threshold.
event.late_predictedIntelligenceETA tracking predicts arrival after start time.
event.late_confirmedIntelligenceUser is now late (event start time passed without arrival).
user.createdUserA new ChronaPilot user was created.
user.deactivatedUserA user was paused.
user.reactivatedUserA previously deactivated user was restored.
user.deletedUserA user was hard-deleted. Cascades through all their resources.
user.location_updatedUserMost-recent location for a user changed (only fires if tracking enabled).
user.arrivedUserGeofence-triggered arrival at an event location.
voice.session_startedVoiceA voice session opened.
voice.session_endedVoiceA voice session closed.
voice.action_executedVoiceThe AI executed a tool on the user's behalf.
invitation.sentInvitationAn invitation email was queued.
invitation.deliveredInvitationEmail delivery succeeded (per the email provider).
invitation.openedInvitationTracked open (if enabled at the endpoint).
invitation.respondedInvitationAttendee responded.

Delivery shape

Every delivery body has the same envelope:

JSON
{
  "id": "whe_8x9y0z1a2b",
  "type": "event.created",
  "api_version": "2026-05-20",
  "created": 1716247200,
  "data": { "object": { ... }, "previous_attributes": { ... } },
  "account": "cpa_…",
  "livemode": true,
  "request_id": "req_..."
}

previous_attributes is present on *.updated events and contains the old values of changed fields.

Ordering

We do not guarantee delivery order. Use created timestamps to reconcile.

Retry behavior

24 attempts over 72 hours with exponential backoff. After exhaustion, the delivery is logged and an endpoint.delivery_failed event is fired against a special platform-level webhook (if registered).