Skip to main content
The conversation-update event is triggered whenever a message occurs during the call - both user messages (from speech-to-text) and assistant messages (generated responses).
Each event includes the complete conversation history from the start of the call, not just the latest message. This ensures you never miss context even if some events are lost.

When It’s Triggered

This event is sent for:
  • User Messages: When user speech is transcribed by STT
  • Assistant Messages: When the assistant generates and speaks a response
  • Welcome Messages: When the assistant plays the initial greeting

Event Structure

Key Fields

Messages Object

The messages array contains the conversation history between the user and assistant.
Each conversation-update event includes all messages from the start of the call up to that point, not just the latest message. This ensures that if any individual event is missed, you still have the complete conversation context.

Message Structure

Message Metrics

Each message includes detailed performance metrics:

Timeline Metrics

  • totalElapsedTimeMs: Total time since call start
  • offsetFromPreviousTurnMs: Time gap from previous message

Audio Metrics

  • totalAudioReceivedMs: Total audio duration received
  • audioDelayPerTurnMs: Audio processing delay for this turn
  • delayedPacketsPerTurnCount: Count of delayed network packets

Speech-to-Text (STT) Metrics

  • timestampMs: When transcription was completed
  • startOffsetMs/endOffsetMs: Audio segment boundaries
  • confidence: Transcription confidence score (0.0 to 1.0)
  • vadMs: Voice activity detection duration

Text-to-Speech (TTS) Metrics

  • audioDurationMs: Duration of generated audio
  • generationTimeMs: Time to generate audio
  • queueLatencyMs: Processing queue delay
  • isCachePlaying: Whether audio was served from cache

LLM Metrics

  • responseLatencyMs: Time for LLM to generate response
  • queueLatencyMs: Processing queue delay

Message Types

  • Welcome Messages: Have messageId starting with “welcome-”
  • User Messages: Have messageId starting with “user-”
  • Assistant Messages: Have complex messageId with user reference and timestamp

Call Object

The call object contains comprehensive information about the call session.

Assistant Object

The assistant object contains the configuration and settings of the assistant handling the call.
In some webhook events, the assistant object may be truncated for brevity. The full assistant configuration is typically included in status-update events.

Key Subobjects

  • assistantAnalysis: Contains settings for summary generation, success evaluation, and structured data extraction
  • assistantServer: The webhook configuration that triggered this event
  • config.speech: STT/TTS vendor settings, voice configuration, and language options

Message Flow Pattern

Events are triggered in this typical sequence:
  1. Welcome Messageconversation-update with assistant greeting
  2. User Speaksconversation-update with transcribed user message
  3. Assistant Respondsconversation-update with assistant reply
  4. User Repliesconversation-update with new user message
  5. Cycle Continues until call ends
Messages may be interrupted or skipped if users barge in while the assistant is speaking. Check the skippedAssistantMessages field for interrupted responses.

Example Payload

Common Use Cases

Real-Time Conversation Display

Live Transcription Storage

Sentiment Analysis Pipeline

Message Metrics Tracking

Message Interruptions

When users interrupt assistant responses, the skippedAssistantMessages field contains messages that were cut off:

Performance Considerations

Since conversation-update events can contain large message arrays:
  1. Incremental Processing: Only process new messages since your last update
  2. Message Deduplication: Use messageId to avoid processing duplicates
  3. Efficient Storage: Consider storing messages individually rather than entire payloads
  4. Pagination: For long conversations, implement message pagination in your UI

Conversation Update Event Example

This is a complete example of a conversation-update webhook event payload with multiple messages.