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

Using the dashboard

Import agents from another platform

Bring agents, tools, and knowledge bases over from Vapi, Retell, ElevenLabs Agents, or Bland with an API key or a JSON export, review the mapping, and import.

If your agents live on Vapi, Retell, ElevenLabs Agents, or Bland, the importer fetches them, maps every field onto ThunderPhone, and shows you the result before anything is created.

Start an import

  1. Open Agents and choose Import (or Import from Vapi, Retell, ElevenLabs, or Bland on an empty agents page).
  2. Pick the platform.
  3. Paste an API key, or switch to Paste exported JSON and paste one or more agent objects from that platform's dashboard or API.
  4. Choose Fetch my agents. Fetching and mapping usually takes under a minute; you can leave the page and come back through the task tray.

Review the plan

Each agent shows the name, matched voice (with how confident the match is), intelligence tier, the tools and knowledge bases it brings, and notes about anything that changed in translation. Expand a row to read the prompt:

  • Rewritten — one coherent prompt in the style of the prompting guide, with every phone number, URL, tool name, and placeholder from the source preserved.
  • Structured — the source config laid out under headings, exactly as extracted. Used automatically when the rewrite cannot be verified.

Untick agents you do not want (test copies are unticked by default), edit names, voices, tiers, or the prompt choice, then Import. Created agents open in the builder with their API connections and knowledge attached.

What is imported

Get a private key at Dashboard → API Keys.

Vapi fieldThunderPhone
model.messages[system]Prompt
firstMessage, firstMessageModeOpening line in the prompt; who speaks first
voice.provider + voiceIdClosest catalog voice (match confidence shown)
transcriber.languagePrimary language
model.modelIntelligence tier
model.tools / toolIds (function, apiRequest)API connections
transferCall destinationsHand-off section of the prompt (built-in transfer)
endCall, dtmfBuilt-ins
knowledgeBaseId + filesKnowledge base with documents
endCallMessage, endCallPhrases, voicemailMessage, messagePlan.idleMessagesPrompt sections; voicemail message setting
silenceTimeoutSecondsSilence hang-up
maxDurationSeconds, server.url, squads, workflows, sms/ghl/make/code/mcp toolsReported, not imported

Create a key under System Settings → API Keys; enable Restrict permissions and set every group to Read — that is all the importer needs.

Retell fieldThunderPhone
Retell LLM general_prompt, begin_message, start_speakerPrompt; opening line; who speaks first
states + starting_stateOrdered call procedure in the prompt
Conversation flow global_prompt + nodesOrdered call procedure with transfers and end nodes
general_tools customAPI connections
transfer_call, end_call, press_digitPrompt hand-off + built-ins
voice_id (11labs-, openai-, cartesia-, …)Closest catalog voice
languagePrimary and additional languages
model / s2s_modelIntelligence tier
knowledge_base_ids (url, document, text sources)Knowledge base with documents
voicemail_option, end_call_after_silence_ms, boosted_keywordsVoicemail setting; silence hang-up; prompt terms
webhook_url, max_call_duration_ms, custom-LLM engines, send_sms, MCPReported, not imported

Create a key under Profile → API keys.

ElevenLabs fieldThunderPhone
conversation_config.agent.prompt.promptPrompt
first_message, languageOpening line; primary language
prompt.llmIntelligence tier
tts.voice_idClosest catalog voice
tools / tool_ids of type webhookAPI connections (query or body schema)
system tools end_call, transfer_to_number, keypadBuilt-ins + prompt hand-off
knowledge_base url/text/file entriesKnowledge base (URLs fetched; text and files by id need the key)
turn.silence_end_call_timeoutSilence hang-up
conversation.max_duration_seconds, client tools, MCPReported, not imported

Your key is under Settings in the Bland dashboard.

Bland fieldThunderPhone
Web agent prompt, first_sentence, language, model, voicePrompt; opening line; language; tier; closest voice
Custom tools (name, url, method, input_schema, headers)API connections
Inbound number prompt or pathway_idOne agent per inbound number
Pathway nodes and edges (Default, Knowledge Base, Transfer Call, End Call, Webhook)Ordered call procedure; knowledge-base node text becomes a document; transfers and webhooks become built-ins and API connections
transfer_phone_numberHand-off section
max_duration, webhookReported, not imported
Bland-owned numbersReported as not portable

What needs a step on ThunderPhone

The report at the bottom of the review page lists everything that did not move and why:

  • Phone numbers. Numbers you own on a carrier can be connected as VoIP numbers. Platform-owned numbers cannot be moved; get a new number and attach it to the imported agent.
  • Per-agent webhooks. ThunderPhone delivers signed webhooks per organization; set one up under Webhooks.
  • Vendor-stored credentials. Tool headers that were visible are copied. Credentials the old platform stored by id are flagged; add them to the API connection's headers.
  • Tools without an equivalent (SMS sending, platform-specific automations) are listed so nothing is dropped silently.
  • Call duration caps. ThunderPhone has no per-agent maximum call length; use the silence hang-up setting and your prompt's ending rules instead.

Importing without a key

Choose Paste exported JSON and paste the object(s) your platform's API or dashboard exports: a Vapi assistant, a Retell agent (optionally with its Retell LLM or conversation flow embedded), an ElevenLabs agent, or a Bland agent or pathway. Anything referenced only by id (tools, knowledge bases) cannot be resolved without a key and is listed in the notes.

After the import

  1. Open each agent and read its notes.
  2. Place a test call from the builder.
  3. Attach a phone number.
  4. Test each API connection with the request tester.
  5. Check that knowledge documents finished indexing.
  6. Set an organization webhook if the old agents used one.

The importer is also available over the REST API.