Observability for voice agents

See every call your voice agent makes

Trace every call, find what breaks across production traffic, and evaluate every change before it ships.

Try for free

Inspect voice agent pipeline

Inspect voice agent pipeline

How Zelto surfaces improvements at scale

Zelto extracts the signal from every conversation, then runs thousands of parallel agents to find which gaps are costing you conversion.

  1. Step 01

    Ingests every conversation

    Store all your interactions — calls, transcripts, messages, LLM traces, logs. Every block is a call.

  2. Step 02

    Extracts the signal

    Evaluators extract signals from each one: caller frustration, knowledge gaps, tool call failures, praise.

    • Caller frustration
    • Knowledge gaps
    • Tool call failures
    • Praise
  3. Step 03

    Runs thousands of agents in parallel

    Calls with the same signal cluster together, and parallel agents work each cluster, surfacing the patterns that recur.

  4. Step 04

    Ranks what's costing conversion

    Findings ordered by how many callers they touch, each with a drafted fix. The tallest stack is the one to fix first.

Everything you need to run voice agents in production

Connect Vapi, Retell, LiveKit, ElevenLabs or any custom stack. Zelto records every conversation and analyzes every transcript. Your team decides what to fix.

Findings

What's breaking, grouped from real calls

Zelto groups calls that fail the same way into one finding, with a description, a priority, the calls behind it and a diagram of the broken flow. You fix the pattern, not one call at a time.

  • Every finding links to the transcript moments that prove it
  • Assign an owner, set a priority, track it to done
  • Send findings to Slack or email, or file them in Linear
A finding in Zelto: price objection steamrolled, with its description and broken-flow diagram
SAL-128Todo

Price objection steamrolled, no value reframe or discovery

UrgentZelto finding
#voice-qa

ZeltoApp10:42 AM

New finding

Price objection steamrolled, no value reframe or discovery

Category: Sales · 41 conversations

View finding

Traces

Every turn, span by span

See the whole voice pipeline of a call on one timeline: speech-to-text, the LLM, tool calls, text-to-speech, voice activity and telephony. Open any span to see its input, output, tokens, latency and cost.

  • OpenTelemetry in, one trace per conversation
  • Find the slow turn or the failing tool call in seconds
  • Jump from a trace straight to the conversation
A trace in Zelto with tracks for STT, LLM, tool, TTS, VAD and telephony, and span details
agent.pyOpenTelemetry
OTLPSpanExporter(
  endpoint="https://ingest.zelto.ai/v1/traces",
  headers={"Authorization": key},
)
llm.chat1.8 s

Turn 4 · slowest span in this call

CallerCan I move it to Friday instead?

Open conversation

Monitors

Your rubric, judged on every call

A monitor is an AI judge you write as a plain yes/no question, like “Did the agent refuse a valid request?”. It runs on every new call and trends the result, so you see the rate move after each change.

  • Start from ready-made monitors: frustration, refusals, task failure
  • Scope a monitor to agents or companies
  • Get an alert when a rate crosses your threshold
Zelto monitors showing user praise, frustration, task failure and refusal rates over 30 days
MonitorYes / no

Did the agent refuse a valid request?

Agents: Front Desk, Sales Agent

Alert when the affected rate is at or above 10% over the last 7 days

#voice-qa

ZeltoApp10:42 AM

Refused valid request is at 12% affected, above your 10% threshold over the last 7 days.

View monitor

Experiments

Ship changes with evidence

Compare two versions of an agent on real traffic, judged by the same monitors. Each outcome gets its own analysis, and the calls worth reviewing are one click away.

  • Version labels on every call, so A and B never mix
  • Monitor definitions are fixed at launch
  • Test a prompt against synthetic callers before it goes live
A Zelto experiment comparing a current greeting with a shorter introduction on booking completion
Front Desk Active
  • Agreeting-v31,284 calls
  • Bshort-intro1,262 calls

3 monitors, frozen at launch

Simulation20 synthetic callers

Live prompt14/20 passed

Candidate18/20 passed

And the rest of the platform

  • Call #48213:12

    CallerHi, can I move my cleaning to Friday?

    AgentSure. I have 10:30 or 2:15 on Friday.

    Conversations

    Transcripts, recordings that outlive your provider's links, summaries and on-demand analysis.

  • Tool calls96.4% success
    • book_appointment408 ms
    • send_confirmationtimeout

    Tool calls

    Usage, failures, success rates and duration for every tool your agents call.

  • ReportDone

    Why do callers hang up after hearing the price?

    Researched 214 calls

    Reports

    Ask an open question about your operation and get a written, researched answer.

  • CompanyBright Smile Dental
    • Bright Smile Dental1,204
    • Northside Clinic836
    • Harbor Vets412

    Companies

    Serve many clients from one org and filter everything by the company a call was for.

  • POST /hooks/zelto

    {

    "type": "monitor.matched",

    }

    200 OK · 84 ms

    Webhooks & API

    Push results to your systems, and pull everything over the REST API.

    Read the docs
  • Triage this week's new findings.

    Ask Zelto & MCP

    Triage findings from Claude Code, Cursor or Codex over MCP: ask what broke, set priorities, close what's fixed. Or chat with your calls in the app.

One API, every voice stack you already use.

Native integrations with the big voice platforms. Or connect using our API.

Read the docs
  • Vapi
  • Retell
  • Bland
  • ElevenLabs
  • LiveKit
  • Pipecat
  • Telnyx
  • Custom / API

Built for voice agents. Catch. Fix. Measure.