Skip to main content

Connect

  1. Open Get started → Retell or Settings → Integrations → Retell and click Connect Retell.
  2. Paste your Retell API key. We use it to fetch agent metadata, recordings, and analyses on demand.
  3. Import an agent. Zelto starts pulling that agent’s calls automatically.
For lower-latency delivery, open the integration under Settings and copy its optional webhook URL into Retell dashboard → Webhooks. A Hookdeck-fronted URL is available there too for extra delivery retries and replay. You can connect multiple Retell accounts to one organization.

What gets ingested

Zelto pulls each imported agent’s calls on a recurring schedule. An optional webhook can deliver two Retell events sooner; any others are acknowledged and ignored, and the pull and push paths deduplicate on the Retell call id. Recordings are persisted to Zelto storage so the player on the conversation detail page keeps working. Scheduled sync also links calls to the agent version reported by Retell’s agent_version, including version 0. If the call list omits it, fetching the full call for transcript import can fill the missing link, even when no transcript is available. Existing version links are preserved. An imported call with no reported version stays unlinked; Zelto does not assign the agent’s latest version. This captures the version identity, not a historical prompt snapshot: the agent’s current prompt is never substituted for that version’s prompt. Every Retell call ingested since September 2026 also carries its call context as metadata, whichever path it arrived by (webhook or scheduled pull) — earlier calls keep no context, so a filter on it scopes to recent calls: call_analysis (including your custom_analysis_data fields), retell_llm_dynamic_variables (as dynamic_variables), the custom metadata you set on the call, direction, call_type, disconnection_reason, a transfer flag (true when the call ended in call_transfer), per-component latency percentiles, cost breakdown and token usage. Calls placed with Retell’s opt_out_sensitive_data_storage flag keep only the operational fields (no numbers, variables, or custom metadata), and SIP header values that look like credentials are stored redacted. It lives under the retell key, so a metadata filter such as retell.transfer is true or retell.call_analysis.custom_analysis_data.<field> equals … scopes the Conversations list and every Monitor to exactly those calls. Zelto also captures the agent’s tool calls — the function calls it makes mid-call, from Retell’s transcript_with_tool_calls (tool_call_invocation / tool_call_result) — 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 and logs

New call imports and post-call webhook deliveries also schedule an independent telemetry import. Open Traces to see a call span with timed utterances, tool invocations/results, flow transitions, and per-response latency markers. Logs contains Retell’s timestamped public log records, including multiline errors, linked to the same trace. Your existing Retell API key is used; there is no additional setup. Latency markers preserve Retell’s end-to-end, ASR, LLM, and TTS measurements in milliseconds. They do not invent operation start/end times from those durations. Token usage and cost breakdowns are retained as call-span attributes in Retell’s original units. Stable IDs prevent duplicated traces and logs on retries. Zelto fetches a fresh log URL for each import. Signed URLs and API keys are never saved in traces or job payloads. If Retell no longer has the public log, the available call and transcript spans can still be imported. With PII redaction, only the scrubbed transcript is used and raw public logs are skipped. With sensitive-data storage disabled, only operational call metadata is imported. This is post-call telemetry, not live streaming. Calls at least 89 days old are skipped to fit the 90-day telemetry retention window. Existing calls are not bulk-backfilled by this change. Downloads are limited to 5 MiB from Retell’s verified CDN or documented S3 origin; custom log hosts are not supported.

Verify the first call

Place a test call to your Retell agent, then open Conversations — the next provider sync adds it with its transcript, or an optional webhook adds it within seconds. If it doesn’t arrive, the agent’s Connections card shows whether calls are arriving and flags the most recent ingestion error. See Connect a voice provider.

Manage Retell from chat

Once your Retell account is connected, Ask Zelto can read and change your Retell account through your own Retell API key:
  • list_retell_agents — see every agent in your account.
  • get_retell_agent — fetch one agent including the current prompt of its response engine: the general_prompt for a retell-llm or the shared global_prompt for a conversation flow (when applicable).
  • list_retell_calls — recent calls for an agent to inspect how it has been performing.
  • update_retell_agent_prompt — replace the prompt on the underlying retell-llm. Only works for agents whose response engine is retell-llm — conversation-flow agents are not editable through this tool yet.
  • update_retell_agent — change an agent’s name, voiceId, or language.
Reads run as soon as you ask. Writes (update_*) route through a confirmation card — nothing is sent to Retell 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 → Retell → Manage):
  • Everyone (default) — any member can drive Retell from chat.
  • Admins & owners — only owners, admins, and global admins.
  • Disabled — the Retell 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 and optional webhook URL. The Disconnect action removes the stored API key and stops pulling new calls; remove an optional webhook from Retell separately to stop its push side.