Product workflow3 min readKeep one real product question in mind as you read.
A useful way through

Start with one real question and leave with a next step.

Start with the question in front of you, then use the guide to make the next decision easier.

Try saying

“I am trying to make this decision. What should I look at first?”

Start with context

Bring the smallest useful example.

Look for the signal

Separate what is known from what is assumed.

Take one step

Choose an action you can review.

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

  1. In ElevenLabs, open your profile → API Keys → create a key
  2. In Specky, go to Settings → Integrations → ElevenLabs and paste it
  3. 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.

  1. ElevenLabs → Settings → Webhooks → Create webhook
  2. Paste the webhook URL from the ElevenLabs card in Specky (Show webhook setup)
  3. Subscribe to the post_call_transcription event
  4. Copy the signing secret ElevenLabs shows you — it is shown once
  5. 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:

  1. On the ElevenLabs card, click Connect agents (MCP) — or open /api/integrations/mcp/elevenlabs/connect
  2. Sign in with your ElevenLabs account and approve the scopes
  3. 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.

Ready to apply this?

Start with your own product and keep the first read grounded. You'll create an account before the guided result so it can be saved to your workspace.

Try the guided start