Skip to main content
A conversation is one end-to-end interaction — a call, a chat thread, a voicemail. Each conversation belongs to one agent and owns:
  • A transcripts row with the full turn-by-turn content.
  • An optional recording (audio for voice, transcript-only for chat).
  • Zero or more conversation_analyses — the assessment saved each time the call is analyzed.
  • Zero or more analysis_findings — per-call observations, each tagged with a finding type.
Every conversation also carries the basics you see in the list: the agent, a reference id (the provider’s call id), the ended reason, duration, cost, and whether it arrived from a provider webhook or a direct upload.

Summaries

The conversation detail page can generate a short AI summary on demand. Click Generate summary and Zelto summarizes the transcript and caches the result on the row; opening the call again reads the cached summary instead of regenerating it.

Monitor results

The call detail page lists every monitor assigned to the conversation’s agent. For each monitor, it shows the call’s affected status, score, stage outputs, and reasoning when the evaluation is available. A monitor shows N/A when it is assigned to the agent but has not evaluated that call yet. If the agent has no assigned monitors, the panel also shows N/A.

Tool calls

When a voice agent invokes a tool — a function call such as checking availability, booking an appointment, or looking up an order — Zelto captures each call and puts it to work three ways:
  • Inline in the transcript. The call shows up as a tool turn in the conversation timeline, in order, with the tool name, its arguments, the result, and a status badge (success / error / pending). Open a conversation to read tool calls alongside what was said.
  • In the AI analysis. Summaries, findings, scorecards, and metrics read the structured call — name, arguments, and result — so a monitor can reason about what the agent actually did (e.g. “booked the wrong date” or “the lookup errored”), not just what it said.
  • As a queryable trace. Every tool call is also written to a tool_call_traces row (tool name, arguments, result, status, timing) so tool usage, error rates, and latency can be analyzed across many calls — not just read one conversation at a time.
Tool calls are captured automatically for the providers that emit them — Vapi, Retell, ElevenLabs, and LiveKit. If you push calls yourself, attach a toolCall to any tool turn — see Custom & other providers. Capture is forward-looking: calls ingested from when the feature ships onward include their tool calls.

Filtering

The conversations list filters on: Filters persist in the URL, so a filtered list is shareable.

Findings

Any conversation can be linked to a finding — the durable, shareable issue it’s an example of — and curated findings can be pushed to Linear from the finding’s panel. The assessment saved when a call is analyzed lives in its conversation_analyses row. For the OpenTelemetry view of a call — the span tree, per-step latency, tokens, and logs — see Traces. A trace links to its conversation when their session ids match.

Who read this call

Opening a call, and fetching its transcript, writes a row to your org’s audit log — the actor, the timestamp, and the source IP. Owners and admins can read that trail under Settings → Audit log, which also lists the times Zelto staff opened one of your calls.