Skip to main content

Conversations

platform v0.9.11verified 2026-05-14

/conversations is the primary tool for debugging and analysing calls processed by Delphi. It surfaces a chronological log of everything that happened during a call: dialogue turns, AI-model invocations with cost tracking, telephony events, errors, and performance metrics.

The page is read-only. Data is generated by TelPhi and the voice pipeline during live calls and persisted to Postgres. For operator-side debugging (SIP ladder, trace IDs), pair this page with Monitoring in SigNoz.

Page layout

PanelWidthContent
Left~33%App selector + conversations list.
Right~67%Detailed log table for the selected conversation.

Left panel

  • App selector — filter conversations by app. Supports deep linking via ?appId={appId}.
  • Conversations list — sorted by start time (newest first).
ColumnDescription
IDConversation identifier.
Start Timeyyyy-MM-dd HH:mm:ss.
Recording StatusRecording indicator (see below).

Click a row to load its logs.

Right panel

The log detail table. Default sort is timestamp ascending (chronological order).

Recording

When call recording is enabled on the app, conversations show a recording status:

StatusIndicatorDescription
AVAILABLEPlay buttonRecording ready. Click to play back.
PROCESSINGSpinnerUpload to S3 pending.

Playback is accessible from both the conversation list and the detail view.

Call transfers

When an AI agent initiates a transfer (via the transfer() tool), the event is logged in the conversation timeline:

  • Transfer target — destination number / endpoint.
  • Transfer status — success / failure.
  • Transfer metadata — additional context from the transfer.

Transfer events appear inline with other log types.

Token usage

Model Usage entries include detailed token consumption:

FieldDescription
Input TokensTokens sent to the model.
Output TokensTokens received from the model.
Model NameSpecific model used.

Token counts appear in the summary (Input: 150 → Output: 80) and in the detail dialog. They aggregate into the Dashboard token widgets.

Log types

Every log row has a type that determines its icon, colour, and the data it carries.

TypeIconCapturesKey fields
ConversationChat bubbleIndividual dialogue turns.Actor (User / AI), Event Type, Duration, Interrupted, Interruption Reason, Text.
Model UsageRobotEach AI-model API call with cost.Provider, Model, Service Type (STT / LLM / TTS / Realtime), Estimated Cost, Tokens, Latency, Duration, Audio Size, Characters, Region, Quality Tier.
SystemGearInternal platform events.Component, Action, Status.
PerformanceLightningTiming for internal operations.Component, Operation, Duration (ms).
AudioMusic noteAudio processing events.Direction, Format, Operation, Duration.
ErrorError symbolErrors during the conversation.Component, Error Message.
TelephonyPhoneSIP / call-level events.Event Type (INVITE, BYE, …), Channel Type, Channel ID, Caller, Called.
SandboxIslandSandbox execution events.
VMWrenchJavaScript VM (tool) execution.Operation, Function Name, Function Count, Execution Time.

Log detail dialog

Clicking the info icon opens a structured view of all data for that log:

  • Model Usage — estimated cost, token counts, latency, provider, model.
  • Conversation — actor, transcript, duration, interruption details.
  • Telephony — caller / called numbers, event type, channel info.
  • All types — raw JSON section at the bottom.

Cost calculation

The platform automatically estimates costs for Model Usage logs based on provider and model:

Pricing methodUsed forHow it works
Token-basedLLM callsCost per input token + cost per output token.
Time-basedRealtime, STTCost per second of audio.
Character-basedTTSCost per character converted to speech.

OpenAI and Azure pricing are supported. Costs are estimates based on standard pricing.

Log summary format

Log typeSummary
Model UsageProvider/Model — tokens — latency
ConversationActor: EventType (duration) [INTERRUPTED]
SystemComponent.Action: Status
PerformanceComponent.Operation: duration ms
AudioDirection Format Operation duration
ErrorComponent: Message
TelephonyEvent: ChannelType ChannelId (caller -> called)
VMOperation FunctionName (functionCount) executionTime

Filtering and navigation

  • App filter — selecting an app resets the conversation selection.
  • Deep linking?appId={appId} pre-selects an app via URL.
  • Search — built-in search in the log detail table.
  • Server-side filtering — supported via the filter model.
  • Server-side sorting — default timestamp ascending; configurable.
  • Infinite scroll — logs load in pages of 50.
  • Pagination — the conversations list supports 10 / 25 / 50 rows per page.

Workflows

Investigate a call

  1. Go to /conversations.
  2. Select the app.
  3. Pick the conversation by start time.
  4. Review logs chronologically in the right panel.
  5. Click the info icon on any log for details.

Check AI costs

  1. Select a conversation.
  2. Look at the Cost column on Model Usage entries.
  3. Click the info icon for token counts, latency, and provider details.

Debug an error

  1. Select a conversation.
  2. Filter / scroll to the Error entries (red chip).
  3. Click the info icon for component + full error message.
  4. Cross-reference with Telephony and System logs at the same timestamp.
TabShows
DebugSpan tree and SIP ladder for the call's trace, sourced from SigNoz.
TimelineChannel events ordered by ChannelMessage.timestamp.
Flow runPer-node execution of the Flow Builder graph with inputs / outputs.
QAQA scoring results (gated by qaScoring; enqueued on flow finalisation / hangup).
TokenToken usage by provider.
ActionBrowser action invocations and results.

The Debug tab is the bridge between this page and the operator-side Monitoring in SigNoz workflow.

See also