Skip to main content

Connect

  1. Open Settings → Integrations → Vapi and click Connect Vapi.
  2. Paste your Vapi API key — find it at dashboard.vapi.ai under API Keys. Zelto uses it to fetch assistant metadata and recordings.
  3. Copy the webhook URL the card shows into Vapi so it pushes call events to Zelto. If you use Hookdeck, an alternative Hookdeck-fronted URL is shown too — same destination, with extra delivery retries and replay.
You can connect multiple Vapi accounts to one organization. Each account’s calls land in the same place, tagged with the originating agent.

What gets ingested

Vapi sends one end-of-call-report webhook per finished call. Zelto records the raw payload first, then builds the conversation from it: the turn-by-turn transcript, the recording, the call cost, and the ended reason. Other Vapi event types are acknowledged and ignored. Vapi returns a recording URL that stays valid, so Zelto stores it as-is — the player on the conversation detail page keeps working without re-hosting. Zelto also captures the agent’s tool calls — the function calls it makes mid-call, from Vapi’s tool_calls / tool_call_result messages — with their name, arguments, and result. They render inline in the transcript, feed the AI analysis, and are recorded as queryable tool-call traces. Nothing to configure.

Traces, without instrumenting anything

When Zelto pulls a Vapi call it also downloads that call’s raw platform logs from Vapi and turns them into a trace — so Vapi calls show up in Traces with no OpenTelemetry exporter to install and no agent code to change. Each call becomes one trace whose root is the call itself, with a span per turn and, nested underneath, the provider steps that turn made:
  • llm spans carrying the model, prompt and completion, prompt/completion token counts, and Vapi’s own cost figure — including the post-call summary and success evaluation requests, whose cost is otherwise invisible.
  • stt spans with the transcriber provider, model, and final transcript.
  • tts and vad spans for the voice and turn-detection stages.
  • Every log line Vapi emitted, attached to the span it belongs to — per-turn latency breakdowns (endpointing, first token, first audio) included.
The trace is keyed on the Vapi call id, so it links straight back to its conversation. Re-pulling a call rewrites the same trace rather than duplicating it. Two limits worth knowing: Vapi only keeps call logs for a limited window, so a backfill of much older calls produces conversations without traces; and traces are retained for 90 days, so Zelto skips fetching logs for calls older than that.

Verify the first call

Place a test call to your Vapi assistant, then open Conversations — the call shows up within a few seconds with its transcript. If it doesn’t, the agent’s Connections card shows whether calls are arriving and flags the most recent delivery if it errored. See Connect a voice provider.

Manage Vapi from chat

Once your Vapi account is connected, Ask Zelto can read and change your Vapi account directly through your own Vapi API key:
  • list_vapi_assistants — see every assistant in your account.
  • get_vapi_assistant — fetch one assistant with current first message and system prompt.
  • list_vapi_calls — recent calls (optionally for one assistant) to inspect how an agent has been performing.
  • list_vapi_evals — the mock-conversation evals on your account.
  • update_vapi_assistant — change name, firstMessage, or systemPrompt on an existing assistant.
  • create_vapi_assistant — spin up a new assistant with a name, first message, and system prompt.
  • create_vapi_eval — create a mock-conversation eval to score an assistant.
Reads run as soon as you ask. Writes (update_*, create_*) route through a confirmation card — nothing is sent to Vapi until you click Confirm.

Control who can use these tools

Each voice integration has a Chat tool access setting in its Manage dialog (Settings → Integrations → Vapi → Manage):
  • Everyone (default) — any member can drive Vapi from chat.
  • Admins & owners — only owners, admins, and global admins.
  • Disabled — the Vapi tools disappear from chat for everyone.
Only owners and admins can change this setting. The gate is enforced both when building the chat toolset and again when a write is confirmed, so disabling it removes the capability completely.

Connection status & disconnecting

The card shows the connected account, the connection date, and the webhook URL to paste into Vapi, so you can tell at a glance that ingestion is wired up. The Disconnect action removes the stored API key and stops ingesting new calls; historical conversations stay in your organization.