> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbit.devotel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhook Events

> Canonical catalog of every webhook event Orbit dispatches, generated from the platform constant.

# Webhook Events

Orbit emits **176** event types across messaging, voice,
agents, flows, contacts, billing, and account activity. Subscribe to
specific events when registering a webhook, or pass `["*"]` to
receive everything.

<Note>
  This page is the **canonical catalog** — every event listed here is
  emitted by the platform and accepted by the subscription validator.
  For full payload examples, see the
  [Webhook Events Reference](/reference/webhook-events).

  The catalog is generated from `WEBHOOK_EVENT_TYPES` in
  `packages/shared/src/constants.ts`; the same constant powers the
  server-side Zod enum that validates `webhook_endpoints.events[]`, so
  any name not in this catalog cannot be subscribed to.
</Note>

## Message Events

Outbound + inbound message lifecycle across every channel (SMS, WhatsApp, RCS, email, Telegram, Messenger, Viber, etc.).

| Event                           | Description                                                                                                                                                                   |
| ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `message.created`               | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                                                         |
| `message.sent`                  | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                                                         |
| `message.delivered`             | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                                                         |
| `message.failed`                | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                                                         |
| `message.read`                  | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                                                         |
| `message.received`              | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                                                         |
| `message.recipient_deactivated` | Carrier number deactivation sweep (R16FIX 2026-05-30) — fires once per deactivated MSISDN the nightly carrier-feed sweep flips to DNC.                                        |
| `message.replied`               | MESSAGE\_REPLIED — fires when an INBOUND message is received in response to an OUTBOUND message (i.e. there is at least one prior outbound message in the same conversation). |

## Contact Events

Contact CRUD, bulk-import lifecycle, opt-in/out signals, and predictive-segment transitions.

| Event                         | Description                                                                                                           |
| ----------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| `contact.created`             | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                 |
| `contact.updated`             | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                 |
| `contact.deleted`             | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                 |
| `contact.trait_changed`       | Computed-trait value transition for a single contact (DECISION — CDPAAS\_REAL\_TIME\_TRAIT\_RECOMPUTE\_2026\_05\_28). |
| `contact.bulk_imported`       | Fired once per bulk CSV import after all rows are processed.                                                          |
| `contact.merged`              | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                 |
| `contact.opted_out`           | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                 |
| `contact.opted_in`            | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                 |
| `contact.recertification_due` | Reassigned Number Database (RMD) annual recertification due.                                                          |
| `contact.segment_changed`     | Predictive-scoring events (migration 077).                                                                            |

## Campaign Events

Campaign lifecycle + drip-step granularity. Use these to drive CRM journeys when a campaign starts, pauses, completes, or fans out a single drip step.

| Event                          | Description                                                                                           |
| ------------------------------ | ----------------------------------------------------------------------------------------------------- |
| `campaign.started`             | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `campaign.completed`           | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `campaign.paused`              | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `campaign.resumed`             | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `campaign.drip_step.sent`      | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `campaign.drip_step.completed` | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `campaign.drip.completed`      | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `campaign.created`             | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `campaign.updated`             | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `campaign.deleted`             | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |

## Voice Events

Voice call lifecycle (inbound + outbound), DTMF, recording, transcription, AI summary, conference lifecycle, and voicemail.

