Skip to main content
The envelope contains a stable event ID and event-specific data. Times inside data are milliseconds unless marked otherwise.

Envelope

Agent kind is chat or voice. Multi-agent conversations also include their agents array inside data.

Catalogue

Shared data objects

endedAt, contactId and campaignId can be null. Transcript entry kind identifies the end user, agent or human responder. The call object follows the public call representation with privacy protections applied. See Calls API. Recording links follow the call’s captured signed-URL policy. expiresAt can be null when time expiry is disabled. Use refreshUrl to obtain a fresh recording link. Deleting content invalidates existing links and removes available event bodies.

conversation.started

data contains conversation and agents. Voice starts also include call. A chat starts when its conversation is created. A voice conversation starts when the call is answered.

conversation.ended

data contains conversation, agents, ending and transcript. Voice endings can also include call and recordings. conversation can be null for a refused call that never created a conversation. transcript can be null when unavailable. ending.reason is resolved, abandoned, superseded or call_ended. ending.by is agent, system or null. detail is nullable.

conversation.analyzed

data contains conversation, agents, analysis and run. Voice analysis can also include call and recordings. analysis contains nullable summary, successful, sentiment and language. sentiment is negative, neutral, positive, unknown or null. run contains index and rerun. Each completed analysis run has its own event.

call.transcript_updated

data contains callId, conversationId and entries. Entries use the shared transcript-entry shape. Updates are coalesced over two seconds. Entries describe the batch rather than repeating the entire transcript.

call.transfer_ringing

data contains call and transfer. transfer contains id, destination, mode and optional failureCode. The event type identifies ringing, connection, bridging, failure or cancellation.

call.transfer_connected

data contains call and transfer. transfer contains id, destination, mode and optional failureCode. The event type identifies ringing, connection, bridging, failure or cancellation.

call.transfer_bridged

data contains call and transfer. transfer contains id, destination, mode and optional failureCode. The event type identifies ringing, connection, bridging, failure or cancellation.

call.transfer_failed

data contains call and transfer. transfer contains id, destination, mode and optional failureCode. The event type identifies ringing, connection, bridging, failure or cancellation.

call.transfer_cancelled

data contains call and transfer. transfer contains id, destination, mode and optional failureCode. The event type identifies ringing, connection, bridging, failure or cancellation.

call.guardrail_triggered

data contains call and guardrail. guardrail contains direction, topics and turnIndex.

call.sms_sent

data contains call and sms. sms contains to, body and optional providerMessageId.

call.continued_in_chat

data contains call and continuation. continuation contains conversationId, channel set to web and optional option.

handoff.requested

data contains conversation, agents, handoff and nullable call. handoff contains id, channel, origin, reason, status, outcome and destination. origin, reason, outcome and destination can be null. A destination contains kind set to team_member, profileId and nullable name. The event type identifies the handoff transition.

handoff.accepted

data contains conversation, agents, handoff and nullable call. handoff contains id, channel, origin, reason, status, outcome and destination. origin, reason, outcome and destination can be null. A destination contains kind set to team_member, profileId and nullable name. The event type identifies the handoff transition.

handoff.unmet

data contains conversation, agents, handoff and nullable call. handoff contains id, channel, origin, reason, status, outcome and destination. origin, reason, outcome and destination can be null. A destination contains kind set to team_member, profileId and nullable name. The event type identifies the handoff transition.

handoff.completed

data contains conversation, agents, handoff and nullable call. handoff contains id, channel, origin, reason, status, outcome and destination. origin, reason, outcome and destination can be null. A destination contains kind set to team_member, profileId and nullable name. The event type identifies the handoff transition.

campaign.message_sent

data contains campaign and message. message contains id, contactId, channel, to, requestId, externalMessageId, status and failure. requestId and externalMessageId can be null. failure is null or an object containing code. The event type identifies the delivery transition, including sent, delivered, read, replied or failed.

campaign.message_delivered

data contains campaign and message. message contains id, contactId, channel, to, requestId, externalMessageId, status and failure. requestId and externalMessageId can be null. failure is null or an object containing code. The event type identifies the delivery transition, including sent, delivered, read, replied or failed.

campaign.message_read

data contains campaign and message. message contains id, contactId, channel, to, requestId, externalMessageId, status and failure. requestId and externalMessageId can be null. failure is null or an object containing code. The event type identifies the delivery transition, including sent, delivered, read, replied or failed.

campaign.message_replied

data contains campaign and message. message contains id, contactId, channel, to, requestId, externalMessageId, status and failure. requestId and externalMessageId can be null. failure is null or an object containing code. The event type identifies the delivery transition, including sent, delivered, read, replied or failed.

campaign.message_failed

data contains campaign and message. message contains id, contactId, channel, to, requestId, externalMessageId, status and failure. requestId and externalMessageId can be null. failure is null or an object containing code. The event type identifies the delivery transition, including sent, delivered, read, replied or failed.

campaign.completed

data contains campaign and completedAt. This event marks completion of a scheduled campaign.

contact.created

data contains the public end-user record described in the shared objects table. The initial event waits five seconds. Public updates during that interval fold into the created event.

contact.updated

data contains the public end-user record and changed. changed lists the public fields that changed. Updates coalesce over five seconds. Internal bookkeeping changes do not produce this event.

Tests and exclusions

Test and simulation sessions, historical Tars2 imports, cross-region imports of existing rows and system-only bookkeeping do not produce normal business events. Normal CSV imports do produce the end-user created event. Tag updates during the initial delay fold into that event. A destination test uses webhook.test with data containing sampleType and sample. See Receive events.