workspaceId and integrationId.
Select which events you receive in Integrations → Custom Integrations → Configure → Settings.
Shared fields
Ringee enriches outbound payloads with actor and correlation data before it queues them. These fields are optional so a lookup failure never drops the event.data.externalId is the caller-supplied correlation id for AI Voice Agent
calls. It is independent from data.contact.externalId, which identifies a CRM
contact linked through contact.upserted.
Prefer the top-level data.externalId when present, then a linked contact id,
then a normalized phone number.
data.user is omitted only when that user can no longer be resolved.
data.agent and data.externalId are ownership-checked against the event’s
workspace before Ringee adds them.call.completed
A call has technically ended, regardless of whether anyone recorded an outcome yet.
Required: data.callId, data.fromNumber, data.toNumber, data.status, data.direction, data.endedAt
string
required
Ringee call UUID. Use it as the unique key for the activity in your CRM.
string
required
Originating E.164 number.
string
required
Destination E.164 number.
string
required
Final call status reported by the carrier.
string
required
inbound or outbound; legacy call records may use incoming or outgoing.string (ISO-8601)
required
When the call ended.
string (ISO-8601)
When the call was initiated.
string (ISO-8601)
When the call was answered.
number
Total billed duration.
string
pending, ready or unavailable.object
Contact reference.
object
Company reference.
object
Ringee user the event belongs to, including the primary email when available.
object
AI Voice Agent reference with
id and name when one placed the call. Absent
for a human call.string
Your correlation id from the AI Voice Agent call’s
metadata.external_id or
metadata.externalId.call.outcome.updated
A person recorded or changed an outcome, or an AI Voice Agent produced its
post-call outcome. This can happen well after call.completed.
Required: data.callId, data.outcome, data.updatedAt
string
required
Ringee call UUID — match it against an existing activity.
string
required
The
CallOutcome value, for example sale, interested, meeting_booked,
voicemail, no_answer.string (ISO-8601)
required
When the outcome was set.
object
Telephony detail for the call:
callId, fromNumber, toNumber, status,
direction, startedAt, answeredAt, endedAt and durationSeconds.
Omitted only when the call row can no longer be resolved.string
Free-text note attached to the outcome.
object
Contact reference.
object
Company reference.
object
Ringee user the event belongs to.
object
AI Voice Agent reference with
id and name when the outcome came from an
agent call.string
Your correlation id from the originating AI Voice Agent call.
string
AI Voice Agent call UUID.
string
AI Voice Agent UUID.
object
Caller-supplied metadata stored on the AI Voice Agent call.
Update or create the activity by
callId — never create a second activity for
the outcome. AI Voice Agent results and webhooks use Ringee’s canonical public
names meeting_booked and callback_scheduled; historical stored names are
normalized before they leave Ringee. When the outcome is meeting_booked, a
separate meeting.created event also fires.call.missed
An inbound call arrived but nobody picked up.
Required: data.callId, data.fromNumber, data.toNumber, data.occurredAt
string
required
Ringee call UUID.
string
required
Originating number; normally the contact for a missed inbound call.
string
required
Workspace number that received the call.
string (ISO-8601)
required
When the missed call was recorded.
string
Carrier-provided reason.
object
Contact reference.
object
Company reference.
object
Ringee user the event belongs to.
object
AI Voice Agent reference with
id and name when the event belongs to an
agent call.string
Your correlation id from the originating AI Voice Agent call.
fromNumber.
call.failed
The telephony stack reported a hard failure — busy, invalid number, network error.
Required: data.callId, data.fromNumber, data.toNumber, data.occurredAt
string
required
Ringee call UUID.
string
required
Originating number.
string
required
Destination number.
string (ISO-8601)
required
When the failure was recorded.
string
Carrier error code, for example
USER_BUSY.string
Human-readable description.
object
Contact reference.
object
Company reference.
object
Ringee user the event belongs to.
object
AI Voice Agent reference with
id and name when one placed the failed call.string
Your correlation id from the originating AI Voice Agent call.
note.created
Required: data.noteId, data.contact, data.content, data.createdAt
string
required
Ringee note UUID.
object
required
Contact the note belongs to.
string
required
Note text.
string (ISO-8601)
required
When the note was created.
object
User who wrote the note.
object
Ringee user the event belongs to.
object
AI Voice Agent reference with
id and name when one produced the event.callback.created
Required: data.callbackId, data.contact, data.scheduledAt, data.status, data.createdAt
string
required
Ringee callback UUID.
object
required
Contact to call back.
string (ISO-8601)
required
Scheduled callback time.
string
required
Current callback status.
string (ISO-8601)
required
When the callback was created.
string
Originating Ringee call UUID.
string
Free-text note.
object
Ringee user the event belongs to.
object
AI Voice Agent reference with
id and name when the callback came from an
agent call.string
Your correlation id from the originating AI Voice Agent call.
meeting.created
Fires when a user schedules a meeting. Independent of outcomes — if the outcome is meeting_booked, both call.outcome.updated and meeting.created fire.
Required: data.meetingId, data.contact, data.scheduledAt, data.status, data.createdAt
string
required
Ringee meeting UUID.
object
required
Contact invited to the meeting.
string (ISO-8601)
required
Scheduled meeting time.
string
required
Current meeting status.
string (ISO-8601)
required
When the meeting was created.
string
Meeting title.
number
Duration in minutes.
string
Physical location or video link.
string
Notes.
string
Calendar provider event id, when synced to Google or Microsoft.
string
Originating Ringee call UUID.
object
Ringee user the event belongs to.
object
AI Voice Agent reference with
id and name when the meeting came from an
agent call.string
Your correlation id from the originating AI Voice Agent call.
recording.ready
The recording has been processed and is downloadable.
Required: data.recordingId, data.callId, data.url, data.createdAt
string
required
Ringee recording UUID.
string
required
Call UUID used to attach the recording to an activity.
string
required
Signed URL to the recording.
string (ISO-8601)
required
When the recording became available.
string
Audio container, for example
mp3 or wav.number
Duration in seconds.
string
Plain-text transcript, when available.
object
Ringee user the event belongs to.
object
AI Voice Agent reference with
id and name when the recording belongs to an
agent call.string
Your correlation id from the originating AI Voice Agent call.
dnc.created
A phone number or contact was added to the Do Not Call list.
Required: data.phoneNumber, data.createdAt
string
required
Number added to the Do Not Call list.
string (ISO-8601)
required
When the DNC entry was created.
string
Free-text reason.
string
Channel that triggered the addition.
object
Contact reference.
object
Ringee user the event belongs to.
object
AI Voice Agent reference with
id and name when one produced the event.test.ping
Sent when you click Test webhook. Use it to validate signature verification end to end.
2xx response. Ringee ignores the response body; for example:
Machine-readable spec
The same definitions are available at runtime:requiredFields, optionalFields, examplePayload and notes — useful for generating types or validating your handler in CI.

