Skip to main content

Connect

  1. Open Settings → Integrations → ElevenLabs and click Connect ElevenLabs.
  2. 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.
The Connect ElevenLabs dialog, with fields for a label and the ElevenLabs API key.
You can connect multiple ElevenLabs accounts to one organization.

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.
1

Copy Zelto's webhook URL

Open Settings → Integrations → ElevenLabs → Manage. The card shows the webhook URL Zelto exposes — copy it.
2

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.
3

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.
4

Paste the signing secret into Zelto

Back in the ElevenLabs card, paste the signing secret next to the matching account and save. Zelto verifies every webhook’s ElevenLabs-Signature against it, so an unsigned or tampered request is rejected.
The ElevenLabs manage view, showing the webhook URL and a field to paste the signing secret per account.
Paste the signing secret into Zelto as soon as you create the webhook. Until it’s saved, Zelto can’t verify deliveries and rejects them with a 401 — and ElevenLabs auto-disables a webhook after 10 consecutive failures, so one left unverified can stop firing until you re-enable it in ElevenLabs.
Until a signing secret is set, the webhook is inactive on Zelto’s side and calls still arrive through the hourly pull below — so the integration works either way.

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.
Import an agent from Agents → Add Agent → ElevenLabs, which lists the agents in your connected account.
The Add Agent dialog on the ElevenLabs tab, listing an ElevenLabs Conversational AI agent ready to import.

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.
The integrations page with the ElevenLabs card showing a Connected badge and a Manage button.