다른 플랫폼에서 에이전트 가져오기
API 키 또는 JSON 내보내기를 사용하여 Vapi, Retell, ElevenLabs Agents 또는 Bland에서 에이전트, 도구, 지식 베이스를 가져오고, 매핑을 검토한 후 가져옵니다.
에이전트가 Vapi, Retell, ElevenLabs Agents 또는 Bland에 있는 경우, 가져오기 도구가 에이전트를 가져와 모든 필드를 ThunderPhone에 매핑하고, 무엇이 생성되기 전에 결과를 보여줍니다.
가져오기 시작
- 에이전트를 열고 가져오기를 선택합니다(또는 빈 에이전트 페이지에서 Vapi, Retell, ElevenLabs 또는 Bland에서 가져오기를 선택합니다).
- 플랫폼을 선택합니다.
- 대화 상자의 번호가 매겨진 단계를 따라 해당 플랫폼에서 키를 생성합니다(올바른 설정 페이지가 열립니다). 키를 붙여넣거나 내보낸 JSON 붙여넣기로 전환하여 해당 플랫폼의 대시보드 또는 API에서 하나 이상의 에이전트 객체를 붙여넣습니다.
- 내 에이전트 가져오기를 선택합니다. 가져오기와 매핑은 일반적으로 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는 계정당 하나의 키를 제공하며, 범위가 지정되지 않으므로 원한다면 이후에 교체합니다).
- 대화 상자에 붙여넣습니다.
웹 에이전트에는 Bland에서 이름이 없으므로, 가져오기 도구는 인사말("안녕하세요, 저는 Nova입니다…") 또는 프롬프트("당신은 Nova입니다…")에서 이름을 지정합니다.
| Bland 필드 | ThunderPhone |
|---|---|
웹 에이전트 prompt, first_sentence, language, model, voice | 프롬프트, 첫 인사말, 언어, 등급, 가장 유사한 음성 |
사용자 지정 tools (name, url, method, input_schema, headers) | API 연결 |
수신 번호 prompt 또는 pathway_id | 수신 번호당 하나의 에이전트 |
| 번호 연결 여부와 관계없는 모든 경로 | 경로당 하나의 에이전트 |
| 경로 노드 및 에지 (기본, 지식 베이스, 통화 연결, 통화 종료, 웹훅) | 순서가 있는 통화 절차, 지식 베이스 노드 텍스트는 문서가 되며 통화 연결과 웹훅은 내장 기능 및 API 연결이 됩니다 |
transfer_phone_number | 통화 넘김 섹션 |
max_duration, webhook | 보고되지만 가져오지 않음 |
| Bland 소유 번호 | 이전할 수 없는 번호로 보고됨 |
ThunderPhone에서 조치가 필요한 항목
검토 페이지 하단의 보고서에는 이전되지 않은 모든 항목과 그 이유가 나열됩니다.
- 전화번호. 통신사에서 보유한 번호는 VoIP 번호로 연결할 수 있습니다. 플랫폼 소유 번호는 이전할 수 없습니다. 새 번호를 발급하고 가져온 에이전트에 연결합니다.
- 에이전트별 웹훅. ThunderPhone은 조직별로 서명된 웹훅을 전송합니다. 웹훅에서 설정합니다.
- 공급업체에 저장된 자격 증명. 표시되었던 도구 헤더는 복사됩니다. 이전 플랫폼이 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})입니다. 웹훅 도구가 인라인으로 포함되어 있으므로 확인되지 않은 항목이 남지 않습니다. - Bland — 웹 에이전트,
/v1/agents응답 또는 경로 객체입니다.
ID로만 참조되고 붙여넣은 데이터에 없는 항목은 메모에 나열됩니다.
가져온 후
- 각 에이전트를 열고 메모를 읽습니다.
- 빌더에서 테스트 통화를 실행합니다.
- 전화번호를 연결합니다.
- 요청 테스터로 각 API 연결을 테스트합니다.
- 지식 문서의 인덱싱이 완료되었는지 확인합니다.
- 이전 에이전트에서 사용한 경우 조직 웹훅을 설정합니다.
가져오기 도구는 REST API에서도 사용할 수 있습니다.