ThunderPhone 2.0 is live.Self-serve, from 2¢/min.Read the announcement

Facts verified against published sources on .

How to migrate from ElevenLabs Agents to ThunderPhone (2026): import agents, tools, and knowledge bases

ThunderPhone can import your ElevenLabs Agents configurations, tools, and knowledge bases with an API key or a JSON export. The importer maps supported fields into reviewable agents, but it does not move phone numbers, copy vendor-held credentials, or recreate client tools and MCP behavior. Expect to review voice and tier choices, reconnect external systems, and test each agent before moving calls.

Before you start

Inventory every agent's prompt, first message, language, model setting, voice, webhook tools, system tools, knowledge-base entries, silence timeout, and conversation-duration setting. Add client tools, MCP configuration, phone numbers, SIP details, tool credentials, and downstream webhook expectations to a separate manual-work list.

Only ThunderPhone admins can use the importer. For the API route, prepare a temporary ElevenLabs key that can read the Agents API objects you need. The Agents API authenticates requests through the xi-api-key header. ThunderPhone encrypts your key for the duration of the import and deletes it after the import finishes, fails, or is discarded. It is never retained with your account.

Decide which source agents are production-ready. The review screen unticks agent names containing test, demo, copy, untitled, sample, or playground by default. Confirm the selection manually, particularly where a production naming convention happens to contain one of those terms.

Step 1: get your API key

Create or retrieve an ElevenLabs API key with access to the required agent resources. The official Agents endpoint documentation shows authentication using the xi-api-key request header. Handle the value as a secret, paste it directly into the importer, and revoke a temporary key after the migration is complete. ElevenLabs Agents API, accessed 2026-09-10.

The source documentation does not establish a read-only key path for this workflow, so do not describe the key as read-only. If policy does not allow a key to be entered into an importer, use an exported JSON snapshot instead.

Step 2: run the import

In ThunderPhone, open Agents → Import, select ElevenLabs Agents, paste the API key, and proceed to the review table. Confirm which agents are ticked before selecting Import.

The table shows each name, matched voice with confidence (exact, by voice type, or default), mapped intelligence tier (Spark, Bolt, or Storm), tools, knowledge bases, and notes. It provides two prompt options for every row. Rewritten restructures the content to the ThunderPhone prompting guide and preserves every phone number, URL, tool name, and placeholder. Structured organizes the source under headings without the same rewrite. Select the appropriate version agent by agent.

Use the report to track work outside the automatic mapping. It lists numbers and their ownership, per-agent webhooks, vendor-stored credentials, and unsupported tools. Save those findings with your migration checklist.

What the importer maps

ElevenLabs field ThunderPhone
conversation_config.agent.prompt.prompt Prompt
first_message, language Opening line; primary language
prompt.llm Intelligence tier
tts.voice_id Closest catalog voice
tools / tool_ids of type webhook API connections (query or body schema)
system tools end_call, transfer_to_number, keypad Built-ins + prompt hand-off
knowledge_base url/text/file entries Knowledge base (URLs fetched; text and files by id need the key)
turn.silence_end_call_timeout Silence hang-up
conversation.max_duration_seconds, client tools, MCP Reported, not imported

The closest voice comes from ThunderPhone's catalog of 123 voices in 47 languages. Confidence describes the matching method, not guaranteed acoustic equivalence, so listen to it in a test call. The mapped intelligence tier should also be treated as a testable starting point.

ThunderPhone reports conversation.max_duration_seconds because it has no per-agent maximum call duration. Use the silence hang-up setting and prompt rules to end inactive calls, conclude completed tasks, and prevent open-ended conversation.

What needs a manual step

ElevenLabs phone numbers are bring-your-own through Twilio or a SIP trunk, and the importer never moves them. Since the number is owned outside the agent platform, connect the existing number or trunk to ThunderPhone through the applicable telephony process. Do not remove the old destination until you have tested inbound calls, caller identity, transfers, and any outbound requirements.

Webhook tool shapes can map to API connections, including query or body schemas, but secrets stored by the source platform must be entered again. Use the report to identify every credential. Client tools and MCP are unsupported by the importer and need a deliberate replacement outside the import. Review transfer destinations as well: the configuration can become a built-in and prompt hand-off, but the destination must remain correct and reachable.

Importing without a key

Go to Agents → Import → ElevenLabs Agents and choose JSON. Paste exported agent objects together with available webhook-tool and knowledge-base objects. JSON offers a fixed snapshot and avoids providing a live key during the import.

The tradeoff is reference resolution. Agent JSON can contain tool_ids and knowledge entries that point to stored text or files by ID. If the referenced definitions or content are not included, the importer can flag them but cannot fetch or recreate them. URLs can be fetched when present, while text and file entries identified only by ID need the key. Include related objects in the export where possible, and manually supply the missing material when the review notes show unresolved IDs.

After the import

  • Open each imported agent and review its prompt form, opening line, primary language, voice confidence, tier, built-ins, and hand-off instructions.
  • Read every note, including notes on agents that the importer left unticked.
  • Make a test call from the builder and cover the greeting, tool requests, transfers, keypad entry, silence behavior, and call ending.
  • Attach or route a number only after the builder test succeeds, then place a call through the production telephony path.
  • Enter fresh authentication in each API connection and run its test request, checking query parameters, request bodies, and response handling.
  • Verify knowledge indexing is complete, then ask questions whose answers are present and absent from the source material.
  • Set an organization webhook and confirm that required call events reach the downstream service.

Keep the original agent route available until the new number path and external connections pass together. A successful import is configuration transfer, not production acceptance.

Related