ElevenLabs Integration

What it does

ElevenLabs voice agents hold real conversations with your customers over a web widget, a phone line, or WhatsApp. This integration brings each finished conversation into Specky: the full transcript, ElevenLabs' summary, whether the call met your evaluation criteria, and — most usefully — the structured fields your agent was told to collect, like which competitor came up or how many seats they need.

It also works outbound: Specky can read a written update aloud as an MP3 using your own ElevenLabs voice and quota.

Step 1 — Connect

  • In ElevenLabs, open your profile → API Keys → create a key
  • In Specky, go to Settings → Integrations → ElevenLabs and paste it
  • Optionally add:
  • - Agent ID — sync one agent instead of all of them - Voice ID — the default voice for audio briefs

    Conversations start arriving on the next sync.

    Step 2 — Live delivery (optional)

    Unlike fonio, ElevenLabs *does* have a conversation-history API, so Specky can pull. A webhook just makes conversations arrive the moment a call ends rather than on the next sync.

  • ElevenLabs → Settings → WebhooksCreate webhook
  • Paste the webhook URL from the ElevenLabs card in Specky (Show webhook setup)
  • Subscribe to the post_call_transcription event
  • Copy the signing secret ElevenLabs shows you — it is shown once
  • Back in Specky, reconnect the integration with that secret in the Webhook Secret field
  • Every delivery's signature is verified against that secret, so nobody can inject fabricated conversations into your graph. Deliveries older than 30 minutes are rejected as replays.

    Because ElevenLabs mints this secret, Specky can't rotate it for you — the webhook card has no Regenerate button. To rotate, create a new secret in ElevenLabs and reconnect here.

    Pull and push together

    Both paths key on the conversation ID, so a conversation that arrives twice updates one signal rather than creating two. Pull also backfills history the webhook never saw.

    Older conversations are never deleted by a sync: ElevenLabs history is append-only, so "not in the latest batch" means "older", not "deleted upstream".

    Audio briefs

    With a default voice set, Specky can turn a written update — a stakeholder summary, an exec brief — into an MP3. Synthesis runs on your own ElevenLabs key and quota, and counts against your Specky generation limit.

    Live agent tools in chat (optional)

    Conversation sync above is separate from live agent management. To let Specky's chat list, create, and update your ElevenLabs agents (and generate speech) through ElevenLabs' hosted MCP:

  • On the ElevenLabs card, click Connect agents (MCP) — or open /api/integrations/mcp/elevenlabs/connect
  • Sign in with your ElevenLabs account and approve the scopes
  • Chat then gets live elevenlabs_* tools for agents, conversations, and TTS
  • That OAuth connection is stored separately as ELEVENLABS_MCP. It does not replace the API key used for transcript sync — you can (and usually should) have both. Isolated data-residency workspaces append ?region=eu, ?region=in, or ?region=sg to the connect URL.

    Tips

  • Configure data collection fields on your ElevenLabs agent before you rely on this. A transcript is useful; a transcript plus competitor: Linear is far more useful, because it's filterable.
  • Evaluation criteria come through too — you can see which discovery calls actually surfaced a pain point.