Importer des agents depuis une autre plateforme
Importez des agents, des outils et des bases de connaissances depuis Vapi, Retell, ElevenLabs Agents ou Bland à l’aide d’une clé API ou d’une exportation JSON, vérifiez le mapping, puis importez-les.
Si vos agents se trouvent sur Vapi, Retell, ElevenLabs Agents ou Bland, l’importateur les récupère, associe chaque champ à ThunderPhone et vous affiche le résultat avant toute création.
Démarrer une importation
- Ouvrez Agents et choisissez Importer (ou Importer depuis Vapi, Retell, ElevenLabs ou Bland sur une page Agents vide).
- Sélectionnez la plateforme.
- Suivez les étapes numérotées de la boîte de dialogue pour créer une clé sur cette plateforme (elles ouvrent pour vous la bonne page de paramètres), collez-la, ou passez à Coller le JSON exporté et collez un ou plusieurs objets d’agent depuis le tableau de bord ou l’API de cette plateforme.
- Choisissez Récupérer mes agents. La récupération et l’association prennent généralement moins d’une minute ; vous pouvez quitter la page et revenir via la barre des tâches.
Examiner le plan
Chaque agent affiche son nom, la voix correspondante (avec le niveau de confiance de la correspondance), le niveau d’intelligence, les outils et bases de connaissances qu’il apporte, ainsi que des notes sur les éléments modifiés lors de la traduction. Développez une ligne pour lire le prompt :
- Réécrit — un prompt cohérent dans le style du guide de prompting, avec chaque numéro de téléphone, URL, nom d’outil et placeholder de la source préservé.
- Structuré — la configuration source présentée sous des titres, exactement telle qu’elle a été extraite. Utilisé automatiquement lorsque la réécriture ne peut pas être vérifiée.
Décochez les agents dont vous ne voulez pas (les copies de test sont décochées par défaut), modifiez les noms, les voix, les niveaux ou le choix du prompt, puis sélectionnez Importer. Les agents créés s’ouvrent dans le builder avec leurs connexions API et leurs connaissances associées.
Ce qui est importé
Obtenir une clé
- Ouvrez dashboard.vapi.ai/org/api-keys (Paramètres de l’organisation → Clés API).
- Créez une clé et choisissez Privée — les clés publiques ne peuvent pas lister les assistants.
- Copiez-la dans la boîte de dialogue. Les clés Vapi ne sont pas limitées par périmètre ; supprimez la clé dans Vapi après l’importation si vous l’avez créée uniquement pour cela.
| Champ Vapi | ThunderPhone |
|---|---|
model.messages[system] | Prompt |
firstMessage, firstMessageMode | Phrase d’ouverture dans le prompt ; qui parle en premier |
voice.provider + voiceId | Voix du catalogue la plus proche (niveau de correspondance affiché) |
transcriber.language | Langue principale |
model.model | Niveau d’intelligence |
model.tools / toolIds (function, apiRequest) | Connexions API |
Destinations transferCall | Section de transfert du prompt (transfert intégré) |
endCall, dtmf | Fonctionnalités intégrées |
Outils query (knowledgeBases[].fileIds) et ancien knowledgeBaseId | Base de connaissances avec les fichiers importés comme documents |
endCallMessage, endCallPhrases, voicemailMessage, messagePlan.idleMessages | Sections du prompt ; paramètre du message de messagerie vocale |
silenceTimeoutSeconds | Raccrochage après silence |
maxDurationSeconds, server.url, squads, workflows, outils sms/ghl/make/code/mcp | Signalé, non importé |
Obtenir une clé
- Ouvrez dashboard.retellai.com/apiKeys (Paramètres système → Clés API) et choisissez Créer une clé.
- Activez Restreindre les autorisations et définissez Agent, Base de connaissances et Téléphone sur Lecture. Laissez tous les autres groupes décochés ; l’importateur n’écrit jamais dans Retell.
- Copiez la clé dans la boîte de dialogue.
| Champ Retell | ThunderPhone |
|---|---|
Retell LLM general_prompt, begin_message, start_speaker | Prompt ; phrase d’ouverture ; qui parle en premier |
states + starting_state | Procédure d’appel ordonnée dans le prompt |
Flux de conversation global_prompt + nœuds | Procédure d’appel ordonnée ; les nœuds de transfert deviennent aussi des règles de transfert |
general_tools personnalisés | Connexions API |
transfer_call, end_call, press_digit | Transfert dans le prompt + fonctionnalités intégrées |
voice_id (11labs-, openai-, cartesia-, …) | Voix du catalogue la plus proche |
language | Langues principale et supplémentaires |
model / s2s_model | Niveau d’intelligence |
knowledge_base_ids (sources URL, document, texte) | Base de connaissances avec documents |
voicemail_option, end_call_after_silence_ms, boosted_keywords | Paramètre de messagerie vocale ; raccrochage après silence ; termes du prompt |
webhook_url, max_call_duration_ms (lorsqu’il est inférieur à la valeur par défaut de 60 minutes), moteurs LLM personnalisés, send_sms, MCP | Signalé, non importé |
Obtenir une clé
- Ouvrez elevenlabs.io/app/settings/api-keys et choisissez Créer une clé API.
- Dans les autorisations, attribuez-lui Plateforme Agents : Lecture (et Base de connaissances : Lecture si cette option est affichée) ; l’importateur n’a besoin de rien d’autre.
- Copiez la clé dans la boîte de dialogue.
| Champ ElevenLabs | ThunderPhone |
|---|---|
conversation_config.agent.prompt.prompt | Prompt |
first_message, language | Phrase d’ouverture ; langue principale |
prompt.llm | Niveau d’intelligence |
tts.voice_id | Voix du catalogue la plus proche |
tools / tool_ids de type webhook | Connexions API (schéma de requête ou de corps) |
Outils système end_call, transfer_to_number, clavier numérique | Fonctionnalités intégrées + transfert dans le prompt |
Entrées URL/texte/fichier de knowledge_base | Base de connaissances : les entrées URL deviennent des documents URL ; les entrées texte et fichier sont récupérées par identifiant et importées sous forme de texte extrait |
turn.silence_end_call_timeout | Raccrochage après silence |
conversation.max_duration_seconds, outils client, MCP | Signalé, non importé |
Obtenir une clé
- Ouvrez app.bland.ai/dashboard/settings.
- Copiez la clé API affichée (Bland dispose d’une clé par compte ; elle n’est pas limitée par périmètre, effectuez donc une rotation ensuite si vous le souhaitez).
- Collez-la dans la boîte de dialogue.
Les agents web n’ont pas de nom dans Bland ; l’importateur les nomme à partir du message d’accueil (« Bonjour, ici Nova… ») ou du prompt (« Vous êtes Nova… »).
| Champ Bland | ThunderPhone |
|---|---|
Agent web prompt, first_sentence, language, model, voice | Prompt ; phrase d’ouverture ; langue ; niveau ; voix la plus proche |
tools personnalisés (name, url, method, input_schema, headers) | Connexions API |
Numéro entrant prompt ou pathway_id | Un agent par numéro entrant |
| Chaque parcours, attaché ou non à un numéro | Un agent par parcours |
| Nœuds et arêtes de parcours (Default, Knowledge Base, Transfer Call, End Call, Webhook) | Procédure d’appel ordonnée ; le texte du nœud de base de connaissances devient un document ; les transferts et webhooks deviennent des fonctionnalités intégrées et des connexions API |
transfer_phone_number | Section de transfert |
max_duration, webhook | Signalé, non importé |
| Numéros détenus par Bland | Signalés comme non portables |
Ce qui nécessite une étape sur ThunderPhone
Le rapport en bas de la page de vérification liste tout ce qui n’a pas été migré et pourquoi :
- Numéros de téléphone. Les numéros que vous détenez auprès d’un opérateur peuvent être connectés comme numéros VoIP. Les numéros détenus par la plateforme ne peuvent pas être migrés ; obtenez un nouveau numéro et associez-le à l’agent importé.
- Webhooks par agent. ThunderPhone envoie des webhooks signés par organisation ; configurez-en un dans Webhooks.
- Identifiants stockés par le fournisseur. Les en-têtes d’outil qui étaient visibles sont copiés. Les identifiants que l’ancienne plateforme stockait par identifiant sont signalés ; ajoutez-les aux en-têtes de la connexion API.
- Outils sans équivalent (envoi de SMS, automatisations propres à la plateforme) sont répertoriés afin que rien ne soit supprimé silencieusement.
- Limites de durée d’appel. ThunderPhone n’a pas de durée maximale d’appel par agent ; utilisez plutôt le paramètre de raccrochage en cas de silence et les règles de fin de votre prompt.
Importer sans clé
Choisissez Coller le JSON exporté et collez le ou les objets exportés par l’API ou le tableau de bord de votre plateforme, sous la forme d’un objet unique ou d’une liste JSON :
- Vapi — l’objet assistant (
GET /assistant/{id}). Les outils associés viatoolIdset les fichiers de connaissances nécessitent une clé pour être résolus. - Retell — l’objet agent (
GET /get-agent/{id}) avec son LLM Retell (GET /get-retell-llm/{id}) ou l’objet de flux conversationnel dans la même liste ; l’importateur les associe par identifiant. Un LLM ou un flux collé seul est importé sous un nom généré. - ElevenLabs — l’objet agent (
GET /v1/convai/agents/{id}) ; ses outils webhook sont inclus en ligne, donc rien ne reste non résolu. - Bland — un agent web, la réponse
/v1/agentsou un objet pathway.
Tout élément référencé uniquement par identifiant et absent du contenu collé est listé dans les notes.
Après l’importation
- Ouvrez chaque agent et lisez ses notes.
- Passez un appel de test depuis le builder.
- Associez un numéro de téléphone.
- Testez chaque connexion API avec l’outil de test des requêtes.
- Vérifiez que l’indexation des documents de connaissances est terminée.
- Configurez un webhook d’organisation si les anciens agents en utilisaient un.
L’importateur est également disponible via l’API REST.