| Event                            | Description                                                                                                                                      |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `call.initiated`                 | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                            |
| `call.answered`                  | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                            |
| `call.completed`                 | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                            |
| `call.failed`                    | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                            |
| `call.transferred`               | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                            |
| `call.dtmf_sent`                 | Mid-call DTMF inject (B-237).                                                                                                                    |
| `call.recording.paused`          | Mid-call recording pause (B-242).                                                                                                                |
| `call.recording.resumed`         | Mid-call recording resume (B-242).                                                                                                               |
| `call.hit_voicemail`             | Outbound call hit a voicemail / fax (Telnyx AMD result = machine\|fax).                                                                          |
| `call.ringing`                   | Inbound INVITE seen at the SIP edge but call not yet answered.                                                                                   |
| `conference.created`             | Conference lifecycle events (audit #BUG-R65).                                                                                                    |
| `conference.participant_joined`  | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                            |
| `conference.participant_left`    | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                            |
| `conference.ended`               | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                            |
| `recording.started`              | Recording lifecycle events (audit #BUG-R65).                                                                                                     |
| `recording.completed`            | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                            |
| `recording.failed`               | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                            |
| `recording.qc_failed`            | Post-finalize QC failure (RTC-PaaS competitor-parity gap, 2026-05-29).                                                                           |
| `voicemail.received`             | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                            |
| `voicemail.transcript_updated`   | Late-arriving transcript: fires when a voicemail's transcript was NULL at receipt (Deepgram inline failure) and a subsequent retry recovered it. |
| `call.transcript_ready`          | Telephony-aware CDP — CDP-016 parity wedge (2026-05-29).                                                                                         |
| `call.recording.ready`           | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                            |
| `call.transcription.ready`       | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                            |
| `call.synthesis.ready`           | AI summary / action-items / sentiment extracted from the transcript (opt-in).                                                                    |
| `call.synthesized`               | Phase 4.4 — Post-call synthesis pipeline (scheduler-driven).                                                                                     |
| `recording.retention_deleted`    | Fired ahead of a retention-driven GCS purge so tenants can mirror the recording/attachment to their own archive before it is deleted.            |
| `recording.chapters.ready`       | RTC-PaaS auto-chaptering (2026-05-28).                                                                                                           |
| `voice_eval.run_started`         | Voice eval regression suite (migration 282, 2026-05-22).                                                                                         |
| `voice_eval.run_completed`       | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                            |
| `voice_eval.regression_detected` | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                            |

## Agent Events

AI-agent lifecycle, conversation transitions, human + agent-to-agent handoffs, calendar-tool fires, and structured agent responses.

| Event                          | Description                                                                                                                                                                                                                |
| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `agent.conversation.started`   | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                                                                                                      |
| `agent.conversation.ended`     | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                                                                                                      |
| `agent.created`                | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                                                                                                      |
| `agent.updated`                | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                                                                                                      |
| `agent.deleted`                | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                                                                                                      |
| `agent.deployed`               | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                                                                                                      |
| `agent.handoff.requested`      | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                                                                                                      |
| `agent.handoff_occurred`       | Phase 4.2 — Fired by agent-runtime the moment one agent delegates a conversation to another specialist agent via the enhanced `transfer_to_agent` tool.                                                                    |
| `agent.response`               | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                                                                                                      |
| `agent.calendar_event.created` | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                                                                                                      |
| `agent.dnc.marked`             | AIaaS-P0-BUG fix (2026-05-30): fired by `POST /agents/dnc` when an AI voice / text agent invokes the `mark_dnc` MCP tool and the platform persists the suppression to `suppression_list` (+ `dnc_list` mirror for voice/S… |
| `agent.handed_off`             | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                                                                                                      |

## Flow Events

Visual-flow lifecycle (create / publish / delete) and granular per-run execution telemetry.

| Event                      | Description                                                                                           |
| -------------------------- | ----------------------------------------------------------------------------------------------------- |
| `flow.execution.started`   | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `flow.execution.completed` | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `flow.created`             | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `flow.updated`             | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `flow.deleted`             | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `flow.published`           | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `flow.executed`            | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `flow.execution.failed`    | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |

## Verification Events

OTP / verification lifecycle including the async multi-channel fallback engine.

| Event                             | Description                                                                                                                              |
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `verification.sent`               | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                    |
| `verification.approved`           | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                    |
| `verification.failed`             | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                    |
| `verification.checked`            | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                    |
| `verification.fallback_triggered` | Fired by the `scheduler-verify-fallback` tick each time the async fallback engine advances to a new channel.                             |
| `verification.fallback_exhausted` | Fired when the async fallback engine has tried every channel in the fallbackConfig.channels array without obtaining a `verified` status. |

## Number / Porting Events

Phone-number purchase, release, port-in / port-out, and customer port cancellation.

| Event                                    | Description                                                                                           |
| ---------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| `number.purchased`                       | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `number.released`                        | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `number.ported`                          | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `number.updated`                         | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `porting.request.cancelled`              | Number porting customer-cancellation event.                                                           |
| `porting.request.manual_review_required` | Port-IN fell back into manual-review mode (GAP2\_NaaS\_115, 2026-05-29).                              |
| `porting.request.loa_signed`             | Port-IN LOA signed in-platform (cpaasparity2-porting-loa-workflow, 2026-05-29).                       |
| `number.port_out.requested`              | Number port-OUT lifecycle events (NaaS-005 capability-gap fix, 2026-05-29).                           |
| `number.port_out.cancelled`              | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |

## Conversation Events

Conversation thread lifecycle (start / close / disposition / QM-score) — useful for cross-channel inbox automation.

| Event                    | Description                                                                                                                           |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
| `conversation.created`   | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                 |
| `conversation.disposed`  | Fired by the auto-disposition service when a conversation is automatically closed/resolved by an AI or rule-based disposition engine. |
| `conversation.scored`    | Fired by the QM-scoring service when a conversation receives a quality-management score.                                              |
| `conversation.deflected` | CSPaaS Intercom Fin / Zendesk parity gap (2026-05-30) — CRM/CDP needs to distinguish AI-resolved volume from human-resolved volume.   |
| `conversation.started`   | Conversation lifecycle — fired by the inbox/handoff pipeline.                                                                         |
| `conversation.closed`    | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                 |

## List / Segment Events

Static-list and dynamic-segment CRUD.

| Event             | Description                                                                                           |
| ----------------- | ----------------------------------------------------------------------------------------------------- |
| `list.created`    | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `list.deleted`    | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `segment.created` | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `segment.deleted` | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |

## Webhook Endpoint Events

Meta-events about webhook subscriptions themselves — wire these to your tenant-admin audit pipeline.

| Event                      | Description                                                                                           |
| -------------------------- | ----------------------------------------------------------------------------------------------------- |
| `webhook_endpoint.created` | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `webhook_endpoint.updated` | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `webhook_endpoint.deleted` | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |

## Billing Events

Wallet balance lifecycle (low, top-up) and Stripe invoice / payment-failure mirror events.

| Event                  | Description                                                                                           |
| ---------------------- | ----------------------------------------------------------------------------------------------------- |
| `subscription.updated` | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `balance.topped_up`    | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `credits.purchased`    | Use BALANCE\_TOPPED\_UP instead **Deprecated.**                                                       |
| `balance.low`          | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `credits.low`          | Use BALANCE\_LOW instead **Deprecated.**                                                              |
| `invoice.created`      | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `payment.failed`       | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |

## Channel Failover Events

Emitted when a messaging channel auto-failed-over from its primary provider to its backup.

| Event              | Description                                                                                           |
| ------------------ | ----------------------------------------------------------------------------------------------------- |
| `channel.failover` | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |

## Push Events

Push-SDK acknowledgements (rendered / opened on-device) so tenant CRMs can mark engagement without polling.

| Event            | Description                                                                                           |
| ---------------- | ----------------------------------------------------------------------------------------------------- |
| `push.delivered` | Push notification SDK ack events.                                                                     |
| `push.opened`    | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |

## Number Masking (Proxy) Events

Two-party proxy-session lifecycle + per-message forwarding events.

| Event                     | Description                                                                                           |
| ------------------------- | ----------------------------------------------------------------------------------------------------- |
| `proxy.session.created`   | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `proxy.session.closed`    | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `proxy.message.forwarded` | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |

## WhatsApp Events

Mirrors of Meta WABA webhook fields (account, phone, template, calls, GDPR, v25 fields).

| Event                                          | Description                                                                                                                 |
| ---------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `whatsapp.account.update`                      | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                       |
| `whatsapp.account.banned`                      | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                       |
| `whatsapp.account.restricted`                  | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                       |
| `whatsapp.phone.quality_update`                | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                       |
| `whatsapp.phone.name_update`                   | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                       |
| `whatsapp.capability.update`                   | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                       |
| `whatsapp.security.alert`                      | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                       |
| `whatsapp.flow.status_change`                  | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                       |
| `whatsapp.template.approved`                   | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                       |
| `whatsapp.template.rejected`                   | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                       |
| `whatsapp.template.quality_update`             | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                       |
| `whatsapp.template.category_update`            | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                       |
| `whatsapp.template.components_update`          | Meta auto-edits a template's components for compliance (e.g. inserts the standard opt-out hint into a MARKETING body).      |
| `whatsapp.quality.changed`                     | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                       |
| `whatsapp.call.received`                       | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                       |
| `whatsapp.call.connected`                      | WhatsApp Business Calling lifecycle events (Phase 2 — 2026-05-09).                                                          |
| `whatsapp.call.accepted`                       | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                       |
| `whatsapp.call.terminated`                     | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                       |
| `whatsapp.call.permission_granted`             | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                       |
| `whatsapp.call.permission_revoked`             | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                       |
| `whatsapp.account.alert`                       | Meta-issued operational alert about the WABA (e.g. policy violation, pricing change effective date, payment method failed). |
| `whatsapp.account.review_update`               | WABA went through a Meta-side review that updated its compliance status (e.g. moved to RESTRICTED / FLAGGED).               |
| `whatsapp.business.status_update`              | Business profile status changed at Meta (verification badge, official business account flag, business status).              |
| `whatsapp.user.preferences`                    | User-level marketing preference signal.                                                                                     |
| `whatsapp.data.export_request`                 | GDPR Article 15 (data subject access request) — user invoked "Request my data" inside the conversation.                     |
| `whatsapp.data.delete_request`                 | GDPR Article 17 (right to erasure) — user invoked "Delete my data".                                                         |
| `whatsapp.account.settings_update`             | WABA-level settings changed (commerce/profile/etc.).                                                                        |
| `whatsapp.automatic_events`                    | Meta's auto-detected business events (cart abandoned, etc.).                                                                |
| `whatsapp.group.lifecycle_update`              | WA Group lifecycle (created/deleted).                                                                                       |
| `whatsapp.group.participants_update`           | WA Group participants joined/left.                                                                                          |
| `whatsapp.group.settings_update`               | WA Group renamed/description changed.                                                                                       |
| `whatsapp.group.status_update`                 | WA Group activated/archived.                                                                                                |
| `whatsapp.history`                             | Initial-connection backfill of historical messages.                                                                         |
| `whatsapp.partner_solutions`                   | Partner integration events.                                                                                                 |
| `whatsapp.payment_configuration_update`        | Payment setup state changed (WA Pay).                                                                                       |
| `whatsapp.smb.app_state_sync`                  | SMB app state sync events.                                                                                                  |
| `whatsapp.smb.message_echoes`                  | Echoes of messages sent from the SMB app (hybrid setups).                                                                   |
| `whatsapp.template.correct_category_detection` | Meta detected the template's category was wrong vs. its actual intent.                                                      |
| `whatsapp.tracking_events`                     | Per-message tracking events (link clicks, etc.).                                                                            |

## Supervisor Events

Supervisor warm-handoff lifecycle (request / complete / fail / cancel).

| Event                           | Description                                                                                                 |
| ------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| `supervisor.takeover_requested` | Fired when a supervisor initiates a warm-handoff takeover of a live call.                                   |
| `supervisor.takeover_failed`    | Fired when a supervisor takeover attempt fails (e.g. Jambonz REST error during the leg-swap).               |
| `supervisor.takeover_completed` | Fired when the supervisor successfully takes over the call and becomes the active party.                    |
| `supervisor.takeover_cancelled` | Fired when a takeover is cancelled (call ended before handoff completed, or supervisor explicitly aborted). |

## SIP Trunk Events

SIP-trunk registration-status transitions.

| Event                      | Description                                                                                           |
| -------------------------- | ----------------------------------------------------------------------------------------------------- |
| `sip_trunk.status_changed` | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |

## CDP Events

Customer-data-platform ingestion: server-to-server track/identify with identity-resolution.

| Event                   | Description                                                                                                                                                                         |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `cdp.event.ingested`    | CDP inbound — fired after a Segment-shaped /cdp/track or /cdp/identify payload is verified, persisted to `tenant_*.cdp_events`, and identity- resolved against `tenant_*.contacts`. |
| `cdp.identity.resolved` | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context.                                                                               |

## Other

Events whose name prefix does not yet map to a documented surface group. Surface them in the catalog so they remain discoverable, then update `SURFACES` in the generator.

| Event                       | Description                                                                                           |
| --------------------------- | ----------------------------------------------------------------------------------------------------- |
| `email.opened`              | Email engagement events (Resend webhook surface).                                                     |
| `email.clicked`             | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `video.recording.degraded`  | PARITY-RTC-R1 (2026-05-29) — video room recording QC verdict.                                         |
| `video.room.started`        | GAP-RTC-R2 (2026-05-29) — video room + participant + recording lifecycle webhook fan-out.             |
| `video.room.ended`          | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `video.participant.joined`  | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `video.participant.left`    | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `video.recording.completed` | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `video.recording.failed`    | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `ticket.deflected`          | Platform-defined webhook event. See source comment in `packages/shared/src/constants.ts` for context. |
| `wallboard.sla_warning`     | Voice-queue wallboard SLA early-warning (CCaaS).                                                      |

## Subscribing to Events

When creating a webhook, specify which events to receive:

```bash theme={null}
curl -X POST https://orbit-api.devotel.io/api/v1/webhooks \
  -H "X-API-Key: dv_live_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://yourapp.com/webhooks/orbit",
    "events": ["message.delivered", "message.failed", "call.completed"]
  }'
```

Use `"events": ["*"]` to subscribe to all event types. Subscribing to
a name not in the catalog above returns a 422 with code
`VALIDATION_ERROR`.

## See also

* [Webhook Events Reference](/reference/webhook-events) — full payload examples per event
* [Webhook Overview](/webhooks/overview) — delivery, signing, and retry semantics
* [Webhook Security](/webhooks/security) — verifying signatures
