Events
Real-time event streaming for workspace activity and call observation.
The Platform API streams real-time events over two channels:
Workspace SSE stream - server-sent events covering call lifecycle, surface activity, operator actions, and pipeline status
Observer WebSocket - per-call observation events including transcripts, tool execution, and call forwarding
Workspace SSE Stream
Connect to the workspace event stream to receive real-time notifications about activity in your workspace. Events are delivered as server-sent events (SSE) with a typed event_type discriminator field.
Event Types
Call Events
call.started
A call has started
call_sid, direction, service_id, caller_id
call.ended
A call has ended
call_sid, direction, duration_seconds, completion_reason, escalated
call.escalated
A call was escalated to a human operator
call_sid, escalation_id, trigger, reason
Surface Events
surface.created
A new surface was created
surface_id, entity_id, channel, fields_count
surface.delivered
A surface was delivered to the recipient
surface_id, entity_id, channel, delivery_status
surface.updated
A surface was updated
surface_id
surface.archived
A surface was archived
surface_id
surface.reshaped
A surface was reshaped from an existing surface
surface_id, original_surface_id
surface.submitted
A surface was submitted by the recipient
surface_id, entity_id, submitted_at
surface.field_saved
A single field was saved on a surface
surface_id, entity_id, field_id
surface.opened
A surface was opened by the recipient
surface_id, entity_id
surface.pending_review
A surface is pending review
surface_id, entity_id
surface.review_approved
A surface review was approved
surface_id
surface.review_rejected
A surface review was rejected
surface_id, reason
Operator Events
operator.registered
A new operator was registered
operator_id, timestamp
operator.status_changed
An operator's status changed
operator_id, status
operator.profile_updated
An operator's profile was updated
operator_id, changes
operator.joined_call
An operator joined a call
call_sid, operator_id, mode
operator.left_call
An operator left a call
call_sid, operator_id
operator.mode_changed
An operator's mode changed during a call
call_sid, operator_id, mode
operator.wrap_up
A call entered wrap-up
call_sid, wrap_up_reason
Pipeline Events
pipeline.sync_completed
A data source sync completed
data_source_id, event_count, duration_ms
pipeline.error
A pipeline error occurred
data_source_id, error
Discriminated Unions in the SDK
The OpenAPI specification includes typed schemas for all event types as a discriminated union on the event_type field. SDK clients generated from the spec (such as the TypeScript SDK) receive full type safety when handling events:
Observer Events
Observer events are delivered over the call observation WebSocket and provide real-time visibility into an active call. These events use a type discriminator field.
user_transcript
Caller speech transcription
transcript, state, speaker_id, speaker_role
agent_transcript
Agent speech output
transcript, action, interrupted, streaming
tool_call_started
A tool began executing
tool_name, tool_input
tool_call_completed
A tool finished executing
tool_name, output, succeeded, duration_ms, error
forward_call_resolved
A call forwarding target was resolved
target_number, location_name, result, error
speaker_muted
A speaker's mute state changed
muted
Last updated
Was this helpful?

