Skip to main content

Documentation Index

Fetch the complete documentation index at: https://orbit-docs.devotel.io/llms.txt

Use this file to discover all available pages before exploring further.

Webhook Events

Orbit emits events 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 list 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.

Message Events

EventDescription
message.createdOutbound message accepted and queued for delivery
message.sentMessage handed off to the carrier/provider
message.deliveredMessage confirmed delivered to the recipient
message.failedMessage delivery failed (terminal)
message.readRecipient marked the message as read (WhatsApp / RCS)
message.receivedInbound message received from a user

Contact Events

EventDescription
contact.createdA new contact was created
contact.updatedAn existing contact was modified
contact.deletedA contact was removed
contact.mergedTwo contact rows merged into one
contact.opted_inRecipient sent an opt-in keyword (e.g. START / UNSTOP)
contact.opted_outRecipient sent an opt-out keyword (e.g. STOP)
contact.recertification_dueAnnual RMD consent recertification window opened
contact.segment_changedPredictive segment label transitioned (e.g. champion → at_risk)

Campaign Events

EventDescription
campaign.createdCampaign row created
campaign.updatedCampaign config edited
campaign.deletedCampaign removed
campaign.startedCampaign execution began
campaign.completedCampaign finished sending to all recipients
campaign.pausedCampaign manually paused
campaign.resumedPaused campaign resumed
campaign.drip_step.completedSingle drip step finished sending to its slice
campaign.drip.completedEntire drip campaign finished its full schedule

Voice Events

EventDescription
call.ringingInbound call invite received at the SIP edge, before answer
call.initiatedOutbound call placed (or first ringing event seen)
call.answeredCall was answered
call.completedCall ended normally
call.failedCall failed to connect (busy / no-answer / failed)
call.transferredActive call transferred to another destination
call.dtmf_sentMid-call DTMF sequence injected via the API
call.recording.pausedSIPREC recording paused mid-call (e.g. PCI capture)
call.recording.resumedSIPREC recording resumed after a pause
call.recording.readyRecording uploaded to GCS and a download URL is available
call.transcription.readyTranscript ready for the recording
call.synthesis.readyInline AI summary / sentiment ready (legacy path)
call.synthesizedPost-call synthesis pipeline emitted a structured summary
recording.startedA new recording began capture
recording.completedRecording finalised (alias of call.recording.ready for call-scoped recordings; conference recordings use this name)
recording.failedRecording attempt failed (storage write, codec mismatch, AMD aborted)
recording.retention_deletedRecording about to be purged by retention policy (24h grace)
conference.createdConference room created
conference.participant_joinedParticipant successfully joined a conference
conference.participant_leftParticipant disconnected (BYE, kicked, or conference ended)
conference.endedConference closed (last participant left, moderator ended, or max duration)
voicemail.receivedA voicemail was recorded for an unanswered call
voicemail.transcript_updatedLate-arriving voicemail transcript recovered after retry
Trigger conditions, payload schemas, retry behaviour, and signature verification for every voice event are documented in the Webhook Events Reference. Voice events ride the same retry semantics as messaging events (exponential backoff: 1m, 5m, 15m, 1h, 6h — 5 attempts max). All deliveries carry the Devotel-Signature header — see Webhook Security for verification snippets.

Agent Events

EventDescription
agent.createdAgent created
agent.updatedAgent config / prompt / tools edited
agent.deletedAgent removed
agent.deployedAgent published to a channel / number
agent.conversation.startedAgent began a new conversation
agent.conversation.endedAgent conversation closed
agent.handoff.requestedAgent escalated to a human operator
agent.handoff_occurredAgent delegated to another specialist agent (transfer_to_agent)
agent.calendar_event.createdAgent’s create_calendar_event tool fired

Flow Events

EventDescription
flow.createdFlow draft created
flow.updatedFlow definition edited
flow.publishedFlow published to a runnable state
flow.deletedFlow removed
flow.executedCoarse-grained execution result (always fires terminally)
flow.execution.startedGranular start signal at the beginning of a run
flow.execution.completedGranular completion signal — ran to the terminal node
flow.execution.failedGranular failure / timeout signal

Verification Events

EventDescription
verification.sentVerification code sent (any channel)
verification.approvedCode verified successfully
verification.failedIncorrect code, max attempts exceeded, or SIM-swap blocked

Number / Porting Events

EventDescription
number.purchasedNew phone number acquired (or reclaimed from parking)
number.releasedNumber parked for release
number.portedPort-in / port-out request created
porting.request.cancelledCustomer cancelled an in-flight port

