Skip to main content
The conversation detail page is the full record of a single interaction. It splits into two panes: Interaction (the transcript, with tool calls, latency, and recording playback) on the left, and Details (channel metadata, summary, variables, and workflow-run links) on the right. On mobile, the two panes become Interaction and Details tabs. Open it by clicking any row in the inbox. Each conversation opens in its own browser tab.

Interaction transcript

The transcript renders every turn as a chat bubble — user turns on the right, agent turns on the left. Messages and tool calls are interleaved in order. While the conversation is still running, live transcription segments are overlaid on top of the saved history so you see speech as it lands; once a turn is persisted, the saved version replaces the live overlay.

Tool calls

A tool call is rendered as a centered, dashed pill labeled with the tool name. Each call is paired with its result by matching call_id, so one pill carries both the request and the response. Click the pill to expand:
PartShows
RequestThe arguments the agent passed, pretty-printed as JSON.
ResponseThe tool’s output, pretty-printed as JSON. Labeled Response (error) and styled red when the call errored.
The pill also shows the call’s latency inline next to the name — in milliseconds when under one second, otherwise in seconds.

Per-turn latency

Each agent turn carries a latency badge: a small stacked bar plus a label. The label reads <time> response when end-to-end latency is recorded, or <time> TTFT (time to first token) when only the inference segment is available. The bar’s width is scaled relative to the slowest turn in the conversation, so you can spot outliers at a glance. Hover the badge for the breakdown:
SegmentColorChannels
LLMDark blueAll — shown as LLM TTFT on voice, LLM on text/email
TTSLight blueVoice (text-to-speech time to first byte)
ToolsAmberText/email (tool execution time)
OtherPale blueRemaining end-to-end time
Voice channels report LLM TTFT and TTS TTFB. Asynchronous text and email channels have no audio timeline, so they report inference (LLM) and tool execution (Tools) instead.

Recording sync

When the conversation has a recording, an audio player appears at the bottom of the page and the transcript syncs to it. Click any bubble to seek the recording to that turn. As the recording plays, the turn currently being spoken is highlighted and scrolls into view, and each turn shows its start offset relative to the recording. Turns are timed using their started_speaking_at and stopped_speaking_at metrics, so sync only applies to channels that record those timings.

Email header

On the email channel, a header sits above the thread showing the subject, From, To, and Cc of the thread, plus any attachment filenames and a roster of participants (humans and agents). The subject falls back to (no subject) when none is set.

Details pane

The Details pane lists the conversation’s metadata. Rows render only when the underlying value is present, and the set of rows varies by channel.
FieldDescription
ChannelThe interaction channel (phone, web chat, email, text).
DirectionInbound or Outbound. Hidden for web (webrtc) conversations.
Caller Number / User IDThe caller’s identifier (user_id). Labeled Caller Number for telephony, User ID otherwise.
DurationTotal length, formatted as hours/minutes/seconds.
NameThe caller’s name, when known.
Agent NumberThe number the agent answered on. Hidden for web conversations.
AgentThe agent that handled the conversation, or Custom Agent when no saved agent is linked.
VersionThe agent version, with an external-link icon that opens that exact version of the agent in a new tab.
Created AtWhen the conversation started, in your local time.
StatusThe conversation’s current status (for example Completed, Failed, Transferred).
SummaryAn auto-generated summary of the conversation, shown when one exists.

Variables vs. System Metadata

Below the detail rows are two metadata blocks. The distinction matters: one is yours to use, the other is internal.
BlockFieldWho sees itContents
Variablescustom_metadataEveryoneYour own key-value data: the initial_context and custom_metadata you attach when starting a conversation surface here.
System Metadatasystem_metadataAdvanced users onlyInternal platform state, including the email header and the workflow-run IDs that drive the links below.
Variables is where the data you pass into a conversation shows up — anything you set in custom_metadata, plus the context you inject via initial_context. Use the copy button to grab the whole object as JSON. When there’s nothing to show, the block reads No variables. System Metadata is gated behind the advanced_user scope. It holds platform internals rather than customer data, so most viewers never see it.
Advanced users also get a Copy record JSON button at the top of the Details pane, which copies the entire conversation record.
When a conversation triggers a workflow, its run is surfaced in the Details pane with the run ID and a View button that opens the run’s state inline. Three kinds of run are linked, drawn from system_metadata:
SectionWhen it appears
Pre-Conversation WorkflowA workflow ran before the conversation. Shows the run, and an error message if the pre-conversation run failed.
Inbound Routing WorkflowA routing workflow decided where an inbound interaction went.
Post-Conversation WorkflowsOne or more workflows ran after the conversation ended. Each run gets its own View button.

Live updates

While the conversation is still active, the page refetches the record every few seconds so the status, duration, and transcript stay current. Polling stops once the conversation reaches a terminal status — completed, failed, cancelled, transferred, or unanswered — at which point the view settles into the final recorded record.
To watch a call as it happens with controls to listen in, use live monitoring. The detail page shows live transcription, but the dedicated monitor is built for in-progress calls.

Live monitoring

Listen to in-progress calls in real time.

Workflow observability

Inspect the runs linked from a conversation.