別のプラットフォームからエージェントをインポート
APIキーまたはJSONエクスポートを使用して、Vapi、Retell、ElevenLabs Agents、Blandからエージェント、ツール、ナレッジベースを移行し、マッピングを確認してインポートします。
エージェントがVapi、Retell、ElevenLabs Agents、またはBlandにある場合、インポーターがそれらを取得し、すべてのフィールドをThunderPhoneにマッピングして、作成前に結果を表示します。
インポートを開始する
- エージェントを開き、インポートを選択します(エージェントがないページでは、Vapi、Retell、ElevenLabs、またはBlandからインポートを選択します)。
- プラットフォームを選択します。
- ダイアログの番号付き手順に従って、そのプラットフォームでキーを作成します(適切な設定ページが開きます)。キーを貼り付けるか、エクスポートしたJSONを貼り付けに切り替え、そのプラットフォームのダッシュボードまたはAPIから1つ以上のエージェントオブジェクトを貼り付けます。
- エージェントを取得を選択します。取得とマッピングは通常1分未満で完了します。ページを離れても、タスクトレイから戻れます。
プランを確認する
各エージェントには、名前、一致した音声(一致の信頼度を含む)、インテリジェンス階層、引き継がれるツールとナレッジベース、変換時に変更された項目に関する注記が表示されます。行を展開してプロンプトを確認します。
- 書き換え済み — プロンプトガイドのスタイルに沿った、一貫性のある1つのプロンプトです。ソース内のすべての電話番号、URL、ツール名、プレースホルダーが保持されます。
- 構造化済み — ソース設定を、抽出されたとおりに見出しの下へ配置します。書き換えを検証できない場合に自動的に使用されます。
不要なエージェントのチェックを外し(テスト用コピーはデフォルトでチェックが外れています)、名前、音声、階層、またはプロンプトの選択を編集してから、インポートを選択します。作成されたエージェントは、API接続とナレッジが紐付いた状態でビルダーに開かれます。
インポートされる内容
キーを取得する
- dashboard.vapi.ai/org/api-keys (組織設定 → APIキー)を開きます。
- キーを作成し、プライベートを選択します。パブリックキーでは アシスタントを一覧表示できません。
- ダイアログにコピーします。Vapiキーにはスコープがないため、この用途だけで作成した場合は、インポート後にVapiでキーを削除してください。
| Vapiフィールド | ThunderPhone |
|---|---|
model.messages[system] | プロンプト |
firstMessage, firstMessageMode | プロンプト内の開始メッセージ、先に話す側 |
voice.provider + voiceId | 最も近いカタログ音声(一致信頼度を表示) |
transcriber.language | 主要言語 |
model.model | インテリジェンス階層 |
model.tools / toolIds(function、apiRequest) | API接続 |
transferCallの転送先 | プロンプトの引き継ぎセクション(組み込み転送) |
endCall, dtmf | 組み込み機能 |
queryツール(knowledgeBases[].fileIds)および旧式のknowledgeBaseId | アップロード済みファイルをドキュメントとして含むナレッジベース |
endCallMessage, endCallPhrases, voicemailMessage, messagePlan.idleMessages | プロンプトセクション、留守番電話メッセージ設定 |
silenceTimeoutSeconds | 無音時の通話終了 |
maxDurationSeconds, server.url, スカッド、ワークフロー、sms/ghl/make/code/mcpツール | レポートのみ、インポート対象外 |
キーを取得する
- dashboard.retellai.com/apiKeys (システム設定 → APIキー)を開き、キーを作成を選択します。
- 権限を制限を有効にし、エージェント、ナレッジベース、 電話を読み取りに設定します。ほかのグループはすべて未選択のままにします。インポーターがRetellに書き込むことはありません。
- ダイアログにキーをコピーします。
| Retellフィールド | ThunderPhone |
|---|---|
Retell LLMのgeneral_prompt, begin_message, start_speaker | プロンプト、開始メッセージ、先に話す側 |
states + starting_state | プロンプト内の順序付き通話手順 |
会話フローのglobal_prompt + ノード | 順序付き通話手順、転送ノードは引き継ぎルールにもなります |
general_toolsのカスタムツール | API接続 |
transfer_call, end_call, press_digit | プロンプトの引き継ぎ + 組み込み機能 |
voice_id(11labs-, openai-, cartesia-, …) | 最も近いカタログ音声 |
language | 主要言語と追加言語 |
model / s2s_model | インテリジェンス階層 |
knowledge_base_ids(URL、ドキュメント、テキストソース) | ドキュメントを含むナレッジベース |
voicemail_option, end_call_after_silence_ms, boosted_keywords | 留守番電話設定、無音時の通話終了、プロンプト用語 |
webhook_url, max_call_duration_ms(60分のデフォルト未満の場合)、カスタムLLMエンジン、send_sms、MCP | レポートのみ、インポート対象外 |
キーを取得する
- elevenlabs.io/app/settings/api-keys を開き、APIキーを作成を選択します。
- 権限でエージェントプラットフォーム: 読み取り (表示される場合はナレッジベース: 読み取りも)を付与します。インポーターに必要な権限はこれだけです。
- ダイアログにキーをコピーします。
| ElevenLabsフィールド | ThunderPhone |
|---|---|
conversation_config.agent.prompt.prompt | プロンプト |
first_message, language | 開始メッセージ、主要言語 |
prompt.llm | インテリジェンス階層 |
tts.voice_id | 最も近いカタログ音声 |
webhookタイプのtools / tool_ids | API接続(クエリまたは本文スキーマ) |
システムツールのend_call, transfer_to_number, キーパッド | 組み込み機能 + プロンプトの引き継ぎ |
knowledge_baseのURL/テキスト/ファイルエントリー | ナレッジベース: URLエントリーはURLドキュメントになります。テキストおよびファイルエントリーはIDで取得され、抽出済みテキストとしてインポートされます |
turn.silence_end_call_timeout | 無音時の通話終了 |
conversation.max_duration_seconds, クライアントツール、MCP | レポートのみ、インポート対象外 |
キーを取得する
- app.bland.ai/dashboard/settingsを開きます。
- 表示されるAPIキーをコピーします(Blandではアカウントごとにキーが1つあり、スコープは設定されません。必要に応じて後でローテーションしてください)。
- ダイアログに貼り付けます。
Blandではウェブエージェントに名前がないため、インポーターは 挨拶(「Hi, this is Nova…」)またはプロンプト(「You are Nova…」)から名前を付けます。
| Blandフィールド | ThunderPhone |
|---|---|
ウェブエージェントのprompt, first_sentence, language, model, voice | プロンプト、開始メッセージ、言語、階層、最も近い音声 |
カスタムtools(name、url、method、input_schema、headers) | API接続 |
着信番号のpromptまたはpathway_id | 着信番号ごとに1つのエージェント |
| 番号に紐付いているかどうかを問わないすべてのパスウェイ | パスウェイごとに1つのエージェント |
| パスウェイのノードとエッジ(Default、Knowledge Base、Transfer Call、End Call、Webhook) | 順序付き通話手順、ナレッジベースノードのテキストはドキュメントになります。転送とWebhookは組み込み機能およびAPI接続になります |
transfer_phone_number | 引き継ぎセクション |
max_duration, webhook | レポートのみ、インポート対象外 |
| Bland所有の番号 | 移行不可としてレポート |
ThunderPhoneで対応が必要な項目
確認ページの下部にあるレポートには、移行されなかったすべての項目とその理由が一覧表示されます。
- 電話番号。 通信事業者で所有している番号は、VoIP番号として接続できます。プラットフォーム所有の番号は移行できません。新しい番号を取得し、インポートしたエージェントに紐付けてください。
- エージェントごとのWebhook。 ThunderPhoneでは組織ごとに署名付きWebhookを配信します。Webhookで設定してください。
- ベンダーに保存されている認証情報。 表示されていたツールヘッダーはコピーされます。旧プラットフォームがIDで保存していた認証情報にはフラグが付けられます。API接続のヘッダーに追加してください。
- 対応する機能がないツール(SMS送信、プラットフォーム固有の自動化)は、何も通知なく除外されないよう一覧表示されます。
- 通話時間の上限。 ThunderPhoneにはエージェントごとの最大通話時間はありません。代わりに、無音時の切断設定とプロンプトの終了ルールを使用してください。
キーを使わないインポート
エクスポートしたJSONを貼り付けを選択し、プラットフォームのAPIまたはダッシュボードからエクスポートしたオブジェクトを、単一のオブジェクトまたはJSONリストとして貼り付けます。
- Vapi — アシスタントオブジェクト(
GET /assistant/{id})。toolIdsで紐付けられたツールとナレッジファイルを解決するにはキーが必要です。 - Retell — エージェントオブジェクト(
GET /get-agent/{id})を、そのRetell LLM(GET /get-retell-llm/{id})または会話フローオブジェクトと一緒に同じリストへ含めます。インポーターはIDでこれらを紐付けます。LLMまたはフローだけを貼り付けた場合は、生成された名前でインポートされます。 - ElevenLabs — エージェントオブジェクト(
GET /v1/convai/agents/{id})。Webhookツールはインラインで含まれるため、未解決の項目は残りません。 - Bland — ウェブエージェント、
/v1/agentsのレスポンス、またはパスウェイオブジェクト。
IDでのみ参照され、貼り付け内容に含まれていない項目は、メモに一覧表示されます。
インポート後
- 各エージェントを開き、メモを確認します。
- ビルダーからテスト通話を実行します。
- 電話番号を紐付けます。
- リクエストテスターで各API接続をテストします。
- ナレッジドキュメントのインデックス作成が完了していることを確認します。
- 旧エージェントでWebhookを使用していた場合は、組織Webhookを設定します。
インポーターはREST APIでも利用できます。