Webhook Events
Orbit emits 252 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.
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.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[]. A
small number of constants flagged @internal in the source are
consumed only by internal matchers (e.g. campaign exit-goals,
engagement signals) and are never dispatched to subscribers — those
are omitted here, and the subscription validator rejects them with a 422
just like any name not in the catalog. Treat this catalog as the
authoritative list of events you can subscribe to and receive.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. |
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.phone_changed | WhatsApp customer-number-change recertification. |
contact.segment_changed | Predictive-scoring events (migration 077). |
contact.entered_segment | CDPAAS — SEGMENT_MEMBERSHIP_CHANGE_WEBHOOK (2026-05-31). |
contact.exited_segment | Inverse of contact.entered_segment. |
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.cancelled | Fired by cancelCampaign when an operator cancels a running, paused, or scheduled campaign (terminal status cancelled). |
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.secure_payment.started | Agent-assisted secure payment (masked-DTMF card capture, PCI Pal / Sycurio-class). |
call.secure_payment.completed | Platform-defined webhook event. See source comment in packages/shared/src/constants.ts for context. |
call.secure_payment.cancelled | Platform-defined webhook event. See source comment in packages/shared/src/constants.ts for context. |
call.hit_voicemail | Outbound call hit a voicemail or screened call (Jambonz AMD result: machine, machine_beep_detected, fax, ios_call_screening, or ios_live_voicemail). |
call.disclosure.omitted | A call routed through a queue with mandated disclosure phrases ended without every required phrase being read. |
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). |
recording.redaction_vault.ready | Compliance recording vault (2026-06-10). |
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.state.changed | CCaaS contact-center agent presence-state transition (2026-05-31). |
agent.handoff.requested | Platform-defined webhook event. See source comment in packages/shared/src/constants.ts for context. |
agent.handoff_occurred | Fired when a conversation is handed to another specialist agent — both autonomous transfer_to_agent delegations and operator-initiated inbox-macro handoffs (source_agent_id is operator_macro for the latter). |
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.batch.completed | Fired when an asynchronous agent batch inference job finishes and its results are ready to fetch. |
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.fraud_blocked | Pre-send Fraud Guard refusal (VerifyService.sendVerification, fraud verdict action === "block"). |
verification.checked | Fired by VerifyService.checkVerification on EVERY persisted check attempt — the terminal outcomes (approved / failed / expired) and the non-terminal pending outcome (wrong code but attempts remaining). |
verification.fallback_triggered | Fired by VerifyService.advanceFallbackChannel (invoked by the scheduler-verify-fallback worker via /internal/verify/fallback-advance) each time the async fallback engine successfully fires 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, customer port cancellation, and carrier NaaS network-monitoring events (SIM-swap, device-status change, number-recycled).| 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.released_compliance_timeout | Number auto-released because its compliance deadline elapsed (audit #COMPLIANCE-DEADLINE-2026-05-12). |
number.ported | Platform-defined webhook event. See source comment in packages/shared/src/constants.ts for context. |
number.inventory.low | Low DID inventory alert (NaaS gap, anchor: PROTOCOL — NAAS_TN_LOW_STOCK_ALERT_2026_05_31). |
number.dormant | Per-DID dormancy alert — fired when an owned number has had no inbound or outbound calls or SMS for the configured dormancy window, so integrations can release idle numbers and trim spend. |
number.health.degraded | Per-DID deliverability health-degradation alert — fired when a number’s reputation got materially worse between two daily poller passes, so integrations can throttle a campaign or rotate the DID before the carriers ta… |
number.updated | Platform-defined webhook event. See source comment in packages/shared/src/constants.ts for context. |
network.sim_swap_detected | Carrier-pushed async SIM-swap alert for a number resolved to your tenant — fires when the mobile operator reports the SIM behind a monitored number was swapped, so NaaS number-monitoring integrations can react in real time. |
network.device_status_changed | Carrier-pushed async device-reachability change for a number resolved to your tenant — fires when the mobile operator reports the device behind a monitored number changed connectivity or roaming status. |
network.number_recycled | Carrier-pushed async number-recycling alert for a number resolved to your tenant — fires when the mobile operator reports a monitored number was deactivated and reassigned. |
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). |
porting.request.supplement_submitted | Port-IN LOA/CSR supplement amendment submitted to the carrier. |
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.csat_detractor | CSPaaS LOW_CSAT_AUTOMATION_HOOK_2026_05_30 — fired when a customer-facing CSAT (1..5, < 3) or NPS (0..10, 0..6) submission lands and qualifies as a detractor. |
conversation.synthesized | AIaaS post-chat synthesis (2026-05-31) — Intercom Fin / Sierra parity. |
conversation.deflected | CSPaaS Intercom Fin / Zendesk parity gap (2026-05-30) — CRM/CDP needs to distinguish AI-resolved volume from human-resolved volume. |
conversation.ai_review_needed | Fired when a conversation that was resolved by AI — rather than handed to a human agent — comes back with a low CSAT score (below your configured threshold, default 3 of 5), flagging it for a human to review. |
conversation.started | CONVERSATION_STARTED — the deliverable new-conversation webhook, fired on the inbound/handoff pipeline’s fresh-INSERT branch the moment a brand-new conversation opens. |
conversation.closed | Platform-defined webhook event. See source comment in packages/shared/src/constants.ts for context. |
Compliance Events
Messaging-compliance registry signals — e.g. an A2P 10DLC campaign being suspended by The Campaign Registry or a carrier, so your automation can pause sends and alert your team in real time.| Event | Description |
|---|---|
compliance.10dlc.campaign.suspended | A2P 10DLC campaign was suspended by TCR (The Campaign Registry) or a downstream MNO. |
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.updated | A static contact list changed — either its metadata (renamed / description edited) OR its membership (a contact added or removed). |
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. |
Commerce Events
In-thread conversational-commerce checkout lifecycle (WhatsApp Pay / hosted-link checkout, RCS hosted-link checkout, and standalone hosted pay-by-links) — the order-status callback for chat-native checkout.| Event | Description |
|---|---|
commerce.payment_request.status_changed | The channel-agnostic hosted pay-by-link (PaymentRequest) that anchors every in-thread checkout advanced to a new lifecycle status (viewed / paid / expired / cancelled). |
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.submitted | Fired the moment an operator authors a WhatsApp message template and it is submitted to Meta for review (createTemplate) — or instantiated from Meta’s instantly-approved Template Library (createFromLibrary). |
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.auto_paused | Fired when a template is automatically paused locally because Meta reported a RED quality score and the operator opted that template into quality-degradation auto-pause. |
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.). |
whatsapp.order.received | Conversational-commerce order capture. |
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 | A customer SIP trunk’s registration state transitioned between registered and unregistered. |
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. |
cdp.tracking_plan.violation_spike | CDP_TRACKING_PLAN_VIOLATION_SPIKE — proactive data-quality alert (CDPAAS, 2026-06-10). |
Other
Events whose name prefix does not yet map to a documented surface group. Surface them in the catalog so they remain discoverable, then updateSURFACES 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. |
short_link.click | Tracked short-link click (SMS / WhatsApp click-tracking). |
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. |
video.active_speakers.changed | GAP-RTC-R3 (2026-05-31) — dominant/active-speaker change event. |
video.ingress.started | GAP-RTC-R3 (2026-05-30) — ingress lifecycle webhooks. |
video.ingress.ended | Platform-defined webhook event. See source comment in packages/shared/src/constants.ts for context. |
video.ingress.failed | Platform-defined webhook event. See source comment in packages/shared/src/constants.ts for context. |
video.recording.transcript_ready | RTC-PaaS parity (2026-05-31) — async post-meeting transcription of a video room recording is complete. |
video.participant.qos | RTC-PaaS parity (2026-06-12) — live per-participant QoS telemetry. |
video.caption.segment | RTC-PaaS parity (2026-07-07) — live caption segment fired per completed caption line for real-time downstream consumption. |
video.participant.muted | A moderator force-muted a participant’s audio or video track (kind). |
video.participant.unmuted | A moderator cleared a participant’s force-mute on a track (kind). |
video.participant.kicked | A moderator booted a participant from the live room (ephemeral — the identity can rejoin). |
video.participant.banned | A moderator persistently barred a participant identity from rejoining the room. |
video.participant.unbanned | A moderator lifted a persistent ban so the identity may rejoin the room. |
video.participant.role_changed | A participant’s in-meeting role changed (role: attendee | presenter | moderator). |
video.participant.spotlighted | A moderator spotlighted (pinned) a participant as the foregrounded track for everyone. |
video.room.spotlight_cleared | A moderator cleared the room spotlight, returning to the base speaker/grid layout. |
video.participant.hand_raised | A participant raised their hand (or a moderator raised it on their behalf). |
video.participant.hand_lowered | A participant’s raised hand was lowered (self-lowered or cleared by a moderator). |
video.dial_out.failed | A POST /:id/dial-out SIP/PSTN leg failed to bridge into the room — softswitch trunk rejected the INVITE, the callee was busy/unreachable, or the ring timeout was hit before answer. |
connectivity_sim.usage_warning | Per-SIM data-usage warning — fired when a connectivity SIM’s cumulative usage crosses its configured warning threshold (but is still under the hard data limit), so integrations can notify the end user or top up the pl… |
connectivity_sim.limit_exceeded | Per-SIM data-limit-exceeded alert — fired when a connectivity SIM’s cumulative usage reaches or passes its hard data limit and the SIM is suspended/throttled for quota, so integrations can react (top up, notify, re-pr… |
connectivity_sim.ordered | Connectivity SIM ordered — fired when a new eSIM / IoT (M2M) SIM is provisioned against a catalog plan (POST /numbers/connectivity/sims), so integrations can mirror the new line into an asset inventory or kick off dow… |
connectivity_sim.activated | Connectivity SIM activated — fired when a SIM transitions to active (POST /numbers/connectivity/sims/:iccid/activate), so integrations know the line can now carry data. |
connectivity_sim.suspended | Connectivity SIM suspended — fired when a SIM transitions to suspended (POST /numbers/connectivity/sims/:iccid/suspend), so integrations can pause billing or alert the owner. |
connectivity_sim.resumed | Connectivity SIM resumed — fired when a suspended SIM is returned to active (POST /numbers/connectivity/sims/:iccid/resume). |
connectivity_sim.terminated | Connectivity SIM terminated — fired when a SIM is permanently terminated (POST /numbers/connectivity/sims/:iccid/terminate), a terminal lifecycle sink, so integrations can decommission the line. |
audit.log.created | Continuous audit-log streaming to a customer SIEM (CSPaaS pillar gap act_mq5oa7po). |
ticket.deflected | Platform-defined webhook event. See source comment in packages/shared/src/constants.ts for context. |
ticket.automation_applied | Fired when an operator-authored inbox automation rule matches a ticket lifecycle event (created / status changed / priority changed / idle) and applies its actions. |
wallboard.sla_warning | Voice-queue wallboard SLA early-warning (CCaaS). |
wallboard.alarm_triggered | Configurable per-rule voice-queue wallboard alarm fired (CCaaS SLA breach alerting, 2026-05-30 wave 2). |
wfm.adherence_breach | WFM intraday adherence breach (CCaaS / WFM pillar, 2026-05-30). |
survey.csat.response_recorded | Post-call IVR survey response recorded (CCaaS, 2026-05-30). |
survey.nps.response_recorded | Platform-defined webhook event. See source comment in packages/shared/src/constants.ts for context. |
survey.response.detractor | CXaaS closed-loop survey feedback — a recipient-facing survey response (the surveys product: apps/api/src/routes/public/survey-response.controller.ts) landed at detractor level (NPS <= 6 of 10, CSAT <= 6 of 10). |
queue.call.queued | CCaaS queue-routing lifecycle webhooks (Five9 / Genesys parity — Interaction.Routed / Interaction.Abandoned). |
queue.call.abandoned | Platform-defined webhook event. See source comment in packages/shared/src/constants.ts for context. |
queue.call.assigned | Platform-defined webhook event. See source comment in packages/shared/src/constants.ts for context. |
queue.alert_rule_fired | CCaaS supervisor wallboard — user-configurable alert rule fired (acd_queue_alert_rules row with action=‘webhook’). |
integration.auth_failed | Integration health events (Nango-managed CRM / helpdesk / automation connectors). |
integration.sync_failed | Platform-defined webhook event. See source comment in packages/shared/src/constants.ts for context. |
account.fraud.alert | Account-level fraud / security alert (CSPAAS-FRAUD-ALERT, 2026-06-09). |
subaccount.spend_cap.threshold | Subaccount month-to-date spend crossed a cap threshold (CSPaaS reseller billing controls). |
slack.slash_command | Slack slash-command received (Integrations — Slack). |
slack.event_received | Slack Events API callback received (Integrations — Slack). |
slack.interactivity | Slack interactivity payload received (Integrations — Slack). |
calendly.invitee.created | Calendly invitee booked a meeting (Integrations — Calendly). |
calendly.invitee.canceled | Calendly invitee canceled a booked meeting (Integrations — Calendly). |
calendly.invitee_no_show.created | Calendly invitee marked as a no-show (Integrations — Calendly). |
calendly.routing_form_submission.created | Calendly routing-form submission received (Integrations — Calendly). |
reverse_etl.sync.failed | A tenant reverse-ETL (CDPaaS) sync run to a downstream warehouse destination failed (Integrations — Reverse-ETL). |
Subscribing to Events
When creating a webhook, specify which events to receive:curl -X POST https://api.orbit.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"]
}'
"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 — full payload examples per event
- Webhook Overview — delivery, signing, and retry semantics
- Webhook Security — verifying signatures