Connect
- Open Settings → Integrations → ElevenLabs and click Connect ElevenLabs.
- Paste your ElevenLabs API key. Create one at elevenlabs.io under your profile’s API Keys. We use it to fetch agent metadata and call data on demand.

Turn on real-time delivery
By default calls arrive via the hourly pull. To have them land within seconds instead, add an ElevenLabs post-call webhook that points at Zelto, then paste its signing secret back into the integration so Zelto can verify each delivery. The webhook is a workspace-level setting in ElevenLabs — it covers every agent in the workspace (you can also scope it per agent through an agent’s webhook overrides), and only workspace admins can configure it.Copy Zelto's webhook URL
Open Settings → Integrations → ElevenLabs → Manage. The card shows the
webhook URL Zelto exposes — copy it.
Create the webhook in ElevenLabs
In ElevenLabs, open Settings → Webhooks and create a webhook with HMAC
authentication pointing at Zelto’s URL. ElevenLabs shows the signing secret
once, at creation — copy it now.
Enable it for post-call transcription
In Agents → Settings, turn on post-call webhooks and select the webhook you
just created, so each finished call fires the
post_call_transcription event.
You don’t need to enable Send audio data — Zelto fetches each recording
itself over the authenticated audio endpoint.
What gets ingested
Zelto ingests ElevenLabs Conversational AI calls two ways:- Post-call webhook — once the webhook above is configured, each finished call is pushed to Zelto with its transcript inline, so it lands as a conversation within a few seconds. The recording is fetched for you over the authenticated audio endpoint (ElevenLabs exposes no recording URL), so it re-hosts shortly after.
- Hourly pull + 14-day backfill — every imported agent is also pulled once an hour as a backfill and safety net, and importing an agent backfills its calls from the past 14 days. Re-import an agent at any time to refresh that history. The two paths dedupe on the ElevenLabs conversation id, so a call never lands twice.

Verify the first call
Place a test call to your ElevenLabs agent, then open Conversations — with the webhook configured 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. A signed delivery that’s rejected usually means the signing secret in Zelto doesn’t match the one in ElevenLabs. See Connect a voice provider.Connection status & disconnecting
The card shows the connected account, the webhook URL, and whether a signing secret is configured. The Disconnect action removes the stored API key and signing secret; remove the webhook from your ElevenLabs settings separately to stop the push side.
Related
- Connect a voice provider — pick a path and verify ingestion.
- Conversations — where ElevenLabs calls land.
- Agents — how Zelto models each agent.
- Findings — what analysis surfaces from each call.
- Speechify · Retell · Vapi — the other native voice integrations.