Conversation Events

EventDescription
conversation.createdNew conversation row created (e.g. journey-driven agent thread)

List / Segment Events

EventDescription
list.createdStatic contact list created
list.deletedStatic contact list removed
segment.createdDynamic / rule-based segment created
segment.deletedSegment removed

Webhook Endpoint Events

Meta-events about webhook subscriptions themselves — useful for tenant admin audit pipelines.
EventDescription
webhook_endpoint.createdEndpoint registered
webhook_endpoint.updatedEndpoint URL / events / secret edited
webhook_endpoint.deletedEndpoint removed

Billing Events

EventDescription
balance.lowAccount balance dropped below the low-balance threshold
balance.topped_upStripe checkout completed and balance credited
credits.purchasedDeprecated — alias of balance.topped_up
subscription.updatedStripe subscription state changed (cancelled / reactivated / plan change)

Channel Failover Events

EventDescription
channel.failoverA messaging channel failed over from one provider to its backup

Push Events

EventDescription
push.deliveredMobile / web SDK acknowledged a push was rendered on-device
push.openedUser tapped the push and the SDK reported the open

Number Masking (Proxy) Events

EventDescription
proxy.session.createdTwo-party proxy session created
proxy.session.closedProxy session closed (TTL expired or ended manually)
proxy.message.forwardedInbound to the proxy number was forwarded to the other participant

WhatsApp Events

These mirror Meta WABA webhook fields (field value in the Cloud API). Each fires after Orbit ingests the corresponding Meta callback.

WABA / business

EventDescription
whatsapp.account.updateGeneric WABA settings change
whatsapp.account.bannedWABA banned by Meta
whatsapp.account.restrictedWABA restricted (sending limit / category)
whatsapp.account.alertOperational alert (policy violation, payment failure)
whatsapp.account.review_updateAccount review status changed
whatsapp.account.settings_updateWABA settings (profile / commerce) updated
whatsapp.business.status_updateVerification badge / official-account flag changed

Phone numbers

EventDescription
whatsapp.phone.quality_updatePer-phone quality rating changed
whatsapp.phone.name_updateDisplay name change pending or applied
whatsapp.capability.updateChannel capability flag updated
whatsapp.security.alertSecurity event (password reset, login alert)
whatsapp.flow.status_changeWA Flow status transitioned
whatsapp.quality.changedWABA-level quality score change

Templates

EventDescription
whatsapp.template.approvedTemplate approved by Meta review
whatsapp.template.rejectedTemplate rejected; details.reason carries Meta’s text
whatsapp.template.quality_updateTemplate quality rating changed
whatsapp.template.category_updateTemplate category (MARKETING / UTILITY / AUTH) changed
whatsapp.template.components_updateMeta auto-edited template components for compliance
whatsapp.template.correct_category_detectionMeta detected mismatch between intent and category

WhatsApp Business Calling

EventDescription
whatsapp.call.receivedLegacy event — fired for every call lifecycle transition (BAU consumers)
whatsapp.call.connectedCall leg connected (Meta event=connect or RINGING)
whatsapp.call.acceptedCallee accepted, media path live (Meta status=ACCEPTED)
whatsapp.call.terminatedCall ended; status mapped to completed / missed / failed
whatsapp.call.permission_grantedCall permission granted (reply-button / 24h window / explicit consent)
whatsapp.call.permission_revokedPermission revoked via in-app toggle

User / data subject

EventDescription
whatsapp.user.preferencesUser toggled marketing / call preferences
whatsapp.data.export_requestGDPR Article 15 — user requested a data export
whatsapp.data.delete_requestGDPR Article 17 — user requested erasure

v25 webhook fields

EventDescription
whatsapp.automatic_eventsMeta-detected business events (cart abandoned, etc.)
whatsapp.group.lifecycle_updateWA Group created / deleted
whatsapp.group.participants_updateParticipants joined / left
whatsapp.group.settings_updateGroup renamed / description edited
whatsapp.group.status_updateGroup activated / archived
whatsapp.historyInitial-connection backfill of historical messages
whatsapp.partner_solutionsPartner integration events
whatsapp.payment_configuration_updateWA Pay setup state changed
whatsapp.smb.app_state_syncSMB app state sync events
whatsapp.smb.message_echoesEchoes of messages sent from the SMB app
whatsapp.tracking_eventsPer-message tracking (link clicks, etc.)

Subscribing to Events

When creating a webhook, specify which events to receive:
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.

See also