@retell-ai/mcp-server 5.11.0 → 5.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/auth.d.mts.map +1 -1
- package/auth.d.ts.map +1 -1
- package/auth.js +4 -1
- package/auth.js.map +1 -1
- package/auth.mjs +4 -1
- package/auth.mjs.map +1 -1
- package/code-tool-worker.d.mts.map +1 -1
- package/code-tool-worker.d.ts.map +1 -1
- package/code-tool-worker.js +43 -2
- package/code-tool-worker.js.map +1 -1
- package/code-tool-worker.mjs +10 -2
- package/code-tool-worker.mjs.map +1 -1
- package/code-tool.js +5 -2
- package/code-tool.js.map +1 -1
- package/code-tool.mjs +6 -3
- package/code-tool.mjs.map +1 -1
- package/http.d.mts.map +1 -1
- package/http.d.ts.map +1 -1
- package/http.js +10 -3
- package/http.js.map +1 -1
- package/http.mjs +10 -3
- package/http.mjs.map +1 -1
- package/local-docs-search.d.mts.map +1 -1
- package/local-docs-search.d.ts.map +1 -1
- package/local-docs-search.js +221 -221
- package/local-docs-search.js.map +1 -1
- package/local-docs-search.mjs +221 -221
- package/local-docs-search.mjs.map +1 -1
- package/package.json +2 -2
- package/server.d.mts.map +1 -1
- package/server.d.ts.map +1 -1
- package/server.js +1 -3
- package/server.js.map +1 -1
- package/server.mjs +1 -3
- package/server.mjs.map +1 -1
- package/src/auth.ts +5 -1
- package/src/code-tool-worker.ts +10 -2
- package/src/code-tool.ts +9 -3
- package/src/http.ts +14 -5
- package/src/local-docs-search.ts +227 -221
- package/src/server.ts +1 -2
package/local-docs-search.js
CHANGED
|
@@ -66,15 +66,15 @@ const EMBEDDED_METHODS = [
|
|
|
66
66
|
markdown: "## create-phone-call\n\n`client.call.createPhoneCall(from_number: string, to_number: string, agent_override?: { agent?: { agent_name?: string; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; custom_stt_config?: object; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: object; handbook_config?: object; interruption_sensitivity?: number; is_public?: boolean; ivr_option?: object; language?: string; max_call_duration_ms?: number; normalize_for_speech?: boolean; opt_in_signed_url?: boolean; pii_config?: object; post_call_analysis_data?: object | object | object | object | object[]; post_call_analysis_model?: string; pronunciation_dictionary?: object[]; reminder_max_count?: number; reminder_trigger_ms?: number; response_engine?: object | object | object; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: object; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: object; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: object; knowledge_base_ids?: string[]; model_choice?: object; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: object; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; }, custom_sip_headers?: object, ignore_e164_validation?: boolean, metadata?: object, override_agent_id?: string, override_agent_version?: number, retell_llm_dynamic_variables?: object): { agent_id: string; agent_version: number; call_id: string; call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'; call_type: 'phone_call'; direction: 'inbound' | 'outbound'; from_number: string; to_number: string; agent_name?: string; call_analysis?: object; call_cost?: object; collected_dynamic_variables?: object; custom_sip_headers?: object; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; disconnection_reason?: string; duration_ms?: number; end_timestamp?: number; knowledge_base_retrieved_contents_url?: string; latency?: object; llm_token_usage?: object; metadata?: object; opt_in_signed_url?: boolean; public_log_url?: string; recording_multi_channel_url?: string; recording_url?: string; retell_llm_dynamic_variables?: object; scrubbed_recording_multi_channel_url?: string; scrubbed_recording_url?: string; scrubbed_transcript_with_tool_calls?: object | object | object | object | object[]; start_timestamp?: number; telephony_identifier?: object; transcript?: string; transcript_object?: object[]; transcript_with_tool_calls?: object | object | object | object | object[]; transfer_destination?: string; transfer_end_timestamp?: number; }`\n\n**post** `/v2/create-phone-call`\n\nCreate a new outbound phone call\n\n### Parameters\n\n- `from_number: string`\n The number you own in E.164 format. Must be a number purchased from Retell or imported to Retell.\n\n- `to_number: string`\n The number you want to call, in E.164 format. If using a number purchased from Retell, only US numbers are supported as destination.\n\n- `agent_override?: { agent?: { agent_name?: string; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_public?: boolean; ivr_option?: { action: { type: 'hangup'; }; }; language?: string; max_call_duration_ms?: number; normalize_for_speech?: boolean; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; response_engine?: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; }`\n For this particular call, override agent configuration with these settings. This allows you to customize agent behavior for individual calls without modifying the base agent.\n - `agent?: { agent_name?: string; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_public?: boolean; ivr_option?: { action: { type: 'hangup'; }; }; language?: string; max_call_duration_ms?: number; normalize_for_speech?: boolean; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; response_engine?: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n Override agent configuration settings. Any properties specified here will override the base agent configuration for this call.\n - `conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }`\n Override conversation flow configuration settings. Only applicable when using conversation flow as the response engine. Supported attributes - model_choice, model_temperature, tool_call_strict_mode, knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms.\n - `retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }`\n Override Retell LLM configuration settings. Only applicable when using Retell LLM as the response engine. Supported attributes - model, s2s_model, model_temperature, model_high_priority, tool_call_strict_mode, knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms, begin_message.\n\n- `custom_sip_headers?: object`\n Add optional custom SIP headers to the call.\n\n- `ignore_e164_validation?: boolean`\n If true, the e.164 validation will be ignored for the from_number. This can be useful when you want to dial to internal pseudo numbers. This only applies when you are using custom telephony and does not apply when you are using Retell Telephony. If omitted, the default value is false.\n\n- `metadata?: object`\n An arbitrary object for storage purpose only. You can put anything here like your internal customer id associated with the call. Not used for processing. You can later get this field from the call object.\n\n- `override_agent_id?: string`\n For this particular call, override the agent used with this agent id. This does not bind the agent to this number, this is for one time override.\n\n- `override_agent_version?: number`\n For this particular call, override the agent version used with this version. This does not bind the agent version to this number, this is for one time override.\n\n- `retell_llm_dynamic_variables?: object`\n Add optional dynamic variables in key value pairs of string that injects into your Response Engine prompt and tool description. Only applicable for Response Engine.\n\n### Returns\n\n- `{ agent_id: string; agent_version: number; call_id: string; call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'; call_type: 'phone_call'; direction: 'inbound' | 'outbound'; from_number: string; to_number: string; agent_name?: string; call_analysis?: { call_successful?: boolean; call_summary?: string; custom_analysis_data?: object; in_voicemail?: boolean; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }; call_cost?: { combined_cost: number; product_costs: { cost: number; product: string; is_transfer_leg_cost?: boolean; unit_price?: number; }[]; total_duration_seconds: number; total_duration_unit_price: number; }; collected_dynamic_variables?: object; custom_sip_headers?: object; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; disconnection_reason?: string; duration_ms?: number; end_timestamp?: number; knowledge_base_retrieved_contents_url?: string; latency?: { asr?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; e2e?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; knowledge_base?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; llm?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; llm_websocket_network_rtt?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; s2s?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; tts?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; }; llm_token_usage?: { average: number; num_requests: number; values: number[]; }; metadata?: object; opt_in_signed_url?: boolean; public_log_url?: string; recording_multi_channel_url?: string; recording_url?: string; retell_llm_dynamic_variables?: object; scrubbed_recording_multi_channel_url?: string; scrubbed_recording_url?: string; scrubbed_transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; } | { digit: string; role: 'dtmf'; }[]; start_timestamp?: number; telephony_identifier?: { twilio_call_sid?: string; }; transcript?: string; transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; }[]; transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; } | { digit: string; role: 'dtmf'; }[]; transfer_destination?: string; transfer_end_timestamp?: number; }`\n\n - `agent_id: string`\n - `agent_version: number`\n - `call_id: string`\n - `call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'`\n - `call_type: 'phone_call'`\n - `direction: 'inbound' | 'outbound'`\n - `from_number: string`\n - `to_number: string`\n - `agent_name?: string`\n - `call_analysis?: { call_successful?: boolean; call_summary?: string; custom_analysis_data?: object; in_voicemail?: boolean; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }`\n - `call_cost?: { combined_cost: number; product_costs: { cost: number; product: string; is_transfer_leg_cost?: boolean; unit_price?: number; }[]; total_duration_seconds: number; total_duration_unit_price: number; }`\n - `collected_dynamic_variables?: object`\n - `custom_sip_headers?: object`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `disconnection_reason?: string`\n - `duration_ms?: number`\n - `end_timestamp?: number`\n - `knowledge_base_retrieved_contents_url?: string`\n - `latency?: { asr?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; e2e?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; knowledge_base?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; llm?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; llm_websocket_network_rtt?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; s2s?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; tts?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; }`\n - `llm_token_usage?: { average: number; num_requests: number; values: number[]; }`\n - `metadata?: object`\n - `opt_in_signed_url?: boolean`\n - `public_log_url?: string`\n - `recording_multi_channel_url?: string`\n - `recording_url?: string`\n - `retell_llm_dynamic_variables?: object`\n - `scrubbed_recording_multi_channel_url?: string`\n - `scrubbed_recording_url?: string`\n - `scrubbed_transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; } | { digit: string; role: 'dtmf'; }[]`\n - `start_timestamp?: number`\n - `telephony_identifier?: { twilio_call_sid?: string; }`\n - `transcript?: string`\n - `transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; }[]`\n - `transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; } | { digit: string; role: 'dtmf'; }[]`\n - `transfer_destination?: string`\n - `transfer_end_timestamp?: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst phoneCallResponse = await client.call.createPhoneCall({ from_number: '+14157774444', to_number: '+12137774445' });\n\nconsole.log(phoneCallResponse);\n```",
|
|
67
67
|
perLanguage: {
|
|
68
68
|
http: {
|
|
69
|
-
example: 'curl https://api.retellai.com/v2/create-phone-call \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
69
|
+
example: 'curl https://api.retellai.com/v2/create-phone-call \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n --max-time 120 \\\n -d \'{\n "from_number": "+14157774444",\n "to_number": "+12137774445",\n "custom_sip_headers": {\n "X-Custom-Header": "Custom Value"\n },\n "ignore_e164_validation": true,\n "override_agent_id": "oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",\n "override_agent_version": 1,\n "retell_llm_dynamic_variables": {\n "customer_name": "bar"\n }\n }\'',
|
|
70
70
|
},
|
|
71
71
|
python: {
|
|
72
72
|
method: 'call.create_phone_call',
|
|
73
|
-
example: '
|
|
73
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nphone_call_response = client.call.create_phone_call(\n from_number="+14157774444",\n to_number="+12137774445",\n)\nprint(phone_call_response.agent_id)',
|
|
74
74
|
},
|
|
75
75
|
typescript: {
|
|
76
76
|
method: 'client.call.createPhoneCall',
|
|
77
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
77
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst phoneCallResponse = await client.call.createPhoneCall({\n from_number: '+14157774444',\n to_number: '+12137774445',\n});\n\nconsole.log(phoneCallResponse.agent_id);",
|
|
78
78
|
},
|
|
79
79
|
},
|
|
80
80
|
},
|
|
@@ -100,15 +100,15 @@ const EMBEDDED_METHODS = [
|
|
|
100
100
|
markdown: "## register-phone-call\n\n`client.call.registerPhoneCall(agent_id: string, agent_override?: { agent?: { agent_name?: string; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; custom_stt_config?: object; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: object; handbook_config?: object; interruption_sensitivity?: number; is_public?: boolean; ivr_option?: object; language?: string; max_call_duration_ms?: number; normalize_for_speech?: boolean; opt_in_signed_url?: boolean; pii_config?: object; post_call_analysis_data?: object | object | object | object | object[]; post_call_analysis_model?: string; pronunciation_dictionary?: object[]; reminder_max_count?: number; reminder_trigger_ms?: number; response_engine?: object | object | object; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: object; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: object; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: object; knowledge_base_ids?: string[]; model_choice?: object; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: object; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; }, agent_version?: number, direction?: 'inbound' | 'outbound', from_number?: string, metadata?: object, retell_llm_dynamic_variables?: object, to_number?: string): { agent_id: string; agent_version: number; call_id: string; call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'; call_type: 'phone_call'; direction: 'inbound' | 'outbound'; from_number: string; to_number: string; agent_name?: string; call_analysis?: object; call_cost?: object; collected_dynamic_variables?: object; custom_sip_headers?: object; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; disconnection_reason?: string; duration_ms?: number; end_timestamp?: number; knowledge_base_retrieved_contents_url?: string; latency?: object; llm_token_usage?: object; metadata?: object; opt_in_signed_url?: boolean; public_log_url?: string; recording_multi_channel_url?: string; recording_url?: string; retell_llm_dynamic_variables?: object; scrubbed_recording_multi_channel_url?: string; scrubbed_recording_url?: string; scrubbed_transcript_with_tool_calls?: object | object | object | object | object[]; start_timestamp?: number; telephony_identifier?: object; transcript?: string; transcript_object?: object[]; transcript_with_tool_calls?: object | object | object | object | object[]; transfer_destination?: string; transfer_end_timestamp?: number; }`\n\n**post** `/v2/register-phone-call`\n\nRegister a new phone call for custom telephony\n\n### Parameters\n\n- `agent_id: string`\n The agent to use for the call.\n\n- `agent_override?: { agent?: { agent_name?: string; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_public?: boolean; ivr_option?: { action: { type: 'hangup'; }; }; language?: string; max_call_duration_ms?: number; normalize_for_speech?: boolean; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; response_engine?: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; }`\n For this particular call, override agent configuration with these settings. This allows you to customize agent behavior for individual calls without modifying the base agent.\n - `agent?: { agent_name?: string; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_public?: boolean; ivr_option?: { action: { type: 'hangup'; }; }; language?: string; max_call_duration_ms?: number; normalize_for_speech?: boolean; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; response_engine?: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n Override agent configuration settings. Any properties specified here will override the base agent configuration for this call.\n - `conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }`\n Override conversation flow configuration settings. Only applicable when using conversation flow as the response engine. Supported attributes - model_choice, model_temperature, tool_call_strict_mode, knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms.\n - `retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }`\n Override Retell LLM configuration settings. Only applicable when using Retell LLM as the response engine. Supported attributes - model, s2s_model, model_temperature, model_high_priority, tool_call_strict_mode, knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms, begin_message.\n\n- `agent_version?: number`\n The version of the agent to use for the call.\n\n- `direction?: 'inbound' | 'outbound'`\n Direction of the phone call. Stored for tracking purpose.\n\n- `from_number?: string`\n The number you own in E.164 format. Stored for tracking purpose.\n\n- `metadata?: object`\n An arbitrary object for storage purpose only. You can put anything here like your internal customer id associated with the call. Not used for processing. You can later get this field from the call object.\n\n- `retell_llm_dynamic_variables?: object`\n Add optional dynamic variables in key value pairs of string that injects into your Response Engine prompt and tool description. Only applicable for Response Engine.\n\n- `to_number?: string`\n The number you want to call, in E.164 format. Stored for tracking purpose.\n\n### Returns\n\n- `{ agent_id: string; agent_version: number; call_id: string; call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'; call_type: 'phone_call'; direction: 'inbound' | 'outbound'; from_number: string; to_number: string; agent_name?: string; call_analysis?: { call_successful?: boolean; call_summary?: string; custom_analysis_data?: object; in_voicemail?: boolean; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }; call_cost?: { combined_cost: number; product_costs: { cost: number; product: string; is_transfer_leg_cost?: boolean; unit_price?: number; }[]; total_duration_seconds: number; total_duration_unit_price: number; }; collected_dynamic_variables?: object; custom_sip_headers?: object; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; disconnection_reason?: string; duration_ms?: number; end_timestamp?: number; knowledge_base_retrieved_contents_url?: string; latency?: { asr?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; e2e?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; knowledge_base?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; llm?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; llm_websocket_network_rtt?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; s2s?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; tts?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; }; llm_token_usage?: { average: number; num_requests: number; values: number[]; }; metadata?: object; opt_in_signed_url?: boolean; public_log_url?: string; recording_multi_channel_url?: string; recording_url?: string; retell_llm_dynamic_variables?: object; scrubbed_recording_multi_channel_url?: string; scrubbed_recording_url?: string; scrubbed_transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; } | { digit: string; role: 'dtmf'; }[]; start_timestamp?: number; telephony_identifier?: { twilio_call_sid?: string; }; transcript?: string; transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; }[]; transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; } | { digit: string; role: 'dtmf'; }[]; transfer_destination?: string; transfer_end_timestamp?: number; }`\n\n - `agent_id: string`\n - `agent_version: number`\n - `call_id: string`\n - `call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'`\n - `call_type: 'phone_call'`\n - `direction: 'inbound' | 'outbound'`\n - `from_number: string`\n - `to_number: string`\n - `agent_name?: string`\n - `call_analysis?: { call_successful?: boolean; call_summary?: string; custom_analysis_data?: object; in_voicemail?: boolean; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }`\n - `call_cost?: { combined_cost: number; product_costs: { cost: number; product: string; is_transfer_leg_cost?: boolean; unit_price?: number; }[]; total_duration_seconds: number; total_duration_unit_price: number; }`\n - `collected_dynamic_variables?: object`\n - `custom_sip_headers?: object`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `disconnection_reason?: string`\n - `duration_ms?: number`\n - `end_timestamp?: number`\n - `knowledge_base_retrieved_contents_url?: string`\n - `latency?: { asr?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; e2e?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; knowledge_base?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; llm?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; llm_websocket_network_rtt?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; s2s?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; tts?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; }`\n - `llm_token_usage?: { average: number; num_requests: number; values: number[]; }`\n - `metadata?: object`\n - `opt_in_signed_url?: boolean`\n - `public_log_url?: string`\n - `recording_multi_channel_url?: string`\n - `recording_url?: string`\n - `retell_llm_dynamic_variables?: object`\n - `scrubbed_recording_multi_channel_url?: string`\n - `scrubbed_recording_url?: string`\n - `scrubbed_transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; } | { digit: string; role: 'dtmf'; }[]`\n - `start_timestamp?: number`\n - `telephony_identifier?: { twilio_call_sid?: string; }`\n - `transcript?: string`\n - `transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; }[]`\n - `transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; } | { digit: string; role: 'dtmf'; }[]`\n - `transfer_destination?: string`\n - `transfer_end_timestamp?: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst phoneCallResponse = await client.call.registerPhoneCall({ agent_id: 'oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD' });\n\nconsole.log(phoneCallResponse);\n```",
|
|
101
101
|
perLanguage: {
|
|
102
102
|
http: {
|
|
103
|
-
example: 'curl https://api.retellai.com/v2/register-phone-call \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
103
|
+
example: 'curl https://api.retellai.com/v2/register-phone-call \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d \'{\n "agent_id": "oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",\n "agent_version": 1,\n "direction": "inbound",\n "from_number": "+14157774444",\n "retell_llm_dynamic_variables": {\n "customer_name": "bar"\n },\n "to_number": "+12137774445"\n }\'',
|
|
104
104
|
},
|
|
105
105
|
python: {
|
|
106
106
|
method: 'call.register_phone_call',
|
|
107
|
-
example: '
|
|
107
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nphone_call_response = client.call.register_phone_call(\n agent_id="oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",\n)\nprint(phone_call_response.agent_id)',
|
|
108
108
|
},
|
|
109
109
|
typescript: {
|
|
110
110
|
method: 'client.call.registerPhoneCall',
|
|
111
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
111
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst phoneCallResponse = await client.call.registerPhoneCall({\n agent_id: 'oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD',\n});\n\nconsole.log(phoneCallResponse.agent_id);",
|
|
112
112
|
},
|
|
113
113
|
},
|
|
114
114
|
},
|
|
@@ -133,15 +133,15 @@ const EMBEDDED_METHODS = [
|
|
|
133
133
|
markdown: "## create-web-call\n\n`client.call.createWebCall(agent_id: string, agent_override?: { agent?: { agent_name?: string; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; custom_stt_config?: object; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: object; handbook_config?: object; interruption_sensitivity?: number; is_public?: boolean; ivr_option?: object; language?: string; max_call_duration_ms?: number; normalize_for_speech?: boolean; opt_in_signed_url?: boolean; pii_config?: object; post_call_analysis_data?: object | object | object | object | object[]; post_call_analysis_model?: string; pronunciation_dictionary?: object[]; reminder_max_count?: number; reminder_trigger_ms?: number; response_engine?: object | object | object; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: object; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: object; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: object; knowledge_base_ids?: string[]; model_choice?: object; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: object; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; }, agent_version?: number, current_node_id?: string, current_state?: string, metadata?: object, retell_llm_dynamic_variables?: object): { access_token: string; agent_id: string; agent_version: number; call_id: string; call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'; call_type: 'web_call'; agent_name?: string; call_analysis?: object; call_cost?: object; collected_dynamic_variables?: object; custom_sip_headers?: object; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; disconnection_reason?: string; duration_ms?: number; end_timestamp?: number; knowledge_base_retrieved_contents_url?: string; latency?: object; llm_token_usage?: object; metadata?: object; opt_in_signed_url?: boolean; public_log_url?: string; recording_multi_channel_url?: string; recording_url?: string; retell_llm_dynamic_variables?: object; scrubbed_recording_multi_channel_url?: string; scrubbed_recording_url?: string; scrubbed_transcript_with_tool_calls?: object | object | object | object | object[]; start_timestamp?: number; transcript?: string; transcript_object?: object[]; transcript_with_tool_calls?: object | object | object | object | object[]; transfer_destination?: string; transfer_end_timestamp?: number; }`\n\n**post** `/v2/create-web-call`\n\nCreate a new web call\n\n### Parameters\n\n- `agent_id: string`\n Unique id of agent used for the call. Your agent would contain the LLM Websocket url used for this call.\n\n- `agent_override?: { agent?: { agent_name?: string; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_public?: boolean; ivr_option?: { action: { type: 'hangup'; }; }; language?: string; max_call_duration_ms?: number; normalize_for_speech?: boolean; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; response_engine?: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; }`\n For this particular call, override agent configuration with these settings. This allows you to customize agent behavior for individual calls without modifying the base agent.\n - `agent?: { agent_name?: string; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_public?: boolean; ivr_option?: { action: { type: 'hangup'; }; }; language?: string; max_call_duration_ms?: number; normalize_for_speech?: boolean; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; response_engine?: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n Override agent configuration settings. Any properties specified here will override the base agent configuration for this call.\n - `conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }`\n Override conversation flow configuration settings. Only applicable when using conversation flow as the response engine. Supported attributes - model_choice, model_temperature, tool_call_strict_mode, knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms.\n - `retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }`\n Override Retell LLM configuration settings. Only applicable when using Retell LLM as the response engine. Supported attributes - model, s2s_model, model_temperature, model_high_priority, tool_call_strict_mode, knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms, begin_message.\n\n- `agent_version?: number`\n The version of the agent to use for the call.\n\n- `current_node_id?: string`\n Start the call at this conversation flow node (stage). Must be a valid node id in the agent's conversation flow. Only applicable when the agent uses conversation flow as the response engine. Ignored for retell-llm agents.\n\n- `current_state?: string`\n Start the conversation in this state (stage). Must be a valid state name in the agent's Retell LLM. Only applicable when the agent uses Retell LLM with states. Ignored for conversation-flow agents.\n\n- `metadata?: object`\n An arbitrary object for storage purpose only. You can put anything here like your internal customer id associated with the call. Not used for processing. You can later get this field from the call object.\n\n- `retell_llm_dynamic_variables?: object`\n Add optional dynamic variables in key value pairs of string that injects into your Response Engine prompt and tool description. Only applicable for Response Engine.\n\n### Returns\n\n- `{ access_token: string; agent_id: string; agent_version: number; call_id: string; call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'; call_type: 'web_call'; agent_name?: string; call_analysis?: { call_successful?: boolean; call_summary?: string; custom_analysis_data?: object; in_voicemail?: boolean; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }; call_cost?: { combined_cost: number; product_costs: { cost: number; product: string; is_transfer_leg_cost?: boolean; unit_price?: number; }[]; total_duration_seconds: number; total_duration_unit_price: number; }; collected_dynamic_variables?: object; custom_sip_headers?: object; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; disconnection_reason?: string; duration_ms?: number; end_timestamp?: number; knowledge_base_retrieved_contents_url?: string; latency?: { asr?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; e2e?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; knowledge_base?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; llm?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; llm_websocket_network_rtt?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; s2s?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; tts?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; }; llm_token_usage?: { average: number; num_requests: number; values: number[]; }; metadata?: object; opt_in_signed_url?: boolean; public_log_url?: string; recording_multi_channel_url?: string; recording_url?: string; retell_llm_dynamic_variables?: object; scrubbed_recording_multi_channel_url?: string; scrubbed_recording_url?: string; scrubbed_transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; } | { digit: string; role: 'dtmf'; }[]; start_timestamp?: number; transcript?: string; transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; }[]; transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; } | { digit: string; role: 'dtmf'; }[]; transfer_destination?: string; transfer_end_timestamp?: number; }`\n\n - `access_token: string`\n - `agent_id: string`\n - `agent_version: number`\n - `call_id: string`\n - `call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'`\n - `call_type: 'web_call'`\n - `agent_name?: string`\n - `call_analysis?: { call_successful?: boolean; call_summary?: string; custom_analysis_data?: object; in_voicemail?: boolean; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }`\n - `call_cost?: { combined_cost: number; product_costs: { cost: number; product: string; is_transfer_leg_cost?: boolean; unit_price?: number; }[]; total_duration_seconds: number; total_duration_unit_price: number; }`\n - `collected_dynamic_variables?: object`\n - `custom_sip_headers?: object`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `disconnection_reason?: string`\n - `duration_ms?: number`\n - `end_timestamp?: number`\n - `knowledge_base_retrieved_contents_url?: string`\n - `latency?: { asr?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; e2e?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; knowledge_base?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; llm?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; llm_websocket_network_rtt?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; s2s?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; tts?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; }`\n - `llm_token_usage?: { average: number; num_requests: number; values: number[]; }`\n - `metadata?: object`\n - `opt_in_signed_url?: boolean`\n - `public_log_url?: string`\n - `recording_multi_channel_url?: string`\n - `recording_url?: string`\n - `retell_llm_dynamic_variables?: object`\n - `scrubbed_recording_multi_channel_url?: string`\n - `scrubbed_recording_url?: string`\n - `scrubbed_transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; } | { digit: string; role: 'dtmf'; }[]`\n - `start_timestamp?: number`\n - `transcript?: string`\n - `transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; }[]`\n - `transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; } | { digit: string; role: 'dtmf'; }[]`\n - `transfer_destination?: string`\n - `transfer_end_timestamp?: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst webCallResponse = await client.call.createWebCall({ agent_id: 'oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD' });\n\nconsole.log(webCallResponse);\n```",
|
|
134
134
|
perLanguage: {
|
|
135
135
|
http: {
|
|
136
|
-
example: 'curl https://api.retellai.com/v2/create-web-call \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
136
|
+
example: 'curl https://api.retellai.com/v2/create-web-call \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d \'{\n "agent_id": "oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",\n "agent_version": 1,\n "current_node_id": "collect_info",\n "current_state": "information_collection",\n "retell_llm_dynamic_variables": {\n "customer_name": "bar"\n }\n }\'',
|
|
137
137
|
},
|
|
138
138
|
python: {
|
|
139
139
|
method: 'call.create_web_call',
|
|
140
|
-
example: '
|
|
140
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nweb_call_response = client.call.create_web_call(\n agent_id="oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",\n)\nprint(web_call_response.agent_id)',
|
|
141
141
|
},
|
|
142
142
|
typescript: {
|
|
143
143
|
method: 'client.call.createWebCall',
|
|
144
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
144
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst webCallResponse = await client.call.createWebCall({\n agent_id: 'oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD',\n});\n\nconsole.log(webCallResponse.agent_id);",
|
|
145
145
|
},
|
|
146
146
|
},
|
|
147
147
|
},
|
|
@@ -158,15 +158,15 @@ const EMBEDDED_METHODS = [
|
|
|
158
158
|
markdown: "## retrieve\n\n`client.call.retrieve(call_id: string): object | object`\n\n**get** `/v2/get-call/{call_id}`\n\nRetrieve details of a specific call\n\n### Parameters\n\n- `call_id: string`\n\n### Returns\n\n- `{ access_token: string; agent_id: string; agent_version: number; call_id: string; call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'; call_type: 'web_call'; agent_name?: string; call_analysis?: { call_successful?: boolean; call_summary?: string; custom_analysis_data?: object; in_voicemail?: boolean; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }; call_cost?: { combined_cost: number; product_costs: object[]; total_duration_seconds: number; total_duration_unit_price: number; }; collected_dynamic_variables?: object; custom_sip_headers?: object; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; disconnection_reason?: string; duration_ms?: number; end_timestamp?: number; knowledge_base_retrieved_contents_url?: string; latency?: { asr?: object; e2e?: object; knowledge_base?: object; llm?: object; llm_websocket_network_rtt?: object; s2s?: object; tts?: object; }; llm_token_usage?: { average: number; num_requests: number; values: number[]; }; metadata?: object; opt_in_signed_url?: boolean; public_log_url?: string; recording_multi_channel_url?: string; recording_url?: string; retell_llm_dynamic_variables?: object; scrubbed_recording_multi_channel_url?: string; scrubbed_recording_url?: string; scrubbed_transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; } | { digit: string; role: 'dtmf'; }[]; start_timestamp?: number; transcript?: string; transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; }[]; transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; } | { digit: string; role: 'dtmf'; }[]; transfer_destination?: string; transfer_end_timestamp?: number; } | { agent_id: string; agent_version: number; call_id: string; call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'; call_type: 'phone_call'; direction: 'inbound' | 'outbound'; from_number: string; to_number: string; agent_name?: string; call_analysis?: { call_successful?: boolean; call_summary?: string; custom_analysis_data?: object; in_voicemail?: boolean; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }; call_cost?: { combined_cost: number; product_costs: object[]; total_duration_seconds: number; total_duration_unit_price: number; }; collected_dynamic_variables?: object; custom_sip_headers?: object; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; disconnection_reason?: string; duration_ms?: number; end_timestamp?: number; knowledge_base_retrieved_contents_url?: string; latency?: { asr?: object; e2e?: object; knowledge_base?: object; llm?: object; llm_websocket_network_rtt?: object; s2s?: object; tts?: object; }; llm_token_usage?: { average: number; num_requests: number; values: number[]; }; metadata?: object; opt_in_signed_url?: boolean; public_log_url?: string; recording_multi_channel_url?: string; recording_url?: string; retell_llm_dynamic_variables?: object; scrubbed_recording_multi_channel_url?: string; scrubbed_recording_url?: string; scrubbed_transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; } | { digit: string; role: 'dtmf'; }[]; start_timestamp?: number; telephony_identifier?: { twilio_call_sid?: string; }; transcript?: string; transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; }[]; transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; } | { digit: string; role: 'dtmf'; }[]; transfer_destination?: string; transfer_end_timestamp?: number; }`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst callResponse = await client.call.retrieve('119c3f8e47135a29e65947eeb34cf12d');\n\nconsole.log(callResponse);\n```",
|
|
159
159
|
perLanguage: {
|
|
160
160
|
http: {
|
|
161
|
-
example: 'curl https://api.retellai.com/v2/get-call/$CALL_ID \\\n -H "Authorization: Bearer $
|
|
161
|
+
example: 'curl https://api.retellai.com/v2/get-call/$CALL_ID \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
162
162
|
},
|
|
163
163
|
python: {
|
|
164
164
|
method: 'call.retrieve',
|
|
165
|
-
example: '
|
|
165
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\ncall_response = client.call.retrieve(\n "119c3f8e47135a29e65947eeb34cf12d",\n)\nprint(call_response)',
|
|
166
166
|
},
|
|
167
167
|
typescript: {
|
|
168
168
|
method: 'client.call.retrieve',
|
|
169
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
169
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst callResponse = await client.call.retrieve('119c3f8e47135a29e65947eeb34cf12d');\n\nconsole.log(callResponse);",
|
|
170
170
|
},
|
|
171
171
|
},
|
|
172
172
|
},
|
|
@@ -188,15 +188,15 @@ const EMBEDDED_METHODS = [
|
|
|
188
188
|
markdown: "## list\n\n`client.call.list(filter_criteria?: { agent_id?: string[]; batch_call_id?: string[]; call_id?: string[]; call_status?: 'not_connected' | 'ongoing' | 'ended' | 'error'[]; call_successful?: boolean[]; call_type?: 'web_call' | 'phone_call'[]; direction?: 'inbound' | 'outbound'[]; disconnection_reason?: string[]; duration_ms?: { lower_threshold?: number; upper_threshold?: number; }; dynamic_variables?: object; e2e_latency_p50?: { lower_threshold?: number; upper_threshold?: number; }; end_timestamp?: { lower_threshold?: number; upper_threshold?: number; }; from_number?: string[]; in_voicemail?: boolean[]; metadata?: object; start_timestamp?: { lower_threshold?: number; upper_threshold?: number; }; to_number?: string[]; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'[]; version?: number[]; }, limit?: number, pagination_key?: string, sort_order?: 'ascending' | 'descending'): web_call_response | phone_call_response[]`\n\n**post** `/v2/list-calls`\n\nRetrieve call details\n\n### Parameters\n\n- `filter_criteria?: { agent_id?: string[]; batch_call_id?: string[]; call_id?: string[]; call_status?: 'not_connected' | 'ongoing' | 'ended' | 'error'[]; call_successful?: boolean[]; call_type?: 'web_call' | 'phone_call'[]; direction?: 'inbound' | 'outbound'[]; disconnection_reason?: string[]; duration_ms?: { lower_threshold?: number; upper_threshold?: number; }; dynamic_variables?: object; e2e_latency_p50?: { lower_threshold?: number; upper_threshold?: number; }; end_timestamp?: { lower_threshold?: number; upper_threshold?: number; }; from_number?: string[]; in_voicemail?: boolean[]; metadata?: object; start_timestamp?: { lower_threshold?: number; upper_threshold?: number; }; to_number?: string[]; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'[]; version?: number[]; }`\n Filter criteria for the calls to retrieve.\n - `agent_id?: string[]`\n Only retrieve calls that are made with specific agent(s).\n - `batch_call_id?: string[]`\n Only retrieve calls with specific batch call id(s).\n - `call_id?: string[]`\n Only retrieve calls with specific call id(s).\n - `call_status?: 'not_connected' | 'ongoing' | 'ended' | 'error'[]`\n Only retrieve calls with specific call status(es).\n - `call_successful?: boolean[]`\n Only retrieve calls with specific call successful(s).\n - `call_type?: 'web_call' | 'phone_call'[]`\n Only retrieve calls with specific call type(s).\n - `direction?: 'inbound' | 'outbound'[]`\n Only retrieve calls with specific direction(s).\n - `disconnection_reason?: string[]`\n Only retrieve calls with specific disconnection reason(s).\n - `duration_ms?: { lower_threshold?: number; upper_threshold?: number; }`\n Only retrieve calls with specific range of duration(s).\n - `dynamic_variables?: object`\n Filter by dynamic variables using dot notation (e.g., `dynamic_variables.name`).\nValues are matched exactly as strings.\n\n - `e2e_latency_p50?: { lower_threshold?: number; upper_threshold?: number; }`\n - `end_timestamp?: { lower_threshold?: number; upper_threshold?: number; }`\n Only retrieve calls with specific range of end timestamp(s).\n - `from_number?: string[]`\n Only retrieve calls with specific from number(s).\n - `in_voicemail?: boolean[]`\n Only retrieve calls that are in voicemail or not in voicemail.\n - `metadata?: object`\n Filter by metadata fields using dot notation (e.g., `metadata.customer_id`).\nValues are matched exactly as strings.\n\n - `start_timestamp?: { lower_threshold?: number; upper_threshold?: number; }`\n Only retrieve calls with specific range of start timestamp(s).\n - `to_number?: string[]`\n Only retrieve calls with specific to number(s).\n - `user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'[]`\n Only retrieve calls with specific user sentiment(s).\n - `version?: number[]`\n The version of the agent to use for the call.\n\n- `limit?: number`\n Limit the number of calls returned. Default 50, Max 1000. To retrieve more than 1000, use pagination_key to continue fetching the next page.\n\n- `pagination_key?: string`\n The pagination key to continue fetching the next page of calls. Pagination key is represented by a call id here, and it's exclusive (not included in the fetched calls). The last call id from the list calls is usually used as pagination key here. If not set, will start from the beginning.\n\n- `sort_order?: 'ascending' | 'descending'`\n The calls will be sorted by `start_timestamp`, whether to return the calls in ascending or descending order.\n\n### Returns\n\n- `{ access_token: string; agent_id: string; agent_version: number; call_id: string; call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'; call_type: 'web_call'; agent_name?: string; call_analysis?: object; call_cost?: object; collected_dynamic_variables?: object; custom_sip_headers?: object; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; disconnection_reason?: string; duration_ms?: number; end_timestamp?: number; knowledge_base_retrieved_contents_url?: string; latency?: object; llm_token_usage?: object; metadata?: object; opt_in_signed_url?: boolean; public_log_url?: string; recording_multi_channel_url?: string; recording_url?: string; retell_llm_dynamic_variables?: object; scrubbed_recording_multi_channel_url?: string; scrubbed_recording_url?: string; scrubbed_transcript_with_tool_calls?: object | object | object | object | object[]; start_timestamp?: number; transcript?: string; transcript_object?: object[]; transcript_with_tool_calls?: object | object | object | object | object[]; transfer_destination?: string; transfer_end_timestamp?: number; } | { agent_id: string; agent_version: number; call_id: string; call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'; call_type: 'phone_call'; direction: 'inbound' | 'outbound'; from_number: string; to_number: string; agent_name?: string; call_analysis?: object; call_cost?: object; collected_dynamic_variables?: object; custom_sip_headers?: object; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; disconnection_reason?: string; duration_ms?: number; end_timestamp?: number; knowledge_base_retrieved_contents_url?: string; latency?: object; llm_token_usage?: object; metadata?: object; opt_in_signed_url?: boolean; public_log_url?: string; recording_multi_channel_url?: string; recording_url?: string; retell_llm_dynamic_variables?: object; scrubbed_recording_multi_channel_url?: string; scrubbed_recording_url?: string; scrubbed_transcript_with_tool_calls?: object | object | object | object | object[]; start_timestamp?: number; telephony_identifier?: object; transcript?: string; transcript_object?: object[]; transcript_with_tool_calls?: object | object | object | object | object[]; transfer_destination?: string; transfer_end_timestamp?: number; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst callResponses = await client.call.list();\n\nconsole.log(callResponses);\n```",
|
|
189
189
|
perLanguage: {
|
|
190
190
|
http: {
|
|
191
|
-
example: 'curl https://api.retellai.com/v2/list-calls \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
191
|
+
example: 'curl https://api.retellai.com/v2/list-calls \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n --max-time 300 \\\n -d \'{\n "filter_criteria": {\n "agent_id": [\n "agent_oBeDLoLOeuAbiuaMFXRtDOLriT12345"\n ],\n "call_id": [\n "call_5a82f0a43ea0977566b1104fcfc"\n ],\n "call_status": [\n "ended"\n ],\n "call_successful": [\n true\n ],\n "call_type": [\n "phone_call"\n ],\n "direction": [\n "inbound"\n ],\n "start_timestamp": {\n "lower_threshold": 1738475411000,\n "upper_threshold": 1738475421000\n },\n "user_sentiment": [\n "Positive"\n ]\n }\n }\'',
|
|
192
192
|
},
|
|
193
193
|
python: {
|
|
194
194
|
method: 'call.list',
|
|
195
|
-
example: '
|
|
195
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\ncall_responses = client.call.list()\nprint(call_responses)',
|
|
196
196
|
},
|
|
197
197
|
typescript: {
|
|
198
198
|
method: 'client.call.list',
|
|
199
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
199
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst callResponses = await client.call.list();\n\nconsole.log(callResponses);",
|
|
200
200
|
},
|
|
201
201
|
},
|
|
202
202
|
},
|
|
@@ -219,15 +219,15 @@ const EMBEDDED_METHODS = [
|
|
|
219
219
|
markdown: "## update\n\n`client.call.update(call_id: string, custom_attributes?: object, data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only', metadata?: object, override_dynamic_variables?: object): object | object`\n\n**patch** `/v2/update-call/{call_id}`\n\nUpdate metadata and sensitive data storage settings for an existing call.\n\n### Parameters\n\n- `call_id: string`\n\n- `custom_attributes?: object`\n Custom attributes for the call\n\n- `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n Data storage setting for this call. Overrides the agent's default setting. \"everything\" stores all data, \"everything_except_pii\" excludes PII when possible, \"basic_attributes_only\" stores only metadata. Cannot be downgraded from more restrictive to less restrictive settings.\n\n- `metadata?: object`\n An arbitrary object for storage purpose only. You can put anything here like your internal customer id associated with the call. Not used for processing. You can later get this field from the call object. Size limited to 50kB max.\n\n- `override_dynamic_variables?: object`\n Override dynamic varaibles represented as key-value pairs of strings. Setting this will override or add the dynamic variables set in the agent during the call. Only need to set the delta where you want to override, no need to set the entire dynamic variables object. Setting this to null will remove any existing override.\n\n### Returns\n\n- `{ access_token: string; agent_id: string; agent_version: number; call_id: string; call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'; call_type: 'web_call'; agent_name?: string; call_analysis?: { call_successful?: boolean; call_summary?: string; custom_analysis_data?: object; in_voicemail?: boolean; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }; call_cost?: { combined_cost: number; product_costs: object[]; total_duration_seconds: number; total_duration_unit_price: number; }; collected_dynamic_variables?: object; custom_sip_headers?: object; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; disconnection_reason?: string; duration_ms?: number; end_timestamp?: number; knowledge_base_retrieved_contents_url?: string; latency?: { asr?: object; e2e?: object; knowledge_base?: object; llm?: object; llm_websocket_network_rtt?: object; s2s?: object; tts?: object; }; llm_token_usage?: { average: number; num_requests: number; values: number[]; }; metadata?: object; opt_in_signed_url?: boolean; public_log_url?: string; recording_multi_channel_url?: string; recording_url?: string; retell_llm_dynamic_variables?: object; scrubbed_recording_multi_channel_url?: string; scrubbed_recording_url?: string; scrubbed_transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; } | { digit: string; role: 'dtmf'; }[]; start_timestamp?: number; transcript?: string; transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; }[]; transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; } | { digit: string; role: 'dtmf'; }[]; transfer_destination?: string; transfer_end_timestamp?: number; } | { agent_id: string; agent_version: number; call_id: string; call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'; call_type: 'phone_call'; direction: 'inbound' | 'outbound'; from_number: string; to_number: string; agent_name?: string; call_analysis?: { call_successful?: boolean; call_summary?: string; custom_analysis_data?: object; in_voicemail?: boolean; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }; call_cost?: { combined_cost: number; product_costs: object[]; total_duration_seconds: number; total_duration_unit_price: number; }; collected_dynamic_variables?: object; custom_sip_headers?: object; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; disconnection_reason?: string; duration_ms?: number; end_timestamp?: number; knowledge_base_retrieved_contents_url?: string; latency?: { asr?: object; e2e?: object; knowledge_base?: object; llm?: object; llm_websocket_network_rtt?: object; s2s?: object; tts?: object; }; llm_token_usage?: { average: number; num_requests: number; values: number[]; }; metadata?: object; opt_in_signed_url?: boolean; public_log_url?: string; recording_multi_channel_url?: string; recording_url?: string; retell_llm_dynamic_variables?: object; scrubbed_recording_multi_channel_url?: string; scrubbed_recording_url?: string; scrubbed_transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; } | { digit: string; role: 'dtmf'; }[]; start_timestamp?: number; telephony_identifier?: { twilio_call_sid?: string; }; transcript?: string; transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; }[]; transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; } | { digit: string; role: 'dtmf'; }[]; transfer_destination?: string; transfer_end_timestamp?: number; }`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst callResponse = await client.call.update('call_a4441234567890777c4a4a123e6');\n\nconsole.log(callResponse);\n```",
|
|
220
220
|
perLanguage: {
|
|
221
221
|
http: {
|
|
222
|
-
example: 'curl https://api.retellai.com/v2/update-call/$CALL_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
222
|
+
example: 'curl https://api.retellai.com/v2/update-call/$CALL_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d \'{\n "custom_attributes": {\n "custom_attribute_1": "value1",\n "custom_attribute_2": "value2"\n },\n "data_storage_setting": "everything_except_pii",\n "metadata": {\n "customer_id": "cust_123",\n "notes": "Follow-up required"\n },\n "override_dynamic_variables": {\n "additional_discount": "15%"\n }\n }\'',
|
|
223
223
|
},
|
|
224
224
|
python: {
|
|
225
225
|
method: 'call.update',
|
|
226
|
-
example: '
|
|
226
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\ncall_response = client.call.update(\n call_id="call_a4441234567890777c4a4a123e6",\n data_storage_setting="everything_except_pii",\n metadata={\n "customer_id": "cust_123",\n "notes": "Follow-up required",\n },\n)\nprint(call_response)',
|
|
227
227
|
},
|
|
228
228
|
typescript: {
|
|
229
229
|
method: 'client.call.update',
|
|
230
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
230
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst callResponse = await client.call.update('call_a4441234567890777c4a4a123e6', {\n data_storage_setting: 'everything_except_pii',\n metadata: { customer_id: 'cust_123', notes: 'Follow-up required' },\n});\n\nconsole.log(callResponse);",
|
|
231
231
|
},
|
|
232
232
|
},
|
|
233
233
|
},
|
|
@@ -243,15 +243,15 @@ const EMBEDDED_METHODS = [
|
|
|
243
243
|
markdown: "## delete\n\n`client.call.delete(call_id: string): void`\n\n**delete** `/v2/delete-call/{call_id}`\n\nDelete a specific call and its associated data\n\n### Parameters\n\n- `call_id: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nawait client.call.delete('119c3f8e47135a29e65947eeb34cf12d')\n```",
|
|
244
244
|
perLanguage: {
|
|
245
245
|
http: {
|
|
246
|
-
example: 'curl https://api.retellai.com/v2/delete-call/$CALL_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $
|
|
246
|
+
example: 'curl https://api.retellai.com/v2/delete-call/$CALL_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
247
247
|
},
|
|
248
248
|
python: {
|
|
249
249
|
method: 'call.delete',
|
|
250
|
-
example: '
|
|
250
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nclient.call.delete(\n "119c3f8e47135a29e65947eeb34cf12d",\n)',
|
|
251
251
|
},
|
|
252
252
|
typescript: {
|
|
253
253
|
method: 'client.call.delete',
|
|
254
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
254
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.call.delete('119c3f8e47135a29e65947eeb34cf12d');",
|
|
255
255
|
},
|
|
256
256
|
},
|
|
257
257
|
},
|
|
@@ -273,15 +273,15 @@ const EMBEDDED_METHODS = [
|
|
|
273
273
|
markdown: "## create\n\n`client.chat.create(agent_id: string, agent_version?: number, metadata?: object, retell_llm_dynamic_variables?: object): { agent_id: string; chat_id: string; chat_status: 'ongoing' | 'ended' | 'error'; chat_analysis?: object; chat_cost?: object; chat_type?: 'api_chat' | 'sms_chat'; collected_dynamic_variables?: object; custom_attributes?: object; end_timestamp?: number; message_with_tool_calls?: object | object | object | object | object[]; metadata?: object; retell_llm_dynamic_variables?: object; start_timestamp?: number; transcript?: string; version?: number; }`\n\n**post** `/create-chat`\n\nCreate a chat session\n\n### Parameters\n\n- `agent_id: string`\n The chat agent to use for the call.\n\n- `agent_version?: number`\n The version of the chat agent to use for the chat. If not provided, will default to latest version.\n\n- `metadata?: object`\n An arbitrary object for storage purpose only. You can put anything here like your internal customer id associated with the chat. Not used for processing. You can later get this field from the chat object.\n\n- `retell_llm_dynamic_variables?: object`\n Add optional dynamic variables in key value pairs of string that injects into your Response Engine prompt and tool description. Only applicable for Response Engine.\n\n### Returns\n\n- `{ agent_id: string; chat_id: string; chat_status: 'ongoing' | 'ended' | 'error'; chat_analysis?: { chat_successful?: boolean; chat_summary?: string; custom_analysis_data?: object; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }; chat_cost?: { combined_cost?: number; product_costs?: { cost: number; product: string; is_transfer_leg_cost?: boolean; unit_price?: number; }[]; }; chat_type?: 'api_chat' | 'sms_chat'; collected_dynamic_variables?: object; custom_attributes?: object; end_timestamp?: number; message_with_tool_calls?: { content: string; created_timestamp: number; message_id: string; role: 'agent' | 'user'; } | { arguments: string; message_id: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; created_timestamp?: number; thought_signature?: string; } | { content: string; created_timestamp: number; message_id: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { created_timestamp: number; message_id: string; role: 'node_transition'; former_node_id?: string; former_node_name?: string; new_node_id?: string; new_node_name?: string; } | { created_timestamp: number; message_id: string; role: 'state_transition'; former_state_name?: string; new_state_name?: string; }[]; metadata?: object; retell_llm_dynamic_variables?: object; start_timestamp?: number; transcript?: string; version?: number; }`\n\n - `agent_id: string`\n - `chat_id: string`\n - `chat_status: 'ongoing' | 'ended' | 'error'`\n - `chat_analysis?: { chat_successful?: boolean; chat_summary?: string; custom_analysis_data?: object; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }`\n - `chat_cost?: { combined_cost?: number; product_costs?: { cost: number; product: string; is_transfer_leg_cost?: boolean; unit_price?: number; }[]; }`\n - `chat_type?: 'api_chat' | 'sms_chat'`\n - `collected_dynamic_variables?: object`\n - `custom_attributes?: object`\n - `end_timestamp?: number`\n - `message_with_tool_calls?: { content: string; created_timestamp: number; message_id: string; role: 'agent' | 'user'; } | { arguments: string; message_id: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; created_timestamp?: number; thought_signature?: string; } | { content: string; created_timestamp: number; message_id: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { created_timestamp: number; message_id: string; role: 'node_transition'; former_node_id?: string; former_node_name?: string; new_node_id?: string; new_node_name?: string; } | { created_timestamp: number; message_id: string; role: 'state_transition'; former_state_name?: string; new_state_name?: string; }[]`\n - `metadata?: object`\n - `retell_llm_dynamic_variables?: object`\n - `start_timestamp?: number`\n - `transcript?: string`\n - `version?: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst chatResponse = await client.chat.create({ agent_id: 'oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD' });\n\nconsole.log(chatResponse);\n```",
|
|
274
274
|
perLanguage: {
|
|
275
275
|
http: {
|
|
276
|
-
example: 'curl https://api.retellai.com/create-chat \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
276
|
+
example: 'curl https://api.retellai.com/create-chat \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d \'{\n "agent_id": "oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",\n "agent_version": 1,\n "retell_llm_dynamic_variables": {\n "customer_name": "bar"\n }\n }\'',
|
|
277
277
|
},
|
|
278
278
|
python: {
|
|
279
279
|
method: 'chat.create',
|
|
280
|
-
example: '
|
|
280
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nchat_response = client.chat.create(\n agent_id="oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",\n)\nprint(chat_response.agent_id)',
|
|
281
281
|
},
|
|
282
282
|
typescript: {
|
|
283
283
|
method: 'client.chat.create',
|
|
284
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
284
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst chatResponse = await client.chat.create({ agent_id: 'oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD' });\n\nconsole.log(chatResponse.agent_id);",
|
|
285
285
|
},
|
|
286
286
|
},
|
|
287
287
|
},
|
|
@@ -305,15 +305,15 @@ const EMBEDDED_METHODS = [
|
|
|
305
305
|
markdown: "## create-sms-chat\n\n`client.chat.createSMSChat(from_number: string, to_number: string, metadata?: object, override_agent_id?: string, override_agent_version?: number, retell_llm_dynamic_variables?: object): { agent_id: string; chat_id: string; chat_status: 'ongoing' | 'ended' | 'error'; chat_analysis?: object; chat_cost?: object; chat_type?: 'api_chat' | 'sms_chat'; collected_dynamic_variables?: object; custom_attributes?: object; end_timestamp?: number; message_with_tool_calls?: object | object | object | object | object[]; metadata?: object; retell_llm_dynamic_variables?: object; start_timestamp?: number; transcript?: string; version?: number; }`\n\n**post** `/create-sms-chat`\n\nStart an outbound SMS chat conversation with a phone number using the specified agent. The agent must be configured for chat mode. The initial SMS message will be automatically generated and sent based on the agent's configuration.\n\n### Parameters\n\n- `from_number: string`\n The phone number to send SMS from in E.164 format. Must be a number purchased from Retell or imported to Retell with SMS capability.\n\n- `to_number: string`\n The phone number to send SMS to in E.164 format\n\n- `metadata?: object`\n An arbitrary object for storage purpose only. You can put anything here like your internal customer id associated with the chat. Not used for processing. You can later get this field from the chat object.\n\n- `override_agent_id?: string`\n For this particular chat, override the agent used with this agent id. This does not bind the agent to this number, this is for one time override.\n\n- `override_agent_version?: number`\n For this particular chat, override the agent version used with this version. This does not bind the agent version to this number, this is for one time override.\n\n- `retell_llm_dynamic_variables?: object`\n Add optional dynamic variables in key value pairs of string that injects into your Response Engine prompt and tool description. Only applicable for Response Engine.\n\n### Returns\n\n- `{ agent_id: string; chat_id: string; chat_status: 'ongoing' | 'ended' | 'error'; chat_analysis?: { chat_successful?: boolean; chat_summary?: string; custom_analysis_data?: object; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }; chat_cost?: { combined_cost?: number; product_costs?: { cost: number; product: string; is_transfer_leg_cost?: boolean; unit_price?: number; }[]; }; chat_type?: 'api_chat' | 'sms_chat'; collected_dynamic_variables?: object; custom_attributes?: object; end_timestamp?: number; message_with_tool_calls?: { content: string; created_timestamp: number; message_id: string; role: 'agent' | 'user'; } | { arguments: string; message_id: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; created_timestamp?: number; thought_signature?: string; } | { content: string; created_timestamp: number; message_id: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { created_timestamp: number; message_id: string; role: 'node_transition'; former_node_id?: string; former_node_name?: string; new_node_id?: string; new_node_name?: string; } | { created_timestamp: number; message_id: string; role: 'state_transition'; former_state_name?: string; new_state_name?: string; }[]; metadata?: object; retell_llm_dynamic_variables?: object; start_timestamp?: number; transcript?: string; version?: number; }`\n\n - `agent_id: string`\n - `chat_id: string`\n - `chat_status: 'ongoing' | 'ended' | 'error'`\n - `chat_analysis?: { chat_successful?: boolean; chat_summary?: string; custom_analysis_data?: object; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }`\n - `chat_cost?: { combined_cost?: number; product_costs?: { cost: number; product: string; is_transfer_leg_cost?: boolean; unit_price?: number; }[]; }`\n - `chat_type?: 'api_chat' | 'sms_chat'`\n - `collected_dynamic_variables?: object`\n - `custom_attributes?: object`\n - `end_timestamp?: number`\n - `message_with_tool_calls?: { content: string; created_timestamp: number; message_id: string; role: 'agent' | 'user'; } | { arguments: string; message_id: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; created_timestamp?: number; thought_signature?: string; } | { content: string; created_timestamp: number; message_id: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { created_timestamp: number; message_id: string; role: 'node_transition'; former_node_id?: string; former_node_name?: string; new_node_id?: string; new_node_name?: string; } | { created_timestamp: number; message_id: string; role: 'state_transition'; former_state_name?: string; new_state_name?: string; }[]`\n - `metadata?: object`\n - `retell_llm_dynamic_variables?: object`\n - `start_timestamp?: number`\n - `transcript?: string`\n - `version?: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst chatResponse = await client.chat.createSMSChat({ from_number: '+12137771234', to_number: '+14155551234' });\n\nconsole.log(chatResponse);\n```",
|
|
306
306
|
perLanguage: {
|
|
307
307
|
http: {
|
|
308
|
-
example: 'curl https://api.retellai.com/create-sms-chat \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
308
|
+
example: 'curl https://api.retellai.com/create-sms-chat \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d \'{\n "from_number": "+12137771234",\n "to_number": "+14155551234",\n "override_agent_id": "oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",\n "override_agent_version": 1,\n "retell_llm_dynamic_variables": {\n "customer_name": "bar"\n }\n }\'',
|
|
309
309
|
},
|
|
310
310
|
python: {
|
|
311
311
|
method: 'chat.create_sms_chat',
|
|
312
|
-
example: '
|
|
312
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nchat_response = client.chat.create_sms_chat(\n from_number="+12137771234",\n to_number="+14155551234",\n)\nprint(chat_response.agent_id)',
|
|
313
313
|
},
|
|
314
314
|
typescript: {
|
|
315
315
|
method: 'client.chat.createSMSChat',
|
|
316
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
316
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst chatResponse = await client.chat.createSMSChat({\n from_number: '+12137771234',\n to_number: '+14155551234',\n});\n\nconsole.log(chatResponse.agent_id);",
|
|
317
317
|
},
|
|
318
318
|
},
|
|
319
319
|
},
|
|
@@ -329,15 +329,15 @@ const EMBEDDED_METHODS = [
|
|
|
329
329
|
markdown: "## end\n\n`client.chat.end(chat_id: string): void`\n\n**patch** `/end-chat/{chat_id}`\n\nEnd an ongoing chat\n\n### Parameters\n\n- `chat_id: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nawait client.chat.end('16b980523634a6dc504898cda492e939')\n```",
|
|
330
330
|
perLanguage: {
|
|
331
331
|
http: {
|
|
332
|
-
example: 'curl https://api.retellai.com/end-chat/$CHAT_ID \\\n -X PATCH \\\n -H "Authorization: Bearer $
|
|
332
|
+
example: 'curl https://api.retellai.com/end-chat/$CHAT_ID \\\n -X PATCH \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
333
333
|
},
|
|
334
334
|
python: {
|
|
335
335
|
method: 'chat.end',
|
|
336
|
-
example: '
|
|
336
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nclient.chat.end(\n "16b980523634a6dc504898cda492e939",\n)',
|
|
337
337
|
},
|
|
338
338
|
typescript: {
|
|
339
339
|
method: 'client.chat.end',
|
|
340
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
340
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.chat.end('16b980523634a6dc504898cda492e939');",
|
|
341
341
|
},
|
|
342
342
|
},
|
|
343
343
|
},
|
|
@@ -354,15 +354,15 @@ const EMBEDDED_METHODS = [
|
|
|
354
354
|
markdown: "## retrieve\n\n`client.chat.retrieve(chat_id: string): { agent_id: string; chat_id: string; chat_status: 'ongoing' | 'ended' | 'error'; chat_analysis?: object; chat_cost?: object; chat_type?: 'api_chat' | 'sms_chat'; collected_dynamic_variables?: object; custom_attributes?: object; end_timestamp?: number; message_with_tool_calls?: object | object | object | object | object[]; metadata?: object; retell_llm_dynamic_variables?: object; start_timestamp?: number; transcript?: string; version?: number; }`\n\n**get** `/get-chat/{chat_id}`\n\nRetrieve details of a specific chat\n\n### Parameters\n\n- `chat_id: string`\n\n### Returns\n\n- `{ agent_id: string; chat_id: string; chat_status: 'ongoing' | 'ended' | 'error'; chat_analysis?: { chat_successful?: boolean; chat_summary?: string; custom_analysis_data?: object; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }; chat_cost?: { combined_cost?: number; product_costs?: { cost: number; product: string; is_transfer_leg_cost?: boolean; unit_price?: number; }[]; }; chat_type?: 'api_chat' | 'sms_chat'; collected_dynamic_variables?: object; custom_attributes?: object; end_timestamp?: number; message_with_tool_calls?: { content: string; created_timestamp: number; message_id: string; role: 'agent' | 'user'; } | { arguments: string; message_id: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; created_timestamp?: number; thought_signature?: string; } | { content: string; created_timestamp: number; message_id: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { created_timestamp: number; message_id: string; role: 'node_transition'; former_node_id?: string; former_node_name?: string; new_node_id?: string; new_node_name?: string; } | { created_timestamp: number; message_id: string; role: 'state_transition'; former_state_name?: string; new_state_name?: string; }[]; metadata?: object; retell_llm_dynamic_variables?: object; start_timestamp?: number; transcript?: string; version?: number; }`\n\n - `agent_id: string`\n - `chat_id: string`\n - `chat_status: 'ongoing' | 'ended' | 'error'`\n - `chat_analysis?: { chat_successful?: boolean; chat_summary?: string; custom_analysis_data?: object; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }`\n - `chat_cost?: { combined_cost?: number; product_costs?: { cost: number; product: string; is_transfer_leg_cost?: boolean; unit_price?: number; }[]; }`\n - `chat_type?: 'api_chat' | 'sms_chat'`\n - `collected_dynamic_variables?: object`\n - `custom_attributes?: object`\n - `end_timestamp?: number`\n - `message_with_tool_calls?: { content: string; created_timestamp: number; message_id: string; role: 'agent' | 'user'; } | { arguments: string; message_id: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; created_timestamp?: number; thought_signature?: string; } | { content: string; created_timestamp: number; message_id: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { created_timestamp: number; message_id: string; role: 'node_transition'; former_node_id?: string; former_node_name?: string; new_node_id?: string; new_node_name?: string; } | { created_timestamp: number; message_id: string; role: 'state_transition'; former_state_name?: string; new_state_name?: string; }[]`\n - `metadata?: object`\n - `retell_llm_dynamic_variables?: object`\n - `start_timestamp?: number`\n - `transcript?: string`\n - `version?: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst chatResponse = await client.chat.retrieve('16b980523634a6dc504898cda492e939');\n\nconsole.log(chatResponse);\n```",
|
|
355
355
|
perLanguage: {
|
|
356
356
|
http: {
|
|
357
|
-
example: 'curl https://api.retellai.com/get-chat/$CHAT_ID \\\n -H "Authorization: Bearer $
|
|
357
|
+
example: 'curl https://api.retellai.com/get-chat/$CHAT_ID \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
358
358
|
},
|
|
359
359
|
python: {
|
|
360
360
|
method: 'chat.retrieve',
|
|
361
|
-
example: '
|
|
361
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nchat_response = client.chat.retrieve(\n "16b980523634a6dc504898cda492e939",\n)\nprint(chat_response.agent_id)',
|
|
362
362
|
},
|
|
363
363
|
typescript: {
|
|
364
364
|
method: 'client.chat.retrieve',
|
|
365
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
365
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst chatResponse = await client.chat.retrieve('16b980523634a6dc504898cda492e939');\n\nconsole.log(chatResponse.agent_id);",
|
|
366
366
|
},
|
|
367
367
|
},
|
|
368
368
|
},
|
|
@@ -379,15 +379,15 @@ const EMBEDDED_METHODS = [
|
|
|
379
379
|
markdown: "## create-chat-completion\n\n`client.chat.createChatCompletion(chat_id: string, content: string): { messages: object | object | object | object | object[]; }`\n\n**post** `/create-chat-completion`\n\nCreate a chat completion message\n\n### Parameters\n\n- `chat_id: string`\n Unique id of the chat to create completion.\n\n- `content: string`\n user message to generate agent chat completion.\n\n### Returns\n\n- `{ messages: { content: string; created_timestamp: number; message_id: string; role: 'agent' | 'user'; } | { arguments: string; message_id: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; created_timestamp?: number; thought_signature?: string; } | { content: string; created_timestamp: number; message_id: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { created_timestamp: number; message_id: string; role: 'node_transition'; former_node_id?: string; former_node_name?: string; new_node_id?: string; new_node_name?: string; } | { created_timestamp: number; message_id: string; role: 'state_transition'; former_state_name?: string; new_state_name?: string; }[]; }`\n\n - `messages: { content: string; created_timestamp: number; message_id: string; role: 'agent' | 'user'; } | { arguments: string; message_id: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; created_timestamp?: number; thought_signature?: string; } | { content: string; created_timestamp: number; message_id: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { created_timestamp: number; message_id: string; role: 'node_transition'; former_node_id?: string; former_node_name?: string; new_node_id?: string; new_node_name?: string; } | { created_timestamp: number; message_id: string; role: 'state_transition'; former_state_name?: string; new_state_name?: string; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst response = await client.chat.createChatCompletion({ chat_id: 'oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD', content: 'hi how are you doing?' });\n\nconsole.log(response);\n```",
|
|
380
380
|
perLanguage: {
|
|
381
381
|
http: {
|
|
382
|
-
example: 'curl https://api.retellai.com/create-chat-completion \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
382
|
+
example: 'curl https://api.retellai.com/create-chat-completion \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n --max-time 300 \\\n -d \'{\n "chat_id": "oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",\n "content": "hi how are you doing?"\n }\'',
|
|
383
383
|
},
|
|
384
384
|
python: {
|
|
385
385
|
method: 'chat.create_chat_completion',
|
|
386
|
-
example: '
|
|
386
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.chat.create_chat_completion(\n chat_id="oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",\n content="hi how are you doing?",\n)\nprint(response.messages)',
|
|
387
387
|
},
|
|
388
388
|
typescript: {
|
|
389
389
|
method: 'client.chat.createChatCompletion',
|
|
390
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
390
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.chat.createChatCompletion({\n chat_id: 'oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD',\n content: 'hi how are you doing?',\n});\n\nconsole.log(response.messages);",
|
|
391
391
|
},
|
|
392
392
|
},
|
|
393
393
|
},
|
|
@@ -404,15 +404,15 @@ const EMBEDDED_METHODS = [
|
|
|
404
404
|
markdown: "## list\n\n`client.chat.list(limit?: number, pagination_key?: string, sort_order?: 'ascending' | 'descending'): object[]`\n\n**get** `/list-chat`\n\nList all chats\n\n### Parameters\n\n- `limit?: number`\n Limit the number of chats returned. Default 50, Max 1000. To retrieve more than 1000, use pagination_key to continue fetching the next page.\n\n- `pagination_key?: string`\n The pagination key to continue fetching the next page of chats. Pagination key is represented by a chat id here, and it's exclusive (not included in the fetched chats). The last chat id from the list chats is usually used as pagination key here. If not set, will start from the beginning.\n\n- `sort_order?: 'ascending' | 'descending'`\n The chats will be sorted by `start_timestamp`, whether to return the chats in ascending or descending order.\n\n### Returns\n\n- `{ agent_id: string; chat_id: string; chat_status: 'ongoing' | 'ended' | 'error'; chat_analysis?: { chat_successful?: boolean; chat_summary?: string; custom_analysis_data?: object; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }; chat_cost?: { combined_cost?: number; product_costs?: object[]; }; chat_type?: 'api_chat' | 'sms_chat'; collected_dynamic_variables?: object; custom_attributes?: object; end_timestamp?: number; message_with_tool_calls?: { content: string; created_timestamp: number; message_id: string; role: 'agent' | 'user'; } | { arguments: string; message_id: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; created_timestamp?: number; thought_signature?: string; } | { content: string; created_timestamp: number; message_id: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { created_timestamp: number; message_id: string; role: 'node_transition'; former_node_id?: string; former_node_name?: string; new_node_id?: string; new_node_name?: string; } | { created_timestamp: number; message_id: string; role: 'state_transition'; former_state_name?: string; new_state_name?: string; }[]; metadata?: object; retell_llm_dynamic_variables?: object; start_timestamp?: number; transcript?: string; version?: number; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst chatResponses = await client.chat.list();\n\nconsole.log(chatResponses);\n```",
|
|
405
405
|
perLanguage: {
|
|
406
406
|
http: {
|
|
407
|
-
example: 'curl https://api.retellai.com/list-chat \\\n -H "Authorization: Bearer $
|
|
407
|
+
example: 'curl https://api.retellai.com/list-chat \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n --max-time 300',
|
|
408
408
|
},
|
|
409
409
|
python: {
|
|
410
410
|
method: 'chat.list',
|
|
411
|
-
example: '
|
|
411
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nchat_responses = client.chat.list()\nprint(chat_responses)',
|
|
412
412
|
},
|
|
413
413
|
typescript: {
|
|
414
414
|
method: 'client.chat.list',
|
|
415
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
415
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst chatResponses = await client.chat.list();\n\nconsole.log(chatResponses);",
|
|
416
416
|
},
|
|
417
417
|
},
|
|
418
418
|
},
|
|
@@ -435,15 +435,15 @@ const EMBEDDED_METHODS = [
|
|
|
435
435
|
markdown: "## update\n\n`client.chat.update(chat_id: string, custom_attributes?: object, data_storage_setting?: 'everything' | 'basic_attributes_only', metadata?: object, override_dynamic_variables?: object): { agent_id: string; chat_id: string; chat_status: 'ongoing' | 'ended' | 'error'; chat_analysis?: object; chat_cost?: object; chat_type?: 'api_chat' | 'sms_chat'; collected_dynamic_variables?: object; custom_attributes?: object; end_timestamp?: number; message_with_tool_calls?: object | object | object | object | object[]; metadata?: object; retell_llm_dynamic_variables?: object; start_timestamp?: number; transcript?: string; version?: number; }`\n\n**patch** `/update-chat/{chat_id}`\n\nUpdate metadata and sensitive data storage settings for an existing chat.\n\n### Parameters\n\n- `chat_id: string`\n\n- `custom_attributes?: object`\n Custom attributes for the chat\n\n- `data_storage_setting?: 'everything' | 'basic_attributes_only'`\n Data storage setting for this chat. Overrides the agent's default setting. \"everything\" stores all data, \"basic_attributes_only\" stores only metadata. Cannot be downgraded from more restrictive to less restrictive settings.\n\n- `metadata?: object`\n An arbitrary object for storage purpose only. You can put anything here like your internal customer id associated with the chat. Not used for processing. You can later get this field from the chat object. Size limited to 50kB max.\n\n- `override_dynamic_variables?: object`\n Override dynamic varaibles represented as key-value pairs of strings. Setting this will override or add the dynamic variables set in the agent during the call. Only need to set the delta where you want to override, no need to set the entire dynamic variables object. Setting this to null will remove any existing override.\n\n### Returns\n\n- `{ agent_id: string; chat_id: string; chat_status: 'ongoing' | 'ended' | 'error'; chat_analysis?: { chat_successful?: boolean; chat_summary?: string; custom_analysis_data?: object; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }; chat_cost?: { combined_cost?: number; product_costs?: { cost: number; product: string; is_transfer_leg_cost?: boolean; unit_price?: number; }[]; }; chat_type?: 'api_chat' | 'sms_chat'; collected_dynamic_variables?: object; custom_attributes?: object; end_timestamp?: number; message_with_tool_calls?: { content: string; created_timestamp: number; message_id: string; role: 'agent' | 'user'; } | { arguments: string; message_id: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; created_timestamp?: number; thought_signature?: string; } | { content: string; created_timestamp: number; message_id: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { created_timestamp: number; message_id: string; role: 'node_transition'; former_node_id?: string; former_node_name?: string; new_node_id?: string; new_node_name?: string; } | { created_timestamp: number; message_id: string; role: 'state_transition'; former_state_name?: string; new_state_name?: string; }[]; metadata?: object; retell_llm_dynamic_variables?: object; start_timestamp?: number; transcript?: string; version?: number; }`\n\n - `agent_id: string`\n - `chat_id: string`\n - `chat_status: 'ongoing' | 'ended' | 'error'`\n - `chat_analysis?: { chat_successful?: boolean; chat_summary?: string; custom_analysis_data?: object; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }`\n - `chat_cost?: { combined_cost?: number; product_costs?: { cost: number; product: string; is_transfer_leg_cost?: boolean; unit_price?: number; }[]; }`\n - `chat_type?: 'api_chat' | 'sms_chat'`\n - `collected_dynamic_variables?: object`\n - `custom_attributes?: object`\n - `end_timestamp?: number`\n - `message_with_tool_calls?: { content: string; created_timestamp: number; message_id: string; role: 'agent' | 'user'; } | { arguments: string; message_id: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; created_timestamp?: number; thought_signature?: string; } | { content: string; created_timestamp: number; message_id: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { created_timestamp: number; message_id: string; role: 'node_transition'; former_node_id?: string; former_node_name?: string; new_node_id?: string; new_node_name?: string; } | { created_timestamp: number; message_id: string; role: 'state_transition'; former_state_name?: string; new_state_name?: string; }[]`\n - `metadata?: object`\n - `retell_llm_dynamic_variables?: object`\n - `start_timestamp?: number`\n - `transcript?: string`\n - `version?: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst chatResponse = await client.chat.update('chat_98c1a2157aa0559144d67bb0729');\n\nconsole.log(chatResponse);\n```",
|
|
436
436
|
perLanguage: {
|
|
437
437
|
http: {
|
|
438
|
-
example: 'curl https://api.retellai.com/update-chat/$CHAT_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
438
|
+
example: 'curl https://api.retellai.com/update-chat/$CHAT_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d \'{\n "custom_attributes": {\n "custom_attribute_1": "value1",\n "custom_attribute_2": "value2"\n },\n "data_storage_setting": "everything",\n "override_dynamic_variables": {\n "additional_discount": "15%"\n }\n }\'',
|
|
439
439
|
},
|
|
440
440
|
python: {
|
|
441
441
|
method: 'chat.update',
|
|
442
|
-
example: '
|
|
442
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nchat_response = client.chat.update(\n chat_id="chat_98c1a2157aa0559144d67bb0729",\n data_storage_setting="everything",\n metadata={\n "customer_id": "cust_123",\n "notes": "Follow-up required",\n },\n override_dynamic_variables={\n "additional_discount": "15%"\n },\n)\nprint(chat_response.agent_id)',
|
|
443
443
|
},
|
|
444
444
|
typescript: {
|
|
445
445
|
method: 'client.chat.update',
|
|
446
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
446
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst chatResponse = await client.chat.update('chat_98c1a2157aa0559144d67bb0729', {\n data_storage_setting: 'everything',\n metadata: { customer_id: 'cust_123', notes: 'Follow-up required' },\n override_dynamic_variables: { additional_discount: '15%' },\n});\n\nconsole.log(chatResponse.agent_id);",
|
|
447
447
|
},
|
|
448
448
|
},
|
|
449
449
|
},
|
|
@@ -478,15 +478,15 @@ const EMBEDDED_METHODS = [
|
|
|
478
478
|
markdown: "## create\n\n`client.phoneNumber.create(allowed_inbound_country_list?: string[], allowed_outbound_country_list?: string[], area_code?: number, country_code?: 'US' | 'CA', fallback_number?: string, inbound_agent_id?: string, inbound_agent_version?: number, inbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[], inbound_webhook_url?: string, nickname?: string, number_provider?: 'twilio' | 'telnyx', outbound_agent_id?: string, outbound_agent_version?: number, outbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[], phone_number?: string, toll_free?: boolean, transport?: string): { last_modification_timestamp: number; phone_number: string; phone_number_type: 'retell-twilio' | 'retell-telnyx' | 'custom'; allowed_inbound_country_list?: string[]; allowed_outbound_country_list?: string[]; area_code?: number; fallback_number?: string; inbound_agent_id?: string; inbound_agent_version?: number; inbound_agents?: object[]; inbound_sms_agents?: object[]; inbound_sms_webhook_url?: string; inbound_webhook_url?: string; nickname?: string; outbound_agent_id?: string; outbound_agent_version?: number; outbound_agents?: object[]; outbound_sms_agents?: object[]; phone_number_pretty?: string; sip_outbound_trunk_config?: object; }`\n\n**post** `/create-phone-number`\n\nBuy a new phone number & Bind agents\n\n### Parameters\n\n- `allowed_inbound_country_list?: string[]`\n List of ISO 3166-1 alpha-2 country codes from which inbound calls are allowed. If not set or empty, calls from all countries are allowed.\n\n- `allowed_outbound_country_list?: string[]`\n List of ISO 3166-1 alpha-2 country codes to which outbound calls are allowed. If not set or empty, calls to all countries are allowed.\n\n- `area_code?: number`\n Area code of the number to obtain. Format is a 3 digit integer. Currently only supports US area code.\n\n- `country_code?: 'US' | 'CA'`\n The ISO 3166-1 alpha-2 country code of the number you are trying to purchase. If left empty, will default to \"US\".\n\n- `fallback_number?: string`\n Enterprise only. Phone number to transfer inbound calls to when organization is in outage mode. Can be either a Retell phone number or an external number. Cannot be the same as this phone number, and cannot be a number that already has its own fallback configured (prevents nested forwarding).\n\n- `inbound_agent_id?: string`\n Unique id of agent to bind to the number. The number will automatically use the agent when receiving inbound calls. If null, this number would not accept inbound call. Deprecated. See https://docs.retellai.com/deprecation-notice/2026/03-31_phone_number_agent_fields\n\n- `inbound_agent_version?: number`\n Version of the inbound agent to bind to the number. If not provided, will default to latest version. Deprecated. See https://docs.retellai.com/deprecation-notice/2026/03-31_phone_number_agent_fields\n\n- `inbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n Inbound agents to bind to the number with weights. If set and non-empty, one agent will be picked randomly for each inbound call, with probability proportional to the weight. Total weights must add up to 1. If not set or empty, fallback to inbound_agent_id.\n\n- `inbound_webhook_url?: string`\n If set, will send a webhook for inbound calls, where you can to override agent id, set dynamic variables and other fields specific to that call.\n\n- `nickname?: string`\n Nickname of the number. This is for your reference only.\n\n- `number_provider?: 'twilio' | 'telnyx'`\n The provider to purchase the phone number from. Default to twilio.\n\n- `outbound_agent_id?: string`\n Unique id of agent to bind to the number. The number will automatically use the agent when conducting outbound calls. If null, this number would not be able to initiate outbound call without agent id override. Deprecated. See https://docs.retellai.com/deprecation-notice/2026/03-31_phone_number_agent_fields\n\n- `outbound_agent_version?: number`\n Version of the outbound agent to bind to the number. If not provided, will default to latest version. Deprecated. See https://docs.retellai.com/deprecation-notice/2026/03-31_phone_number_agent_fields\n\n- `outbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n Outbound agents to bind to the number with weights. If set and non-empty, one agent will be picked randomly for each outbound call, with probability proportional to the weight. Total weights must add up to 1. If not set or empty, fallback to outbound_agent_id.\n\n- `phone_number?: string`\n The number you are trying to purchase in E.164 format of the number (+country code then number with no space and no special characters).\n\n- `toll_free?: boolean`\n Whether to purchase a toll-free number. Toll-free numbers incur higher costs.\n\n- `transport?: string`\n Outbound transport protocol to use for the phone number. Valid values are \"TLS\", \"TCP\" and \"UDP\". Default is \"TCP\".\n\n### Returns\n\n- `{ last_modification_timestamp: number; phone_number: string; phone_number_type: 'retell-twilio' | 'retell-telnyx' | 'custom'; allowed_inbound_country_list?: string[]; allowed_outbound_country_list?: string[]; area_code?: number; fallback_number?: string; inbound_agent_id?: string; inbound_agent_version?: number; inbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]; inbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number; }[]; inbound_sms_webhook_url?: string; inbound_webhook_url?: string; nickname?: string; outbound_agent_id?: string; outbound_agent_version?: number; outbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]; outbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number; }[]; phone_number_pretty?: string; sip_outbound_trunk_config?: { auth_username?: string; termination_uri?: string; transport?: string; }; }`\n\n - `last_modification_timestamp: number`\n - `phone_number: string`\n - `phone_number_type: 'retell-twilio' | 'retell-telnyx' | 'custom'`\n - `allowed_inbound_country_list?: string[]`\n - `allowed_outbound_country_list?: string[]`\n - `area_code?: number`\n - `fallback_number?: string`\n - `inbound_agent_id?: string`\n - `inbound_agent_version?: number`\n - `inbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n - `inbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n - `inbound_sms_webhook_url?: string`\n - `inbound_webhook_url?: string`\n - `nickname?: string`\n - `outbound_agent_id?: string`\n - `outbound_agent_version?: number`\n - `outbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n - `outbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n - `phone_number_pretty?: string`\n - `sip_outbound_trunk_config?: { auth_username?: string; termination_uri?: string; transport?: string; }`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst phoneNumberResponse = await client.phoneNumber.create();\n\nconsole.log(phoneNumberResponse);\n```",
|
|
479
479
|
perLanguage: {
|
|
480
480
|
http: {
|
|
481
|
-
example: 'curl https://api.retellai.com/create-phone-number \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
481
|
+
example: 'curl https://api.retellai.com/create-phone-number \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d \'{\n "allowed_inbound_country_list": [\n "US",\n "CA",\n "GB"\n ],\n "allowed_outbound_country_list": [\n "US",\n "CA"\n ],\n "area_code": 415,\n "country_code": "US",\n "fallback_number": "+14155551234",\n "inbound_agent_id": "oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",\n "inbound_agent_version": 1,\n "inbound_webhook_url": "https://example.com/inbound-webhook",\n "nickname": "Frontdesk Number",\n "number_provider": "twilio",\n "outbound_agent_id": "oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",\n "outbound_agent_version": 1,\n "phone_number": "+14157774444",\n "transport": "TCP"\n }\'',
|
|
482
482
|
},
|
|
483
483
|
python: {
|
|
484
484
|
method: 'phone_number.create',
|
|
485
|
-
example: '
|
|
485
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nphone_number_response = client.phone_number.create()\nprint(phone_number_response.inbound_agent_id)',
|
|
486
486
|
},
|
|
487
487
|
typescript: {
|
|
488
488
|
method: 'client.phoneNumber.create',
|
|
489
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
489
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst phoneNumberResponse = await client.phoneNumber.create();\n\nconsole.log(phoneNumberResponse.inbound_agent_id);",
|
|
490
490
|
},
|
|
491
491
|
},
|
|
492
492
|
},
|
|
@@ -520,15 +520,15 @@ const EMBEDDED_METHODS = [
|
|
|
520
520
|
markdown: "## import\n\n`client.phoneNumber.import(phone_number: string, termination_uri: string, allowed_inbound_country_list?: string[], allowed_outbound_country_list?: string[], ignore_e164_validation?: boolean, inbound_agent_id?: string, inbound_agent_version?: number, inbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[], inbound_webhook_url?: string, nickname?: string, outbound_agent_id?: string, outbound_agent_version?: number, outbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[], sip_trunk_auth_password?: string, sip_trunk_auth_username?: string, transport?: string): { last_modification_timestamp: number; phone_number: string; phone_number_type: 'retell-twilio' | 'retell-telnyx' | 'custom'; allowed_inbound_country_list?: string[]; allowed_outbound_country_list?: string[]; area_code?: number; fallback_number?: string; inbound_agent_id?: string; inbound_agent_version?: number; inbound_agents?: object[]; inbound_sms_agents?: object[]; inbound_sms_webhook_url?: string; inbound_webhook_url?: string; nickname?: string; outbound_agent_id?: string; outbound_agent_version?: number; outbound_agents?: object[]; outbound_sms_agents?: object[]; phone_number_pretty?: string; sip_outbound_trunk_config?: object; }`\n\n**post** `/import-phone-number`\n\nImport a phone number from custom telephony & Bind agents\n\n### Parameters\n\n- `phone_number: string`\n The number you are trying to import in E.164 format of the number (+country code, then number with no space, no special characters), used as the unique identifier for phone number APIs.\n\n- `termination_uri: string`\n The termination uri to uniquely identify your elastic SIP trunk. This is used for outbound calls. For Twilio elastic SIP trunks it always end with \".pstn.twilio.com\".\n\n- `allowed_inbound_country_list?: string[]`\n List of ISO 3166-1 alpha-2 country codes from which inbound calls are allowed. If not set or empty, calls from all countries are allowed.\n\n- `allowed_outbound_country_list?: string[]`\n List of ISO 3166-1 alpha-2 country codes to which outbound calls are allowed. If not set or empty, calls to all countries are allowed.\n\n- `ignore_e164_validation?: boolean`\n If true, E.164 validation for phone_number is skipped. This is useful for internal pseudo numbers when using custom telephony. If omitted, default is true. Must be a boolean literal; string values like \"true\" or \"false\" are invalid.\n\n- `inbound_agent_id?: string`\n Unique id of agent to bind to the number. The number will automatically use the agent when receiving inbound calls. If null, this number would not accept inbound call. Deprecated. See https://docs.retellai.com/deprecation-notice/2026/03-31_phone_number_agent_fields\n\n- `inbound_agent_version?: number`\n Version of the inbound agent to bind to the number. If not provided, will default to latest version. Deprecated. See https://docs.retellai.com/deprecation-notice/2026/03-31_phone_number_agent_fields\n\n- `inbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n Inbound agents to bind to the number with weights. If set and non-empty, one agent will be picked randomly for each inbound call, with probability proportional to the weight. Total weights must add up to 1. If not set or empty, fallback to inbound_agent_id.\n\n- `inbound_webhook_url?: string`\n If set, will send a webhook for inbound calls, where you can to override agent id, set dynamic variables and other fields specific to that call.\n\n- `nickname?: string`\n Nickname of the number. This is for your reference only.\n\n- `outbound_agent_id?: string`\n Unique id of agent to bind to the number. The number will automatically use the agent when conducting outbound calls. If null, this number would not be able to initiate outbound call without agent id override. Deprecated. See https://docs.retellai.com/deprecation-notice/2026/03-31_phone_number_agent_fields\n\n- `outbound_agent_version?: number`\n Version of the outbound agent to bind to the number. If not provided, will default to latest version. Deprecated. See https://docs.retellai.com/deprecation-notice/2026/03-31_phone_number_agent_fields\n\n- `outbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n Outbound agents to bind to the number with weights. If set and non-empty, one agent will be picked randomly for each outbound call, with probability proportional to the weight. Total weights must add up to 1. If not set or empty, fallback to outbound_agent_id.\n\n- `sip_trunk_auth_password?: string`\n The password used for authentication for the SIP trunk.\n\n- `sip_trunk_auth_username?: string`\n The username used for authentication for the SIP trunk.\n\n- `transport?: string`\n Outbound transport protocol to update for the phone number. Valid values are \"TLS\", \"TCP\" and \"UDP\". Default is \"TCP\".\n\n### Returns\n\n- `{ last_modification_timestamp: number; phone_number: string; phone_number_type: 'retell-twilio' | 'retell-telnyx' | 'custom'; allowed_inbound_country_list?: string[]; allowed_outbound_country_list?: string[]; area_code?: number; fallback_number?: string; inbound_agent_id?: string; inbound_agent_version?: number; inbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]; inbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number; }[]; inbound_sms_webhook_url?: string; inbound_webhook_url?: string; nickname?: string; outbound_agent_id?: string; outbound_agent_version?: number; outbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]; outbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number; }[]; phone_number_pretty?: string; sip_outbound_trunk_config?: { auth_username?: string; termination_uri?: string; transport?: string; }; }`\n\n - `last_modification_timestamp: number`\n - `phone_number: string`\n - `phone_number_type: 'retell-twilio' | 'retell-telnyx' | 'custom'`\n - `allowed_inbound_country_list?: string[]`\n - `allowed_outbound_country_list?: string[]`\n - `area_code?: number`\n - `fallback_number?: string`\n - `inbound_agent_id?: string`\n - `inbound_agent_version?: number`\n - `inbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n - `inbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n - `inbound_sms_webhook_url?: string`\n - `inbound_webhook_url?: string`\n - `nickname?: string`\n - `outbound_agent_id?: string`\n - `outbound_agent_version?: number`\n - `outbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n - `outbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n - `phone_number_pretty?: string`\n - `sip_outbound_trunk_config?: { auth_username?: string; termination_uri?: string; transport?: string; }`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst phoneNumberResponse = await client.phoneNumber.import({ phone_number: '+14157774444', termination_uri: 'someuri.pstn.twilio.com' });\n\nconsole.log(phoneNumberResponse);\n```",
|
|
521
521
|
perLanguage: {
|
|
522
522
|
http: {
|
|
523
|
-
example: 'curl https://api.retellai.com/import-phone-number \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
523
|
+
example: 'curl https://api.retellai.com/import-phone-number \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d \'{\n "phone_number": "+14157774444",\n "termination_uri": "someuri.pstn.twilio.com",\n "allowed_inbound_country_list": [\n "US",\n "CA",\n "GB"\n ],\n "allowed_outbound_country_list": [\n "US",\n "CA"\n ],\n "ignore_e164_validation": true,\n "inbound_agent_id": "oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",\n "inbound_agent_version": 1,\n "inbound_webhook_url": "https://example.com/inbound-webhook",\n "nickname": "Frontdesk Number",\n "outbound_agent_id": "oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",\n "outbound_agent_version": 1,\n "sip_trunk_auth_password": "123456",\n "sip_trunk_auth_username": "username",\n "transport": "TCP"\n }\'',
|
|
524
524
|
},
|
|
525
525
|
python: {
|
|
526
526
|
method: 'phone_number.import_',
|
|
527
|
-
example: '
|
|
527
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nphone_number_response = client.phone_number.import_(\n phone_number="+14157774444",\n termination_uri="someuri.pstn.twilio.com",\n)\nprint(phone_number_response.inbound_agent_id)',
|
|
528
528
|
},
|
|
529
529
|
typescript: {
|
|
530
530
|
method: 'client.phoneNumber.import',
|
|
531
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
531
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst phoneNumberResponse = await client.phoneNumber.import({\n phone_number: '+14157774444',\n termination_uri: 'someuri.pstn.twilio.com',\n});\n\nconsole.log(phoneNumberResponse.inbound_agent_id);",
|
|
532
532
|
},
|
|
533
533
|
},
|
|
534
534
|
},
|
|
@@ -545,15 +545,15 @@ const EMBEDDED_METHODS = [
|
|
|
545
545
|
markdown: "## retrieve\n\n`client.phoneNumber.retrieve(phone_number: string): { last_modification_timestamp: number; phone_number: string; phone_number_type: 'retell-twilio' | 'retell-telnyx' | 'custom'; allowed_inbound_country_list?: string[]; allowed_outbound_country_list?: string[]; area_code?: number; fallback_number?: string; inbound_agent_id?: string; inbound_agent_version?: number; inbound_agents?: object[]; inbound_sms_agents?: object[]; inbound_sms_webhook_url?: string; inbound_webhook_url?: string; nickname?: string; outbound_agent_id?: string; outbound_agent_version?: number; outbound_agents?: object[]; outbound_sms_agents?: object[]; phone_number_pretty?: string; sip_outbound_trunk_config?: object; }`\n\n**get** `/get-phone-number/{phone_number}`\n\nRetrieve details of a specific phone number\n\n### Parameters\n\n- `phone_number: string`\n\n### Returns\n\n- `{ last_modification_timestamp: number; phone_number: string; phone_number_type: 'retell-twilio' | 'retell-telnyx' | 'custom'; allowed_inbound_country_list?: string[]; allowed_outbound_country_list?: string[]; area_code?: number; fallback_number?: string; inbound_agent_id?: string; inbound_agent_version?: number; inbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]; inbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number; }[]; inbound_sms_webhook_url?: string; inbound_webhook_url?: string; nickname?: string; outbound_agent_id?: string; outbound_agent_version?: number; outbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]; outbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number; }[]; phone_number_pretty?: string; sip_outbound_trunk_config?: { auth_username?: string; termination_uri?: string; transport?: string; }; }`\n\n - `last_modification_timestamp: number`\n - `phone_number: string`\n - `phone_number_type: 'retell-twilio' | 'retell-telnyx' | 'custom'`\n - `allowed_inbound_country_list?: string[]`\n - `allowed_outbound_country_list?: string[]`\n - `area_code?: number`\n - `fallback_number?: string`\n - `inbound_agent_id?: string`\n - `inbound_agent_version?: number`\n - `inbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n - `inbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n - `inbound_sms_webhook_url?: string`\n - `inbound_webhook_url?: string`\n - `nickname?: string`\n - `outbound_agent_id?: string`\n - `outbound_agent_version?: number`\n - `outbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n - `outbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n - `phone_number_pretty?: string`\n - `sip_outbound_trunk_config?: { auth_username?: string; termination_uri?: string; transport?: string; }`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst phoneNumberResponse = await client.phoneNumber.retrieve('+14157774444');\n\nconsole.log(phoneNumberResponse);\n```",
|
|
546
546
|
perLanguage: {
|
|
547
547
|
http: {
|
|
548
|
-
example: 'curl https://api.retellai.com/get-phone-number/$PHONE_NUMBER \\\n -H "Authorization: Bearer $
|
|
548
|
+
example: 'curl https://api.retellai.com/get-phone-number/$PHONE_NUMBER \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
549
549
|
},
|
|
550
550
|
python: {
|
|
551
551
|
method: 'phone_number.retrieve',
|
|
552
|
-
example: '
|
|
552
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nphone_number_response = client.phone_number.retrieve(\n "+14157774444",\n)\nprint(phone_number_response.inbound_agent_id)',
|
|
553
553
|
},
|
|
554
554
|
typescript: {
|
|
555
555
|
method: 'client.phoneNumber.retrieve',
|
|
556
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
556
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst phoneNumberResponse = await client.phoneNumber.retrieve('+14157774444');\n\nconsole.log(phoneNumberResponse.inbound_agent_id);",
|
|
557
557
|
},
|
|
558
558
|
},
|
|
559
559
|
},
|
|
@@ -569,15 +569,15 @@ const EMBEDDED_METHODS = [
|
|
|
569
569
|
markdown: "## list\n\n`client.phoneNumber.list(): object[]`\n\n**get** `/list-phone-numbers`\n\nList all phone numbers\n\n### Returns\n\n- `{ last_modification_timestamp: number; phone_number: string; phone_number_type: 'retell-twilio' | 'retell-telnyx' | 'custom'; allowed_inbound_country_list?: string[]; allowed_outbound_country_list?: string[]; area_code?: number; fallback_number?: string; inbound_agent_id?: string; inbound_agent_version?: number; inbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]; inbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number; }[]; inbound_sms_webhook_url?: string; inbound_webhook_url?: string; nickname?: string; outbound_agent_id?: string; outbound_agent_version?: number; outbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]; outbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number; }[]; phone_number_pretty?: string; sip_outbound_trunk_config?: { auth_username?: string; termination_uri?: string; transport?: string; }; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst phoneNumberResponses = await client.phoneNumber.list();\n\nconsole.log(phoneNumberResponses);\n```",
|
|
570
570
|
perLanguage: {
|
|
571
571
|
http: {
|
|
572
|
-
example: 'curl https://api.retellai.com/list-phone-numbers \\\n -H "Authorization: Bearer $
|
|
572
|
+
example: 'curl https://api.retellai.com/list-phone-numbers \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
573
573
|
},
|
|
574
574
|
python: {
|
|
575
575
|
method: 'phone_number.list',
|
|
576
|
-
example: '
|
|
576
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nphone_number_responses = client.phone_number.list()\nprint(phone_number_responses)',
|
|
577
577
|
},
|
|
578
578
|
typescript: {
|
|
579
579
|
method: 'client.phoneNumber.list',
|
|
580
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
580
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst phoneNumberResponses = await client.phoneNumber.list();\n\nconsole.log(phoneNumberResponses);",
|
|
581
581
|
},
|
|
582
582
|
},
|
|
583
583
|
},
|
|
@@ -614,15 +614,15 @@ const EMBEDDED_METHODS = [
|
|
|
614
614
|
markdown: "## update\n\n`client.phoneNumber.update(phone_number: string, allowed_inbound_country_list?: string[], allowed_outbound_country_list?: string[], auth_password?: string, auth_username?: string, fallback_number?: string, inbound_agent_id?: string, inbound_agent_version?: number, inbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[], inbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number; }[], inbound_sms_webhook_url?: string, inbound_webhook_url?: string, nickname?: string, outbound_agent_id?: string, outbound_agent_version?: number, outbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[], outbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number; }[], termination_uri?: string, transport?: string): { last_modification_timestamp: number; phone_number: string; phone_number_type: 'retell-twilio' | 'retell-telnyx' | 'custom'; allowed_inbound_country_list?: string[]; allowed_outbound_country_list?: string[]; area_code?: number; fallback_number?: string; inbound_agent_id?: string; inbound_agent_version?: number; inbound_agents?: object[]; inbound_sms_agents?: object[]; inbound_sms_webhook_url?: string; inbound_webhook_url?: string; nickname?: string; outbound_agent_id?: string; outbound_agent_version?: number; outbound_agents?: object[]; outbound_sms_agents?: object[]; phone_number_pretty?: string; sip_outbound_trunk_config?: object; }`\n\n**patch** `/update-phone-number/{phone_number}`\n\nUpdate agent bound to a purchased phone number\n\n### Parameters\n\n- `phone_number: string`\n\n- `allowed_inbound_country_list?: string[]`\n List of ISO 3166-1 alpha-2 country codes from which inbound calls are allowed. If not set or empty, calls from all countries are allowed.\n\n- `allowed_outbound_country_list?: string[]`\n List of ISO 3166-1 alpha-2 country codes to which outbound calls are allowed. If not set or empty, calls to all countries are allowed.\n\n- `auth_password?: string`\n The password used for authentication for the SIP trunk to update for the phone number.\n\n- `auth_username?: string`\n The username used for authentication for the SIP trunk to update for the phone number.\n\n- `fallback_number?: string`\n Enterprise only. Phone number to transfer inbound calls to when organization is in outage mode. Can be either a Retell phone number or an external number. Set to null to remove. Cannot be the same as this phone number, and cannot be a number that already has its own fallback configured (prevents nested forwarding).\n\n- `inbound_agent_id?: string`\n Unique id of agent to bind to the number. The number will automatically use the agent when receiving inbound calls. If set to null, this number would not accept inbound call. Deprecated. See https://docs.retellai.com/deprecation-notice/2026/03-31_phone_number_agent_fields\n\n- `inbound_agent_version?: number`\n Version of the inbound agent to bind to the number. If not provided, will default to latest version. Deprecated. See https://docs.retellai.com/deprecation-notice/2026/03-31_phone_number_agent_fields\n\n- `inbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n Inbound agents to bind to the number with weights. If set and non-empty, one agent will be picked randomly for each inbound call, with probability proportional to the weight. Total weights must add up to 1. If not set or empty, fallback to inbound_agent_id.\n\n- `inbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n Inbound SMS agents to bind to the number with weights. If set and non-empty, one agent will be picked randomly for each inbound SMS, with probability proportional to the weight. Total weights must add up to 1. If not set or empty, fallback to inbound_sms_agent_id.\n\n- `inbound_sms_webhook_url?: string`\n If set, will send a webhook for inbound SMS, where you can override agent id, set dynamic variables and other fields specific to that chat.\n\n- `inbound_webhook_url?: string`\n If set, will send a webhook for inbound calls, where you can to override agent id, set dynamic variables and other fields specific to that call.\n\n- `nickname?: string`\n Nickname of the number. This is for your reference only.\n\n- `outbound_agent_id?: string`\n Unique id of agent to bind to the number. The number will automatically use the agent when conducting outbound calls. If set to null, this number would not be able to initiate outbound call without agent id override. Deprecated. See https://docs.retellai.com/deprecation-notice/2026/03-31_phone_number_agent_fields\n\n- `outbound_agent_version?: number`\n Version of the outbound agent to bind to the number. If not provided, will default to latest version.\n\n- `outbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n Outbound agents to bind to the number with weights. If set and non-empty, one agent will be picked randomly for each outbound call, with probability proportional to the weight. Total weights must add up to 1. If not set or empty, fallback to outbound_agent_id.\n\n- `outbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n Outbound SMS agents to bind to the number with weights. If set and non-empty, one agent will be picked randomly for each outbound SMS, with probability proportional to the weight. Total weights must add up to 1. If not set or empty, fallback to outbound_sms_agent_id.\n\n- `termination_uri?: string`\n The termination uri to update for the phone number. This is used for outbound calls.\n\n- `transport?: string`\n Outbound transport protocol to update for the phone number. Valid values are \"TLS\", \"TCP\" and \"UDP\". Default is \"TCP\".\n\n### Returns\n\n- `{ last_modification_timestamp: number; phone_number: string; phone_number_type: 'retell-twilio' | 'retell-telnyx' | 'custom'; allowed_inbound_country_list?: string[]; allowed_outbound_country_list?: string[]; area_code?: number; fallback_number?: string; inbound_agent_id?: string; inbound_agent_version?: number; inbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]; inbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number; }[]; inbound_sms_webhook_url?: string; inbound_webhook_url?: string; nickname?: string; outbound_agent_id?: string; outbound_agent_version?: number; outbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]; outbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number; }[]; phone_number_pretty?: string; sip_outbound_trunk_config?: { auth_username?: string; termination_uri?: string; transport?: string; }; }`\n\n - `last_modification_timestamp: number`\n - `phone_number: string`\n - `phone_number_type: 'retell-twilio' | 'retell-telnyx' | 'custom'`\n - `allowed_inbound_country_list?: string[]`\n - `allowed_outbound_country_list?: string[]`\n - `area_code?: number`\n - `fallback_number?: string`\n - `inbound_agent_id?: string`\n - `inbound_agent_version?: number`\n - `inbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n - `inbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n - `inbound_sms_webhook_url?: string`\n - `inbound_webhook_url?: string`\n - `nickname?: string`\n - `outbound_agent_id?: string`\n - `outbound_agent_version?: number`\n - `outbound_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n - `outbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number; }[]`\n - `phone_number_pretty?: string`\n - `sip_outbound_trunk_config?: { auth_username?: string; termination_uri?: string; transport?: string; }`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst phoneNumberResponse = await client.phoneNumber.update('+14157774444');\n\nconsole.log(phoneNumberResponse);\n```",
|
|
615
615
|
perLanguage: {
|
|
616
616
|
http: {
|
|
617
|
-
example: 'curl https://api.retellai.com/update-phone-number/$PHONE_NUMBER \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
617
|
+
example: 'curl https://api.retellai.com/update-phone-number/$PHONE_NUMBER \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d \'{\n "allowed_inbound_country_list": [\n "US",\n "CA",\n "GB"\n ],\n "allowed_outbound_country_list": [\n "US",\n "CA"\n ],\n "auth_password": "123456",\n "auth_username": "username",\n "fallback_number": "+14155551234",\n "inbound_agent_id": "oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",\n "inbound_agent_version": 1,\n "inbound_sms_webhook_url": "https://example.com/inbound-sms-webhook",\n "inbound_webhook_url": "https://example.com/inbound-webhook",\n "nickname": "Frontdesk Number",\n "outbound_agent_id": "oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",\n "outbound_agent_version": 1,\n "termination_uri": "someuri.pstn.twilio.com",\n "transport": "TCP"\n }\'',
|
|
618
618
|
},
|
|
619
619
|
python: {
|
|
620
620
|
method: 'phone_number.update',
|
|
621
|
-
example: '
|
|
621
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nphone_number_response = client.phone_number.update(\n phone_number="+14157774444",\n inbound_agent_id="oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",\n nickname="Frontdesk Number",\n outbound_agent_id="oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",\n)\nprint(phone_number_response.inbound_agent_id)',
|
|
622
622
|
},
|
|
623
623
|
typescript: {
|
|
624
624
|
method: 'client.phoneNumber.update',
|
|
625
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
625
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst phoneNumberResponse = await client.phoneNumber.update('+14157774444', {\n inbound_agent_id: 'oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD',\n nickname: 'Frontdesk Number',\n outbound_agent_id: 'oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD',\n});\n\nconsole.log(phoneNumberResponse.inbound_agent_id);",
|
|
626
626
|
},
|
|
627
627
|
},
|
|
628
628
|
},
|
|
@@ -638,15 +638,15 @@ const EMBEDDED_METHODS = [
|
|
|
638
638
|
markdown: "## delete\n\n`client.phoneNumber.delete(phone_number: string): void`\n\n**delete** `/delete-phone-number/{phone_number}`\n\nDelete an existing phone number\n\n### Parameters\n\n- `phone_number: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nawait client.phoneNumber.delete('+14157774444')\n```",
|
|
639
639
|
perLanguage: {
|
|
640
640
|
http: {
|
|
641
|
-
example: 'curl https://api.retellai.com/delete-phone-number/$PHONE_NUMBER \\\n -X DELETE \\\n -H "Authorization: Bearer $
|
|
641
|
+
example: 'curl https://api.retellai.com/delete-phone-number/$PHONE_NUMBER \\\n -X DELETE \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
642
642
|
},
|
|
643
643
|
python: {
|
|
644
644
|
method: 'phone_number.delete',
|
|
645
|
-
example: '
|
|
645
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nclient.phone_number.delete(\n "+14157774444",\n)',
|
|
646
646
|
},
|
|
647
647
|
typescript: {
|
|
648
648
|
method: 'client.phoneNumber.delete',
|
|
649
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
649
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.phoneNumber.delete('+14157774444');",
|
|
650
650
|
},
|
|
651
651
|
},
|
|
652
652
|
},
|
|
@@ -720,15 +720,15 @@ const EMBEDDED_METHODS = [
|
|
|
720
720
|
markdown: "## create\n\n`client.agent.create(response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }, voice_id: string, agent_name?: string, allow_user_dtmf?: boolean, ambient_sound?: string, ambient_sound_volume?: number, analysis_successful_prompt?: string, analysis_summary_prompt?: string, analysis_user_sentiment_prompt?: string, backchannel_frequency?: number, backchannel_words?: string[], begin_message_delay_ms?: number, boosted_keywords?: string[], custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram'; }, data_storage_retention_days?: number, data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only', denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation', enable_backchannel?: boolean, enable_dynamic_responsiveness?: boolean, enable_dynamic_voice_speed?: boolean, end_call_after_silence_ms?: number, fallback_voice_ids?: string[], guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }, handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }, interruption_sensitivity?: number, is_public?: boolean, ivr_option?: { action: { type: 'hangup'; }; }, language?: string, max_call_duration_ms?: number, normalize_for_speech?: boolean, opt_in_signed_url?: boolean, pii_config?: { categories: string[]; mode: 'post_call'; }, post_call_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[], post_call_analysis_model?: string, pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[], reminder_max_count?: number, reminder_trigger_ms?: number, responsiveness?: number, ring_duration_ms?: number, signed_url_expiration_ms?: number, stt_mode?: 'fast' | 'accurate' | 'custom', timezone?: string, user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }, version_description?: string, vocab_specialization?: 'general' | 'medical', voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised', voice_model?: string, voice_speed?: number, voice_temperature?: number, voicemail_detection_timeout_ms?: number, voicemail_message?: string, voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; }, volume?: number, webhook_events?: string[], webhook_timeout_ms?: number, webhook_url?: string): { agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; version: number; voice_id: string; agent_name?: string; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; custom_stt_config?: object; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: object; handbook_config?: object; interruption_sensitivity?: number; is_public?: boolean; is_published?: boolean; ivr_option?: object; language?: string; max_call_duration_ms?: number; normalize_for_speech?: boolean; opt_in_signed_url?: boolean; pii_config?: object; post_call_analysis_data?: object | object | object | object | object[]; post_call_analysis_model?: string; pronunciation_dictionary?: object[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: object; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: object; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n**post** `/create-agent`\n\nCreate a new agent\n\n### Parameters\n\n- `response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }`\n The Response Engine to attach to the agent. It is used to generate responses for the agent. You need to create a Response Engine first before attaching it to an agent.\n\n- `voice_id: string`\n Unique voice id used for the agent. Find list of available voices and their preview in Dashboard.\n\n- `agent_name?: string`\n The name of the agent. Only used for your own reference.\n\n- `allow_user_dtmf?: boolean`\n If set to true, DTMF input will be accepted and processed. If false, any DTMF input will be ignored. Default to true.\n\n- `ambient_sound?: string`\n If set, will add ambient environment sound to the call to make experience more realistic. Currently supports the following options:\n\n- `coffee-shop`: Coffee shop ambience with people chatting in background. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/coffee-shop.wav)\n- `convention-hall`: Convention hall ambience, with some echo and people chatting in background. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/convention-hall.wav)\n- `summer-outdoor`: Summer outdoor ambience with cicada chirping. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/summer-outdoor.wav)\n- `mountain-outdoor`: Mountain outdoor ambience with birds singing. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/mountain-outdoor.wav)\n- `static-noise`: Constant static noise. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/static-noise.wav)\n- `call-center`: Call center work noise. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/call-center.wav)\nSet to `null` to remove ambient sound from this agent.\n\n- `ambient_sound_volume?: number`\n If set, will control the volume of the ambient sound. Value ranging from [0,2]. Lower value means quieter ambient sound, while higher value means louder ambient sound. If unset, default value 1 will apply.\n\n- `analysis_successful_prompt?: string`\n Prompt to determine whether the post call or chat analysis should mark the interaction as successful. Set to null to use the default prompt.\n\n- `analysis_summary_prompt?: string`\n Prompt to guide how the post call or chat analysis summary should be generated. When unset, the default system prompt is used. Set to null to use the default prompt.\n\n- `analysis_user_sentiment_prompt?: string`\n Prompt to guide how the post call or chat analysis should evaluate user sentiment. When unset, the default system prompt is used. Set to null to use the default prompt.\n\n- `backchannel_frequency?: number`\n Only applicable when enable_backchannel is true. Controls how often the agent would backchannel when a backchannel is possible. Value ranging from [0,1]. Lower value means less frequent backchannel, while higher value means more frequent backchannel. If unset, default value 0.8 will apply.\n\n- `backchannel_words?: string[]`\n Only applicable when enable_backchannel is true. A list of words that the agent would use as backchannel. If not set, default backchannel words will apply. Check out [backchannel default words](/agent/interaction-configuration#backchannel) for more details. Note that certain voices do not work too well with certain words, so it's recommended to experiment before adding any words.\n\n- `begin_message_delay_ms?: number`\n If set, will delay the first message by the specified amount of milliseconds, so that it gives user more time to prepare to take the call. Valid range is [0, 5000]. If not set or set to 0, agent will speak immediately. Only applicable when agent speaks first.\n\n- `boosted_keywords?: string[]`\n Provide a customized list of keywords to bias the transcriber model, so that these words are more likely to get transcribed. Commonly used for names, brands, street, etc.\n\n- `custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram'; }`\n Custom STT configuration. Only used when stt_mode is set to custom.\n - `endpointing_ms: number`\n Endpointing timeout in milliseconds. Minimum is 100 for azure, 10 for deepgram.\n - `provider: 'azure' | 'deepgram'`\n The STT provider to use.\n\n- `data_storage_retention_days?: number`\n Number of days to retain call/chat data before automatic deletion. Must be between 1 and 730 days. If not set, data is retained forever (no automatic deletion).\n\n- `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n Granular setting to manage how Retell stores sensitive data (transcripts, recordings, logs, etc.).\nThis replaces the deprecated `opt_out_sensitive_data_storage` field.\n- `everything`: Store all data including transcripts, recordings, and logs.\n- `everything_except_pii`: Store data without PII when PII is detected.\n- `basic_attributes_only`: Store only basic attributes; no transcripts/recordings/logs.\nIf not set, default value of \"everything\" will apply.\n\n- `denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'`\n If set, determines what denoising mode to use. Use \"no-denoise\" to bypass all audio denoising. Default to noise-cancellation.\n\n- `enable_backchannel?: boolean`\n Controls whether the agent would backchannel (agent interjects the speaker with phrases like \"yeah\", \"uh-huh\" to signify interest and engagement). Backchannel when enabled tends to show up more in longer user utterances. If not set, agent will not backchannel.\n\n- `enable_dynamic_responsiveness?: boolean`\n If set to true, the agent will dynamically adjust how quickly it responds based on the user's speech rate and past turn-taking behavior in the call. If unset, default value false will apply.\n\n- `enable_dynamic_voice_speed?: boolean`\n If set to true, will enable dynamic voice speed adjustment based on the user's speech rate and conversation context. If unset, default value false will apply.\n\n- `end_call_after_silence_ms?: number`\n If users stay silent for a period after agent speech, end the call. The minimum value allowed is 10,000 ms (10 s). By default, this is set to 600000 (10 min).\n\n- `fallback_voice_ids?: string[]`\n When TTS provider for the selected voice is experiencing outages, we would use fallback voices listed here for the agent. Voice id and the fallback voice ids must be from different TTS providers. The system would go through the list in order, if the first one in the list is also having outage, it would use the next one. Set to null to remove voice fallback for the agent.\n\n- `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n Configuration for guardrail checks to detect and prevent prohibited topics in agent output and user input.\n - `input_topics?: 'platform_integrity_jailbreaking'[]`\n Selected prohibited user topic categories to check. When user messages contain these topics, the agent will respond with a placeholder message instead of processing the request.\n - `output_topics?: string[]`\n Selected prohibited agent topic categories to check. When agent messages contain these topics, they will be replaced with a placeholder message.\n\n- `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }`\n Toggle behavior presets on/off to influence agent response style and behaviors.\n - `ai_disclosure?: boolean`\n When asked, acknowledge being a virtual assistant.\n - `default_personality?: boolean`\n Professional call center rep baseline.\n - `echo_verification?: boolean`\n Repeat back and confirm important details (voice only).\n - `high_empathy?: boolean`\n Warm acknowledgment of caller concerns.\n - `nato_phonetic_alphabet?: boolean`\n Spell using NATO phonetic alphabet style (voice only).\n - `natural_filler_words?: boolean`\n Sprinkle natural speech fillers like \"um\", \"you know\" for a more human, conversational tone.\n - `scope_boundaries?: boolean`\n Stay within prompt/context scope, don't invent details.\n - `smart_matching?: boolean`\n Treat near-match similar words as same entity to reduce impact of transcription error (voice only).\n - `speech_normalization?: boolean`\n Convert numbers/dates/currency to spoken forms (voice only).\n\n- `interruption_sensitivity?: number`\n Controls how sensitive the agent is to user interruptions. Value ranging from [0,1]. Lower value means it will take longer / more words for user to interrupt agent, while higher value means it's easier for user to interrupt agent. If unset, default value 1 will apply. When this is set to 0, agent would never be interrupted.\n\n- `is_public?: boolean`\n Whether the agent is public. When set to true, the agent is available for public agent preview link.\n\n- `ivr_option?: { action: { type: 'hangup'; }; }`\n If this option is set, the call will try to detect IVR in the first 3 minutes of the call. Actions defined will be applied when the IVR is detected. Set this to null to disable IVR detection.\n - `action: { type: 'hangup'; }`\n\n- `language?: string`\n Specifies what language (and dialect) the speech recognition will operate in. For instance, selecting `en-GB` optimizes speech recognition for British English. If unset, will use default value `en-US`. Select `multi` for multilingual support.\n\n- `max_call_duration_ms?: number`\n Maximum allowed length for the call, will force end the call if reached. The minimum value allowed is 60,000 ms (1 min), and maximum value allowed is 7,200,000 (2 hours). By default, this is set to 3,600,000 (1 hour).\n\n- `normalize_for_speech?: boolean`\n If set to true, will normalize the some part of text (number, currency, date, etc) to spoken to its spoken form for more consistent speech synthesis (sometimes the voice synthesize system itself might read these wrong with the raw text). For example, it will convert \"Call my number 2137112342 on Jul 5th, 2024 for the $24.12 payment\" to \"Call my number two one three seven one one two three four two on july fifth, twenty twenty four for the twenty four dollars twelve cents payment\" before starting audio generation.\n\n- `opt_in_signed_url?: boolean`\n Whether this agent opts in for signed URLs for public logs and recordings. When enabled, the generated URLs will include security signatures that restrict access and automatically expire after 24 hours.\n\n- `pii_config?: { categories: string[]; mode: 'post_call'; }`\n Configuration for PII scrubbing from transcripts and recordings.\n - `categories: string[]`\n List of PII categories to scrub from transcripts and recordings.\n - `mode: 'post_call'`\n The processing mode for PII scrubbing. Currently only post-call is supported.\n\n- `post_call_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n Post call analysis data to extract from the call. This data will augment the pre-defined variables extracted in the call analysis. This will be available after the call ends.\n\n- `post_call_analysis_model?: string`\n The model to use for post call analysis. Default to gpt-4.1-mini.\n\n- `pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]`\n A list of words / phrases and their pronunciation to be used to guide the audio synthesize for consistent pronunciation. Check the dashboard to see what provider supports this feature. Set to null to remove pronunciation dictionary from this agent.\n\n- `reminder_max_count?: number`\n If set, controls how many times agent would remind user when user is unresponsive. Must be a non negative integer. If unset, default value of 1 will apply (remind once). Set to 0 to disable agent from reminding.\n\n- `reminder_trigger_ms?: number`\n If set (in milliseconds), will trigger a reminder to the agent to speak if the user has been silent for the specified duration after some agent speech. Must be a positive number. If unset, default value of 10000 ms (10 s) will apply.\n\n- `responsiveness?: number`\n Controls how responsive is the agent. Value ranging from [0,1]. Lower value means less responsive agent (wait more, respond slower), while higher value means faster exchanges (respond when it can). If unset, default value 1 will apply.\n\n- `ring_duration_ms?: number`\n If set, the phone ringing will last for the specified amount of milliseconds. This applies for both outbound call ringtime, and call transfer ringtime. Default to 30000 (30 s). Valid range is [5000, 300000].\n\n- `signed_url_expiration_ms?: number`\n The expiration time for the signed url in milliseconds. Only applicable when opt_in_signed_url is true. If not set, default value of 86400000 (24 hours) will apply.\n\n- `stt_mode?: 'fast' | 'accurate' | 'custom'`\n If set, determines whether speech to text should focus on latency or accuracy. Default to fast mode. When set to custom, custom_stt_config must be provided.\n\n- `timezone?: string`\n IANA timezone for the agent (e.g. America/New_York). Defaults to America/Los_Angeles if not set.\n\n- `user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }`\n - `digit_limit?: number`\n The maximum number of digits allowed in the user's DTMF (Dual-Tone Multi-Frequency) input per turn. Once this limit is reached, the input is considered complete and a response will be generated immediately.\n - `termination_key?: string`\n A single key that signals the end of DTMF input. Acceptable values include any digit (0-9), the pound/hash symbol (#), or the asterisk (*).\n - `timeout_ms?: number`\n The time (in milliseconds) to wait for user DTMF input before timing out. The timer resets with each digit received.\n\n- `version_description?: string`\n Optional description of the agent version. Used for your own reference and documentation.\n\n- `vocab_specialization?: 'general' | 'medical'`\n If set, determines the vocabulary set to use for transcription. This setting only applies for English agents, for non English agent, this setting is a no-op. Default to general.\n\n- `voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'`\n Controls the emotional tone of the agent's voice. Currently supported for Cartesia and Minimax TTS providers. If unset, no emotion will be used.\n\n- `voice_model?: string`\n Select the voice model used for the selected voice. Each provider has a set of available voice models. Set to null to remove voice model selection, and default ones will apply. Check out dashboard for more details of each voice model.\n\n- `voice_speed?: number`\n Controls speed of voice. Value ranging from [0.5,2]. Lower value means slower speech, while higher value means faster speech rate. If unset, default value 1 will apply.\n\n- `voice_temperature?: number`\n Controls how stable the voice is. Value ranging from [0,2]. Lower value means more stable, and higher value means more variant speech generation. Check the dashboard to see what provider supports this feature. If unset, default value 1 will apply.\n\n- `voicemail_detection_timeout_ms?: number`\n Configures when to stop running voicemail detection, as it becomes unlikely to hit voicemail after a couple minutes, and keep running it will only have negative impact. The minimum value allowed is 5,000 ms (5 s), and maximum value allowed is 180,000 (3 minutes). By default, this is set to 30,000 (30 s).\n\n- `voicemail_message?: string`\n The message to be played when the call enters a voicemail. Note that this feature is only available for phone calls. If you want to hangup after hitting voicemail, set this to empty string.\n\n- `voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; }`\n If this option is set, the call will try to detect voicemail in the first 3 minutes of the call. Actions defined (hangup, or leave a message) will be applied when the voicemail is detected. Set this to null to disable voicemail detection.\n - `action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }`\n\n- `volume?: number`\n If set, will control the volume of the agent. Value ranging from [0,2]. Lower value means quieter agent speech, while higher value means louder agent speech. If unset, default value 1 will apply.\n\n- `webhook_events?: string[]`\n Which webhook events this agent should receive. If not set, defaults to call_started, call_ended, call_analyzed.\n\n- `webhook_timeout_ms?: number`\n The timeout for the webhook in milliseconds. If not set, default value of 10000 will apply.\n\n- `webhook_url?: string`\n The webhook for agent to listen to call events. See what events it would get at [webhook doc](/features/webhook). If set, will binds webhook events for this agent to the specified url, and will ignore the account level webhook for this agent. Set to `null` to remove webhook url from this agent.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: number; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; version: number; voice_id: string; agent_name?: string; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_public?: boolean; is_published?: boolean; ivr_option?: { action: { type: 'hangup'; }; }; language?: string; max_call_duration_ms?: number; normalize_for_speech?: boolean; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n - `agent_id: string`\n - `last_modification_timestamp: number`\n - `response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }`\n - `version: number`\n - `voice_id: string`\n - `agent_name?: string`\n - `allow_user_dtmf?: boolean`\n - `ambient_sound?: string`\n - `ambient_sound_volume?: number`\n - `analysis_successful_prompt?: string`\n - `analysis_summary_prompt?: string`\n - `analysis_user_sentiment_prompt?: string`\n - `backchannel_frequency?: number`\n - `backchannel_words?: string[]`\n - `begin_message_delay_ms?: number`\n - `boosted_keywords?: string[]`\n - `custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram'; }`\n - `data_storage_retention_days?: number`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'`\n - `enable_backchannel?: boolean`\n - `enable_dynamic_responsiveness?: boolean`\n - `enable_dynamic_voice_speed?: boolean`\n - `end_call_after_silence_ms?: number`\n - `fallback_voice_ids?: string[]`\n - `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n - `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }`\n - `interruption_sensitivity?: number`\n - `is_public?: boolean`\n - `is_published?: boolean`\n - `ivr_option?: { action: { type: 'hangup'; }; }`\n - `language?: string`\n - `max_call_duration_ms?: number`\n - `normalize_for_speech?: boolean`\n - `opt_in_signed_url?: boolean`\n - `pii_config?: { categories: string[]; mode: 'post_call'; }`\n - `post_call_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n - `post_call_analysis_model?: string`\n - `pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]`\n - `reminder_max_count?: number`\n - `reminder_trigger_ms?: number`\n - `responsiveness?: number`\n - `ring_duration_ms?: number`\n - `signed_url_expiration_ms?: number`\n - `stt_mode?: 'fast' | 'accurate' | 'custom'`\n - `timezone?: string`\n - `user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }`\n - `version_description?: string`\n - `vocab_specialization?: 'general' | 'medical'`\n - `voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'`\n - `voice_model?: string`\n - `voice_speed?: number`\n - `voice_temperature?: number`\n - `voicemail_detection_timeout_ms?: number`\n - `voicemail_message?: string`\n - `voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; }`\n - `volume?: number`\n - `webhook_events?: string[]`\n - `webhook_timeout_ms?: number`\n - `webhook_url?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst agentResponse = await client.agent.create({\n response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },\n voice_id: 'retell-Cimo',\n});\n\nconsole.log(agentResponse);\n```",
|
|
721
721
|
perLanguage: {
|
|
722
722
|
http: {
|
|
723
|
-
example: 'curl https://api.retellai.com/create-agent \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
723
|
+
example: 'curl https://api.retellai.com/create-agent \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d "{\n \\"response_engine\\": {\n \\"llm_id\\": \\"llm_234sdertfsdsfsdf\\",\n \\"type\\": \\"retell-llm\\",\n \\"version\\": 0\n },\n \\"voice_id\\": \\"retell-Cimo\\",\n \\"agent_name\\": \\"Jarvis\\",\n \\"allow_user_dtmf\\": true,\n \\"ambient_sound_volume\\": 1,\n \\"analysis_successful_prompt\\": \\"The agent finished the task and the call was complete without being cutoff.\\",\n \\"analysis_summary_prompt\\": \\"Summarize the outcome of the conversation in two sentences.\\",\n \\"analysis_user_sentiment_prompt\\": \\"Evaluate the user\'s sentiment based on their tone and satisfaction level.\\",\n \\"backchannel_frequency\\": 0.9,\n \\"backchannel_words\\": [\n \\"yeah\\",\n \\"uh-huh\\"\n ],\n \\"begin_message_delay_ms\\": 1000,\n \\"boosted_keywords\\": [\n \\"retell\\",\n \\"kroger\\"\n ],\n \\"data_storage_retention_days\\": 30,\n \\"data_storage_setting\\": \\"everything\\",\n \\"denoising_mode\\": \\"noise-cancellation\\",\n \\"enable_backchannel\\": true,\n \\"enable_dynamic_responsiveness\\": true,\n \\"enable_dynamic_voice_speed\\": true,\n \\"end_call_after_silence_ms\\": 600000,\n \\"fallback_voice_ids\\": [\n \\"cartesia-Cimo\\",\n \\"minimax-Cimo\\"\n ],\n \\"interruption_sensitivity\\": 1,\n \\"ivr_option\\": {\n \\"action\\": {\n \\"type\\": \\"hangup\\"\n }\n },\n \\"language\\": \\"en-US\\",\n \\"max_call_duration_ms\\": 3600000,\n \\"normalize_for_speech\\": true,\n \\"opt_in_signed_url\\": true,\n \\"post_call_analysis_model\\": \\"gpt-4.1-mini\\",\n \\"reminder_max_count\\": 2,\n \\"reminder_trigger_ms\\": 10000,\n \\"responsiveness\\": 1,\n \\"ring_duration_ms\\": 30000,\n \\"signed_url_expiration_ms\\": 86400000,\n \\"stt_mode\\": \\"fast\\",\n \\"timezone\\": \\"America/New_York\\",\n \\"version_description\\": \\"Customer support agent for handling product inquiries\\",\n \\"vocab_specialization\\": \\"general\\",\n \\"voice_emotion\\": \\"calm\\",\n \\"voice_speed\\": 1,\n \\"voice_temperature\\": 1,\n \\"voicemail_detection_timeout_ms\\": 30000,\n \\"voicemail_message\\": \\"Hi, please give us a callback.\\",\n \\"voicemail_option\\": {\n \\"action\\": {\n \\"text\\": \\"Please give us a callback tomorrow at 10am.\\",\n \\"type\\": \\"static_text\\"\n }\n },\n \\"volume\\": 1,\n \\"webhook_timeout_ms\\": 10000,\n \\"webhook_url\\": \\"https://webhook-url-here\\"\n }"',
|
|
724
724
|
},
|
|
725
725
|
python: {
|
|
726
726
|
method: 'agent.create',
|
|
727
|
-
example: '
|
|
727
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nagent_response = client.agent.create(\n response_engine={\n "llm_id": "llm_234sdertfsdsfsdf",\n "type": "retell-llm",\n },\n voice_id="retell-Cimo",\n)\nprint(agent_response.agent_id)',
|
|
728
728
|
},
|
|
729
729
|
typescript: {
|
|
730
730
|
method: 'client.agent.create',
|
|
731
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
731
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst agentResponse = await client.agent.create({\n response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },\n voice_id: 'retell-Cimo',\n});\n\nconsole.log(agentResponse.agent_id);",
|
|
732
732
|
},
|
|
733
733
|
},
|
|
734
734
|
},
|
|
@@ -745,15 +745,15 @@ const EMBEDDED_METHODS = [
|
|
|
745
745
|
markdown: "## retrieve\n\n`client.agent.retrieve(agent_id: string, version?: number): { agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; version: number; voice_id: string; agent_name?: string; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; custom_stt_config?: object; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: object; handbook_config?: object; interruption_sensitivity?: number; is_public?: boolean; is_published?: boolean; ivr_option?: object; language?: string; max_call_duration_ms?: number; normalize_for_speech?: boolean; opt_in_signed_url?: boolean; pii_config?: object; post_call_analysis_data?: object | object | object | object | object[]; post_call_analysis_model?: string; pronunciation_dictionary?: object[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: object; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: object; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n**get** `/get-agent/{agent_id}`\n\nRetrieve details of a specific agent\n\n### Parameters\n\n- `agent_id: string`\n\n- `version?: number`\n Optional version of the API to use for this request. If not provided, will default to latest version.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: number; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; version: number; voice_id: string; agent_name?: string; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_public?: boolean; is_published?: boolean; ivr_option?: { action: { type: 'hangup'; }; }; language?: string; max_call_duration_ms?: number; normalize_for_speech?: boolean; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n - `agent_id: string`\n - `last_modification_timestamp: number`\n - `response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }`\n - `version: number`\n - `voice_id: string`\n - `agent_name?: string`\n - `allow_user_dtmf?: boolean`\n - `ambient_sound?: string`\n - `ambient_sound_volume?: number`\n - `analysis_successful_prompt?: string`\n - `analysis_summary_prompt?: string`\n - `analysis_user_sentiment_prompt?: string`\n - `backchannel_frequency?: number`\n - `backchannel_words?: string[]`\n - `begin_message_delay_ms?: number`\n - `boosted_keywords?: string[]`\n - `custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram'; }`\n - `data_storage_retention_days?: number`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'`\n - `enable_backchannel?: boolean`\n - `enable_dynamic_responsiveness?: boolean`\n - `enable_dynamic_voice_speed?: boolean`\n - `end_call_after_silence_ms?: number`\n - `fallback_voice_ids?: string[]`\n - `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n - `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }`\n - `interruption_sensitivity?: number`\n - `is_public?: boolean`\n - `is_published?: boolean`\n - `ivr_option?: { action: { type: 'hangup'; }; }`\n - `language?: string`\n - `max_call_duration_ms?: number`\n - `normalize_for_speech?: boolean`\n - `opt_in_signed_url?: boolean`\n - `pii_config?: { categories: string[]; mode: 'post_call'; }`\n - `post_call_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n - `post_call_analysis_model?: string`\n - `pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]`\n - `reminder_max_count?: number`\n - `reminder_trigger_ms?: number`\n - `responsiveness?: number`\n - `ring_duration_ms?: number`\n - `signed_url_expiration_ms?: number`\n - `stt_mode?: 'fast' | 'accurate' | 'custom'`\n - `timezone?: string`\n - `user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }`\n - `version_description?: string`\n - `vocab_specialization?: 'general' | 'medical'`\n - `voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'`\n - `voice_model?: string`\n - `voice_speed?: number`\n - `voice_temperature?: number`\n - `voicemail_detection_timeout_ms?: number`\n - `voicemail_message?: string`\n - `voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; }`\n - `volume?: number`\n - `webhook_events?: string[]`\n - `webhook_timeout_ms?: number`\n - `webhook_url?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst agentResponse = await client.agent.retrieve('16b980523634a6dc504898cda492e939');\n\nconsole.log(agentResponse);\n```",
|
|
746
746
|
perLanguage: {
|
|
747
747
|
http: {
|
|
748
|
-
example: 'curl https://api.retellai.com/get-agent/$AGENT_ID \\\n -H "Authorization: Bearer $
|
|
748
|
+
example: 'curl https://api.retellai.com/get-agent/$AGENT_ID \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
749
749
|
},
|
|
750
750
|
python: {
|
|
751
751
|
method: 'agent.retrieve',
|
|
752
|
-
example: '
|
|
752
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nagent_response = client.agent.retrieve(\n agent_id="16b980523634a6dc504898cda492e939",\n)\nprint(agent_response.agent_id)',
|
|
753
753
|
},
|
|
754
754
|
typescript: {
|
|
755
755
|
method: 'client.agent.retrieve',
|
|
756
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
756
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst agentResponse = await client.agent.retrieve('16b980523634a6dc504898cda492e939');\n\nconsole.log(agentResponse.agent_id);",
|
|
757
757
|
},
|
|
758
758
|
},
|
|
759
759
|
},
|
|
@@ -770,15 +770,15 @@ const EMBEDDED_METHODS = [
|
|
|
770
770
|
markdown: "## list\n\n`client.agent.list(limit?: number, pagination_key?: string, pagination_key_version?: number): object[]`\n\n**get** `/list-agents`\n\nList all agents\n\n### Parameters\n\n- `limit?: number`\n A limit on the number of objects to be returned. Limit can range between 1 and 1000, and the default is 1000.\n\n- `pagination_key?: string`\n The pagination key to continue fetching the next page of agents. Pagination key is represented by a agent id, pagination key and version pair is exclusive (not included in the fetched page). If not set, will start from the beginning.\n\n- `pagination_key_version?: number`\n Specifies the version of the agent associated with the pagination_key. When paginating, both the pagination_key and its version must be provided to ensure consistent ordering and to fetch the next page correctly.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: number; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; version: number; voice_id: string; agent_name?: string; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_public?: boolean; is_published?: boolean; ivr_option?: { action: object; }; language?: string; max_call_duration_ms?: number; normalize_for_speech?: boolean; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: { action: object | object | object | object; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst agentResponses = await client.agent.list();\n\nconsole.log(agentResponses);\n```",
|
|
771
771
|
perLanguage: {
|
|
772
772
|
http: {
|
|
773
|
-
example: 'curl https://api.retellai.com/list-agents \\\n -H "Authorization: Bearer $
|
|
773
|
+
example: 'curl https://api.retellai.com/list-agents \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
774
774
|
},
|
|
775
775
|
python: {
|
|
776
776
|
method: 'agent.list',
|
|
777
|
-
example: '
|
|
777
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nagent_responses = client.agent.list()\nprint(agent_responses)',
|
|
778
778
|
},
|
|
779
779
|
typescript: {
|
|
780
780
|
method: 'client.agent.list',
|
|
781
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
781
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst agentResponses = await client.agent.list();\n\nconsole.log(agentResponses);",
|
|
782
782
|
},
|
|
783
783
|
},
|
|
784
784
|
},
|
|
@@ -854,15 +854,15 @@ const EMBEDDED_METHODS = [
|
|
|
854
854
|
markdown: "## update\n\n`client.agent.update(agent_id: string, version?: number, agent_name?: string, allow_user_dtmf?: boolean, ambient_sound?: string, ambient_sound_volume?: number, analysis_successful_prompt?: string, analysis_summary_prompt?: string, analysis_user_sentiment_prompt?: string, backchannel_frequency?: number, backchannel_words?: string[], begin_message_delay_ms?: number, boosted_keywords?: string[], custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram'; }, data_storage_retention_days?: number, data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only', denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation', enable_backchannel?: boolean, enable_dynamic_responsiveness?: boolean, enable_dynamic_voice_speed?: boolean, end_call_after_silence_ms?: number, fallback_voice_ids?: string[], guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }, handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }, interruption_sensitivity?: number, is_public?: boolean, ivr_option?: { action: { type: 'hangup'; }; }, language?: string, max_call_duration_ms?: number, normalize_for_speech?: boolean, opt_in_signed_url?: boolean, pii_config?: { categories: string[]; mode: 'post_call'; }, post_call_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[], post_call_analysis_model?: string, pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[], reminder_max_count?: number, reminder_trigger_ms?: number, response_engine?: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }, responsiveness?: number, ring_duration_ms?: number, signed_url_expiration_ms?: number, stt_mode?: 'fast' | 'accurate' | 'custom', timezone?: string, user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }, version_description?: string, vocab_specialization?: 'general' | 'medical', voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised', voice_id?: string, voice_model?: string, voice_speed?: number, voice_temperature?: number, voicemail_detection_timeout_ms?: number, voicemail_message?: string, voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; }, volume?: number, webhook_events?: string[], webhook_timeout_ms?: number, webhook_url?: string): { agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; version: number; voice_id: string; agent_name?: string; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; custom_stt_config?: object; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: object; handbook_config?: object; interruption_sensitivity?: number; is_public?: boolean; is_published?: boolean; ivr_option?: object; language?: string; max_call_duration_ms?: number; normalize_for_speech?: boolean; opt_in_signed_url?: boolean; pii_config?: object; post_call_analysis_data?: object | object | object | object | object[]; post_call_analysis_model?: string; pronunciation_dictionary?: object[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: object; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: object; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n**patch** `/update-agent/{agent_id}`\n\nUpdate an existing agent's latest draft version\n\n### Parameters\n\n- `agent_id: string`\n\n- `version?: number`\n Optional version of the API to use for this request. Default to latest version.\n\n- `agent_name?: string`\n The name of the agent. Only used for your own reference.\n\n- `allow_user_dtmf?: boolean`\n If set to true, DTMF input will be accepted and processed. If false, any DTMF input will be ignored. Default to true.\n\n- `ambient_sound?: string`\n If set, will add ambient environment sound to the call to make experience more realistic. Currently supports the following options:\n\n- `coffee-shop`: Coffee shop ambience with people chatting in background. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/coffee-shop.wav)\n- `convention-hall`: Convention hall ambience, with some echo and people chatting in background. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/convention-hall.wav)\n- `summer-outdoor`: Summer outdoor ambience with cicada chirping. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/summer-outdoor.wav)\n- `mountain-outdoor`: Mountain outdoor ambience with birds singing. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/mountain-outdoor.wav)\n- `static-noise`: Constant static noise. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/static-noise.wav)\n- `call-center`: Call center work noise. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/call-center.wav)\nSet to `null` to remove ambient sound from this agent.\n\n- `ambient_sound_volume?: number`\n If set, will control the volume of the ambient sound. Value ranging from [0,2]. Lower value means quieter ambient sound, while higher value means louder ambient sound. If unset, default value 1 will apply.\n\n- `analysis_successful_prompt?: string`\n Prompt to determine whether the post call or chat analysis should mark the interaction as successful. Set to null to use the default prompt.\n\n- `analysis_summary_prompt?: string`\n Prompt to guide how the post call or chat analysis summary should be generated. When unset, the default system prompt is used. Set to null to use the default prompt.\n\n- `analysis_user_sentiment_prompt?: string`\n Prompt to guide how the post call or chat analysis should evaluate user sentiment. When unset, the default system prompt is used. Set to null to use the default prompt.\n\n- `backchannel_frequency?: number`\n Only applicable when enable_backchannel is true. Controls how often the agent would backchannel when a backchannel is possible. Value ranging from [0,1]. Lower value means less frequent backchannel, while higher value means more frequent backchannel. If unset, default value 0.8 will apply.\n\n- `backchannel_words?: string[]`\n Only applicable when enable_backchannel is true. A list of words that the agent would use as backchannel. If not set, default backchannel words will apply. Check out [backchannel default words](/agent/interaction-configuration#backchannel) for more details. Note that certain voices do not work too well with certain words, so it's recommended to experiment before adding any words.\n\n- `begin_message_delay_ms?: number`\n If set, will delay the first message by the specified amount of milliseconds, so that it gives user more time to prepare to take the call. Valid range is [0, 5000]. If not set or set to 0, agent will speak immediately. Only applicable when agent speaks first.\n\n- `boosted_keywords?: string[]`\n Provide a customized list of keywords to bias the transcriber model, so that these words are more likely to get transcribed. Commonly used for names, brands, street, etc.\n\n- `custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram'; }`\n Custom STT configuration. Only used when stt_mode is set to custom.\n - `endpointing_ms: number`\n Endpointing timeout in milliseconds. Minimum is 100 for azure, 10 for deepgram.\n - `provider: 'azure' | 'deepgram'`\n The STT provider to use.\n\n- `data_storage_retention_days?: number`\n Number of days to retain call/chat data before automatic deletion. Must be between 1 and 730 days. If not set, data is retained forever (no automatic deletion).\n\n- `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n Granular setting to manage how Retell stores sensitive data (transcripts, recordings, logs, etc.).\nThis replaces the deprecated `opt_out_sensitive_data_storage` field.\n- `everything`: Store all data including transcripts, recordings, and logs.\n- `everything_except_pii`: Store data without PII when PII is detected.\n- `basic_attributes_only`: Store only basic attributes; no transcripts/recordings/logs.\nIf not set, default value of \"everything\" will apply.\n\n- `denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'`\n If set, determines what denoising mode to use. Use \"no-denoise\" to bypass all audio denoising. Default to noise-cancellation.\n\n- `enable_backchannel?: boolean`\n Controls whether the agent would backchannel (agent interjects the speaker with phrases like \"yeah\", \"uh-huh\" to signify interest and engagement). Backchannel when enabled tends to show up more in longer user utterances. If not set, agent will not backchannel.\n\n- `enable_dynamic_responsiveness?: boolean`\n If set to true, the agent will dynamically adjust how quickly it responds based on the user's speech rate and past turn-taking behavior in the call. If unset, default value false will apply.\n\n- `enable_dynamic_voice_speed?: boolean`\n If set to true, will enable dynamic voice speed adjustment based on the user's speech rate and conversation context. If unset, default value false will apply.\n\n- `end_call_after_silence_ms?: number`\n If users stay silent for a period after agent speech, end the call. The minimum value allowed is 10,000 ms (10 s). By default, this is set to 600000 (10 min).\n\n- `fallback_voice_ids?: string[]`\n When TTS provider for the selected voice is experiencing outages, we would use fallback voices listed here for the agent. Voice id and the fallback voice ids must be from different TTS providers. The system would go through the list in order, if the first one in the list is also having outage, it would use the next one. Set to null to remove voice fallback for the agent.\n\n- `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n Configuration for guardrail checks to detect and prevent prohibited topics in agent output and user input.\n - `input_topics?: 'platform_integrity_jailbreaking'[]`\n Selected prohibited user topic categories to check. When user messages contain these topics, the agent will respond with a placeholder message instead of processing the request.\n - `output_topics?: string[]`\n Selected prohibited agent topic categories to check. When agent messages contain these topics, they will be replaced with a placeholder message.\n\n- `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }`\n Toggle behavior presets on/off to influence agent response style and behaviors.\n - `ai_disclosure?: boolean`\n When asked, acknowledge being a virtual assistant.\n - `default_personality?: boolean`\n Professional call center rep baseline.\n - `echo_verification?: boolean`\n Repeat back and confirm important details (voice only).\n - `high_empathy?: boolean`\n Warm acknowledgment of caller concerns.\n - `nato_phonetic_alphabet?: boolean`\n Spell using NATO phonetic alphabet style (voice only).\n - `natural_filler_words?: boolean`\n Sprinkle natural speech fillers like \"um\", \"you know\" for a more human, conversational tone.\n - `scope_boundaries?: boolean`\n Stay within prompt/context scope, don't invent details.\n - `smart_matching?: boolean`\n Treat near-match similar words as same entity to reduce impact of transcription error (voice only).\n - `speech_normalization?: boolean`\n Convert numbers/dates/currency to spoken forms (voice only).\n\n- `interruption_sensitivity?: number`\n Controls how sensitive the agent is to user interruptions. Value ranging from [0,1]. Lower value means it will take longer / more words for user to interrupt agent, while higher value means it's easier for user to interrupt agent. If unset, default value 1 will apply. When this is set to 0, agent would never be interrupted.\n\n- `is_public?: boolean`\n Whether the agent is public. When set to true, the agent is available for public agent preview link.\n\n- `ivr_option?: { action: { type: 'hangup'; }; }`\n If this option is set, the call will try to detect IVR in the first 3 minutes of the call. Actions defined will be applied when the IVR is detected. Set this to null to disable IVR detection.\n - `action: { type: 'hangup'; }`\n\n- `language?: string`\n Specifies what language (and dialect) the speech recognition will operate in. For instance, selecting `en-GB` optimizes speech recognition for British English. If unset, will use default value `en-US`. Select `multi` for multilingual support.\n\n- `max_call_duration_ms?: number`\n Maximum allowed length for the call, will force end the call if reached. The minimum value allowed is 60,000 ms (1 min), and maximum value allowed is 7,200,000 (2 hours). By default, this is set to 3,600,000 (1 hour).\n\n- `normalize_for_speech?: boolean`\n If set to true, will normalize the some part of text (number, currency, date, etc) to spoken to its spoken form for more consistent speech synthesis (sometimes the voice synthesize system itself might read these wrong with the raw text). For example, it will convert \"Call my number 2137112342 on Jul 5th, 2024 for the $24.12 payment\" to \"Call my number two one three seven one one two three four two on july fifth, twenty twenty four for the twenty four dollars twelve cents payment\" before starting audio generation.\n\n- `opt_in_signed_url?: boolean`\n Whether this agent opts in for signed URLs for public logs and recordings. When enabled, the generated URLs will include security signatures that restrict access and automatically expire after 24 hours.\n\n- `pii_config?: { categories: string[]; mode: 'post_call'; }`\n Configuration for PII scrubbing from transcripts and recordings.\n - `categories: string[]`\n List of PII categories to scrub from transcripts and recordings.\n - `mode: 'post_call'`\n The processing mode for PII scrubbing. Currently only post-call is supported.\n\n- `post_call_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n Post call analysis data to extract from the call. This data will augment the pre-defined variables extracted in the call analysis. This will be available after the call ends.\n\n- `post_call_analysis_model?: string`\n The model to use for post call analysis. Default to gpt-4.1-mini.\n\n- `pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]`\n A list of words / phrases and their pronunciation to be used to guide the audio synthesize for consistent pronunciation. Check the dashboard to see what provider supports this feature. Set to null to remove pronunciation dictionary from this agent.\n\n- `reminder_max_count?: number`\n If set, controls how many times agent would remind user when user is unresponsive. Must be a non negative integer. If unset, default value of 1 will apply (remind once). Set to 0 to disable agent from reminding.\n\n- `reminder_trigger_ms?: number`\n If set (in milliseconds), will trigger a reminder to the agent to speak if the user has been silent for the specified duration after some agent speech. Must be a positive number. If unset, default value of 10000 ms (10 s) will apply.\n\n- `response_engine?: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }`\n The Response Engine to attach to the agent. It is used to generate responses for the agent. You need to create a Response Engine first before attaching it to an agent.\n\n- `responsiveness?: number`\n Controls how responsive is the agent. Value ranging from [0,1]. Lower value means less responsive agent (wait more, respond slower), while higher value means faster exchanges (respond when it can). If unset, default value 1 will apply.\n\n- `ring_duration_ms?: number`\n If set, the phone ringing will last for the specified amount of milliseconds. This applies for both outbound call ringtime, and call transfer ringtime. Default to 30000 (30 s). Valid range is [5000, 300000].\n\n- `signed_url_expiration_ms?: number`\n The expiration time for the signed url in milliseconds. Only applicable when opt_in_signed_url is true. If not set, default value of 86400000 (24 hours) will apply.\n\n- `stt_mode?: 'fast' | 'accurate' | 'custom'`\n If set, determines whether speech to text should focus on latency or accuracy. Default to fast mode. When set to custom, custom_stt_config must be provided.\n\n- `timezone?: string`\n IANA timezone for the agent (e.g. America/New_York). Defaults to America/Los_Angeles if not set.\n\n- `user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }`\n - `digit_limit?: number`\n The maximum number of digits allowed in the user's DTMF (Dual-Tone Multi-Frequency) input per turn. Once this limit is reached, the input is considered complete and a response will be generated immediately.\n - `termination_key?: string`\n A single key that signals the end of DTMF input. Acceptable values include any digit (0-9), the pound/hash symbol (#), or the asterisk (*).\n - `timeout_ms?: number`\n The time (in milliseconds) to wait for user DTMF input before timing out. The timer resets with each digit received.\n\n- `version_description?: string`\n Optional description of the agent version. Used for your own reference and documentation.\n\n- `vocab_specialization?: 'general' | 'medical'`\n If set, determines the vocabulary set to use for transcription. This setting only applies for English agents, for non English agent, this setting is a no-op. Default to general.\n\n- `voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'`\n Controls the emotional tone of the agent's voice. Currently supported for Cartesia and Minimax TTS providers. If unset, no emotion will be used.\n\n- `voice_id?: string`\n Unique voice id used for the agent. Find list of available voices and their preview in Dashboard.\n\n- `voice_model?: string`\n Select the voice model used for the selected voice. Each provider has a set of available voice models. Set to null to remove voice model selection, and default ones will apply. Check out dashboard for more details of each voice model.\n\n- `voice_speed?: number`\n Controls speed of voice. Value ranging from [0.5,2]. Lower value means slower speech, while higher value means faster speech rate. If unset, default value 1 will apply.\n\n- `voice_temperature?: number`\n Controls how stable the voice is. Value ranging from [0,2]. Lower value means more stable, and higher value means more variant speech generation. Check the dashboard to see what provider supports this feature. If unset, default value 1 will apply.\n\n- `voicemail_detection_timeout_ms?: number`\n Configures when to stop running voicemail detection, as it becomes unlikely to hit voicemail after a couple minutes, and keep running it will only have negative impact. The minimum value allowed is 5,000 ms (5 s), and maximum value allowed is 180,000 (3 minutes). By default, this is set to 30,000 (30 s).\n\n- `voicemail_message?: string`\n The message to be played when the call enters a voicemail. Note that this feature is only available for phone calls. If you want to hangup after hitting voicemail, set this to empty string.\n\n- `voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; }`\n If this option is set, the call will try to detect voicemail in the first 3 minutes of the call. Actions defined (hangup, or leave a message) will be applied when the voicemail is detected. Set this to null to disable voicemail detection.\n - `action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }`\n\n- `volume?: number`\n If set, will control the volume of the agent. Value ranging from [0,2]. Lower value means quieter agent speech, while higher value means louder agent speech. If unset, default value 1 will apply.\n\n- `webhook_events?: string[]`\n Which webhook events this agent should receive. If not set, defaults to call_started, call_ended, call_analyzed.\n\n- `webhook_timeout_ms?: number`\n The timeout for the webhook in milliseconds. If not set, default value of 10000 will apply.\n\n- `webhook_url?: string`\n The webhook for agent to listen to call events. See what events it would get at [webhook doc](/features/webhook). If set, will binds webhook events for this agent to the specified url, and will ignore the account level webhook for this agent. Set to `null` to remove webhook url from this agent.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: number; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; version: number; voice_id: string; agent_name?: string; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_public?: boolean; is_published?: boolean; ivr_option?: { action: { type: 'hangup'; }; }; language?: string; max_call_duration_ms?: number; normalize_for_speech?: boolean; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n - `agent_id: string`\n - `last_modification_timestamp: number`\n - `response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }`\n - `version: number`\n - `voice_id: string`\n - `agent_name?: string`\n - `allow_user_dtmf?: boolean`\n - `ambient_sound?: string`\n - `ambient_sound_volume?: number`\n - `analysis_successful_prompt?: string`\n - `analysis_summary_prompt?: string`\n - `analysis_user_sentiment_prompt?: string`\n - `backchannel_frequency?: number`\n - `backchannel_words?: string[]`\n - `begin_message_delay_ms?: number`\n - `boosted_keywords?: string[]`\n - `custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram'; }`\n - `data_storage_retention_days?: number`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'`\n - `enable_backchannel?: boolean`\n - `enable_dynamic_responsiveness?: boolean`\n - `enable_dynamic_voice_speed?: boolean`\n - `end_call_after_silence_ms?: number`\n - `fallback_voice_ids?: string[]`\n - `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n - `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }`\n - `interruption_sensitivity?: number`\n - `is_public?: boolean`\n - `is_published?: boolean`\n - `ivr_option?: { action: { type: 'hangup'; }; }`\n - `language?: string`\n - `max_call_duration_ms?: number`\n - `normalize_for_speech?: boolean`\n - `opt_in_signed_url?: boolean`\n - `pii_config?: { categories: string[]; mode: 'post_call'; }`\n - `post_call_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n - `post_call_analysis_model?: string`\n - `pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]`\n - `reminder_max_count?: number`\n - `reminder_trigger_ms?: number`\n - `responsiveness?: number`\n - `ring_duration_ms?: number`\n - `signed_url_expiration_ms?: number`\n - `stt_mode?: 'fast' | 'accurate' | 'custom'`\n - `timezone?: string`\n - `user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }`\n - `version_description?: string`\n - `vocab_specialization?: 'general' | 'medical'`\n - `voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'`\n - `voice_model?: string`\n - `voice_speed?: number`\n - `voice_temperature?: number`\n - `voicemail_detection_timeout_ms?: number`\n - `voicemail_message?: string`\n - `voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; }`\n - `volume?: number`\n - `webhook_events?: string[]`\n - `webhook_timeout_ms?: number`\n - `webhook_url?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst agentResponse = await client.agent.update('16b980523634a6dc504898cda492e939');\n\nconsole.log(agentResponse);\n```",
|
|
855
855
|
perLanguage: {
|
|
856
856
|
http: {
|
|
857
|
-
example: 'curl https://api.retellai.com/update-agent/$AGENT_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
857
|
+
example: 'curl https://api.retellai.com/update-agent/$AGENT_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d "{\n \\"agent_name\\": \\"Jarvis\\",\n \\"allow_user_dtmf\\": true,\n \\"ambient_sound_volume\\": 1,\n \\"analysis_successful_prompt\\": \\"The agent finished the task and the call was complete without being cutoff.\\",\n \\"analysis_summary_prompt\\": \\"Summarize the outcome of the conversation in two sentences.\\",\n \\"analysis_user_sentiment_prompt\\": \\"Evaluate the user\'s sentiment based on their tone and satisfaction level.\\",\n \\"backchannel_frequency\\": 0.9,\n \\"backchannel_words\\": [\n \\"yeah\\",\n \\"uh-huh\\"\n ],\n \\"begin_message_delay_ms\\": 1000,\n \\"boosted_keywords\\": [\n \\"retell\\",\n \\"kroger\\"\n ],\n \\"data_storage_retention_days\\": 30,\n \\"data_storage_setting\\": \\"everything\\",\n \\"denoising_mode\\": \\"noise-cancellation\\",\n \\"enable_backchannel\\": true,\n \\"enable_dynamic_responsiveness\\": true,\n \\"enable_dynamic_voice_speed\\": true,\n \\"end_call_after_silence_ms\\": 600000,\n \\"fallback_voice_ids\\": [\n \\"cartesia-Cimo\\",\n \\"minimax-Cimo\\"\n ],\n \\"interruption_sensitivity\\": 1,\n \\"ivr_option\\": {\n \\"action\\": {\n \\"type\\": \\"hangup\\"\n }\n },\n \\"language\\": \\"en-US\\",\n \\"max_call_duration_ms\\": 3600000,\n \\"normalize_for_speech\\": true,\n \\"opt_in_signed_url\\": true,\n \\"post_call_analysis_model\\": \\"gpt-4.1-mini\\",\n \\"reminder_max_count\\": 2,\n \\"reminder_trigger_ms\\": 10000,\n \\"response_engine\\": {\n \\"llm_id\\": \\"llm_234sdertfsdsfsdf\\",\n \\"type\\": \\"retell-llm\\",\n \\"version\\": 0\n },\n \\"responsiveness\\": 1,\n \\"ring_duration_ms\\": 30000,\n \\"signed_url_expiration_ms\\": 86400000,\n \\"stt_mode\\": \\"fast\\",\n \\"timezone\\": \\"America/New_York\\",\n \\"version_description\\": \\"Customer support agent for handling product inquiries\\",\n \\"vocab_specialization\\": \\"general\\",\n \\"voice_emotion\\": \\"calm\\",\n \\"voice_id\\": \\"retell-Cimo\\",\n \\"voice_speed\\": 1,\n \\"voice_temperature\\": 1,\n \\"voicemail_detection_timeout_ms\\": 30000,\n \\"voicemail_message\\": \\"Hi, please give us a callback.\\",\n \\"voicemail_option\\": {\n \\"action\\": {\n \\"text\\": \\"Please give us a callback tomorrow at 10am.\\",\n \\"type\\": \\"static_text\\"\n }\n },\n \\"volume\\": 1,\n \\"webhook_timeout_ms\\": 10000,\n \\"webhook_url\\": \\"https://webhook-url-here\\"\n }"',
|
|
858
858
|
},
|
|
859
859
|
python: {
|
|
860
860
|
method: 'agent.update',
|
|
861
|
-
example: '
|
|
861
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nagent_response = client.agent.update(\n agent_id="16b980523634a6dc504898cda492e939",\n agent_name="Jarvis",\n)\nprint(agent_response.agent_id)',
|
|
862
862
|
},
|
|
863
863
|
typescript: {
|
|
864
864
|
method: 'client.agent.update',
|
|
865
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
865
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst agentResponse = await client.agent.update('16b980523634a6dc504898cda492e939', {\n agent_name: 'Jarvis',\n});\n\nconsole.log(agentResponse.agent_id);",
|
|
866
866
|
},
|
|
867
867
|
},
|
|
868
868
|
},
|
|
@@ -878,15 +878,15 @@ const EMBEDDED_METHODS = [
|
|
|
878
878
|
markdown: "## delete\n\n`client.agent.delete(agent_id: string): void`\n\n**delete** `/delete-agent/{agent_id}`\n\nDelete an existing agent\n\n### Parameters\n\n- `agent_id: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nawait client.agent.delete('oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD')\n```",
|
|
879
879
|
perLanguage: {
|
|
880
880
|
http: {
|
|
881
|
-
example: 'curl https://api.retellai.com/delete-agent/$AGENT_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $
|
|
881
|
+
example: 'curl https://api.retellai.com/delete-agent/$AGENT_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
882
882
|
},
|
|
883
883
|
python: {
|
|
884
884
|
method: 'agent.delete',
|
|
885
|
-
example: '
|
|
885
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nclient.agent.delete(\n "oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",\n)',
|
|
886
886
|
},
|
|
887
887
|
typescript: {
|
|
888
888
|
method: 'client.agent.delete',
|
|
889
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
889
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.agent.delete('oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD');",
|
|
890
890
|
},
|
|
891
891
|
},
|
|
892
892
|
},
|
|
@@ -902,15 +902,15 @@ const EMBEDDED_METHODS = [
|
|
|
902
902
|
markdown: "## publish\n\n`client.agent.publish(agent_id: string): void`\n\n**post** `/publish-agent/{agent_id}`\n\nPublish the latest version of the agent and create a new draft agent with newer version.\n\n### Parameters\n\n- `agent_id: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nawait client.agent.publish('16b980523634a6dc504898cda492e939')\n```",
|
|
903
903
|
perLanguage: {
|
|
904
904
|
http: {
|
|
905
|
-
example: 'curl https://api.retellai.com/publish-agent/$AGENT_ID \\\n -X POST \\\n -H "Authorization: Bearer $
|
|
905
|
+
example: 'curl https://api.retellai.com/publish-agent/$AGENT_ID \\\n -X POST \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
906
906
|
},
|
|
907
907
|
python: {
|
|
908
908
|
method: 'agent.publish',
|
|
909
|
-
example: '
|
|
909
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nclient.agent.publish(\n "16b980523634a6dc504898cda492e939",\n)',
|
|
910
910
|
},
|
|
911
911
|
typescript: {
|
|
912
912
|
method: 'client.agent.publish',
|
|
913
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
913
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.agent.publish('16b980523634a6dc504898cda492e939');",
|
|
914
914
|
},
|
|
915
915
|
},
|
|
916
916
|
},
|
|
@@ -927,15 +927,15 @@ const EMBEDDED_METHODS = [
|
|
|
927
927
|
markdown: "## get-versions\n\n`client.agent.getVersions(agent_id: string): object[]`\n\n**get** `/get-agent-versions/{agent_id}`\n\nGet all versions of an agent\n\n### Parameters\n\n- `agent_id: string`\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: number; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; version: number; voice_id: string; agent_name?: string; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_public?: boolean; is_published?: boolean; ivr_option?: { action: object; }; language?: string; max_call_duration_ms?: number; normalize_for_speech?: boolean; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: { action: object | object | object | object; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst agentResponses = await client.agent.getVersions('16b980523634a6dc504898cda492e939');\n\nconsole.log(agentResponses);\n```",
|
|
928
928
|
perLanguage: {
|
|
929
929
|
http: {
|
|
930
|
-
example: 'curl https://api.retellai.com/get-agent-versions/$AGENT_ID \\\n -H "Authorization: Bearer $
|
|
930
|
+
example: 'curl https://api.retellai.com/get-agent-versions/$AGENT_ID \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
931
931
|
},
|
|
932
932
|
python: {
|
|
933
933
|
method: 'agent.get_versions',
|
|
934
|
-
example: '
|
|
934
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nagent_responses = client.agent.get_versions(\n "16b980523634a6dc504898cda492e939",\n)\nprint(agent_responses)',
|
|
935
935
|
},
|
|
936
936
|
typescript: {
|
|
937
937
|
method: 'client.agent.getVersions',
|
|
938
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
938
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst agentResponses = await client.agent.getVersions('16b980523634a6dc504898cda492e939');\n\nconsole.log(agentResponses);",
|
|
939
939
|
},
|
|
940
940
|
},
|
|
941
941
|
},
|
|
@@ -975,15 +975,15 @@ const EMBEDDED_METHODS = [
|
|
|
975
975
|
markdown: "## create\n\n`client.chatAgent.create(response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }, agent_name?: string, analysis_successful_prompt?: string, analysis_summary_prompt?: string, analysis_user_sentiment_prompt?: string, auto_close_message?: string, data_storage_retention_days?: number, data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only', end_chat_after_silence_ms?: number, guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }, handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }, is_public?: boolean, language?: string, opt_in_signed_url?: boolean, pii_config?: { categories: string[]; mode: 'post_call'; }, post_chat_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[], post_chat_analysis_model?: string, signed_url_expiration_ms?: number, timezone?: string, webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed'[], webhook_timeout_ms?: number, webhook_url?: string): { agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; auto_close_message?: string; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: object; handbook_config?: object; is_public?: boolean; is_published?: boolean; language?: string; opt_in_signed_url?: boolean; pii_config?: object; post_chat_analysis_data?: object | object | object | object | object[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed'[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n**post** `/create-chat-agent`\n\nCreate a new chat agent\n\n### Parameters\n\n- `response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }`\n The Response Engine to attach to the agent. It is used to generate responses for the agent. You need to create a Response Engine first before attaching it to an agent.\n\n- `agent_name?: string`\n The name of the chat agent. Only used for your own reference.\n\n- `analysis_successful_prompt?: string`\n The prompt to use for post call analysis to evaluate whether the call is successful. Set to null to use the default prompt.\n\n- `analysis_summary_prompt?: string`\n The prompt to use for post call analysis to summarize the call. Set to null to use the default prompt.\n\n- `analysis_user_sentiment_prompt?: string`\n Prompt to guide how the post chat analysis should evaluate user sentiment. When unset, the default system prompt is used. Set to null to use the default prompt.\n\n- `auto_close_message?: string`\n Message to display when the chat is automatically closed.\n\n- `data_storage_retention_days?: number`\n Number of days to retain call/chat data before automatic deletion. Must be between 1 and 730 days. If not set, data is retained forever (no automatic deletion).\n\n- `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n Controls what data is stored for this agent. \"everything\" stores all data including transcripts and recordings. \"everything_except_pii\" stores data but excludes PII when possible based on PII configuration. \"basic_attributes_only\" stores only basic metadata. If not set, defaults to \"everything\".\n\n- `end_chat_after_silence_ms?: number`\n If users stay silent for a period after agent speech, end the chat. The minimum value allowed is 120,000 ms (2 minutes). The maximum value allowed is 259,200,000 ms (72 hours). By default, this is set to 3,600,000 (1 hour).\n\n- `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n Configuration for guardrail checks to detect and prevent prohibited topics in agent output and user input.\n - `input_topics?: 'platform_integrity_jailbreaking'[]`\n Selected prohibited user topic categories to check. When user messages contain these topics, the agent will respond with a placeholder message instead of processing the request.\n - `output_topics?: string[]`\n Selected prohibited agent topic categories to check. When agent messages contain these topics, they will be replaced with a placeholder message.\n\n- `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }`\n Toggle behavior presets on/off to influence agent response style and behaviors. Voice-only presets are not available for chat agents.\n - `ai_disclosure?: boolean`\n When asked, acknowledge being a virtual assistant.\n - `default_personality?: boolean`\n Professional call center rep baseline.\n - `high_empathy?: boolean`\n Warm acknowledgment of caller concerns.\n - `scope_boundaries?: boolean`\n Stay within prompt/context scope, don't invent details.\n\n- `is_public?: boolean`\n Whether the agent is public. When set to true, the agent is available for public agent preview link.\n\n- `language?: string`\n Specifies what language (and dialect) the chat will operate in. For instance, selecting `en-GB` optimizes for British English. If unset, will use default value `en-US`. Select `multi` for multilingual support, currently this supports Spanish and English.\n\n- `opt_in_signed_url?: boolean`\n Whether this agent opts in to signed url for public log. If not set, default value of false will apply.\n\n- `pii_config?: { categories: string[]; mode: 'post_call'; }`\n Configuration for PII scrubbing from transcripts and recordings.\n - `categories: string[]`\n List of PII categories to scrub from transcripts and recordings.\n - `mode: 'post_call'`\n The processing mode for PII scrubbing. Currently only post-call is supported.\n\n- `post_chat_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n Post chat analysis data to extract from the chat. This data will augment the pre-defined variables extracted in the chat analysis. This will be available after the chat ends.\n\n- `post_chat_analysis_model?: string`\n The model to use for post chat analysis. Default to gpt-4.1-mini.\n\n- `signed_url_expiration_ms?: number`\n The expiration time for the signed url in milliseconds. Only applicable when opt_in_signed_url is true. If not set, default value of 86400000 (24 hours) will apply.\n\n- `timezone?: string`\n IANA timezone for the agent (e.g. America/New_York). Defaults to America/Los_Angeles if not set.\n\n- `webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed'[]`\n Which webhook events this agent should receive. If not set, defaults to chat_started, chat_ended, chat_analyzed.\n\n- `webhook_timeout_ms?: number`\n The timeout for the webhook in milliseconds. If not set, default value of 10000 will apply.\n\n- `webhook_url?: string`\n The webhook for agent to listen to chat events. See what events it would get at [webhook doc](/features/webhook). If set, will binds webhook events for this agent to the specified url, and will ignore the account level webhook for this agent. Set to `null` to remove webhook url from this agent.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: number; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; auto_close_message?: string; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }; is_public?: boolean; is_published?: boolean; language?: string; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_chat_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed'[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n - `agent_id: string`\n - `last_modification_timestamp: number`\n - `response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }`\n - `agent_name?: string`\n - `analysis_successful_prompt?: string`\n - `analysis_summary_prompt?: string`\n - `analysis_user_sentiment_prompt?: string`\n - `auto_close_message?: string`\n - `data_storage_retention_days?: number`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `end_chat_after_silence_ms?: number`\n - `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n - `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }`\n - `is_public?: boolean`\n - `is_published?: boolean`\n - `language?: string`\n - `opt_in_signed_url?: boolean`\n - `pii_config?: { categories: string[]; mode: 'post_call'; }`\n - `post_chat_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n - `post_chat_analysis_model?: string`\n - `signed_url_expiration_ms?: number`\n - `timezone?: string`\n - `version?: number`\n - `webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed'[]`\n - `webhook_timeout_ms?: number`\n - `webhook_url?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst chatAgentResponse = await client.chatAgent.create({ response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' } });\n\nconsole.log(chatAgentResponse);\n```",
|
|
976
976
|
perLanguage: {
|
|
977
977
|
http: {
|
|
978
|
-
example: 'curl https://api.retellai.com/create-chat-agent \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
978
|
+
example: 'curl https://api.retellai.com/create-chat-agent \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d "{\n \\"response_engine\\": {\n \\"llm_id\\": \\"llm_234sdertfsdsfsdf\\",\n \\"type\\": \\"retell-llm\\",\n \\"version\\": 0\n },\n \\"agent_name\\": \\"Jarvis\\",\n \\"analysis_successful_prompt\\": \\"The agent finished the task and the call was complete without being cutoff.\\",\n \\"analysis_summary_prompt\\": \\"Summarize the call in a few sentences.\\",\n \\"analysis_user_sentiment_prompt\\": \\"Evaluate the user\'s sentiment based on their tone and satisfaction level.\\",\n \\"auto_close_message\\": \\"Thank you for chatting. The conversation has ended.\\",\n \\"data_storage_retention_days\\": 30,\n \\"data_storage_setting\\": \\"everything\\",\n \\"end_chat_after_silence_ms\\": 3600000,\n \\"language\\": \\"en-US\\",\n \\"opt_in_signed_url\\": true,\n \\"post_chat_analysis_model\\": \\"gpt-4.1-mini\\",\n \\"signed_url_expiration_ms\\": 86400000,\n \\"timezone\\": \\"America/New_York\\",\n \\"webhook_timeout_ms\\": 10000,\n \\"webhook_url\\": \\"https://webhook-url-here\\"\n }"',
|
|
979
979
|
},
|
|
980
980
|
python: {
|
|
981
981
|
method: 'chat_agent.create',
|
|
982
|
-
example: '
|
|
982
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nchat_agent_response = client.chat_agent.create(\n response_engine={\n "llm_id": "llm_234sdertfsdsfsdf",\n "type": "retell-llm",\n },\n)\nprint(chat_agent_response.agent_id)',
|
|
983
983
|
},
|
|
984
984
|
typescript: {
|
|
985
985
|
method: 'client.chatAgent.create',
|
|
986
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
986
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst chatAgentResponse = await client.chatAgent.create({\n response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },\n});\n\nconsole.log(chatAgentResponse.agent_id);",
|
|
987
987
|
},
|
|
988
988
|
},
|
|
989
989
|
},
|
|
@@ -1000,15 +1000,15 @@ const EMBEDDED_METHODS = [
|
|
|
1000
1000
|
markdown: "## retrieve\n\n`client.chatAgent.retrieve(agent_id: string, version?: number): { agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; auto_close_message?: string; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: object; handbook_config?: object; is_public?: boolean; is_published?: boolean; language?: string; opt_in_signed_url?: boolean; pii_config?: object; post_chat_analysis_data?: object | object | object | object | object[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed'[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n**get** `/get-chat-agent/{agent_id}`\n\nRetrieve details of a specific chat agent\n\n### Parameters\n\n- `agent_id: string`\n\n- `version?: number`\n Optional version of the API to use for this request. If not provided, will default to latest version.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: number; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; auto_close_message?: string; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }; is_public?: boolean; is_published?: boolean; language?: string; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_chat_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed'[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n - `agent_id: string`\n - `last_modification_timestamp: number`\n - `response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }`\n - `agent_name?: string`\n - `analysis_successful_prompt?: string`\n - `analysis_summary_prompt?: string`\n - `analysis_user_sentiment_prompt?: string`\n - `auto_close_message?: string`\n - `data_storage_retention_days?: number`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `end_chat_after_silence_ms?: number`\n - `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n - `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }`\n - `is_public?: boolean`\n - `is_published?: boolean`\n - `language?: string`\n - `opt_in_signed_url?: boolean`\n - `pii_config?: { categories: string[]; mode: 'post_call'; }`\n - `post_chat_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n - `post_chat_analysis_model?: string`\n - `signed_url_expiration_ms?: number`\n - `timezone?: string`\n - `version?: number`\n - `webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed'[]`\n - `webhook_timeout_ms?: number`\n - `webhook_url?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst chatAgentResponse = await client.chatAgent.retrieve('16b980523634a6dc504898cda492e939');\n\nconsole.log(chatAgentResponse);\n```",
|
|
1001
1001
|
perLanguage: {
|
|
1002
1002
|
http: {
|
|
1003
|
-
example: 'curl https://api.retellai.com/get-chat-agent/$AGENT_ID \\\n -H "Authorization: Bearer $
|
|
1003
|
+
example: 'curl https://api.retellai.com/get-chat-agent/$AGENT_ID \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
1004
1004
|
},
|
|
1005
1005
|
python: {
|
|
1006
1006
|
method: 'chat_agent.retrieve',
|
|
1007
|
-
example: '
|
|
1007
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nchat_agent_response = client.chat_agent.retrieve(\n agent_id="16b980523634a6dc504898cda492e939",\n)\nprint(chat_agent_response.agent_id)',
|
|
1008
1008
|
},
|
|
1009
1009
|
typescript: {
|
|
1010
1010
|
method: 'client.chatAgent.retrieve',
|
|
1011
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1011
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst chatAgentResponse = await client.chatAgent.retrieve('16b980523634a6dc504898cda492e939');\n\nconsole.log(chatAgentResponse.agent_id);",
|
|
1012
1012
|
},
|
|
1013
1013
|
},
|
|
1014
1014
|
},
|
|
@@ -1025,15 +1025,15 @@ const EMBEDDED_METHODS = [
|
|
|
1025
1025
|
markdown: "## list\n\n`client.chatAgent.list(limit?: number, pagination_key?: string, pagination_key_version?: number): object[]`\n\n**get** `/list-chat-agents`\n\nList all chat agents\n\n### Parameters\n\n- `limit?: number`\n A limit on the number of objects to be returned. Limit can range between 1 and 1000, and the default is 1000.\n\n- `pagination_key?: string`\n The pagination key to continue fetching the next page of agents. Pagination key is represented by a agent id, pagination key and version pair is exclusive (not included in the fetched page). If not set, will start from the beginning.\n\n- `pagination_key_version?: number`\n Specifies the version of the agent associated with the pagination_key. When paginating, both the pagination_key and its version must be provided to ensure consistent ordering and to fetch the next page correctly.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: number; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; auto_close_message?: string; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }; is_public?: boolean; is_published?: boolean; language?: string; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_chat_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed'[]; webhook_timeout_ms?: number; webhook_url?: string; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst chatAgentResponses = await client.chatAgent.list();\n\nconsole.log(chatAgentResponses);\n```",
|
|
1026
1026
|
perLanguage: {
|
|
1027
1027
|
http: {
|
|
1028
|
-
example: 'curl https://api.retellai.com/list-chat-agents \\\n -H "Authorization: Bearer $
|
|
1028
|
+
example: 'curl https://api.retellai.com/list-chat-agents \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
1029
1029
|
},
|
|
1030
1030
|
python: {
|
|
1031
1031
|
method: 'chat_agent.list',
|
|
1032
|
-
example: '
|
|
1032
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nchat_agent_responses = client.chat_agent.list()\nprint(chat_agent_responses)',
|
|
1033
1033
|
},
|
|
1034
1034
|
typescript: {
|
|
1035
1035
|
method: 'client.chatAgent.list',
|
|
1036
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1036
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst chatAgentResponses = await client.chatAgent.list();\n\nconsole.log(chatAgentResponses);",
|
|
1037
1037
|
},
|
|
1038
1038
|
},
|
|
1039
1039
|
},
|
|
@@ -1075,15 +1075,15 @@ const EMBEDDED_METHODS = [
|
|
|
1075
1075
|
markdown: "## update\n\n`client.chatAgent.update(agent_id: string, version?: number, agent_name?: string, analysis_successful_prompt?: string, analysis_summary_prompt?: string, analysis_user_sentiment_prompt?: string, auto_close_message?: string, data_storage_retention_days?: number, data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only', end_chat_after_silence_ms?: number, guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }, handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }, is_public?: boolean, language?: string, opt_in_signed_url?: boolean, pii_config?: { categories: string[]; mode: 'post_call'; }, post_chat_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[], post_chat_analysis_model?: string, response_engine?: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }, signed_url_expiration_ms?: number, timezone?: string, webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed'[], webhook_timeout_ms?: number, webhook_url?: string): { agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; auto_close_message?: string; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: object; handbook_config?: object; is_public?: boolean; is_published?: boolean; language?: string; opt_in_signed_url?: boolean; pii_config?: object; post_chat_analysis_data?: object | object | object | object | object[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed'[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n**patch** `/update-chat-agent/{agent_id}`\n\nUpdate an existing chat agent\n\n### Parameters\n\n- `agent_id: string`\n\n- `version?: number`\n Optional version of the API to use for this request. Default to latest version.\n\n- `agent_name?: string`\n The name of the chat agent. Only used for your own reference.\n\n- `analysis_successful_prompt?: string`\n The prompt to use for post call analysis to evaluate whether the call is successful. Set to null to use the default prompt.\n\n- `analysis_summary_prompt?: string`\n The prompt to use for post call analysis to summarize the call. Set to null to use the default prompt.\n\n- `analysis_user_sentiment_prompt?: string`\n Prompt to guide how the post chat analysis should evaluate user sentiment. When unset, the default system prompt is used. Set to null to use the default prompt.\n\n- `auto_close_message?: string`\n Message to display when the chat is automatically closed.\n\n- `data_storage_retention_days?: number`\n Number of days to retain call/chat data before automatic deletion. Must be between 1 and 730 days. If not set, data is retained forever (no automatic deletion).\n\n- `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n Controls what data is stored for this agent. \"everything\" stores all data including transcripts and recordings. \"everything_except_pii\" stores data but excludes PII when possible based on PII configuration. \"basic_attributes_only\" stores only basic metadata. If not set, defaults to \"everything\".\n\n- `end_chat_after_silence_ms?: number`\n If users stay silent for a period after agent speech, end the chat. The minimum value allowed is 120,000 ms (2 minutes). The maximum value allowed is 259,200,000 ms (72 hours). By default, this is set to 3,600,000 (1 hour).\n\n- `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n Configuration for guardrail checks to detect and prevent prohibited topics in agent output and user input.\n - `input_topics?: 'platform_integrity_jailbreaking'[]`\n Selected prohibited user topic categories to check. When user messages contain these topics, the agent will respond with a placeholder message instead of processing the request.\n - `output_topics?: string[]`\n Selected prohibited agent topic categories to check. When agent messages contain these topics, they will be replaced with a placeholder message.\n\n- `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }`\n Toggle behavior presets on/off to influence agent response style and behaviors. Voice-only presets are not available for chat agents.\n - `ai_disclosure?: boolean`\n When asked, acknowledge being a virtual assistant.\n - `default_personality?: boolean`\n Professional call center rep baseline.\n - `high_empathy?: boolean`\n Warm acknowledgment of caller concerns.\n - `scope_boundaries?: boolean`\n Stay within prompt/context scope, don't invent details.\n\n- `is_public?: boolean`\n Whether the agent is public. When set to true, the agent is available for public agent preview link.\n\n- `language?: string`\n Specifies what language (and dialect) the chat will operate in. For instance, selecting `en-GB` optimizes for British English. If unset, will use default value `en-US`. Select `multi` for multilingual support, currently this supports Spanish and English.\n\n- `opt_in_signed_url?: boolean`\n Whether this agent opts in to signed url for public log. If not set, default value of false will apply.\n\n- `pii_config?: { categories: string[]; mode: 'post_call'; }`\n Configuration for PII scrubbing from transcripts and recordings.\n - `categories: string[]`\n List of PII categories to scrub from transcripts and recordings.\n - `mode: 'post_call'`\n The processing mode for PII scrubbing. Currently only post-call is supported.\n\n- `post_chat_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n Post chat analysis data to extract from the chat. This data will augment the pre-defined variables extracted in the chat analysis. This will be available after the chat ends.\n\n- `post_chat_analysis_model?: string`\n The model to use for post chat analysis. Default to gpt-4.1-mini.\n\n- `response_engine?: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }`\n The Response Engine to attach to the agent. It is used to generate responses for the agent. You need to create a Response Engine first before attaching it to an agent.\n\n- `signed_url_expiration_ms?: number`\n The expiration time for the signed url in milliseconds. Only applicable when opt_in_signed_url is true. If not set, default value of 86400000 (24 hours) will apply.\n\n- `timezone?: string`\n IANA timezone for the agent (e.g. America/New_York). Defaults to America/Los_Angeles if not set.\n\n- `webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed'[]`\n Which webhook events this agent should receive. If not set, defaults to chat_started, chat_ended, chat_analyzed.\n\n- `webhook_timeout_ms?: number`\n The timeout for the webhook in milliseconds. If not set, default value of 10000 will apply.\n\n- `webhook_url?: string`\n The webhook for agent to listen to chat events. See what events it would get at [webhook doc](/features/webhook). If set, will binds webhook events for this agent to the specified url, and will ignore the account level webhook for this agent. Set to `null` to remove webhook url from this agent.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: number; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; auto_close_message?: string; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }; is_public?: boolean; is_published?: boolean; language?: string; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_chat_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed'[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n - `agent_id: string`\n - `last_modification_timestamp: number`\n - `response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }`\n - `agent_name?: string`\n - `analysis_successful_prompt?: string`\n - `analysis_summary_prompt?: string`\n - `analysis_user_sentiment_prompt?: string`\n - `auto_close_message?: string`\n - `data_storage_retention_days?: number`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `end_chat_after_silence_ms?: number`\n - `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n - `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }`\n - `is_public?: boolean`\n - `is_published?: boolean`\n - `language?: string`\n - `opt_in_signed_url?: boolean`\n - `pii_config?: { categories: string[]; mode: 'post_call'; }`\n - `post_chat_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n - `post_chat_analysis_model?: string`\n - `signed_url_expiration_ms?: number`\n - `timezone?: string`\n - `version?: number`\n - `webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed'[]`\n - `webhook_timeout_ms?: number`\n - `webhook_url?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst chatAgentResponse = await client.chatAgent.update('16b980523634a6dc504898cda492e939');\n\nconsole.log(chatAgentResponse);\n```",
|
|
1076
1076
|
perLanguage: {
|
|
1077
1077
|
http: {
|
|
1078
|
-
example: 'curl https://api.retellai.com/update-chat-agent/$AGENT_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
1078
|
+
example: 'curl https://api.retellai.com/update-chat-agent/$AGENT_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d "{\n \\"agent_name\\": \\"Jarvis\\",\n \\"analysis_successful_prompt\\": \\"The agent finished the task and the call was complete without being cutoff.\\",\n \\"analysis_summary_prompt\\": \\"Summarize the call in a few sentences.\\",\n \\"analysis_user_sentiment_prompt\\": \\"Evaluate the user\'s sentiment based on their tone and satisfaction level.\\",\n \\"auto_close_message\\": \\"Thank you for chatting. The conversation has ended.\\",\n \\"data_storage_retention_days\\": 30,\n \\"data_storage_setting\\": \\"everything\\",\n \\"end_chat_after_silence_ms\\": 3600000,\n \\"language\\": \\"en-US\\",\n \\"opt_in_signed_url\\": true,\n \\"post_chat_analysis_model\\": \\"gpt-4.1-mini\\",\n \\"response_engine\\": {\n \\"llm_id\\": \\"llm_234sdertfsdsfsdf\\",\n \\"type\\": \\"retell-llm\\",\n \\"version\\": 0\n },\n \\"signed_url_expiration_ms\\": 86400000,\n \\"timezone\\": \\"America/New_York\\",\n \\"webhook_timeout_ms\\": 10000,\n \\"webhook_url\\": \\"https://webhook-url-here\\"\n }"',
|
|
1079
1079
|
},
|
|
1080
1080
|
python: {
|
|
1081
1081
|
method: 'chat_agent.update',
|
|
1082
|
-
example: '
|
|
1082
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nchat_agent_response = client.chat_agent.update(\n agent_id="16b980523634a6dc504898cda492e939",\n)\nprint(chat_agent_response.agent_id)',
|
|
1083
1083
|
},
|
|
1084
1084
|
typescript: {
|
|
1085
1085
|
method: 'client.chatAgent.update',
|
|
1086
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1086
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst chatAgentResponse = await client.chatAgent.update('16b980523634a6dc504898cda492e939');\n\nconsole.log(chatAgentResponse.agent_id);",
|
|
1087
1087
|
},
|
|
1088
1088
|
},
|
|
1089
1089
|
},
|
|
@@ -1099,15 +1099,15 @@ const EMBEDDED_METHODS = [
|
|
|
1099
1099
|
markdown: "## delete\n\n`client.chatAgent.delete(agent_id: string): void`\n\n**delete** `/delete-chat-agent/{agent_id}`\n\nDelete an existing chat agent\n\n### Parameters\n\n- `agent_id: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nawait client.chatAgent.delete('oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD')\n```",
|
|
1100
1100
|
perLanguage: {
|
|
1101
1101
|
http: {
|
|
1102
|
-
example: 'curl https://api.retellai.com/delete-chat-agent/$AGENT_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $
|
|
1102
|
+
example: 'curl https://api.retellai.com/delete-chat-agent/$AGENT_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
1103
1103
|
},
|
|
1104
1104
|
python: {
|
|
1105
1105
|
method: 'chat_agent.delete',
|
|
1106
|
-
example: '
|
|
1106
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nclient.chat_agent.delete(\n "oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",\n)',
|
|
1107
1107
|
},
|
|
1108
1108
|
typescript: {
|
|
1109
1109
|
method: 'client.chatAgent.delete',
|
|
1110
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1110
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.chatAgent.delete('oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD');",
|
|
1111
1111
|
},
|
|
1112
1112
|
},
|
|
1113
1113
|
},
|
|
@@ -1123,15 +1123,15 @@ const EMBEDDED_METHODS = [
|
|
|
1123
1123
|
markdown: "## publish\n\n`client.chatAgent.publish(agent_id: string): void`\n\n**post** `/publish-chat-agent/{agent_id}`\n\nPublish the latest version of the chat agent and create a new draft chat agent with newer version.\n\n### Parameters\n\n- `agent_id: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nawait client.chatAgent.publish('16b980523634a6dc504898cda492e939')\n```",
|
|
1124
1124
|
perLanguage: {
|
|
1125
1125
|
http: {
|
|
1126
|
-
example: 'curl https://api.retellai.com/publish-chat-agent/$AGENT_ID \\\n -X POST \\\n -H "Authorization: Bearer $
|
|
1126
|
+
example: 'curl https://api.retellai.com/publish-chat-agent/$AGENT_ID \\\n -X POST \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
1127
1127
|
},
|
|
1128
1128
|
python: {
|
|
1129
1129
|
method: 'chat_agent.publish',
|
|
1130
|
-
example: '
|
|
1130
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nclient.chat_agent.publish(\n "16b980523634a6dc504898cda492e939",\n)',
|
|
1131
1131
|
},
|
|
1132
1132
|
typescript: {
|
|
1133
1133
|
method: 'client.chatAgent.publish',
|
|
1134
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1134
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.chatAgent.publish('16b980523634a6dc504898cda492e939');",
|
|
1135
1135
|
},
|
|
1136
1136
|
},
|
|
1137
1137
|
},
|
|
@@ -1148,15 +1148,15 @@ const EMBEDDED_METHODS = [
|
|
|
1148
1148
|
markdown: "## get-versions\n\n`client.chatAgent.getVersions(agent_id: string): object[]`\n\n**get** `/get-chat-agent-versions/{agent_id}`\n\nGet all versions of a chat agent\n\n### Parameters\n\n- `agent_id: string`\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: number; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; auto_close_message?: string; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }; is_public?: boolean; is_published?: boolean; language?: string; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_chat_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed'[]; webhook_timeout_ms?: number; webhook_url?: string; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst chatAgentResponses = await client.chatAgent.getVersions('16b980523634a6dc504898cda492e939');\n\nconsole.log(chatAgentResponses);\n```",
|
|
1149
1149
|
perLanguage: {
|
|
1150
1150
|
http: {
|
|
1151
|
-
example: 'curl https://api.retellai.com/get-chat-agent-versions/$AGENT_ID \\\n -H "Authorization: Bearer $
|
|
1151
|
+
example: 'curl https://api.retellai.com/get-chat-agent-versions/$AGENT_ID \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
1152
1152
|
},
|
|
1153
1153
|
python: {
|
|
1154
1154
|
method: 'chat_agent.get_versions',
|
|
1155
|
-
example: '
|
|
1155
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nchat_agent_responses = client.chat_agent.get_versions(\n "16b980523634a6dc504898cda492e939",\n)\nprint(chat_agent_responses)',
|
|
1156
1156
|
},
|
|
1157
1157
|
typescript: {
|
|
1158
1158
|
method: 'client.chatAgent.getVersions',
|
|
1159
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1159
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst chatAgentResponses = await client.chatAgent.getVersions('16b980523634a6dc504898cda492e939');\n\nconsole.log(chatAgentResponses);",
|
|
1160
1160
|
},
|
|
1161
1161
|
},
|
|
1162
1162
|
},
|
|
@@ -1191,15 +1191,15 @@ const EMBEDDED_METHODS = [
|
|
|
1191
1191
|
markdown: "## create\n\n`client.llm.create(begin_after_user_silence_ms?: number, begin_message?: string, default_dynamic_variables?: object, general_prompt?: string, general_tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[], kb_config?: { filter_score?: number; top_k?: number; }, knowledge_base_ids?: string[], mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[], model?: string, model_high_priority?: boolean, model_temperature?: number, s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini', start_speaker?: 'user' | 'agent', starting_state?: string, states?: { name: string; edges?: { description: string; destination_state_name: string; parameters?: object; }[]; state_prompt?: string; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: object | object; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: object | object | object | object[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; }[], tool_call_strict_mode?: boolean, version?: number): { last_modification_timestamp: number; llm_id: string; begin_after_user_silence_ms?: number; begin_message?: string; default_dynamic_variables?: object; general_prompt?: string; general_tools?: object | object | object | object | object | object | object | object | object | object | object | object | object[]; is_published?: boolean; kb_config?: object; knowledge_base_ids?: string[]; mcps?: object[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; starting_state?: string; states?: object[]; tool_call_strict_mode?: boolean; version?: number; }`\n\n**post** `/create-retell-llm`\n\nCreate a new Retell LLM Response Engine that can be attached to an agent. This is used to generate response output for the agent.\n\n### Parameters\n\n- `begin_after_user_silence_ms?: number`\n If set, the AI will begin the conversation after waiting for the user for the duration (in milliseconds) specified by this attribute. This only applies if the agent is configured to wait for the user to speak first. If not set, the agent will wait indefinitely for the user to speak.\n\n- `begin_message?: string`\n First utterance said by the agent in the call. If not set, LLM will dynamically generate a message. If set to \"\", agent will wait for user to speak first.\n\n- `default_dynamic_variables?: object`\n Default dynamic variables represented as key-value pairs of strings. These are injected into your Retell LLM prompt and tool description when specific values are not provided in a request. Only applicable for Retell LLM.\n\n- `general_prompt?: string`\n General prompt appended to system prompt no matter what state the agent is in.\n\n- System prompt (with state) = general prompt + state prompt.\n- System prompt (no state) = general prompt.\n\n\n- `general_tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: { agent_id: string; agent_version: number; }; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]`\n A list of tools the model may call (to get external knowledge, call API, etc). You can select from some common predefined tools like end call, transfer call, etc; or you can create your own custom tool for the LLM to use.\n\n- Tools of LLM (with state) = general tools + state tools + state transitions\n- Tools of LLM (no state) = general tools\n\n\n- `kb_config?: { filter_score?: number; top_k?: number; }`\n Knowledge base configuration for RAG retrieval.\n - `filter_score?: number`\n Similarity threshold for filtering search results\n - `top_k?: number`\n Max number of knowledge base chunks to retrieve\n\n- `knowledge_base_ids?: string[]`\n A list of knowledge base ids to use for this resource.\n\n- `mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]`\n A list of MCPs to use for this LLM.\n\n- `model?: string`\n Select the underlying text LLM. If not set, would default to gpt-4.1.\n\n- `model_high_priority?: boolean`\n If set to true, will use high priority pool with more dedicated resource to ensure lower and more consistent latency, default to false. This feature usually comes with a higher cost.\n\n- `model_temperature?: number`\n If set, will control the randomness of the response. Value ranging from [0,1]. Lower value means more deterministic, while higher value means more random. If unset, default value 0 will apply. Note that for tool calling, a lower value is recommended.\n\n- `s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'`\n Select the underlying speech to speech model. Can only set this or model, not both.\n\n- `start_speaker?: 'user' | 'agent'`\n The speaker who starts the conversation. Required. Must be either 'user' or 'agent'.\n\n- `starting_state?: string`\n Name of the starting state. Required if states is not empty.\n\n- `states?: { name: string; edges?: { description: string; destination_state_name: string; parameters?: { properties: object; type: 'object'; required?: string[]; }; }[]; state_prompt?: string; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: object; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; }[]`\n States of the LLM. This is to help reduce prompt length and tool choices when the call can be broken into distinct states. With shorter prompts and less tools, the LLM can better focus and follow the rules, minimizing hallucination. If this field is not set, the agent would only have general prompt and general tools (essentially one state).\n\n- `tool_call_strict_mode?: boolean`\n Whether to use strict mode for tool calls. Only applicable when using certain supported models.\n\n- `version?: number`\n The version of the LLM.\n\n### Returns\n\n- `{ last_modification_timestamp: number; llm_id: string; begin_after_user_silence_ms?: number; begin_message?: string; default_dynamic_variables?: object; general_prompt?: string; general_tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; is_published?: boolean; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; starting_state?: string; states?: { name: string; edges?: { description: string; destination_state_name: string; parameters?: object; }[]; state_prompt?: string; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: object | object; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: object | object | object | object[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; }[]; tool_call_strict_mode?: boolean; version?: number; }`\n\n - `last_modification_timestamp: number`\n - `llm_id: string`\n - `begin_after_user_silence_ms?: number`\n - `begin_message?: string`\n - `default_dynamic_variables?: object`\n - `general_prompt?: string`\n - `general_tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: { agent_id: string; agent_version: number; }; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]`\n - `is_published?: boolean`\n - `kb_config?: { filter_score?: number; top_k?: number; }`\n - `knowledge_base_ids?: string[]`\n - `mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]`\n - `model?: string`\n - `model_high_priority?: boolean`\n - `model_temperature?: number`\n - `s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'`\n - `start_speaker?: 'user' | 'agent'`\n - `starting_state?: string`\n - `states?: { name: string; edges?: { description: string; destination_state_name: string; parameters?: { properties: object; type: 'object'; required?: string[]; }; }[]; state_prompt?: string; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: object; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; }[]`\n - `tool_call_strict_mode?: boolean`\n - `version?: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst llmResponse = await client.llm.create();\n\nconsole.log(llmResponse);\n```",
|
|
1192
1192
|
perLanguage: {
|
|
1193
1193
|
http: {
|
|
1194
|
-
example: 'curl https://api.retellai.com/create-retell-llm \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
1194
|
+
example: 'curl https://api.retellai.com/create-retell-llm \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d \'{\n "begin_after_user_silence_ms": 2000,\n "begin_message": "Hey I am a virtual assistant calling from Retell Hospital.",\n "default_dynamic_variables": {\n "customer_name": "John Doe"\n },\n "general_prompt": "You are ...",\n "general_tools": [\n {\n "name": "end_call",\n "type": "end_call",\n "description": "End the call with user."\n }\n ],\n "model": "gpt-4.1",\n "model_high_priority": true,\n "s2s_model": "gpt-realtime-1.5",\n "starting_state": "information_collection",\n "states": [\n {\n "name": "information_collection",\n "edges": [\n {\n "description": "Transition to book an appointment.",\n "destination_state_name": "appointment_booking"\n }\n ],\n "state_prompt": "You will follow the steps below to collect information...",\n "tools": [\n {\n "name": "transfer_to_support",\n "transfer_destination": {\n "number": "16175551212",\n "type": "predefined"\n },\n "transfer_option": {\n "type": "cold_transfer",\n "show_transferee_as_caller": false\n },\n "type": "transfer_call",\n "description": "Transfer to the support team."\n }\n ]\n },\n {\n "name": "appointment_booking",\n "state_prompt": "You will follow the steps below to book an appointment...",\n "tools": [\n {\n "cal_api_key": "cal_live_xxxxxxxxxxxx",\n "event_type_id": 60444,\n "name": "book_appointment",\n "type": "book_appointment_cal",\n "description": "Book an annual check up.",\n "timezone": "America/Los_Angeles"\n }\n ]\n }\n ],\n "tool_call_strict_mode": true,\n "version": 1\n }\'',
|
|
1195
1195
|
},
|
|
1196
1196
|
python: {
|
|
1197
1197
|
method: 'llm.create',
|
|
1198
|
-
example: '
|
|
1198
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nllm_response = client.llm.create()\nprint(llm_response.llm_id)',
|
|
1199
1199
|
},
|
|
1200
1200
|
typescript: {
|
|
1201
1201
|
method: 'client.llm.create',
|
|
1202
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1202
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst llmResponse = await client.llm.create();\n\nconsole.log(llmResponse.llm_id);",
|
|
1203
1203
|
},
|
|
1204
1204
|
},
|
|
1205
1205
|
},
|
|
@@ -1216,15 +1216,15 @@ const EMBEDDED_METHODS = [
|
|
|
1216
1216
|
markdown: "## retrieve\n\n`client.llm.retrieve(llm_id: string, version?: number): { last_modification_timestamp: number; llm_id: string; begin_after_user_silence_ms?: number; begin_message?: string; default_dynamic_variables?: object; general_prompt?: string; general_tools?: object | object | object | object | object | object | object | object | object | object | object | object | object[]; is_published?: boolean; kb_config?: object; knowledge_base_ids?: string[]; mcps?: object[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; starting_state?: string; states?: object[]; tool_call_strict_mode?: boolean; version?: number; }`\n\n**get** `/get-retell-llm/{llm_id}`\n\nRetrieve details of a specific Retell LLM Response Engine\n\n### Parameters\n\n- `llm_id: string`\n\n- `version?: number`\n Optional version of the API to use for this request. Default to latest version.\n\n### Returns\n\n- `{ last_modification_timestamp: number; llm_id: string; begin_after_user_silence_ms?: number; begin_message?: string; default_dynamic_variables?: object; general_prompt?: string; general_tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; is_published?: boolean; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; starting_state?: string; states?: { name: string; edges?: { description: string; destination_state_name: string; parameters?: object; }[]; state_prompt?: string; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: object | object; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: object | object | object | object[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; }[]; tool_call_strict_mode?: boolean; version?: number; }`\n\n - `last_modification_timestamp: number`\n - `llm_id: string`\n - `begin_after_user_silence_ms?: number`\n - `begin_message?: string`\n - `default_dynamic_variables?: object`\n - `general_prompt?: string`\n - `general_tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: { agent_id: string; agent_version: number; }; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]`\n - `is_published?: boolean`\n - `kb_config?: { filter_score?: number; top_k?: number; }`\n - `knowledge_base_ids?: string[]`\n - `mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]`\n - `model?: string`\n - `model_high_priority?: boolean`\n - `model_temperature?: number`\n - `s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'`\n - `start_speaker?: 'user' | 'agent'`\n - `starting_state?: string`\n - `states?: { name: string; edges?: { description: string; destination_state_name: string; parameters?: { properties: object; type: 'object'; required?: string[]; }; }[]; state_prompt?: string; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: object; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; }[]`\n - `tool_call_strict_mode?: boolean`\n - `version?: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst llmResponse = await client.llm.retrieve('16b980523634a6dc504898cda492e939');\n\nconsole.log(llmResponse);\n```",
|
|
1217
1217
|
perLanguage: {
|
|
1218
1218
|
http: {
|
|
1219
|
-
example: 'curl https://api.retellai.com/get-retell-llm/$LLM_ID \\\n -H "Authorization: Bearer $
|
|
1219
|
+
example: 'curl https://api.retellai.com/get-retell-llm/$LLM_ID \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
1220
1220
|
},
|
|
1221
1221
|
python: {
|
|
1222
1222
|
method: 'llm.retrieve',
|
|
1223
|
-
example: '
|
|
1223
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nllm_response = client.llm.retrieve(\n llm_id="16b980523634a6dc504898cda492e939",\n)\nprint(llm_response.llm_id)',
|
|
1224
1224
|
},
|
|
1225
1225
|
typescript: {
|
|
1226
1226
|
method: 'client.llm.retrieve',
|
|
1227
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1227
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst llmResponse = await client.llm.retrieve('16b980523634a6dc504898cda492e939');\n\nconsole.log(llmResponse.llm_id);",
|
|
1228
1228
|
},
|
|
1229
1229
|
},
|
|
1230
1230
|
},
|
|
@@ -1241,15 +1241,15 @@ const EMBEDDED_METHODS = [
|
|
|
1241
1241
|
markdown: "## list\n\n`client.llm.list(limit?: number, pagination_key?: string, pagination_key_version?: number): object[]`\n\n**get** `/list-retell-llms`\n\nList all Retell LLM Response Engines that can be attached to an agent.\n\n### Parameters\n\n- `limit?: number`\n A limit on the number of objects to be returned. Limit can range between 1 and 1000, and the default is 1000.\n\n- `pagination_key?: string`\n The pagination key to continue fetching the next page of LLMs. Pagination key is represented by a llm id, pagination key and version pair is exclusive (not included in the fetched page). If not set, will start from the beginning.\n\n- `pagination_key_version?: number`\n Specifies the version of the llm associated with the pagination_key. When paginating, both the pagination_key and its version must be provided to ensure consistent ordering and to fetch the next page correctly.\n\n### Returns\n\n- `{ last_modification_timestamp: number; llm_id: string; begin_after_user_silence_ms?: number; begin_message?: string; default_dynamic_variables?: object; general_prompt?: string; general_tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: object | object; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: object | object | object | object[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; is_published?: boolean; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; starting_state?: string; states?: { name: string; edges?: object[]; state_prompt?: string; tools?: object | object | object | object | object | object | object | object | object | object | object | object | object[]; }[]; tool_call_strict_mode?: boolean; version?: number; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst llmResponses = await client.llm.list();\n\nconsole.log(llmResponses);\n```",
|
|
1242
1242
|
perLanguage: {
|
|
1243
1243
|
http: {
|
|
1244
|
-
example: 'curl https://api.retellai.com/list-retell-llms \\\n -H "Authorization: Bearer $
|
|
1244
|
+
example: 'curl https://api.retellai.com/list-retell-llms \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
1245
1245
|
},
|
|
1246
1246
|
python: {
|
|
1247
1247
|
method: 'llm.list',
|
|
1248
|
-
example: '
|
|
1248
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nllm_responses = client.llm.list()\nprint(llm_responses)',
|
|
1249
1249
|
},
|
|
1250
1250
|
typescript: {
|
|
1251
1251
|
method: 'client.llm.list',
|
|
1252
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1252
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst llmResponses = await client.llm.list();\n\nconsole.log(llmResponses);",
|
|
1253
1253
|
},
|
|
1254
1254
|
},
|
|
1255
1255
|
},
|
|
@@ -1286,15 +1286,15 @@ const EMBEDDED_METHODS = [
|
|
|
1286
1286
|
markdown: "## update\n\n`client.llm.update(llm_id: string, version?: number, begin_after_user_silence_ms?: number, begin_message?: string, default_dynamic_variables?: object, general_prompt?: string, general_tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[], kb_config?: { filter_score?: number; top_k?: number; }, knowledge_base_ids?: string[], mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[], model?: string, model_high_priority?: boolean, model_temperature?: number, s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini', start_speaker?: 'user' | 'agent', starting_state?: string, states?: { name: string; edges?: { description: string; destination_state_name: string; parameters?: object; }[]; state_prompt?: string; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: object | object; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: object | object | object | object[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; }[], tool_call_strict_mode?: boolean, version?: number): { last_modification_timestamp: number; llm_id: string; begin_after_user_silence_ms?: number; begin_message?: string; default_dynamic_variables?: object; general_prompt?: string; general_tools?: object | object | object | object | object | object | object | object | object | object | object | object | object[]; is_published?: boolean; kb_config?: object; knowledge_base_ids?: string[]; mcps?: object[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; starting_state?: string; states?: object[]; tool_call_strict_mode?: boolean; version?: number; }`\n\n**patch** `/update-retell-llm/{llm_id}`\n\nUpdate an existing Retell LLM Response Engine\n\n### Parameters\n\n- `llm_id: string`\n\n- `version?: number`\n Optional version of the API to use for this request. Default to latest version.\n\n- `begin_after_user_silence_ms?: number`\n If set, the AI will begin the conversation after waiting for the user for the duration (in milliseconds) specified by this attribute. This only applies if the agent is configured to wait for the user to speak first. If not set, the agent will wait indefinitely for the user to speak.\n\n- `begin_message?: string`\n First utterance said by the agent in the call. If not set, LLM will dynamically generate a message. If set to \"\", agent will wait for user to speak first.\n\n- `default_dynamic_variables?: object`\n Default dynamic variables represented as key-value pairs of strings. These are injected into your Retell LLM prompt and tool description when specific values are not provided in a request. Only applicable for Retell LLM.\n\n- `general_prompt?: string`\n General prompt appended to system prompt no matter what state the agent is in.\n\n- System prompt (with state) = general prompt + state prompt.\n- System prompt (no state) = general prompt.\n\n\n- `general_tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: { agent_id: string; agent_version: number; }; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]`\n A list of tools the model may call (to get external knowledge, call API, etc). You can select from some common predefined tools like end call, transfer call, etc; or you can create your own custom tool for the LLM to use.\n\n- Tools of LLM (with state) = general tools + state tools + state transitions\n- Tools of LLM (no state) = general tools\n\n\n- `kb_config?: { filter_score?: number; top_k?: number; }`\n Knowledge base configuration for RAG retrieval.\n - `filter_score?: number`\n Similarity threshold for filtering search results\n - `top_k?: number`\n Max number of knowledge base chunks to retrieve\n\n- `knowledge_base_ids?: string[]`\n A list of knowledge base ids to use for this resource.\n\n- `mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]`\n A list of MCPs to use for this LLM.\n\n- `model?: string`\n Select the underlying text LLM. If not set, would default to gpt-4.1.\n\n- `model_high_priority?: boolean`\n If set to true, will use high priority pool with more dedicated resource to ensure lower and more consistent latency, default to false. This feature usually comes with a higher cost.\n\n- `model_temperature?: number`\n If set, will control the randomness of the response. Value ranging from [0,1]. Lower value means more deterministic, while higher value means more random. If unset, default value 0 will apply. Note that for tool calling, a lower value is recommended.\n\n- `s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'`\n Select the underlying speech to speech model. Can only set this or model, not both.\n\n- `start_speaker?: 'user' | 'agent'`\n The speaker who starts the conversation. Required. Must be either 'user' or 'agent'.\n\n- `starting_state?: string`\n Name of the starting state. Required if states is not empty.\n\n- `states?: { name: string; edges?: { description: string; destination_state_name: string; parameters?: { properties: object; type: 'object'; required?: string[]; }; }[]; state_prompt?: string; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: object; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; }[]`\n States of the LLM. This is to help reduce prompt length and tool choices when the call can be broken into distinct states. With shorter prompts and less tools, the LLM can better focus and follow the rules, minimizing hallucination. If this field is not set, the agent would only have general prompt and general tools (essentially one state).\n\n- `tool_call_strict_mode?: boolean`\n Whether to use strict mode for tool calls. Only applicable when using certain supported models.\n\n- `version?: number`\n The version of the LLM.\n\n### Returns\n\n- `{ last_modification_timestamp: number; llm_id: string; begin_after_user_silence_ms?: number; begin_message?: string; default_dynamic_variables?: object; general_prompt?: string; general_tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; is_published?: boolean; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; starting_state?: string; states?: { name: string; edges?: { description: string; destination_state_name: string; parameters?: object; }[]; state_prompt?: string; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: object | object; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: object | object | object | object[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; }[]; tool_call_strict_mode?: boolean; version?: number; }`\n\n - `last_modification_timestamp: number`\n - `llm_id: string`\n - `begin_after_user_silence_ms?: number`\n - `begin_message?: string`\n - `default_dynamic_variables?: object`\n - `general_prompt?: string`\n - `general_tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: { agent_id: string; agent_version: number; }; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]`\n - `is_published?: boolean`\n - `kb_config?: { filter_score?: number; top_k?: number; }`\n - `knowledge_base_ids?: string[]`\n - `mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]`\n - `model?: string`\n - `model_high_priority?: boolean`\n - `model_temperature?: number`\n - `s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'`\n - `start_speaker?: 'user' | 'agent'`\n - `starting_state?: string`\n - `states?: { name: string; edges?: { description: string; destination_state_name: string; parameters?: { properties: object; type: 'object'; required?: string[]; }; }[]; state_prompt?: string; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: object; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; }[]`\n - `tool_call_strict_mode?: boolean`\n - `version?: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst llmResponse = await client.llm.update('16b980523634a6dc504898cda492e939');\n\nconsole.log(llmResponse);\n```",
|
|
1287
1287
|
perLanguage: {
|
|
1288
1288
|
http: {
|
|
1289
|
-
example: 'curl https://api.retellai.com/update-retell-llm/$LLM_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
1289
|
+
example: 'curl https://api.retellai.com/update-retell-llm/$LLM_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d \'{\n "begin_after_user_silence_ms": 2000,\n "begin_message": "Hey I am a virtual assistant calling from Retell Hospital.",\n "default_dynamic_variables": {\n "customer_name": "John Doe"\n },\n "general_prompt": "You are ...",\n "general_tools": [\n {\n "name": "end_call",\n "type": "end_call",\n "description": "End the call with user."\n }\n ],\n "model": "gpt-4.1",\n "model_high_priority": true,\n "s2s_model": "gpt-realtime-1.5",\n "starting_state": "information_collection",\n "states": [\n {\n "name": "information_collection",\n "edges": [\n {\n "description": "Transition to book an appointment.",\n "destination_state_name": "appointment_booking"\n }\n ],\n "state_prompt": "You will follow the steps below to collect information...",\n "tools": [\n {\n "name": "transfer_to_support",\n "transfer_destination": {\n "number": "16175551212",\n "type": "predefined"\n },\n "transfer_option": {\n "type": "cold_transfer",\n "show_transferee_as_caller": false\n },\n "type": "transfer_call",\n "description": "Transfer to the support team."\n }\n ]\n },\n {\n "name": "appointment_booking",\n "state_prompt": "You will follow the steps below to book an appointment...",\n "tools": [\n {\n "cal_api_key": "cal_live_xxxxxxxxxxxx",\n "event_type_id": 60444,\n "name": "book_appointment",\n "type": "book_appointment_cal",\n "description": "Book an annual check up.",\n "timezone": "America/Los_Angeles"\n }\n ]\n }\n ],\n "tool_call_strict_mode": true,\n "version": 1\n }\'',
|
|
1290
1290
|
},
|
|
1291
1291
|
python: {
|
|
1292
1292
|
method: 'llm.update',
|
|
1293
|
-
example: '
|
|
1293
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nllm_response = client.llm.update(\n llm_id="16b980523634a6dc504898cda492e939",\n begin_message="Hey I am a virtual assistant calling from Retell Hospital.",\n)\nprint(llm_response.llm_id)',
|
|
1294
1294
|
},
|
|
1295
1295
|
typescript: {
|
|
1296
1296
|
method: 'client.llm.update',
|
|
1297
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1297
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst llmResponse = await client.llm.update('16b980523634a6dc504898cda492e939', {\n begin_message: 'Hey I am a virtual assistant calling from Retell Hospital.',\n});\n\nconsole.log(llmResponse.llm_id);",
|
|
1298
1298
|
},
|
|
1299
1299
|
},
|
|
1300
1300
|
},
|
|
@@ -1310,15 +1310,15 @@ const EMBEDDED_METHODS = [
|
|
|
1310
1310
|
markdown: "## delete\n\n`client.llm.delete(llm_id: string): void`\n\n**delete** `/delete-retell-llm/{llm_id}`\n\nDelete an existing Retell LLM Response Engine\n\n### Parameters\n\n- `llm_id: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nawait client.llm.delete('oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD')\n```",
|
|
1311
1311
|
perLanguage: {
|
|
1312
1312
|
http: {
|
|
1313
|
-
example: 'curl https://api.retellai.com/delete-retell-llm/$LLM_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $
|
|
1313
|
+
example: 'curl https://api.retellai.com/delete-retell-llm/$LLM_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
1314
1314
|
},
|
|
1315
1315
|
python: {
|
|
1316
1316
|
method: 'llm.delete',
|
|
1317
|
-
example: '
|
|
1317
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nclient.llm.delete(\n "oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",\n)',
|
|
1318
1318
|
},
|
|
1319
1319
|
typescript: {
|
|
1320
1320
|
method: 'client.llm.delete',
|
|
1321
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1321
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.llm.delete('oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD');",
|
|
1322
1322
|
},
|
|
1323
1323
|
},
|
|
1324
1324
|
},
|
|
@@ -1353,15 +1353,15 @@ const EMBEDDED_METHODS = [
|
|
|
1353
1353
|
markdown: "## create\n\n`client.conversationFlow.create(model_choice: { model: string; type: 'cascading'; high_priority?: boolean; }, nodes: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: object | object; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: object | object | object | object[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[], start_speaker: 'user' | 'agent', begin_after_user_silence_ms?: number, begin_tag_display_position?: { x?: number; y?: number; }, components?: { name: string; nodes: { id: string; instruction: object | object; type: 'conversation'; always_edge?: object; display_position?: object; edges?: object[]; finetune_conversation_examples?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: object; name?: string; responsiveness?: number; skip_response_edge?: object; voice_speed?: number; } | { id: string; instruction: object; type: 'subagent'; always_edge?: object; display_position?: object; edges?: object[]; finetune_conversation_examples?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: object; name?: string; responsiveness?: number; skip_response_edge?: object; tool_ids?: string[]; tools?: object | object | object | object | object | object | object | object | object | object | object | object | object[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: object; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; display_position?: object; global_node_setting?: object; ignore_e164_validation?: boolean; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: object; type: 'press_digit'; delay_ms?: number; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; else_edge: object; type: 'branch'; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; failed_edge: object; instruction: object | object; success_edge: object; type: 'sms'; display_position?: object; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: object | object | object | object[]; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; agent_id: string; edge: object; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: object; global_node_setting?: object; instruction?: object | object; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: object; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: object; type: 'component'; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; }[]; begin_tag_display_position?: { x?: number; y?: number; }; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; notes?: { id: string; content: string; display_position: object; size: object; }[]; start_node_id?: string; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }[], default_dynamic_variables?: object, global_prompt?: string, is_transfer_llm?: boolean, kb_config?: { filter_score?: number; top_k?: number; }, knowledge_base_ids?: string[], mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[], model_temperature?: number, notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[], start_node_id?: string, tool_call_strict_mode?: boolean, tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]): { conversation_flow_id: string; version: number; begin_after_user_silence_ms?: number; begin_tag_display_position?: object; components?: object[]; default_dynamic_variables?: object; global_prompt?: string; is_transfer_llm?: boolean; kb_config?: object; knowledge_base_ids?: string[]; mcps?: object[]; model_choice?: object; model_temperature?: number; nodes?: object | object | object | object | object | object | object | object | object | object | object | object | object | object | object[]; notes?: object[]; start_node_id?: string; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; tools?: object | object | object[]; }`\n\n**post** `/create-conversation-flow`\n\nCreate a new Conversation Flow that can be attached to an agent. This is used to generate response output for the agent.\n\n### Parameters\n\n- `model_choice: { model: string; type: 'cascading'; high_priority?: boolean; }`\n The model choice for the conversation flow.\n - `model: string`\n The LLM model to use\n - `type: 'cascading'`\n Type of model choice\n - `high_priority?: boolean`\n Whether to use high priority pool with more dedicated resource, default false\n\n- `nodes: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: object; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: { agent_id: string; agent_version: number; }; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Failed to send'; } | { prompt: 'Failed to send'; type: 'prompt'; }; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Sent successfully'; } | { prompt: 'Sent successfully'; type: 'prompt'; }; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]`\n Array of nodes in the conversation flow.\n\n- `start_speaker: 'user' | 'agent'`\n Who starts the conversation - user or agent.\n\n- `begin_after_user_silence_ms?: number`\n If set, the AI will begin the conversation after waiting for the user for the duration (in milliseconds) specified by this attribute. This only applies if the agent is configured to wait for the user to speak first. If not set, the agent will wait indefinitely for the user to speak.\n\n- `begin_tag_display_position?: { x?: number; y?: number; }`\n Display position for the begin tag in the frontend.\n - `x?: number`\n - `y?: number`\n\n- `components?: { name: string; nodes: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: object; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Failed to send'; } | { prompt: 'Failed to send'; type: 'prompt'; }; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Sent successfully'; } | { prompt: 'Sent successfully'; type: 'prompt'; }; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]; begin_tag_display_position?: { x?: number; y?: number; }; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]; start_node_id?: string; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }[]`\n Local components embedded within the conversation flow.\n\n- `default_dynamic_variables?: object`\n Default dynamic variables that can be referenced throughout the conversation flow.\n\n- `global_prompt?: string`\n Global prompt used in every node of the conversation flow.\n\n- `is_transfer_llm?: boolean`\n Whether this conversation flow is used for transfer LLM.\n\n- `kb_config?: { filter_score?: number; top_k?: number; }`\n Knowledge base configuration for RAG retrieval.\n - `filter_score?: number`\n Similarity threshold for filtering search results\n - `top_k?: number`\n Max number of knowledge base chunks to retrieve\n\n- `knowledge_base_ids?: string[]`\n Knowledge base IDs for RAG (Retrieval-Augmented Generation).\n\n- `mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]`\n A list of MCP server configurations to use for this conversation flow.\n\n- `model_temperature?: number`\n Controls the randomness of the model's responses. Lower values make responses more deterministic.\n\n- `notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]`\n Visual annotations displayed on the flow canvas.\n\n- `start_node_id?: string`\n ID of the start node in the conversation flow.\n\n- `tool_call_strict_mode?: boolean`\n Whether to use strict mode for tool calls. Only applicable when using certain supported models.\n\n- `tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]`\n Tools available in the conversation flow.\n\n### Returns\n\n- `{ conversation_flow_id: string; version: number; begin_after_user_silence_ms?: number; begin_tag_display_position?: { x?: number; y?: number; }; components?: { name: string; nodes: { id: string; instruction: object | object; type: 'conversation'; always_edge?: object; display_position?: object; edges?: object[]; finetune_conversation_examples?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: object; name?: string; responsiveness?: number; skip_response_edge?: object; voice_speed?: number; } | { id: string; instruction: object; type: 'subagent'; always_edge?: object; display_position?: object; edges?: object[]; finetune_conversation_examples?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: object; name?: string; responsiveness?: number; skip_response_edge?: object; tool_ids?: string[]; tools?: object | object | object | object | object | object | object | object | object | object | object | object | object[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: object; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; display_position?: object; global_node_setting?: object; ignore_e164_validation?: boolean; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: object; type: 'press_digit'; delay_ms?: number; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; else_edge: object; type: 'branch'; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; failed_edge: object; instruction: object | object; success_edge: object; type: 'sms'; display_position?: object; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: object | object | object | object[]; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; agent_id: string; edge: object; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: object; global_node_setting?: object; instruction?: object | object; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: object; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: object; type: 'component'; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; }[]; begin_tag_display_position?: { x?: number; y?: number; }; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; notes?: { id: string; content: string; display_position: object; size: object; }[]; start_node_id?: string; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }[]; default_dynamic_variables?: object; global_prompt?: string; is_transfer_llm?: boolean; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; nodes?: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: object | object; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: object | object | object | object[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]; notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]; start_node_id?: string; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }`\n\n - `conversation_flow_id: string`\n - `version: number`\n - `begin_after_user_silence_ms?: number`\n - `begin_tag_display_position?: { x?: number; y?: number; }`\n - `components?: { name: string; nodes: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: object; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Failed to send'; } | { prompt: 'Failed to send'; type: 'prompt'; }; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Sent successfully'; } | { prompt: 'Sent successfully'; type: 'prompt'; }; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]; begin_tag_display_position?: { x?: number; y?: number; }; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]; start_node_id?: string; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }[]`\n - `default_dynamic_variables?: object`\n - `global_prompt?: string`\n - `is_transfer_llm?: boolean`\n - `kb_config?: { filter_score?: number; top_k?: number; }`\n - `knowledge_base_ids?: string[]`\n - `mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]`\n - `model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }`\n - `model_temperature?: number`\n - `nodes?: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: object; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: { agent_id: string; agent_version: number; }; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Failed to send'; } | { prompt: 'Failed to send'; type: 'prompt'; }; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Sent successfully'; } | { prompt: 'Sent successfully'; type: 'prompt'; }; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]`\n - `notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]`\n - `start_node_id?: string`\n - `start_speaker?: 'user' | 'agent'`\n - `tool_call_strict_mode?: boolean`\n - `tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst conversationFlowResponse = await client.conversationFlow.create({\n model_choice: { model: 'gpt-4.1', type: 'cascading' },\n nodes: [{\n id: 'start',\n instruction: { text: 'Greet the customer and ask how you can help them.', type: 'prompt' },\n type: 'conversation',\n}],\n start_speaker: 'agent',\n});\n\nconsole.log(conversationFlowResponse);\n```",
|
|
1354
1354
|
perLanguage: {
|
|
1355
1355
|
http: {
|
|
1356
|
-
example: 'curl https://api.retellai.com/create-conversation-flow \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
1356
|
+
example: 'curl https://api.retellai.com/create-conversation-flow \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d \'{\n "model_choice": {\n "model": "gpt-4.1",\n "type": "cascading"\n },\n "nodes": [\n {\n "id": "start",\n "instruction": {\n "text": "Greet the customer and ask how you can help them.",\n "type": "prompt"\n },\n "type": "conversation",\n "edges": [\n {\n "id": "edge_1",\n "transition_condition": {\n "prompt": "Customer wants to book appointment",\n "type": "prompt"\n },\n "destination_node_id": "book_appointment"\n }\n ]\n }\n ],\n "start_speaker": "agent",\n "begin_after_user_silence_ms": 2000,\n "default_dynamic_variables": {\n "company_name": "Retell Inc",\n "support_hours": "9 AM - 5 PM"\n },\n "global_prompt": "You are a helpful customer service agent.",\n "knowledge_base_ids": [\n "kb_001",\n "kb_002"\n ],\n "model_temperature": 0.7,\n "start_node_id": "start",\n "tool_call_strict_mode": true,\n "tools": [\n {\n "name": "get_customer_info",\n "type": "custom",\n "url": "https://api.example.com/customer",\n "description": "Get customer information from database",\n "method": "GET",\n "tool_id": "tool_001"\n }\n ]\n }\'',
|
|
1357
1357
|
},
|
|
1358
1358
|
python: {
|
|
1359
1359
|
method: 'conversation_flow.create',
|
|
1360
|
-
example: '
|
|
1360
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nconversation_flow_response = client.conversation_flow.create(\n model_choice={\n "model": "gpt-4.1",\n "type": "cascading",\n },\n nodes=[{\n "id": "start",\n "instruction": {\n "text": "Greet the customer and ask how you can help them.",\n "type": "prompt",\n },\n "type": "conversation",\n }],\n start_speaker="agent",\n)\nprint(conversation_flow_response.conversation_flow_id)',
|
|
1361
1361
|
},
|
|
1362
1362
|
typescript: {
|
|
1363
1363
|
method: 'client.conversationFlow.create',
|
|
1364
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1364
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst conversationFlowResponse = await client.conversationFlow.create({\n model_choice: { model: 'gpt-4.1', type: 'cascading' },\n nodes: [\n {\n id: 'start',\n instruction: { text: 'Greet the customer and ask how you can help them.', type: 'prompt' },\n type: 'conversation',\n },\n ],\n start_speaker: 'agent',\n});\n\nconsole.log(conversationFlowResponse.conversation_flow_id);",
|
|
1365
1365
|
},
|
|
1366
1366
|
},
|
|
1367
1367
|
},
|
|
@@ -1378,15 +1378,15 @@ const EMBEDDED_METHODS = [
|
|
|
1378
1378
|
markdown: "## retrieve\n\n`client.conversationFlow.retrieve(conversation_flow_id: string, version?: number): { conversation_flow_id: string; version: number; begin_after_user_silence_ms?: number; begin_tag_display_position?: object; components?: object[]; default_dynamic_variables?: object; global_prompt?: string; is_transfer_llm?: boolean; kb_config?: object; knowledge_base_ids?: string[]; mcps?: object[]; model_choice?: object; model_temperature?: number; nodes?: object | object | object | object | object | object | object | object | object | object | object | object | object | object | object[]; notes?: object[]; start_node_id?: string; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; tools?: object | object | object[]; }`\n\n**get** `/get-conversation-flow/{conversation_flow_id}`\n\nRetrieve details of a specific Conversation Flow\n\n### Parameters\n\n- `conversation_flow_id: string`\n\n- `version?: number`\n Optional version of the conversation flow to retrieve. Default to latest version.\n\n### Returns\n\n- `{ conversation_flow_id: string; version: number; begin_after_user_silence_ms?: number; begin_tag_display_position?: { x?: number; y?: number; }; components?: { name: string; nodes: { id: string; instruction: object | object; type: 'conversation'; always_edge?: object; display_position?: object; edges?: object[]; finetune_conversation_examples?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: object; name?: string; responsiveness?: number; skip_response_edge?: object; voice_speed?: number; } | { id: string; instruction: object; type: 'subagent'; always_edge?: object; display_position?: object; edges?: object[]; finetune_conversation_examples?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: object; name?: string; responsiveness?: number; skip_response_edge?: object; tool_ids?: string[]; tools?: object | object | object | object | object | object | object | object | object | object | object | object | object[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: object; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; display_position?: object; global_node_setting?: object; ignore_e164_validation?: boolean; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: object; type: 'press_digit'; delay_ms?: number; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; else_edge: object; type: 'branch'; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; failed_edge: object; instruction: object | object; success_edge: object; type: 'sms'; display_position?: object; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: object | object | object | object[]; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; agent_id: string; edge: object; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: object; global_node_setting?: object; instruction?: object | object; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: object; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: object; type: 'component'; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; }[]; begin_tag_display_position?: { x?: number; y?: number; }; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; notes?: { id: string; content: string; display_position: object; size: object; }[]; start_node_id?: string; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }[]; default_dynamic_variables?: object; global_prompt?: string; is_transfer_llm?: boolean; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; nodes?: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: object | object; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: object | object | object | object[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]; notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]; start_node_id?: string; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }`\n\n - `conversation_flow_id: string`\n - `version: number`\n - `begin_after_user_silence_ms?: number`\n - `begin_tag_display_position?: { x?: number; y?: number; }`\n - `components?: { name: string; nodes: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: object; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Failed to send'; } | { prompt: 'Failed to send'; type: 'prompt'; }; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Sent successfully'; } | { prompt: 'Sent successfully'; type: 'prompt'; }; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]; begin_tag_display_position?: { x?: number; y?: number; }; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]; start_node_id?: string; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }[]`\n - `default_dynamic_variables?: object`\n - `global_prompt?: string`\n - `is_transfer_llm?: boolean`\n - `kb_config?: { filter_score?: number; top_k?: number; }`\n - `knowledge_base_ids?: string[]`\n - `mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]`\n - `model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }`\n - `model_temperature?: number`\n - `nodes?: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: object; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: { agent_id: string; agent_version: number; }; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Failed to send'; } | { prompt: 'Failed to send'; type: 'prompt'; }; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Sent successfully'; } | { prompt: 'Sent successfully'; type: 'prompt'; }; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]`\n - `notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]`\n - `start_node_id?: string`\n - `start_speaker?: 'user' | 'agent'`\n - `tool_call_strict_mode?: boolean`\n - `tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst conversationFlowResponse = await client.conversationFlow.retrieve('conversation_flow_id');\n\nconsole.log(conversationFlowResponse);\n```",
|
|
1379
1379
|
perLanguage: {
|
|
1380
1380
|
http: {
|
|
1381
|
-
example: 'curl https://api.retellai.com/get-conversation-flow/$CONVERSATION_FLOW_ID \\\n -H "Authorization: Bearer $
|
|
1381
|
+
example: 'curl https://api.retellai.com/get-conversation-flow/$CONVERSATION_FLOW_ID \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
1382
1382
|
},
|
|
1383
1383
|
python: {
|
|
1384
1384
|
method: 'conversation_flow.retrieve',
|
|
1385
|
-
example: '
|
|
1385
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nconversation_flow_response = client.conversation_flow.retrieve(\n conversation_flow_id="conversation_flow_id",\n)\nprint(conversation_flow_response.conversation_flow_id)',
|
|
1386
1386
|
},
|
|
1387
1387
|
typescript: {
|
|
1388
1388
|
method: 'client.conversationFlow.retrieve',
|
|
1389
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1389
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst conversationFlowResponse = await client.conversationFlow.retrieve('conversation_flow_id');\n\nconsole.log(conversationFlowResponse.conversation_flow_id);",
|
|
1390
1390
|
},
|
|
1391
1391
|
},
|
|
1392
1392
|
},
|
|
@@ -1403,15 +1403,15 @@ const EMBEDDED_METHODS = [
|
|
|
1403
1403
|
markdown: "## list\n\n`client.conversationFlow.list(limit?: number, pagination_key?: string, pagination_key_version?: number): object[]`\n\n**get** `/list-conversation-flows`\n\nList all conversation flows that can be attached to an agent.\n\n### Parameters\n\n- `limit?: number`\n Limit the number of conversation flows returned. Default 1000, Max 1000. To retrieve more than 1000, use pagination_key to continue fetching the next page.\n\n- `pagination_key?: string`\n The pagination key to continue fetching the next page of conversation flows. Pagination key is represented by a conversation flow id here, and it's exclusive (not included in the fetched conversation flows). The last conversation flow id from the list conversation flows is usually used as pagination key here. If not set, will start from the beginning.\n\n- `pagination_key_version?: number`\n Specifies the version of the conversation flow associated with the pagination_key. When paginating, both the pagination_key and its version must be provided to ensure consistent ordering and to fetch the next page correctly.\n\n### Returns\n\n- `{ conversation_flow_id: string; version: number; begin_after_user_silence_ms?: number; begin_tag_display_position?: { x?: number; y?: number; }; components?: { name: string; nodes: object | object | object | object | object | object | object | object | object | object | object | object | object | object | object[]; begin_tag_display_position?: object; mcps?: object[]; notes?: object[]; start_node_id?: string; tools?: object | object | object[]; }[]; default_dynamic_variables?: object; global_prompt?: string; is_transfer_llm?: boolean; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; nodes?: { id: string; instruction: object | object; type: 'conversation'; always_edge?: object; display_position?: object; edges?: object[]; finetune_conversation_examples?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: object; name?: string; responsiveness?: number; skip_response_edge?: object; voice_speed?: number; } | { id: string; instruction: object; type: 'subagent'; always_edge?: object; display_position?: object; edges?: object[]; finetune_conversation_examples?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: object; name?: string; responsiveness?: number; skip_response_edge?: object; tool_ids?: string[]; tools?: object | object | object | object | object | object | object | object | object | object | object | object | object[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: object; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; display_position?: object; global_node_setting?: object; ignore_e164_validation?: boolean; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: object; type: 'press_digit'; delay_ms?: number; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; else_edge: object; type: 'branch'; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; failed_edge: object; instruction: object | object; success_edge: object; type: 'sms'; display_position?: object; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: object | object | object | object[]; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; agent_id: string; edge: object; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: object; global_node_setting?: object; instruction?: object | object; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: object; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: object; type: 'component'; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; }[]; notes?: { id: string; content: string; display_position: object; size: object; }[]; start_node_id?: string; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst conversationFlowResponses = await client.conversationFlow.list();\n\nconsole.log(conversationFlowResponses);\n```",
|
|
1404
1404
|
perLanguage: {
|
|
1405
1405
|
http: {
|
|
1406
|
-
example: 'curl https://api.retellai.com/list-conversation-flows \\\n -H "Authorization: Bearer $
|
|
1406
|
+
example: 'curl https://api.retellai.com/list-conversation-flows \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
1407
1407
|
},
|
|
1408
1408
|
python: {
|
|
1409
1409
|
method: 'conversation_flow.list',
|
|
1410
|
-
example: '
|
|
1410
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nconversation_flow_responses = client.conversation_flow.list()\nprint(conversation_flow_responses)',
|
|
1411
1411
|
},
|
|
1412
1412
|
typescript: {
|
|
1413
1413
|
method: 'client.conversationFlow.list',
|
|
1414
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1414
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst conversationFlowResponses = await client.conversationFlow.list();\n\nconsole.log(conversationFlowResponses);",
|
|
1415
1415
|
},
|
|
1416
1416
|
},
|
|
1417
1417
|
},
|
|
@@ -1448,15 +1448,15 @@ const EMBEDDED_METHODS = [
|
|
|
1448
1448
|
markdown: "## update\n\n`client.conversationFlow.update(conversation_flow_id: string, version?: number, begin_after_user_silence_ms?: number, begin_tag_display_position?: { x?: number; y?: number; }, components?: { name: string; nodes: { id: string; instruction: object | object; type: 'conversation'; always_edge?: object; display_position?: object; edges?: object[]; finetune_conversation_examples?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: object; name?: string; responsiveness?: number; skip_response_edge?: object; voice_speed?: number; } | { id: string; instruction: object; type: 'subagent'; always_edge?: object; display_position?: object; edges?: object[]; finetune_conversation_examples?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: object; name?: string; responsiveness?: number; skip_response_edge?: object; tool_ids?: string[]; tools?: object | object | object | object | object | object | object | object | object | object | object | object | object[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: object; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; display_position?: object; global_node_setting?: object; ignore_e164_validation?: boolean; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: object; type: 'press_digit'; delay_ms?: number; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; else_edge: object; type: 'branch'; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; failed_edge: object; instruction: object | object; success_edge: object; type: 'sms'; display_position?: object; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: object | object | object | object[]; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; agent_id: string; edge: object; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: object; global_node_setting?: object; instruction?: object | object; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: object; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: object; type: 'component'; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; }[]; begin_tag_display_position?: { x?: number; y?: number; }; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; notes?: { id: string; content: string; display_position: object; size: object; }[]; start_node_id?: string; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }[], default_dynamic_variables?: object, global_prompt?: string, is_transfer_llm?: boolean, kb_config?: { filter_score?: number; top_k?: number; }, knowledge_base_ids?: string[], mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[], model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }, model_temperature?: number, nodes?: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: object | object; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: object | object | object | object[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[], notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[], start_node_id?: string, start_speaker?: 'user' | 'agent', tool_call_strict_mode?: boolean, tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]): { conversation_flow_id: string; version: number; begin_after_user_silence_ms?: number; begin_tag_display_position?: object; components?: object[]; default_dynamic_variables?: object; global_prompt?: string; is_transfer_llm?: boolean; kb_config?: object; knowledge_base_ids?: string[]; mcps?: object[]; model_choice?: object; model_temperature?: number; nodes?: object | object | object | object | object | object | object | object | object | object | object | object | object | object | object[]; notes?: object[]; start_node_id?: string; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; tools?: object | object | object[]; }`\n\n**patch** `/update-conversation-flow/{conversation_flow_id}`\n\nUpdate an existing conversation flow\n\n### Parameters\n\n- `conversation_flow_id: string`\n\n- `version?: number`\n Optional version of the conversation flow to update. Default to latest version.\n\n- `begin_after_user_silence_ms?: number`\n If set, the AI will begin the conversation after waiting for the user for the duration (in milliseconds) specified by this attribute. This only applies if the agent is configured to wait for the user to speak first. If not set, the agent will wait indefinitely for the user to speak.\n\n- `begin_tag_display_position?: { x?: number; y?: number; }`\n Display position for the begin tag in the frontend.\n - `x?: number`\n - `y?: number`\n\n- `components?: { name: string; nodes: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: object; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Failed to send'; } | { prompt: 'Failed to send'; type: 'prompt'; }; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Sent successfully'; } | { prompt: 'Sent successfully'; type: 'prompt'; }; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]; begin_tag_display_position?: { x?: number; y?: number; }; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]; start_node_id?: string; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }[]`\n Local components embedded within the conversation flow.\n\n- `default_dynamic_variables?: object`\n Default dynamic variables that can be referenced throughout the conversation flow.\n\n- `global_prompt?: string`\n Global prompt used in every node of the conversation flow.\n\n- `is_transfer_llm?: boolean`\n Whether this conversation flow is used for transfer LLM.\n\n- `kb_config?: { filter_score?: number; top_k?: number; }`\n Knowledge base configuration for RAG retrieval.\n - `filter_score?: number`\n Similarity threshold for filtering search results\n - `top_k?: number`\n Max number of knowledge base chunks to retrieve\n\n- `knowledge_base_ids?: string[]`\n Knowledge base IDs for RAG (Retrieval-Augmented Generation).\n\n- `mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]`\n A list of MCP server configurations to use for this conversation flow.\n\n- `model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }`\n The model choice for the conversation flow.\n - `model: string`\n The LLM model to use\n - `type: 'cascading'`\n Type of model choice\n - `high_priority?: boolean`\n Whether to use high priority pool with more dedicated resource, default false\n\n- `model_temperature?: number`\n Controls the randomness of the model's responses. Lower values make responses more deterministic.\n\n- `nodes?: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: object; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: { agent_id: string; agent_version: number; }; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Failed to send'; } | { prompt: 'Failed to send'; type: 'prompt'; }; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Sent successfully'; } | { prompt: 'Sent successfully'; type: 'prompt'; }; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]`\n Array of nodes in the conversation flow.\n\n- `notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]`\n Visual annotations displayed on the flow canvas.\n\n- `start_node_id?: string`\n ID of the start node in the conversation flow.\n\n- `start_speaker?: 'user' | 'agent'`\n Who starts the conversation - user or agent.\n\n- `tool_call_strict_mode?: boolean`\n Whether to use strict mode for tool calls. Only applicable when using certain supported models.\n\n- `tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]`\n Tools available in the conversation flow.\n\n### Returns\n\n- `{ conversation_flow_id: string; version: number; begin_after_user_silence_ms?: number; begin_tag_display_position?: { x?: number; y?: number; }; components?: { name: string; nodes: { id: string; instruction: object | object; type: 'conversation'; always_edge?: object; display_position?: object; edges?: object[]; finetune_conversation_examples?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: object; name?: string; responsiveness?: number; skip_response_edge?: object; voice_speed?: number; } | { id: string; instruction: object; type: 'subagent'; always_edge?: object; display_position?: object; edges?: object[]; finetune_conversation_examples?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: object; name?: string; responsiveness?: number; skip_response_edge?: object; tool_ids?: string[]; tools?: object | object | object | object | object | object | object | object | object | object | object | object | object[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: object; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; display_position?: object; global_node_setting?: object; ignore_e164_validation?: boolean; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: object; type: 'press_digit'; delay_ms?: number; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; else_edge: object; type: 'branch'; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; failed_edge: object; instruction: object | object; success_edge: object; type: 'sms'; display_position?: object; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: object | object | object | object[]; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; agent_id: string; edge: object; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: object; global_node_setting?: object; instruction?: object | object; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: object; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: object; type: 'component'; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; }[]; begin_tag_display_position?: { x?: number; y?: number; }; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; notes?: { id: string; content: string; display_position: object; size: object; }[]; start_node_id?: string; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }[]; default_dynamic_variables?: object; global_prompt?: string; is_transfer_llm?: boolean; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; nodes?: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: object | object; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: object | object | object | object[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]; notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]; start_node_id?: string; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }`\n\n - `conversation_flow_id: string`\n - `version: number`\n - `begin_after_user_silence_ms?: number`\n - `begin_tag_display_position?: { x?: number; y?: number; }`\n - `components?: { name: string; nodes: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: object; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Failed to send'; } | { prompt: 'Failed to send'; type: 'prompt'; }; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Sent successfully'; } | { prompt: 'Sent successfully'; type: 'prompt'; }; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: object | object | object[]; }[]; positive_finetune_examples?: { transcript: object | object | object[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]; begin_tag_display_position?: { x?: number; y?: number; }; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]; start_node_id?: string; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }[]`\n - `default_dynamic_variables?: object`\n - `global_prompt?: string`\n - `is_transfer_llm?: boolean`\n - `kb_config?: { filter_score?: number; top_k?: number; }`\n - `knowledge_base_ids?: string[]`\n - `mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]`\n - `model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }`\n - `model_temperature?: number`\n - `nodes?: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: object; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: { agent_id: string; agent_version: number; }; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Failed to send'; } | { prompt: 'Failed to send'; type: 'prompt'; }; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Sent successfully'; } | { prompt: 'Sent successfully'; type: 'prompt'; }; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]`\n - `notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]`\n - `start_node_id?: string`\n - `start_speaker?: 'user' | 'agent'`\n - `tool_call_strict_mode?: boolean`\n - `tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst conversationFlowResponse = await client.conversationFlow.update('conversation_flow_id');\n\nconsole.log(conversationFlowResponse);\n```",
|
|
1449
1449
|
perLanguage: {
|
|
1450
1450
|
http: {
|
|
1451
|
-
example: 'curl https://api.retellai.com/update-conversation-flow/$CONVERSATION_FLOW_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
1451
|
+
example: 'curl https://api.retellai.com/update-conversation-flow/$CONVERSATION_FLOW_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d \'{\n "begin_after_user_silence_ms": 2000,\n "default_dynamic_variables": {\n "company_name": "Retell Inc",\n "support_hours": "9 AM - 5 PM"\n },\n "global_prompt": "You are a helpful customer service agent.",\n "knowledge_base_ids": [\n "kb_001",\n "kb_002"\n ],\n "model_temperature": 0.7,\n "nodes": [\n {\n "id": "start",\n "instruction": {\n "text": "Greet the customer and ask how you can help them.",\n "type": "prompt"\n },\n "type": "conversation",\n "edges": [\n {\n "id": "edge_1",\n "transition_condition": {\n "prompt": "Customer wants to book appointment",\n "type": "prompt"\n },\n "destination_node_id": "book_appointment"\n }\n ]\n }\n ],\n "start_node_id": "start",\n "start_speaker": "agent",\n "tool_call_strict_mode": true,\n "tools": [\n {\n "name": "get_customer_info",\n "type": "custom",\n "url": "https://api.example.com/customer",\n "description": "Get customer information from database",\n "method": "GET",\n "tool_id": "tool_001"\n }\n ]\n }\'',
|
|
1452
1452
|
},
|
|
1453
1453
|
python: {
|
|
1454
1454
|
method: 'conversation_flow.update',
|
|
1455
|
-
example: '
|
|
1455
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nconversation_flow_response = client.conversation_flow.update(\n conversation_flow_id="conversation_flow_id",\n)\nprint(conversation_flow_response.conversation_flow_id)',
|
|
1456
1456
|
},
|
|
1457
1457
|
typescript: {
|
|
1458
1458
|
method: 'client.conversationFlow.update',
|
|
1459
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1459
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst conversationFlowResponse = await client.conversationFlow.update('conversation_flow_id');\n\nconsole.log(conversationFlowResponse.conversation_flow_id);",
|
|
1460
1460
|
},
|
|
1461
1461
|
},
|
|
1462
1462
|
},
|
|
@@ -1472,15 +1472,15 @@ const EMBEDDED_METHODS = [
|
|
|
1472
1472
|
markdown: "## delete\n\n`client.conversationFlow.delete(conversation_flow_id: string): void`\n\n**delete** `/delete-conversation-flow/{conversation_flow_id}`\n\nDelete a conversation flow and all its versions\n\n### Parameters\n\n- `conversation_flow_id: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nawait client.conversationFlow.delete('conversation_flow_id')\n```",
|
|
1473
1473
|
perLanguage: {
|
|
1474
1474
|
http: {
|
|
1475
|
-
example: 'curl https://api.retellai.com/delete-conversation-flow/$CONVERSATION_FLOW_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $
|
|
1475
|
+
example: 'curl https://api.retellai.com/delete-conversation-flow/$CONVERSATION_FLOW_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
1476
1476
|
},
|
|
1477
1477
|
python: {
|
|
1478
1478
|
method: 'conversation_flow.delete',
|
|
1479
|
-
example: '
|
|
1479
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nclient.conversation_flow.delete(\n "conversation_flow_id",\n)',
|
|
1480
1480
|
},
|
|
1481
1481
|
typescript: {
|
|
1482
1482
|
method: 'client.conversationFlow.delete',
|
|
1483
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1483
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.conversationFlow.delete('conversation_flow_id');",
|
|
1484
1484
|
},
|
|
1485
1485
|
},
|
|
1486
1486
|
},
|
|
@@ -1505,15 +1505,15 @@ const EMBEDDED_METHODS = [
|
|
|
1505
1505
|
markdown: "## create\n\n`client.conversationFlowComponent.create(name: string, nodes: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: object | object; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: object | object | object | object[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[], begin_tag_display_position?: { x?: number; y?: number; }, mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[], notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[], start_node_id?: string, tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]): { conversation_flow_component_id: string; name: string; nodes: object | object | object | object | object | object | object | object | object | object | object | object | object | object | object[]; user_modified_timestamp: number; begin_tag_display_position?: object; linked_conversation_flow_ids?: string[]; mcps?: object[]; notes?: object[]; start_node_id?: string; tools?: object | object | object[]; }`\n\n**post** `/create-conversation-flow-component`\n\nCreate a new shared conversation flow component\n\n### Parameters\n\n- `name: string`\n Name of the component\n\n- `nodes: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: object; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: { agent_id: string; agent_version: number; }; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Failed to send'; } | { prompt: 'Failed to send'; type: 'prompt'; }; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Sent successfully'; } | { prompt: 'Sent successfully'; type: 'prompt'; }; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]`\n Nodes that make up the component\n\n- `begin_tag_display_position?: { x?: number; y?: number; }`\n Display position for the begin tag in the frontend\n - `x?: number`\n - `y?: number`\n\n- `mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]`\n A list of MCP server configurations to use for this component\n\n- `notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]`\n Visual annotations displayed on the flow canvas.\n\n- `start_node_id?: string`\n ID of the starting node\n\n- `tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]`\n Tools available within the component\n\n### Returns\n\n- `{ conversation_flow_component_id: string; name: string; nodes: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: object | object; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: object | object | object | object[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]; user_modified_timestamp: number; begin_tag_display_position?: { x?: number; y?: number; }; linked_conversation_flow_ids?: string[]; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]; start_node_id?: string; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }`\n\n - `conversation_flow_component_id: string`\n - `name: string`\n - `nodes: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: object; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: { agent_id: string; agent_version: number; }; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Failed to send'; } | { prompt: 'Failed to send'; type: 'prompt'; }; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Sent successfully'; } | { prompt: 'Sent successfully'; type: 'prompt'; }; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]`\n - `user_modified_timestamp: number`\n - `begin_tag_display_position?: { x?: number; y?: number; }`\n - `linked_conversation_flow_ids?: string[]`\n - `mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]`\n - `notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]`\n - `start_node_id?: string`\n - `tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst conversationFlowComponentResponse = await client.conversationFlowComponent.create({ name: 'Customer Information Collector', nodes: [{\n id: 'collect_info',\n instruction: { text: 'Ask the customer for their name and contact information.', type: 'prompt' },\n type: 'conversation',\n}] });\n\nconsole.log(conversationFlowComponentResponse);\n```",
|
|
1506
1506
|
perLanguage: {
|
|
1507
1507
|
http: {
|
|
1508
|
-
example: 'curl https://api.retellai.com/create-conversation-flow-component \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
1508
|
+
example: 'curl https://api.retellai.com/create-conversation-flow-component \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d \'{\n "name": "Customer Information Collector",\n "nodes": [\n {\n "id": "collect_info",\n "instruction": {\n "text": "Ask the customer for their name and contact information.",\n "type": "prompt"\n },\n "type": "conversation"\n }\n ],\n "start_node_id": "collect_info",\n "tools": [\n {\n "name": "get_customer_info",\n "type": "custom",\n "url": "https://api.example.com/customer",\n "description": "Get customer information from database",\n "method": "GET",\n "tool_id": "tool_001"\n }\n ]\n }\'',
|
|
1509
1509
|
},
|
|
1510
1510
|
python: {
|
|
1511
1511
|
method: 'conversation_flow_component.create',
|
|
1512
|
-
example: '
|
|
1512
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nconversation_flow_component_response = client.conversation_flow_component.create(\n name="Customer Information Collector",\n nodes=[{\n "id": "collect_info",\n "instruction": {\n "text": "Ask the customer for their name and contact information.",\n "type": "prompt",\n },\n "type": "conversation",\n }],\n)\nprint(conversation_flow_component_response.conversation_flow_component_id)',
|
|
1513
1513
|
},
|
|
1514
1514
|
typescript: {
|
|
1515
1515
|
method: 'client.conversationFlowComponent.create',
|
|
1516
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1516
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst conversationFlowComponentResponse = await client.conversationFlowComponent.create({\n name: 'Customer Information Collector',\n nodes: [\n {\n id: 'collect_info',\n instruction: {\n text: 'Ask the customer for their name and contact information.',\n type: 'prompt',\n },\n type: 'conversation',\n },\n ],\n});\n\nconsole.log(conversationFlowComponentResponse.conversation_flow_component_id);",
|
|
1517
1517
|
},
|
|
1518
1518
|
},
|
|
1519
1519
|
},
|
|
@@ -1530,15 +1530,15 @@ const EMBEDDED_METHODS = [
|
|
|
1530
1530
|
markdown: "## retrieve\n\n`client.conversationFlowComponent.retrieve(conversation_flow_component_id: string): { conversation_flow_component_id: string; name: string; nodes: object | object | object | object | object | object | object | object | object | object | object | object | object | object | object[]; user_modified_timestamp: number; begin_tag_display_position?: object; linked_conversation_flow_ids?: string[]; mcps?: object[]; notes?: object[]; start_node_id?: string; tools?: object | object | object[]; }`\n\n**get** `/get-conversation-flow-component/{conversation_flow_component_id}`\n\nGet a shared conversation flow component\n\n### Parameters\n\n- `conversation_flow_component_id: string`\n\n### Returns\n\n- `{ conversation_flow_component_id: string; name: string; nodes: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: object | object; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: object | object | object | object[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]; user_modified_timestamp: number; begin_tag_display_position?: { x?: number; y?: number; }; linked_conversation_flow_ids?: string[]; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]; start_node_id?: string; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }`\n\n - `conversation_flow_component_id: string`\n - `name: string`\n - `nodes: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: object; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: { agent_id: string; agent_version: number; }; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Failed to send'; } | { prompt: 'Failed to send'; type: 'prompt'; }; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Sent successfully'; } | { prompt: 'Sent successfully'; type: 'prompt'; }; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]`\n - `user_modified_timestamp: number`\n - `begin_tag_display_position?: { x?: number; y?: number; }`\n - `linked_conversation_flow_ids?: string[]`\n - `mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]`\n - `notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]`\n - `start_node_id?: string`\n - `tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst conversationFlowComponentResponse = await client.conversationFlowComponent.retrieve('conversation_flow_component_id');\n\nconsole.log(conversationFlowComponentResponse);\n```",
|
|
1531
1531
|
perLanguage: {
|
|
1532
1532
|
http: {
|
|
1533
|
-
example: 'curl https://api.retellai.com/get-conversation-flow-component/$CONVERSATION_FLOW_COMPONENT_ID \\\n -H "Authorization: Bearer $
|
|
1533
|
+
example: 'curl https://api.retellai.com/get-conversation-flow-component/$CONVERSATION_FLOW_COMPONENT_ID \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
1534
1534
|
},
|
|
1535
1535
|
python: {
|
|
1536
1536
|
method: 'conversation_flow_component.retrieve',
|
|
1537
|
-
example: '
|
|
1537
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nconversation_flow_component_response = client.conversation_flow_component.retrieve(\n "conversation_flow_component_id",\n)\nprint(conversation_flow_component_response.conversation_flow_component_id)',
|
|
1538
1538
|
},
|
|
1539
1539
|
typescript: {
|
|
1540
1540
|
method: 'client.conversationFlowComponent.retrieve',
|
|
1541
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1541
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst conversationFlowComponentResponse = await client.conversationFlowComponent.retrieve(\n 'conversation_flow_component_id',\n);\n\nconsole.log(conversationFlowComponentResponse.conversation_flow_component_id);",
|
|
1542
1542
|
},
|
|
1543
1543
|
},
|
|
1544
1544
|
},
|
|
@@ -1554,15 +1554,15 @@ const EMBEDDED_METHODS = [
|
|
|
1554
1554
|
markdown: "## list\n\n`client.conversationFlowComponent.list(): object[]`\n\n**get** `/list-conversation-flow-components`\n\nList shared conversation flow components\n\n### Returns\n\n- `{ conversation_flow_component_id: string; name: string; nodes: { id: string; instruction: object | object; type: 'conversation'; always_edge?: object; display_position?: object; edges?: object[]; finetune_conversation_examples?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: object; name?: string; responsiveness?: number; skip_response_edge?: object; voice_speed?: number; } | { id: string; instruction: object; type: 'subagent'; always_edge?: object; display_position?: object; edges?: object[]; finetune_conversation_examples?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: object; name?: string; responsiveness?: number; skip_response_edge?: object; tool_ids?: string[]; tools?: object | object | object | object | object | object | object | object | object | object | object | object | object[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: object; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; display_position?: object; global_node_setting?: object; ignore_e164_validation?: boolean; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: object; type: 'press_digit'; delay_ms?: number; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; else_edge: object; type: 'branch'; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; failed_edge: object; instruction: object | object; success_edge: object; type: 'sms'; display_position?: object; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: object | object | object | object[]; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; agent_id: string; edge: object; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: object; global_node_setting?: object; instruction?: object | object; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: object; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: object; type: 'component'; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; }[]; user_modified_timestamp: number; begin_tag_display_position?: { x?: number; y?: number; }; linked_conversation_flow_ids?: string[]; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; notes?: { id: string; content: string; display_position: object; size: object; }[]; start_node_id?: string; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst conversationFlowComponentResponses = await client.conversationFlowComponent.list();\n\nconsole.log(conversationFlowComponentResponses);\n```",
|
|
1555
1555
|
perLanguage: {
|
|
1556
1556
|
http: {
|
|
1557
|
-
example: 'curl https://api.retellai.com/list-conversation-flow-components \\\n -H "Authorization: Bearer $
|
|
1557
|
+
example: 'curl https://api.retellai.com/list-conversation-flow-components \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
1558
1558
|
},
|
|
1559
1559
|
python: {
|
|
1560
1560
|
method: 'conversation_flow_component.list',
|
|
1561
|
-
example: '
|
|
1561
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nconversation_flow_component_responses = client.conversation_flow_component.list()\nprint(conversation_flow_component_responses)',
|
|
1562
1562
|
},
|
|
1563
1563
|
typescript: {
|
|
1564
1564
|
method: 'client.conversationFlowComponent.list',
|
|
1565
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1565
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst conversationFlowComponentResponses = await client.conversationFlowComponent.list();\n\nconsole.log(conversationFlowComponentResponses);",
|
|
1566
1566
|
},
|
|
1567
1567
|
},
|
|
1568
1568
|
},
|
|
@@ -1588,15 +1588,15 @@ const EMBEDDED_METHODS = [
|
|
|
1588
1588
|
markdown: "## update\n\n`client.conversationFlowComponent.update(conversation_flow_component_id: string, begin_tag_display_position?: { x?: number; y?: number; }, mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[], name?: string, nodes?: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: object | object; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: object | object | object | object[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[], notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[], start_node_id?: string, tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]): { conversation_flow_component_id: string; name: string; nodes: object | object | object | object | object | object | object | object | object | object | object | object | object | object | object[]; user_modified_timestamp: number; begin_tag_display_position?: object; linked_conversation_flow_ids?: string[]; mcps?: object[]; notes?: object[]; start_node_id?: string; tools?: object | object | object[]; }`\n\n**patch** `/update-conversation-flow-component/{conversation_flow_component_id}`\n\nUpdate an existing shared conversation flow component\n\n### Parameters\n\n- `conversation_flow_component_id: string`\n\n- `begin_tag_display_position?: { x?: number; y?: number; }`\n Display position for the begin tag in the frontend\n - `x?: number`\n - `y?: number`\n\n- `mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]`\n A list of MCP server configurations to use for this component\n\n- `name?: string`\n Name of the component\n\n- `nodes?: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: object; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: { agent_id: string; agent_version: number; }; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Failed to send'; } | { prompt: 'Failed to send'; type: 'prompt'; }; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Sent successfully'; } | { prompt: 'Sent successfully'; type: 'prompt'; }; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]`\n Nodes that make up the component\n\n- `notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]`\n Visual annotations displayed on the flow canvas.\n\n- `start_node_id?: string`\n ID of the starting node\n\n- `tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]`\n Tools available within the component\n\n### Returns\n\n- `{ conversation_flow_component_id: string; name: string; nodes: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: object | object; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: object | object | object | object[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]; user_modified_timestamp: number; begin_tag_display_position?: { x?: number; y?: number; }; linked_conversation_flow_ids?: string[]; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]; start_node_id?: string; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }`\n\n - `conversation_flow_component_id: string`\n - `name: string`\n - `nodes: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; always_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Always'; } | { prompt: 'Always'; type: 'prompt'; }; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; interruption_sensitivity?: number; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Skip response'; } | { prompt: 'Skip response'; type: 'prompt'; }; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: object; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: { prompt?: string; type?: 'prompt'; }; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: { action_on_timeout?: 'bridge_transfer' | 'cancel_transfer'; transfer_agent?: { agent_id: string; agent_version: number; }; transfer_timeout_ms?: number; }; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: { prompt?: string; type?: 'prompt'; } | { message?: string; type?: 'static_message'; }; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Failed to send'; } | { prompt: 'Failed to send'; type: 'prompt'; }; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; success_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Sent successfully'; } | { prompt: 'Sent successfully'; type: 'prompt'; }; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Transfer failed'; } | { prompt: 'Transfer failed'; type: 'prompt'; }; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; prompt?: 'Else'; } | { prompt: 'Else'; type: 'prompt'; }; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: { left: string; operator: '==' | '!=' | '>' | '>=' | '<' | '<=' | 'contains' | 'not_contains' | 'exists' | 'not_exist'; right?: string; }[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: { id: string; transition_condition: { prompt: string; type: 'prompt'; } | { equations: object[]; operator: '||' | '&&'; type: 'equation'; }; destination_node_id?: string; }[]; negative_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; positive_finetune_examples?: { transcript: { content: string; role: 'agent' | 'user'; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; }[]; }[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]`\n - `user_modified_timestamp: number`\n - `begin_tag_display_position?: { x?: number; y?: number; }`\n - `linked_conversation_flow_ids?: string[]`\n - `mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]`\n - `notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]`\n - `start_node_id?: string`\n - `tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst conversationFlowComponentResponse = await client.conversationFlowComponent.update('conversation_flow_component_id');\n\nconsole.log(conversationFlowComponentResponse);\n```",
|
|
1589
1589
|
perLanguage: {
|
|
1590
1590
|
http: {
|
|
1591
|
-
example: 'curl https://api.retellai.com/update-conversation-flow-component/$CONVERSATION_FLOW_COMPONENT_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
1591
|
+
example: 'curl https://api.retellai.com/update-conversation-flow-component/$CONVERSATION_FLOW_COMPONENT_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d \'{\n "name": "Customer Information Collector",\n "nodes": [\n {\n "id": "collect_info",\n "instruction": {\n "text": "Ask the customer for their name and contact information.",\n "type": "prompt"\n },\n "type": "conversation"\n }\n ],\n "start_node_id": "collect_info",\n "tools": [\n {\n "name": "get_customer_info",\n "type": "custom",\n "url": "https://api.example.com/customer",\n "description": "Get customer information from database",\n "method": "GET",\n "tool_id": "tool_001"\n }\n ]\n }\'',
|
|
1592
1592
|
},
|
|
1593
1593
|
python: {
|
|
1594
1594
|
method: 'conversation_flow_component.update',
|
|
1595
|
-
example: '
|
|
1595
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nconversation_flow_component_response = client.conversation_flow_component.update(\n conversation_flow_component_id="conversation_flow_component_id",\n)\nprint(conversation_flow_component_response.conversation_flow_component_id)',
|
|
1596
1596
|
},
|
|
1597
1597
|
typescript: {
|
|
1598
1598
|
method: 'client.conversationFlowComponent.update',
|
|
1599
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1599
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst conversationFlowComponentResponse = await client.conversationFlowComponent.update(\n 'conversation_flow_component_id',\n);\n\nconsole.log(conversationFlowComponentResponse.conversation_flow_component_id);",
|
|
1600
1600
|
},
|
|
1601
1601
|
},
|
|
1602
1602
|
},
|
|
@@ -1612,15 +1612,15 @@ const EMBEDDED_METHODS = [
|
|
|
1612
1612
|
markdown: "## delete\n\n`client.conversationFlowComponent.delete(conversation_flow_component_id: string): void`\n\n**delete** `/delete-conversation-flow-component/{conversation_flow_component_id}`\n\nDelete a shared conversation flow component. When deleting a shared component, creates local copies for all linked conversation flows.\n\n### Parameters\n\n- `conversation_flow_component_id: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nawait client.conversationFlowComponent.delete('conversation_flow_component_id')\n```",
|
|
1613
1613
|
perLanguage: {
|
|
1614
1614
|
http: {
|
|
1615
|
-
example: 'curl https://api.retellai.com/delete-conversation-flow-component/$CONVERSATION_FLOW_COMPONENT_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $
|
|
1615
|
+
example: 'curl https://api.retellai.com/delete-conversation-flow-component/$CONVERSATION_FLOW_COMPONENT_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
1616
1616
|
},
|
|
1617
1617
|
python: {
|
|
1618
1618
|
method: 'conversation_flow_component.delete',
|
|
1619
|
-
example: '
|
|
1619
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nclient.conversation_flow_component.delete(\n "conversation_flow_component_id",\n)',
|
|
1620
1620
|
},
|
|
1621
1621
|
typescript: {
|
|
1622
1622
|
method: 'client.conversationFlowComponent.delete',
|
|
1623
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1623
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.conversationFlowComponent.delete('conversation_flow_component_id');",
|
|
1624
1624
|
},
|
|
1625
1625
|
},
|
|
1626
1626
|
},
|
|
@@ -1645,15 +1645,15 @@ const EMBEDDED_METHODS = [
|
|
|
1645
1645
|
markdown: "## create\n\n`client.knowledgeBase.create(knowledge_base_name: string, enable_auto_refresh?: boolean, knowledge_base_files?: string[], knowledge_base_texts?: { text: string; title: string; }[], knowledge_base_urls?: string[], max_chunk_size?: number, min_chunk_size?: number): { knowledge_base_id: string; knowledge_base_name: string; status: 'in_progress' | 'complete' | 'error' | 'refreshing_in_progress'; enable_auto_refresh?: boolean; knowledge_base_sources?: object | object | object[]; last_refreshed_timestamp?: number; max_chunk_size?: number; min_chunk_size?: number; }`\n\n**post** `/create-knowledge-base`\n\nCreate a new knowledge base\n\n### Parameters\n\n- `knowledge_base_name: string`\n Name of the knowledge base. Must be less than 40 characters.\n\n- `enable_auto_refresh?: boolean`\n Whether to enable auto refresh for the knowledge base urls. If set to true, will retrieve the data from the specified url every 12 hours.\n\n- `knowledge_base_files?: string[]`\n Files to add to the knowledge base. Limit to 25 files, where each file is limited to 50MB.\n\n- `knowledge_base_texts?: { text: string; title: string; }[]`\n Texts to add to the knowledge base.\n\n- `knowledge_base_urls?: string[]`\n URLs to be scraped and added to the knowledge base. Must be valid urls.\n\n- `max_chunk_size?: number`\n Maximum number of characters per chunk when splitting knowledge base. Default is 2000. content. Immutable after creation.\n\n- `min_chunk_size?: number`\n Minimum number of characters per chunk. Chunks smaller than this will be merged with adjacent chunks. Must be less than max_chunk_size. Immutable after creation. Default is 400.\n\n### Returns\n\n- `{ knowledge_base_id: string; knowledge_base_name: string; status: 'in_progress' | 'complete' | 'error' | 'refreshing_in_progress'; enable_auto_refresh?: boolean; knowledge_base_sources?: { file_url: string; filename: string; source_id: string; type: 'document'; } | { content_url: string; source_id: string; title: string; type: 'text'; } | { source_id: string; type: 'url'; url: string; }[]; last_refreshed_timestamp?: number; max_chunk_size?: number; min_chunk_size?: number; }`\n\n - `knowledge_base_id: string`\n - `knowledge_base_name: string`\n - `status: 'in_progress' | 'complete' | 'error' | 'refreshing_in_progress'`\n - `enable_auto_refresh?: boolean`\n - `knowledge_base_sources?: { file_url: string; filename: string; source_id: string; type: 'document'; } | { content_url: string; source_id: string; title: string; type: 'text'; } | { source_id: string; type: 'url'; url: string; }[]`\n - `last_refreshed_timestamp?: number`\n - `max_chunk_size?: number`\n - `min_chunk_size?: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst knowledgeBaseResponse = await client.knowledgeBase.create({ knowledge_base_name: 'Sample KB' });\n\nconsole.log(knowledgeBaseResponse);\n```",
|
|
1646
1646
|
perLanguage: {
|
|
1647
1647
|
http: {
|
|
1648
|
-
example: 'curl https://api.retellai.com/create-knowledge-base \\\n -H \'Content-Type: multipart/form-data\' \\\n -H "Authorization: Bearer $
|
|
1648
|
+
example: 'curl https://api.retellai.com/create-knowledge-base \\\n -H \'Content-Type: multipart/form-data\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -F knowledge_base_name=\'Sample KB\' \\\n -F enable_auto_refresh=true \\\n -F knowledge_base_urls=\'["https://www.example.com","https://www.retellai.com"]\' \\\n -F max_chunk_size=2000 \\\n -F min_chunk_size=400',
|
|
1649
1649
|
},
|
|
1650
1650
|
python: {
|
|
1651
1651
|
method: 'knowledge_base.create',
|
|
1652
|
-
example: '
|
|
1652
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nknowledge_base_response = client.knowledge_base.create(\n knowledge_base_name="Sample KB",\n)\nprint(knowledge_base_response.knowledge_base_id)',
|
|
1653
1653
|
},
|
|
1654
1654
|
typescript: {
|
|
1655
1655
|
method: 'client.knowledgeBase.create',
|
|
1656
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1656
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst knowledgeBaseResponse = await client.knowledgeBase.create({\n knowledge_base_name: 'Sample KB',\n});\n\nconsole.log(knowledgeBaseResponse.knowledge_base_id);",
|
|
1657
1657
|
},
|
|
1658
1658
|
},
|
|
1659
1659
|
},
|
|
@@ -1670,15 +1670,15 @@ const EMBEDDED_METHODS = [
|
|
|
1670
1670
|
markdown: "## retrieve\n\n`client.knowledgeBase.retrieve(knowledge_base_id: string): { knowledge_base_id: string; knowledge_base_name: string; status: 'in_progress' | 'complete' | 'error' | 'refreshing_in_progress'; enable_auto_refresh?: boolean; knowledge_base_sources?: object | object | object[]; last_refreshed_timestamp?: number; max_chunk_size?: number; min_chunk_size?: number; }`\n\n**get** `/get-knowledge-base/{knowledge_base_id}`\n\nRetrieve details of a specific knowledge base\n\n### Parameters\n\n- `knowledge_base_id: string`\n\n### Returns\n\n- `{ knowledge_base_id: string; knowledge_base_name: string; status: 'in_progress' | 'complete' | 'error' | 'refreshing_in_progress'; enable_auto_refresh?: boolean; knowledge_base_sources?: { file_url: string; filename: string; source_id: string; type: 'document'; } | { content_url: string; source_id: string; title: string; type: 'text'; } | { source_id: string; type: 'url'; url: string; }[]; last_refreshed_timestamp?: number; max_chunk_size?: number; min_chunk_size?: number; }`\n\n - `knowledge_base_id: string`\n - `knowledge_base_name: string`\n - `status: 'in_progress' | 'complete' | 'error' | 'refreshing_in_progress'`\n - `enable_auto_refresh?: boolean`\n - `knowledge_base_sources?: { file_url: string; filename: string; source_id: string; type: 'document'; } | { content_url: string; source_id: string; title: string; type: 'text'; } | { source_id: string; type: 'url'; url: string; }[]`\n - `last_refreshed_timestamp?: number`\n - `max_chunk_size?: number`\n - `min_chunk_size?: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst knowledgeBaseResponse = await client.knowledgeBase.retrieve('kb_1234567890');\n\nconsole.log(knowledgeBaseResponse);\n```",
|
|
1671
1671
|
perLanguage: {
|
|
1672
1672
|
http: {
|
|
1673
|
-
example: 'curl https://api.retellai.com/get-knowledge-base/$KNOWLEDGE_BASE_ID \\\n -H "Authorization: Bearer $
|
|
1673
|
+
example: 'curl https://api.retellai.com/get-knowledge-base/$KNOWLEDGE_BASE_ID \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
1674
1674
|
},
|
|
1675
1675
|
python: {
|
|
1676
1676
|
method: 'knowledge_base.retrieve',
|
|
1677
|
-
example: '
|
|
1677
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nknowledge_base_response = client.knowledge_base.retrieve(\n "kb_1234567890",\n)\nprint(knowledge_base_response.knowledge_base_id)',
|
|
1678
1678
|
},
|
|
1679
1679
|
typescript: {
|
|
1680
1680
|
method: 'client.knowledgeBase.retrieve',
|
|
1681
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1681
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst knowledgeBaseResponse = await client.knowledgeBase.retrieve('kb_1234567890');\n\nconsole.log(knowledgeBaseResponse.knowledge_base_id);",
|
|
1682
1682
|
},
|
|
1683
1683
|
},
|
|
1684
1684
|
},
|
|
@@ -1694,15 +1694,15 @@ const EMBEDDED_METHODS = [
|
|
|
1694
1694
|
markdown: "## list\n\n`client.knowledgeBase.list(): object[]`\n\n**get** `/list-knowledge-bases`\n\nList all knowledge bases\n\n### Returns\n\n- `{ knowledge_base_id: string; knowledge_base_name: string; status: 'in_progress' | 'complete' | 'error' | 'refreshing_in_progress'; enable_auto_refresh?: boolean; knowledge_base_sources?: { file_url: string; filename: string; source_id: string; type: 'document'; } | { content_url: string; source_id: string; title: string; type: 'text'; } | { source_id: string; type: 'url'; url: string; }[]; last_refreshed_timestamp?: number; max_chunk_size?: number; min_chunk_size?: number; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst knowledgeBaseResponses = await client.knowledgeBase.list();\n\nconsole.log(knowledgeBaseResponses);\n```",
|
|
1695
1695
|
perLanguage: {
|
|
1696
1696
|
http: {
|
|
1697
|
-
example: 'curl https://api.retellai.com/list-knowledge-bases \\\n -H "Authorization: Bearer $
|
|
1697
|
+
example: 'curl https://api.retellai.com/list-knowledge-bases \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
1698
1698
|
},
|
|
1699
1699
|
python: {
|
|
1700
1700
|
method: 'knowledge_base.list',
|
|
1701
|
-
example: '
|
|
1701
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nknowledge_base_responses = client.knowledge_base.list()\nprint(knowledge_base_responses)',
|
|
1702
1702
|
},
|
|
1703
1703
|
typescript: {
|
|
1704
1704
|
method: 'client.knowledgeBase.list',
|
|
1705
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1705
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst knowledgeBaseResponses = await client.knowledgeBase.list();\n\nconsole.log(knowledgeBaseResponses);",
|
|
1706
1706
|
},
|
|
1707
1707
|
},
|
|
1708
1708
|
},
|
|
@@ -1718,15 +1718,15 @@ const EMBEDDED_METHODS = [
|
|
|
1718
1718
|
markdown: "## delete\n\n`client.knowledgeBase.delete(knowledge_base_id: string): void`\n\n**delete** `/delete-knowledge-base/{knowledge_base_id}`\n\nDelete an existing knowledge base\n\n### Parameters\n\n- `knowledge_base_id: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nawait client.knowledgeBase.delete('kb_1234567890')\n```",
|
|
1719
1719
|
perLanguage: {
|
|
1720
1720
|
http: {
|
|
1721
|
-
example: 'curl https://api.retellai.com/delete-knowledge-base/$KNOWLEDGE_BASE_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $
|
|
1721
|
+
example: 'curl https://api.retellai.com/delete-knowledge-base/$KNOWLEDGE_BASE_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
1722
1722
|
},
|
|
1723
1723
|
python: {
|
|
1724
1724
|
method: 'knowledge_base.delete',
|
|
1725
|
-
example: '
|
|
1725
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nclient.knowledge_base.delete(\n "kb_1234567890",\n)',
|
|
1726
1726
|
},
|
|
1727
1727
|
typescript: {
|
|
1728
1728
|
method: 'client.knowledgeBase.delete',
|
|
1729
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1729
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.knowledgeBase.delete('kb_1234567890');",
|
|
1730
1730
|
},
|
|
1731
1731
|
},
|
|
1732
1732
|
},
|
|
@@ -1748,15 +1748,15 @@ const EMBEDDED_METHODS = [
|
|
|
1748
1748
|
markdown: "## add-sources\n\n`client.knowledgeBase.addSources(knowledge_base_id: string, knowledge_base_files?: string[], knowledge_base_texts?: { text: string; title: string; }[], knowledge_base_urls?: string[]): { knowledge_base_id: string; knowledge_base_name: string; status: 'in_progress' | 'complete' | 'error' | 'refreshing_in_progress'; enable_auto_refresh?: boolean; knowledge_base_sources?: object | object | object[]; last_refreshed_timestamp?: number; max_chunk_size?: number; min_chunk_size?: number; }`\n\n**post** `/add-knowledge-base-sources/{knowledge_base_id}`\n\nAdd sources to a knowledge base\n\n### Parameters\n\n- `knowledge_base_id: string`\n\n- `knowledge_base_files?: string[]`\n Files to add to the knowledge base. Limit to 25 files, where each file is limited to 50MB.\n\n- `knowledge_base_texts?: { text: string; title: string; }[]`\n Texts to add to the knowledge base.\n\n- `knowledge_base_urls?: string[]`\n URLs to be scraped and added to the knowledge base. Must be valid urls.\n\n### Returns\n\n- `{ knowledge_base_id: string; knowledge_base_name: string; status: 'in_progress' | 'complete' | 'error' | 'refreshing_in_progress'; enable_auto_refresh?: boolean; knowledge_base_sources?: { file_url: string; filename: string; source_id: string; type: 'document'; } | { content_url: string; source_id: string; title: string; type: 'text'; } | { source_id: string; type: 'url'; url: string; }[]; last_refreshed_timestamp?: number; max_chunk_size?: number; min_chunk_size?: number; }`\n\n - `knowledge_base_id: string`\n - `knowledge_base_name: string`\n - `status: 'in_progress' | 'complete' | 'error' | 'refreshing_in_progress'`\n - `enable_auto_refresh?: boolean`\n - `knowledge_base_sources?: { file_url: string; filename: string; source_id: string; type: 'document'; } | { content_url: string; source_id: string; title: string; type: 'text'; } | { source_id: string; type: 'url'; url: string; }[]`\n - `last_refreshed_timestamp?: number`\n - `max_chunk_size?: number`\n - `min_chunk_size?: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst knowledgeBaseResponse = await client.knowledgeBase.addSources('kb_1234567890');\n\nconsole.log(knowledgeBaseResponse);\n```",
|
|
1749
1749
|
perLanguage: {
|
|
1750
1750
|
http: {
|
|
1751
|
-
example: 'curl https://api.retellai.com/add-knowledge-base-sources/$KNOWLEDGE_BASE_ID \\\n -H \'Content-Type: multipart/form-data\' \\\n -H "Authorization: Bearer $
|
|
1751
|
+
example: 'curl https://api.retellai.com/add-knowledge-base-sources/$KNOWLEDGE_BASE_ID \\\n -H \'Content-Type: multipart/form-data\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -F knowledge_base_urls=\'["https://www.example.com","https://www.retellai.com"]\'',
|
|
1752
1752
|
},
|
|
1753
1753
|
python: {
|
|
1754
1754
|
method: 'knowledge_base.add_sources',
|
|
1755
|
-
example: '
|
|
1755
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nknowledge_base_response = client.knowledge_base.add_sources(\n knowledge_base_id="kb_1234567890",\n)\nprint(knowledge_base_response.knowledge_base_id)',
|
|
1756
1756
|
},
|
|
1757
1757
|
typescript: {
|
|
1758
1758
|
method: 'client.knowledgeBase.addSources',
|
|
1759
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1759
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst knowledgeBaseResponse = await client.knowledgeBase.addSources('kb_1234567890');\n\nconsole.log(knowledgeBaseResponse.knowledge_base_id);",
|
|
1760
1760
|
},
|
|
1761
1761
|
},
|
|
1762
1762
|
},
|
|
@@ -1773,15 +1773,15 @@ const EMBEDDED_METHODS = [
|
|
|
1773
1773
|
markdown: "## delete-source\n\n`client.knowledgeBase.deleteSource(knowledge_base_id: string, source_id: string): { knowledge_base_id: string; knowledge_base_name: string; status: 'in_progress' | 'complete' | 'error' | 'refreshing_in_progress'; enable_auto_refresh?: boolean; knowledge_base_sources?: object | object | object[]; last_refreshed_timestamp?: number; max_chunk_size?: number; min_chunk_size?: number; }`\n\n**delete** `/delete-knowledge-base-source/{knowledge_base_id}/source/{source_id}`\n\nDelete an existing source from knowledge base\n\n### Parameters\n\n- `knowledge_base_id: string`\n\n- `source_id: string`\n\n### Returns\n\n- `{ knowledge_base_id: string; knowledge_base_name: string; status: 'in_progress' | 'complete' | 'error' | 'refreshing_in_progress'; enable_auto_refresh?: boolean; knowledge_base_sources?: { file_url: string; filename: string; source_id: string; type: 'document'; } | { content_url: string; source_id: string; title: string; type: 'text'; } | { source_id: string; type: 'url'; url: string; }[]; last_refreshed_timestamp?: number; max_chunk_size?: number; min_chunk_size?: number; }`\n\n - `knowledge_base_id: string`\n - `knowledge_base_name: string`\n - `status: 'in_progress' | 'complete' | 'error' | 'refreshing_in_progress'`\n - `enable_auto_refresh?: boolean`\n - `knowledge_base_sources?: { file_url: string; filename: string; source_id: string; type: 'document'; } | { content_url: string; source_id: string; title: string; type: 'text'; } | { source_id: string; type: 'url'; url: string; }[]`\n - `last_refreshed_timestamp?: number`\n - `max_chunk_size?: number`\n - `min_chunk_size?: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst knowledgeBaseResponse = await client.knowledgeBase.deleteSource('source_1234567890', { knowledge_base_id: 'kb_1234567890' });\n\nconsole.log(knowledgeBaseResponse);\n```",
|
|
1774
1774
|
perLanguage: {
|
|
1775
1775
|
http: {
|
|
1776
|
-
example: 'curl https://api.retellai.com/delete-knowledge-base-source/$KNOWLEDGE_BASE_ID/source/$SOURCE_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $
|
|
1776
|
+
example: 'curl https://api.retellai.com/delete-knowledge-base-source/$KNOWLEDGE_BASE_ID/source/$SOURCE_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
1777
1777
|
},
|
|
1778
1778
|
python: {
|
|
1779
1779
|
method: 'knowledge_base.delete_source',
|
|
1780
|
-
example: '
|
|
1780
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nknowledge_base_response = client.knowledge_base.delete_source(\n source_id="source_1234567890",\n knowledge_base_id="kb_1234567890",\n)\nprint(knowledge_base_response.knowledge_base_id)',
|
|
1781
1781
|
},
|
|
1782
1782
|
typescript: {
|
|
1783
1783
|
method: 'client.knowledgeBase.deleteSource',
|
|
1784
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1784
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst knowledgeBaseResponse = await client.knowledgeBase.deleteSource('source_1234567890', {\n knowledge_base_id: 'kb_1234567890',\n});\n\nconsole.log(knowledgeBaseResponse.knowledge_base_id);",
|
|
1785
1785
|
},
|
|
1786
1786
|
},
|
|
1787
1787
|
},
|
|
@@ -1803,15 +1803,15 @@ const EMBEDDED_METHODS = [
|
|
|
1803
1803
|
markdown: "## add-resource\n\n`client.voice.addResource(provider_voice_id: string, voice_name: string, public_user_id?: string, voice_provider?: 'elevenlabs' | 'cartesia' | 'minimax' | 'fish_audio'): { gender: 'male' | 'female'; provider: 'elevenlabs' | 'openai' | 'deepgram' | 'cartesia' | 'minimax' | 'fish_audio' | 'platform'; voice_id: string; voice_name: string; accent?: string; age?: string; preview_audio_url?: string; }`\n\n**post** `/add-community-voice`\n\nAdd a community voice to the voice library\n\n### Parameters\n\n- `provider_voice_id: string`\n Voice id assigned by the provider.\n\n- `voice_name: string`\n A custom name for the voice.\n\n- `public_user_id?: string`\n Required for ElevenLabs only. User id of the voice owner.\n\n- `voice_provider?: 'elevenlabs' | 'cartesia' | 'minimax' | 'fish_audio'`\n Voice provider to add the voice from.\n\n### Returns\n\n- `{ gender: 'male' | 'female'; provider: 'elevenlabs' | 'openai' | 'deepgram' | 'cartesia' | 'minimax' | 'fish_audio' | 'platform'; voice_id: string; voice_name: string; accent?: string; age?: string; preview_audio_url?: string; }`\n\n - `gender: 'male' | 'female'`\n - `provider: 'elevenlabs' | 'openai' | 'deepgram' | 'cartesia' | 'minimax' | 'fish_audio' | 'platform'`\n - `voice_id: string`\n - `voice_name: string`\n - `accent?: string`\n - `age?: string`\n - `preview_audio_url?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst voiceResponse = await client.voice.addResource({ provider_voice_id: 'provider_voice_id', voice_name: 'x' });\n\nconsole.log(voiceResponse);\n```",
|
|
1804
1804
|
perLanguage: {
|
|
1805
1805
|
http: {
|
|
1806
|
-
example: 'curl https://api.retellai.com/add-community-voice \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
1806
|
+
example: 'curl https://api.retellai.com/add-community-voice \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d \'{\n "provider_voice_id": "provider_voice_id",\n "voice_name": "x"\n }\'',
|
|
1807
1807
|
},
|
|
1808
1808
|
python: {
|
|
1809
1809
|
method: 'voice.add_resource',
|
|
1810
|
-
example: '
|
|
1810
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nvoice_response = client.voice.add_resource(\n provider_voice_id="provider_voice_id",\n voice_name="x",\n)\nprint(voice_response.provider)',
|
|
1811
1811
|
},
|
|
1812
1812
|
typescript: {
|
|
1813
1813
|
method: 'client.voice.addResource',
|
|
1814
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1814
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst voiceResponse = await client.voice.addResource({\n provider_voice_id: 'provider_voice_id',\n voice_name: 'x',\n});\n\nconsole.log(voiceResponse.provider);",
|
|
1815
1815
|
},
|
|
1816
1816
|
},
|
|
1817
1817
|
},
|
|
@@ -1832,15 +1832,15 @@ const EMBEDDED_METHODS = [
|
|
|
1832
1832
|
markdown: "## clone\n\n`client.voice.clone(files: string[], voice_name: string, voice_provider: 'elevenlabs' | 'cartesia' | 'minimax' | 'fish_audio' | 'platform'): { gender: 'male' | 'female'; provider: 'elevenlabs' | 'openai' | 'deepgram' | 'cartesia' | 'minimax' | 'fish_audio' | 'platform'; voice_id: string; voice_name: string; accent?: string; age?: string; preview_audio_url?: string; }`\n\n**post** `/clone-voice`\n\nClone a voice from audio files\n\n### Parameters\n\n- `files: string[]`\n Audio files to use for voice cloning. Up to 25 files allowed. For Cartesia and MiniMax, only 1 file is supported. For Inworld, up to 3 files are supported.\n\n- `voice_name: string`\n Name for the cloned voice\n\n- `voice_provider: 'elevenlabs' | 'cartesia' | 'minimax' | 'fish_audio' | 'platform'`\n Voice provider to use for cloning.\n\n### Returns\n\n- `{ gender: 'male' | 'female'; provider: 'elevenlabs' | 'openai' | 'deepgram' | 'cartesia' | 'minimax' | 'fish_audio' | 'platform'; voice_id: string; voice_name: string; accent?: string; age?: string; preview_audio_url?: string; }`\n\n - `gender: 'male' | 'female'`\n - `provider: 'elevenlabs' | 'openai' | 'deepgram' | 'cartesia' | 'minimax' | 'fish_audio' | 'platform'`\n - `voice_id: string`\n - `voice_name: string`\n - `accent?: string`\n - `age?: string`\n - `preview_audio_url?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst voiceResponse = await client.voice.clone({\n files: [fs.createReadStream('path/to/file')],\n voice_name: 'x',\n voice_provider: 'elevenlabs',\n});\n\nconsole.log(voiceResponse);\n```",
|
|
1833
1833
|
perLanguage: {
|
|
1834
1834
|
http: {
|
|
1835
|
-
example: 'curl https://api.retellai.com/clone-voice \\\n -H \'Content-Type: multipart/form-data\' \\\n -H "Authorization: Bearer $
|
|
1835
|
+
example: 'curl https://api.retellai.com/clone-voice \\\n -H \'Content-Type: multipart/form-data\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -F files=\'["Example data"]\' \\\n -F voice_name=x \\\n -F voice_provider=elevenlabs',
|
|
1836
1836
|
},
|
|
1837
1837
|
python: {
|
|
1838
1838
|
method: 'voice.clone',
|
|
1839
|
-
example: '
|
|
1839
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nvoice_response = client.voice.clone(\n files=[b"Example data"],\n voice_name="x",\n voice_provider="elevenlabs",\n)\nprint(voice_response.provider)',
|
|
1840
1840
|
},
|
|
1841
1841
|
typescript: {
|
|
1842
1842
|
method: 'client.voice.clone',
|
|
1843
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1843
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst voiceResponse = await client.voice.clone({\n files: [fs.createReadStream('path/to/file')],\n voice_name: 'x',\n voice_provider: 'elevenlabs',\n});\n\nconsole.log(voiceResponse.provider);",
|
|
1844
1844
|
},
|
|
1845
1845
|
},
|
|
1846
1846
|
},
|
|
@@ -1857,15 +1857,15 @@ const EMBEDDED_METHODS = [
|
|
|
1857
1857
|
markdown: "## retrieve\n\n`client.voice.retrieve(voice_id: string): { gender: 'male' | 'female'; provider: 'elevenlabs' | 'openai' | 'deepgram' | 'cartesia' | 'minimax' | 'fish_audio' | 'platform'; voice_id: string; voice_name: string; accent?: string; age?: string; preview_audio_url?: string; }`\n\n**get** `/get-voice/{voice_id}`\n\nRetrieve details of a specific voice\n\n### Parameters\n\n- `voice_id: string`\n\n### Returns\n\n- `{ gender: 'male' | 'female'; provider: 'elevenlabs' | 'openai' | 'deepgram' | 'cartesia' | 'minimax' | 'fish_audio' | 'platform'; voice_id: string; voice_name: string; accent?: string; age?: string; preview_audio_url?: string; }`\n\n - `gender: 'male' | 'female'`\n - `provider: 'elevenlabs' | 'openai' | 'deepgram' | 'cartesia' | 'minimax' | 'fish_audio' | 'platform'`\n - `voice_id: string`\n - `voice_name: string`\n - `accent?: string`\n - `age?: string`\n - `preview_audio_url?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst voiceResponse = await client.voice.retrieve('retell-Cimo');\n\nconsole.log(voiceResponse);\n```",
|
|
1858
1858
|
perLanguage: {
|
|
1859
1859
|
http: {
|
|
1860
|
-
example: 'curl https://api.retellai.com/get-voice/$VOICE_ID \\\n -H "Authorization: Bearer $
|
|
1860
|
+
example: 'curl https://api.retellai.com/get-voice/$VOICE_ID \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
1861
1861
|
},
|
|
1862
1862
|
python: {
|
|
1863
1863
|
method: 'voice.retrieve',
|
|
1864
|
-
example: '
|
|
1864
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nvoice_response = client.voice.retrieve(\n "retell-Cimo",\n)\nprint(voice_response.provider)',
|
|
1865
1865
|
},
|
|
1866
1866
|
typescript: {
|
|
1867
1867
|
method: 'client.voice.retrieve',
|
|
1868
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1868
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst voiceResponse = await client.voice.retrieve('retell-Cimo');\n\nconsole.log(voiceResponse.provider);",
|
|
1869
1869
|
},
|
|
1870
1870
|
},
|
|
1871
1871
|
},
|
|
@@ -1881,15 +1881,15 @@ const EMBEDDED_METHODS = [
|
|
|
1881
1881
|
markdown: "## list\n\n`client.voice.list(): object[]`\n\n**get** `/list-voices`\n\nList all voices available to the user\n\n### Returns\n\n- `{ gender: 'male' | 'female'; provider: 'elevenlabs' | 'openai' | 'deepgram' | 'cartesia' | 'minimax' | 'fish_audio' | 'platform'; voice_id: string; voice_name: string; accent?: string; age?: string; preview_audio_url?: string; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst voiceResponses = await client.voice.list();\n\nconsole.log(voiceResponses);\n```",
|
|
1882
1882
|
perLanguage: {
|
|
1883
1883
|
http: {
|
|
1884
|
-
example: 'curl https://api.retellai.com/list-voices \\\n -H "Authorization: Bearer $
|
|
1884
|
+
example: 'curl https://api.retellai.com/list-voices \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
1885
1885
|
},
|
|
1886
1886
|
python: {
|
|
1887
1887
|
method: 'voice.list',
|
|
1888
|
-
example: '
|
|
1888
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nvoice_responses = client.voice.list()\nprint(voice_responses)',
|
|
1889
1889
|
},
|
|
1890
1890
|
typescript: {
|
|
1891
1891
|
method: 'client.voice.list',
|
|
1892
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1892
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst voiceResponses = await client.voice.list();\n\nconsole.log(voiceResponses);",
|
|
1893
1893
|
},
|
|
1894
1894
|
},
|
|
1895
1895
|
},
|
|
@@ -1909,15 +1909,15 @@ const EMBEDDED_METHODS = [
|
|
|
1909
1909
|
markdown: "## search\n\n`client.voice.search(search_query: string, voice_provider?: 'elevenlabs' | 'cartesia' | 'minimax' | 'fish_audio'): { voices: object[]; }`\n\n**post** `/search-community-voice`\n\nSearch for community voices from voice providers\n\n### Parameters\n\n- `search_query: string`\n Search query to find voices by name, description, or ID.\n\n- `voice_provider?: 'elevenlabs' | 'cartesia' | 'minimax' | 'fish_audio'`\n Voice provider to search.\n\n### Returns\n\n- `{ voices: { description?: string; name?: string; provider_voice_id?: string; public_user_id?: string; }[]; }`\n\n - `voices: { description?: string; name?: string; provider_voice_id?: string; public_user_id?: string; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst response = await client.voice.search({ search_query: 'search_query' });\n\nconsole.log(response);\n```",
|
|
1910
1910
|
perLanguage: {
|
|
1911
1911
|
http: {
|
|
1912
|
-
example: 'curl https://api.retellai.com/search-community-voice \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
1912
|
+
example: 'curl https://api.retellai.com/search-community-voice \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d \'{\n "search_query": "search_query"\n }\'',
|
|
1913
1913
|
},
|
|
1914
1914
|
python: {
|
|
1915
1915
|
method: 'voice.search',
|
|
1916
|
-
example: '
|
|
1916
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.voice.search(\n search_query="search_query",\n)\nprint(response.voices)',
|
|
1917
1917
|
},
|
|
1918
1918
|
typescript: {
|
|
1919
1919
|
method: 'client.voice.search',
|
|
1920
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1920
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.voice.search({ search_query: 'search_query' });\n\nconsole.log(response.voices);",
|
|
1921
1921
|
},
|
|
1922
1922
|
},
|
|
1923
1923
|
},
|
|
@@ -1933,15 +1933,15 @@ const EMBEDDED_METHODS = [
|
|
|
1933
1933
|
markdown: "## retrieve\n\n`client.concurrency.retrieve(): { base_concurrency?: number; concurrency_burst_enabled?: boolean; concurrency_burst_limit?: number; concurrency_limit?: number; concurrency_purchase_limit?: number; current_concurrency?: number; purchased_concurrency?: number; remaining_purchase_limit?: number; }`\n\n**get** `/get-concurrency`\n\nGet the current concurrency and concurrency limit of the org\n\n### Returns\n\n- `{ base_concurrency?: number; concurrency_burst_enabled?: boolean; concurrency_burst_limit?: number; concurrency_limit?: number; concurrency_purchase_limit?: number; current_concurrency?: number; purchased_concurrency?: number; remaining_purchase_limit?: number; }`\n\n - `base_concurrency?: number`\n - `concurrency_burst_enabled?: boolean`\n - `concurrency_burst_limit?: number`\n - `concurrency_limit?: number`\n - `concurrency_purchase_limit?: number`\n - `current_concurrency?: number`\n - `purchased_concurrency?: number`\n - `remaining_purchase_limit?: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst concurrency = await client.concurrency.retrieve();\n\nconsole.log(concurrency);\n```",
|
|
1934
1934
|
perLanguage: {
|
|
1935
1935
|
http: {
|
|
1936
|
-
example: 'curl https://api.retellai.com/get-concurrency \\\n -H "Authorization: Bearer $
|
|
1936
|
+
example: 'curl https://api.retellai.com/get-concurrency \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
1937
1937
|
},
|
|
1938
1938
|
python: {
|
|
1939
1939
|
method: 'concurrency.retrieve',
|
|
1940
|
-
example: '
|
|
1940
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nconcurrency = client.concurrency.retrieve()\nprint(concurrency.base_concurrency)',
|
|
1941
1941
|
},
|
|
1942
1942
|
typescript: {
|
|
1943
1943
|
method: 'client.concurrency.retrieve',
|
|
1944
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1944
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst concurrency = await client.concurrency.retrieve();\n\nconsole.log(concurrency.base_concurrency);",
|
|
1945
1945
|
},
|
|
1946
1946
|
},
|
|
1947
1947
|
},
|
|
@@ -1965,15 +1965,15 @@ const EMBEDDED_METHODS = [
|
|
|
1965
1965
|
markdown: "## create-batch-call\n\n`client.batchCall.createBatchCall(from_number: string, tasks: { to_number: string; agent_override?: { agent?: object; conversation_flow?: object; retell_llm?: object; }; custom_sip_headers?: object; ignore_e164_validation?: boolean; metadata?: object; override_agent_id?: string; override_agent_version?: number; retell_llm_dynamic_variables?: object; }[], call_time_window?: { windows: { end: number; start: number; }[]; day?: 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday'[]; timezone?: string; }, name?: string, reserved_concurrency?: number, trigger_timestamp?: number): { batch_call_id: string; from_number: string; name: string; scheduled_timestamp: number; total_task_count: number; call_time_window?: object; }`\n\n**post** `/create-batch-call`\n\nCreate a batch call\n\n### Parameters\n\n- `from_number: string`\n The number you own in E.164 format. Must be a number purchased from Retell or imported to Retell.\n\n- `tasks: { to_number: string; agent_override?: { agent?: { agent_name?: string; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_public?: boolean; ivr_option?: { action: object; }; language?: string; max_call_duration_ms?: number; normalize_for_speech?: boolean; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; } | { name: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; response_engine?: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: { action: object | object | object | object; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; }; custom_sip_headers?: object; ignore_e164_validation?: boolean; metadata?: object; override_agent_id?: string; override_agent_version?: number; retell_llm_dynamic_variables?: object; }[]`\n A list of individual call tasks to be executed as part of the batch call. Each task represents a single outbound call and includes details such as the recipient's phone number and optional dynamic variables to personalize the call content.\n\n- `call_time_window?: { windows: { end: number; start: number; }[]; day?: 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday'[]; timezone?: string; }`\n Allowed calling windows in a specific timezone. Each window is a half-open interval [startMin, endMin) in minutes since 00:00 local time. Cross-midnight windows are NOT allowed (must satisfy startMin < endMin). `endMin = 1440` (24:00) is valid.\n - `windows: { end: number; start: number; }[]`\n List of TimeWindow (start/end in minutes since local midnight).\n - `day?: 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday'[]`\n Optional list of days to which the windows apply. If omitted or empty, windows apply to every day.\n - `timezone?: string`\n IANA timezone (e.g. America/Los_Angeles). Defaults to America/Los_Angeles if omitted.\n\n- `name?: string`\n The name of the batch call. Only used for your own reference.\n\n- `reserved_concurrency?: number`\n Number of concurrency reserved for all other calls that are not triggered by batch calls, such as inbound calls.\n\n- `trigger_timestamp?: number`\n The scheduled time for sending the batch call, represented as a Unix timestamp in milliseconds. If omitted, the call will be sent immediately.\n\n### Returns\n\n- `{ batch_call_id: string; from_number: string; name: string; scheduled_timestamp: number; total_task_count: number; call_time_window?: { windows: { end: number; start: number; }[]; day?: 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday'[]; timezone?: string; }; }`\n\n - `batch_call_id: string`\n - `from_number: string`\n - `name: string`\n - `scheduled_timestamp: number`\n - `total_task_count: number`\n - `call_time_window?: { windows: { end: number; start: number; }[]; day?: 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday'[]; timezone?: string; }`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst batchCallResponse = await client.batchCall.createBatchCall({ from_number: '+14157774444', tasks: [{ to_number: '+12137774445' }] });\n\nconsole.log(batchCallResponse);\n```",
|
|
1966
1966
|
perLanguage: {
|
|
1967
1967
|
http: {
|
|
1968
|
-
example: 'curl https://api.retellai.com/create-batch-call \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
1968
|
+
example: 'curl https://api.retellai.com/create-batch-call \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n --max-time 300 \\\n -d \'{\n "from_number": "+14157774444",\n "tasks": [\n {\n "to_number": "+12137774445"\n }\n ],\n "name": "First batch call",\n "trigger_timestamp": 1735718400000\n }\'',
|
|
1969
1969
|
},
|
|
1970
1970
|
python: {
|
|
1971
1971
|
method: 'batch_call.create_batch_call',
|
|
1972
|
-
example: '
|
|
1972
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nbatch_call_response = client.batch_call.create_batch_call(\n from_number="+14157774444",\n tasks=[{\n "to_number": "+12137774445"\n }],\n)\nprint(batch_call_response.batch_call_id)',
|
|
1973
1973
|
},
|
|
1974
1974
|
typescript: {
|
|
1975
1975
|
method: 'client.batchCall.createBatchCall',
|
|
1976
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
1976
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst batchCallResponse = await client.batchCall.createBatchCall({\n from_number: '+14157774444',\n tasks: [{ to_number: '+12137774445' }],\n});\n\nconsole.log(batchCallResponse.batch_call_id);",
|
|
1977
1977
|
},
|
|
1978
1978
|
},
|
|
1979
1979
|
},
|
|
@@ -1998,15 +1998,15 @@ const EMBEDDED_METHODS = [
|
|
|
1998
1998
|
markdown: "## create-test-case-definition\n\n`client.tests.createTestCaseDefinition(metrics: string[], name: string, response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }, user_prompt: string, dynamic_variables?: object, llm_model?: string, tool_mocks?: { input_match_rule: { type: 'any'; } | { args: object; type: 'partial_match'; }; output: string; tool_name: string; result?: boolean; }[]): { creation_timestamp: number; dynamic_variables: object; llm_model: string; metrics: string[]; name: string; response_engine: object | object; test_case_definition_id: string; tool_mocks: object[]; type: 'simulation'; user_modified_timestamp: number; user_prompt: string; }`\n\n**post** `/create-test-case-definition`\n\nCreate a new test case definition\n\n### Parameters\n\n- `metrics: string[]`\n Array of metric names to evaluate\n\n- `name: string`\n Name of the test case definition\n\n- `response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }`\n Response engine to use for the test case. Custom LLM is not supported.\n\n- `user_prompt: string`\n User prompt to simulate in the test case\n\n- `dynamic_variables?: object`\n Dynamic variables to inject into the response engine\n\n- `llm_model?: string`\n LLM model to use for simulation\n\n- `tool_mocks?: { input_match_rule: { type: 'any'; } | { args: object; type: 'partial_match'; }; output: string; tool_name: string; result?: boolean; }[]`\n Mock tool calls for testing\n\n### Returns\n\n- `{ creation_timestamp: number; dynamic_variables: object; llm_model: string; metrics: string[]; name: string; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; test_case_definition_id: string; tool_mocks: { input_match_rule: { type: 'any'; } | { args: object; type: 'partial_match'; }; output: string; tool_name: string; result?: boolean; }[]; type: 'simulation'; user_modified_timestamp: number; user_prompt: string; }`\n\n - `creation_timestamp: number`\n - `dynamic_variables: object`\n - `llm_model: string`\n - `metrics: string[]`\n - `name: string`\n - `response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }`\n - `test_case_definition_id: string`\n - `tool_mocks: { input_match_rule: { type: 'any'; } | { args: object; type: 'partial_match'; }; output: string; tool_name: string; result?: boolean; }[]`\n - `type: 'simulation'`\n - `user_modified_timestamp: number`\n - `user_prompt: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst testCaseDefinitionResponse = await client.tests.createTestCaseDefinition({\n metrics: ['string'],\n name: 'name',\n response_engine: { llm_id: 'llm_id', type: 'retell-llm' },\n user_prompt: 'user_prompt',\n});\n\nconsole.log(testCaseDefinitionResponse);\n```",
|
|
1999
1999
|
perLanguage: {
|
|
2000
2000
|
http: {
|
|
2001
|
-
example: 'curl https://api.retellai.com/create-test-case-definition \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
2001
|
+
example: 'curl https://api.retellai.com/create-test-case-definition \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d \'{\n "metrics": [\n "string"\n ],\n "name": "name",\n "response_engine": {\n "llm_id": "llm_id",\n "type": "retell-llm"\n },\n "user_prompt": "user_prompt"\n }\'',
|
|
2002
2002
|
},
|
|
2003
2003
|
python: {
|
|
2004
2004
|
method: 'tests.create_test_case_definition',
|
|
2005
|
-
example: '
|
|
2005
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\ntest_case_definition_response = client.tests.create_test_case_definition(\n metrics=["string"],\n name="name",\n response_engine={\n "llm_id": "llm_id",\n "type": "retell-llm",\n },\n user_prompt="user_prompt",\n)\nprint(test_case_definition_response.test_case_definition_id)',
|
|
2006
2006
|
},
|
|
2007
2007
|
typescript: {
|
|
2008
2008
|
method: 'client.tests.createTestCaseDefinition',
|
|
2009
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
2009
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst testCaseDefinitionResponse = await client.tests.createTestCaseDefinition({\n metrics: ['string'],\n name: 'name',\n response_engine: { llm_id: 'llm_id', type: 'retell-llm' },\n user_prompt: 'user_prompt',\n});\n\nconsole.log(testCaseDefinitionResponse.test_case_definition_id);",
|
|
2010
2010
|
},
|
|
2011
2011
|
},
|
|
2012
2012
|
},
|
|
@@ -2023,15 +2023,15 @@ const EMBEDDED_METHODS = [
|
|
|
2023
2023
|
markdown: "## get-test-case-definition\n\n`client.tests.getTestCaseDefinition(test_case_definition_id: string): { creation_timestamp: number; dynamic_variables: object; llm_model: string; metrics: string[]; name: string; response_engine: object | object; test_case_definition_id: string; tool_mocks: object[]; type: 'simulation'; user_modified_timestamp: number; user_prompt: string; }`\n\n**get** `/get-test-case-definition/{test_case_definition_id}`\n\nGet a test case definition by ID\n\n### Parameters\n\n- `test_case_definition_id: string`\n\n### Returns\n\n- `{ creation_timestamp: number; dynamic_variables: object; llm_model: string; metrics: string[]; name: string; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; test_case_definition_id: string; tool_mocks: { input_match_rule: { type: 'any'; } | { args: object; type: 'partial_match'; }; output: string; tool_name: string; result?: boolean; }[]; type: 'simulation'; user_modified_timestamp: number; user_prompt: string; }`\n\n - `creation_timestamp: number`\n - `dynamic_variables: object`\n - `llm_model: string`\n - `metrics: string[]`\n - `name: string`\n - `response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }`\n - `test_case_definition_id: string`\n - `tool_mocks: { input_match_rule: { type: 'any'; } | { args: object; type: 'partial_match'; }; output: string; tool_name: string; result?: boolean; }[]`\n - `type: 'simulation'`\n - `user_modified_timestamp: number`\n - `user_prompt: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst testCaseDefinitionResponse = await client.tests.getTestCaseDefinition('test_case_definition_id');\n\nconsole.log(testCaseDefinitionResponse);\n```",
|
|
2024
2024
|
perLanguage: {
|
|
2025
2025
|
http: {
|
|
2026
|
-
example: 'curl https://api.retellai.com/get-test-case-definition/$TEST_CASE_DEFINITION_ID \\\n -H "Authorization: Bearer $
|
|
2026
|
+
example: 'curl https://api.retellai.com/get-test-case-definition/$TEST_CASE_DEFINITION_ID \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
2027
2027
|
},
|
|
2028
2028
|
python: {
|
|
2029
2029
|
method: 'tests.get_test_case_definition',
|
|
2030
|
-
example: '
|
|
2030
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\ntest_case_definition_response = client.tests.get_test_case_definition(\n "test_case_definition_id",\n)\nprint(test_case_definition_response.test_case_definition_id)',
|
|
2031
2031
|
},
|
|
2032
2032
|
typescript: {
|
|
2033
2033
|
method: 'client.tests.getTestCaseDefinition',
|
|
2034
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
2034
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst testCaseDefinitionResponse = await client.tests.getTestCaseDefinition(\n 'test_case_definition_id',\n);\n\nconsole.log(testCaseDefinitionResponse.test_case_definition_id);",
|
|
2035
2035
|
},
|
|
2036
2036
|
},
|
|
2037
2037
|
},
|
|
@@ -2053,15 +2053,15 @@ const EMBEDDED_METHODS = [
|
|
|
2053
2053
|
markdown: "## list-test-case-definitions\n\n`client.tests.listTestCaseDefinitions(type: 'retell-llm' | 'conversation-flow', conversation_flow_id?: string, llm_id?: string, version?: number): object[]`\n\n**get** `/list-test-case-definitions`\n\nList test case definitions for a response engine\n\n### Parameters\n\n- `type: 'retell-llm' | 'conversation-flow'`\n Type of response engine\n\n- `conversation_flow_id?: string`\n Conversation flow ID (required when type is conversation-flow)\n\n- `llm_id?: string`\n LLM ID (required when type is retell-llm)\n\n- `version?: number`\n Version of the response engine (defaults to latest)\n\n### Returns\n\n- `{ creation_timestamp: number; dynamic_variables: object; llm_model: string; metrics: string[]; name: string; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; test_case_definition_id: string; tool_mocks: { input_match_rule: object | object; output: string; tool_name: string; result?: boolean; }[]; type: 'simulation'; user_modified_timestamp: number; user_prompt: string; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst testCaseDefinitionResponses = await client.tests.listTestCaseDefinitions({ type: 'retell-llm' });\n\nconsole.log(testCaseDefinitionResponses);\n```",
|
|
2054
2054
|
perLanguage: {
|
|
2055
2055
|
http: {
|
|
2056
|
-
example: 'curl https://api.retellai.com/list-test-case-definitions \\\n -H "Authorization: Bearer $
|
|
2056
|
+
example: 'curl https://api.retellai.com/list-test-case-definitions \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
2057
2057
|
},
|
|
2058
2058
|
python: {
|
|
2059
2059
|
method: 'tests.list_test_case_definitions',
|
|
2060
|
-
example: '
|
|
2060
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\ntest_case_definition_responses = client.tests.list_test_case_definitions(\n type="retell-llm",\n)\nprint(test_case_definition_responses)',
|
|
2061
2061
|
},
|
|
2062
2062
|
typescript: {
|
|
2063
2063
|
method: 'client.tests.listTestCaseDefinitions',
|
|
2064
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
2064
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst testCaseDefinitionResponses = await client.tests.listTestCaseDefinitions({\n type: 'retell-llm',\n});\n\nconsole.log(testCaseDefinitionResponses);",
|
|
2065
2065
|
},
|
|
2066
2066
|
},
|
|
2067
2067
|
},
|
|
@@ -2087,15 +2087,15 @@ const EMBEDDED_METHODS = [
|
|
|
2087
2087
|
markdown: "## update-test-case-definition\n\n`client.tests.updateTestCaseDefinition(test_case_definition_id: string, dynamic_variables?: object, llm_model?: string, metrics?: string[], name?: string, response_engine?: { llm_id: string; type: 'retell-llm'; version?: number; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }, tool_mocks?: { input_match_rule: { type: 'any'; } | { args: object; type: 'partial_match'; }; output: string; tool_name: string; result?: boolean; }[], user_prompt?: string): { creation_timestamp: number; dynamic_variables: object; llm_model: string; metrics: string[]; name: string; response_engine: object | object; test_case_definition_id: string; tool_mocks: object[]; type: 'simulation'; user_modified_timestamp: number; user_prompt: string; }`\n\n**put** `/update-test-case-definition/{test_case_definition_id}`\n\nUpdate a test case definition\n\n### Parameters\n\n- `test_case_definition_id: string`\n\n- `dynamic_variables?: object`\n Dynamic variables to inject into the response engine\n\n- `llm_model?: string`\n LLM model to use for simulation\n\n- `metrics?: string[]`\n Array of metric names to evaluate\n\n- `name?: string`\n Name of the test case definition\n\n- `response_engine?: { llm_id: string; type: 'retell-llm'; version?: number; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }`\n Response engine to use for the test case. Custom LLM is not supported.\n\n- `tool_mocks?: { input_match_rule: { type: 'any'; } | { args: object; type: 'partial_match'; }; output: string; tool_name: string; result?: boolean; }[]`\n Mock tool calls for testing\n\n- `user_prompt?: string`\n User prompt to simulate in the test case\n\n### Returns\n\n- `{ creation_timestamp: number; dynamic_variables: object; llm_model: string; metrics: string[]; name: string; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; test_case_definition_id: string; tool_mocks: { input_match_rule: { type: 'any'; } | { args: object; type: 'partial_match'; }; output: string; tool_name: string; result?: boolean; }[]; type: 'simulation'; user_modified_timestamp: number; user_prompt: string; }`\n\n - `creation_timestamp: number`\n - `dynamic_variables: object`\n - `llm_model: string`\n - `metrics: string[]`\n - `name: string`\n - `response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }`\n - `test_case_definition_id: string`\n - `tool_mocks: { input_match_rule: { type: 'any'; } | { args: object; type: 'partial_match'; }; output: string; tool_name: string; result?: boolean; }[]`\n - `type: 'simulation'`\n - `user_modified_timestamp: number`\n - `user_prompt: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst testCaseDefinitionResponse = await client.tests.updateTestCaseDefinition('test_case_definition_id');\n\nconsole.log(testCaseDefinitionResponse);\n```",
|
|
2088
2088
|
perLanguage: {
|
|
2089
2089
|
http: {
|
|
2090
|
-
example: "curl https://api.retellai.com/update-test-case-definition/$TEST_CASE_DEFINITION_ID \\\n -X PUT \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: Bearer $
|
|
2090
|
+
example: "curl https://api.retellai.com/update-test-case-definition/$TEST_CASE_DEFINITION_ID \\\n -X PUT \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: Bearer $RETELL_API_KEY\" \\\n -d '{}'",
|
|
2091
2091
|
},
|
|
2092
2092
|
python: {
|
|
2093
2093
|
method: 'tests.update_test_case_definition',
|
|
2094
|
-
example: '
|
|
2094
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\ntest_case_definition_response = client.tests.update_test_case_definition(\n test_case_definition_id="test_case_definition_id",\n)\nprint(test_case_definition_response.test_case_definition_id)',
|
|
2095
2095
|
},
|
|
2096
2096
|
typescript: {
|
|
2097
2097
|
method: 'client.tests.updateTestCaseDefinition',
|
|
2098
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
2098
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst testCaseDefinitionResponse = await client.tests.updateTestCaseDefinition(\n 'test_case_definition_id',\n);\n\nconsole.log(testCaseDefinitionResponse.test_case_definition_id);",
|
|
2099
2099
|
},
|
|
2100
2100
|
},
|
|
2101
2101
|
},
|
|
@@ -2111,15 +2111,15 @@ const EMBEDDED_METHODS = [
|
|
|
2111
2111
|
markdown: "## delete-test-case-definition\n\n`client.tests.deleteTestCaseDefinition(test_case_definition_id: string): void`\n\n**delete** `/delete-test-case-definition/{test_case_definition_id}`\n\nDelete a test case definition\n\n### Parameters\n\n- `test_case_definition_id: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nawait client.tests.deleteTestCaseDefinition('test_case_definition_id')\n```",
|
|
2112
2112
|
perLanguage: {
|
|
2113
2113
|
http: {
|
|
2114
|
-
example: 'curl https://api.retellai.com/delete-test-case-definition/$TEST_CASE_DEFINITION_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $
|
|
2114
|
+
example: 'curl https://api.retellai.com/delete-test-case-definition/$TEST_CASE_DEFINITION_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
2115
2115
|
},
|
|
2116
2116
|
python: {
|
|
2117
2117
|
method: 'tests.delete_test_case_definition',
|
|
2118
|
-
example: '
|
|
2118
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nclient.tests.delete_test_case_definition(\n "test_case_definition_id",\n)',
|
|
2119
2119
|
},
|
|
2120
2120
|
typescript: {
|
|
2121
2121
|
method: 'client.tests.deleteTestCaseDefinition',
|
|
2122
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
2122
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.tests.deleteTestCaseDefinition('test_case_definition_id');",
|
|
2123
2123
|
},
|
|
2124
2124
|
},
|
|
2125
2125
|
},
|
|
@@ -2139,15 +2139,15 @@ const EMBEDDED_METHODS = [
|
|
|
2139
2139
|
markdown: "## create-batch-test\n\n`client.tests.createBatchTest(response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }, test_case_definition_ids: string[]): { creation_timestamp: number; error_count: number; fail_count: number; pass_count: number; response_engine: object | object | object; status: 'in_progress' | 'complete'; test_case_batch_job_id: string; total_count: number; user_modified_timestamp: number; }`\n\n**post** `/create-batch-test`\n\nCreate a batch test to run multiple test cases\n\n### Parameters\n\n- `response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }`\n Response engine to use for the test cases. Custom LLM is not supported.\n\n- `test_case_definition_ids: string[]`\n Array of test case definition IDs to run\n\n### Returns\n\n- `{ creation_timestamp: number; error_count: number; fail_count: number; pass_count: number; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; status: 'in_progress' | 'complete'; test_case_batch_job_id: string; total_count: number; user_modified_timestamp: number; }`\n\n - `creation_timestamp: number`\n - `error_count: number`\n - `fail_count: number`\n - `pass_count: number`\n - `response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }`\n - `status: 'in_progress' | 'complete'`\n - `test_case_batch_job_id: string`\n - `total_count: number`\n - `user_modified_timestamp: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst batchTestResponse = await client.tests.createBatchTest({\n response_engine: { llm_id: 'llm_id', type: 'retell-llm' },\n test_case_definition_ids: ['string'],\n});\n\nconsole.log(batchTestResponse);\n```",
|
|
2140
2140
|
perLanguage: {
|
|
2141
2141
|
http: {
|
|
2142
|
-
example: 'curl https://api.retellai.com/create-batch-test \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $
|
|
2142
|
+
example: 'curl https://api.retellai.com/create-batch-test \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d \'{\n "response_engine": {\n "llm_id": "llm_id",\n "type": "retell-llm"\n },\n "test_case_definition_ids": [\n "string"\n ]\n }\'',
|
|
2143
2143
|
},
|
|
2144
2144
|
python: {
|
|
2145
2145
|
method: 'tests.create_batch_test',
|
|
2146
|
-
example: '
|
|
2146
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nbatch_test_response = client.tests.create_batch_test(\n response_engine={\n "llm_id": "llm_id",\n "type": "retell-llm",\n },\n test_case_definition_ids=["string"],\n)\nprint(batch_test_response.test_case_batch_job_id)',
|
|
2147
2147
|
},
|
|
2148
2148
|
typescript: {
|
|
2149
2149
|
method: 'client.tests.createBatchTest',
|
|
2150
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
2150
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst batchTestResponse = await client.tests.createBatchTest({\n response_engine: { llm_id: 'llm_id', type: 'retell-llm' },\n test_case_definition_ids: ['string'],\n});\n\nconsole.log(batchTestResponse.test_case_batch_job_id);",
|
|
2151
2151
|
},
|
|
2152
2152
|
},
|
|
2153
2153
|
},
|
|
@@ -2164,15 +2164,15 @@ const EMBEDDED_METHODS = [
|
|
|
2164
2164
|
markdown: "## get-batch-test\n\n`client.tests.getBatchTest(test_case_batch_job_id: string): { creation_timestamp: number; error_count: number; fail_count: number; pass_count: number; response_engine: object | object | object; status: 'in_progress' | 'complete'; test_case_batch_job_id: string; total_count: number; user_modified_timestamp: number; }`\n\n**get** `/get-batch-test/{test_case_batch_job_id}`\n\nGet a batch test job by ID\n\n### Parameters\n\n- `test_case_batch_job_id: string`\n\n### Returns\n\n- `{ creation_timestamp: number; error_count: number; fail_count: number; pass_count: number; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; status: 'in_progress' | 'complete'; test_case_batch_job_id: string; total_count: number; user_modified_timestamp: number; }`\n\n - `creation_timestamp: number`\n - `error_count: number`\n - `fail_count: number`\n - `pass_count: number`\n - `response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }`\n - `status: 'in_progress' | 'complete'`\n - `test_case_batch_job_id: string`\n - `total_count: number`\n - `user_modified_timestamp: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst batchTestResponse = await client.tests.getBatchTest('test_case_batch_job_id');\n\nconsole.log(batchTestResponse);\n```",
|
|
2165
2165
|
perLanguage: {
|
|
2166
2166
|
http: {
|
|
2167
|
-
example: 'curl https://api.retellai.com/get-batch-test/$TEST_CASE_BATCH_JOB_ID \\\n -H "Authorization: Bearer $
|
|
2167
|
+
example: 'curl https://api.retellai.com/get-batch-test/$TEST_CASE_BATCH_JOB_ID \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
2168
2168
|
},
|
|
2169
2169
|
python: {
|
|
2170
2170
|
method: 'tests.get_batch_test',
|
|
2171
|
-
example: '
|
|
2171
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nbatch_test_response = client.tests.get_batch_test(\n "test_case_batch_job_id",\n)\nprint(batch_test_response.test_case_batch_job_id)',
|
|
2172
2172
|
},
|
|
2173
2173
|
typescript: {
|
|
2174
2174
|
method: 'client.tests.getBatchTest',
|
|
2175
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
2175
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst batchTestResponse = await client.tests.getBatchTest('test_case_batch_job_id');\n\nconsole.log(batchTestResponse.test_case_batch_job_id);",
|
|
2176
2176
|
},
|
|
2177
2177
|
},
|
|
2178
2178
|
},
|
|
@@ -2194,15 +2194,15 @@ const EMBEDDED_METHODS = [
|
|
|
2194
2194
|
markdown: "## list-batch-tests\n\n`client.tests.listBatchTests(type: 'retell-llm' | 'conversation-flow', conversation_flow_id?: string, llm_id?: string, version?: number): object[]`\n\n**get** `/list-batch-tests`\n\nList batch test jobs for a response engine\n\n### Parameters\n\n- `type: 'retell-llm' | 'conversation-flow'`\n Type of response engine\n\n- `conversation_flow_id?: string`\n Conversation flow ID (required when type is conversation-flow)\n\n- `llm_id?: string`\n LLM ID (required when type is retell-llm)\n\n- `version?: number`\n Version of the response engine (defaults to latest)\n\n### Returns\n\n- `{ creation_timestamp: number; error_count: number; fail_count: number; pass_count: number; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; status: 'in_progress' | 'complete'; test_case_batch_job_id: string; total_count: number; user_modified_timestamp: number; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst batchTestResponses = await client.tests.listBatchTests({ type: 'retell-llm' });\n\nconsole.log(batchTestResponses);\n```",
|
|
2195
2195
|
perLanguage: {
|
|
2196
2196
|
http: {
|
|
2197
|
-
example: 'curl https://api.retellai.com/list-batch-tests \\\n -H "Authorization: Bearer $
|
|
2197
|
+
example: 'curl https://api.retellai.com/list-batch-tests \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
2198
2198
|
},
|
|
2199
2199
|
python: {
|
|
2200
2200
|
method: 'tests.list_batch_tests',
|
|
2201
|
-
example: '
|
|
2201
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nbatch_test_responses = client.tests.list_batch_tests(\n type="retell-llm",\n)\nprint(batch_test_responses)',
|
|
2202
2202
|
},
|
|
2203
2203
|
typescript: {
|
|
2204
2204
|
method: 'client.tests.listBatchTests',
|
|
2205
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
2205
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst batchTestResponses = await client.tests.listBatchTests({ type: 'retell-llm' });\n\nconsole.log(batchTestResponses);",
|
|
2206
2206
|
},
|
|
2207
2207
|
},
|
|
2208
2208
|
},
|
|
@@ -2219,15 +2219,15 @@ const EMBEDDED_METHODS = [
|
|
|
2219
2219
|
markdown: "## get-test-run\n\n`client.tests.getTestRun(test_case_job_id: string): { creation_timestamp: number; status: 'in_progress' | 'pass' | 'fail' | 'error'; test_case_definition_id: string; test_case_definition_snapshot: test_case_definition_response; test_case_job_id: string; user_modified_timestamp: number; result_explanation?: string; transcript_snapshot?: object; }`\n\n**get** `/get-test-run/{test_case_job_id}`\n\nGet a test case job (test run) by ID\n\n### Parameters\n\n- `test_case_job_id: string`\n\n### Returns\n\n- `{ creation_timestamp: number; status: 'in_progress' | 'pass' | 'fail' | 'error'; test_case_definition_id: string; test_case_definition_snapshot: { creation_timestamp: number; dynamic_variables: object; llm_model: string; metrics: string[]; name: string; response_engine: object | object; test_case_definition_id: string; tool_mocks: object[]; type: 'simulation'; user_modified_timestamp: number; user_prompt: string; }; test_case_job_id: string; user_modified_timestamp: number; result_explanation?: string; transcript_snapshot?: object; }`\n\n - `creation_timestamp: number`\n - `status: 'in_progress' | 'pass' | 'fail' | 'error'`\n - `test_case_definition_id: string`\n - `test_case_definition_snapshot: { creation_timestamp: number; dynamic_variables: object; llm_model: string; metrics: string[]; name: string; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; test_case_definition_id: string; tool_mocks: { input_match_rule: { type: 'any'; } | { args: object; type: 'partial_match'; }; output: string; tool_name: string; result?: boolean; }[]; type: 'simulation'; user_modified_timestamp: number; user_prompt: string; }`\n - `test_case_job_id: string`\n - `user_modified_timestamp: number`\n - `result_explanation?: string`\n - `transcript_snapshot?: object`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst testCaseJobResponse = await client.tests.getTestRun('test_case_job_id');\n\nconsole.log(testCaseJobResponse);\n```",
|
|
2220
2220
|
perLanguage: {
|
|
2221
2221
|
http: {
|
|
2222
|
-
example: 'curl https://api.retellai.com/get-test-run/$TEST_CASE_JOB_ID \\\n -H "Authorization: Bearer $
|
|
2222
|
+
example: 'curl https://api.retellai.com/get-test-run/$TEST_CASE_JOB_ID \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
2223
2223
|
},
|
|
2224
2224
|
python: {
|
|
2225
2225
|
method: 'tests.get_test_run',
|
|
2226
|
-
example: '
|
|
2226
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\ntest_case_job_response = client.tests.get_test_run(\n "test_case_job_id",\n)\nprint(test_case_job_response.test_case_definition_id)',
|
|
2227
2227
|
},
|
|
2228
2228
|
typescript: {
|
|
2229
2229
|
method: 'client.tests.getTestRun',
|
|
2230
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
2230
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst testCaseJobResponse = await client.tests.getTestRun('test_case_job_id');\n\nconsole.log(testCaseJobResponse.test_case_definition_id);",
|
|
2231
2231
|
},
|
|
2232
2232
|
},
|
|
2233
2233
|
},
|
|
@@ -2244,15 +2244,15 @@ const EMBEDDED_METHODS = [
|
|
|
2244
2244
|
markdown: "## list-test-runs\n\n`client.tests.listTestRuns(test_case_batch_job_id: string): object[]`\n\n**get** `/list-test-runs/{test_case_batch_job_id}`\n\nList all test case jobs (test runs) for a batch test job\n\n### Parameters\n\n- `test_case_batch_job_id: string`\n\n### Returns\n\n- `{ creation_timestamp: number; status: 'in_progress' | 'pass' | 'fail' | 'error'; test_case_definition_id: string; test_case_definition_snapshot: object; test_case_job_id: string; user_modified_timestamp: number; result_explanation?: string; transcript_snapshot?: object; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst testCaseJobResponses = await client.tests.listTestRuns('test_case_batch_job_id');\n\nconsole.log(testCaseJobResponses);\n```",
|
|
2245
2245
|
perLanguage: {
|
|
2246
2246
|
http: {
|
|
2247
|
-
example: 'curl https://api.retellai.com/list-test-runs/$TEST_CASE_BATCH_JOB_ID \\\n -H "Authorization: Bearer $
|
|
2247
|
+
example: 'curl https://api.retellai.com/list-test-runs/$TEST_CASE_BATCH_JOB_ID \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
2248
2248
|
},
|
|
2249
2249
|
python: {
|
|
2250
2250
|
method: 'tests.list_test_runs',
|
|
2251
|
-
example: '
|
|
2251
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\ntest_case_job_responses = client.tests.list_test_runs(\n "test_case_batch_job_id",\n)\nprint(test_case_job_responses)',
|
|
2252
2252
|
},
|
|
2253
2253
|
typescript: {
|
|
2254
2254
|
method: 'client.tests.listTestRuns',
|
|
2255
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
2255
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst testCaseJobResponses = await client.tests.listTestRuns('test_case_batch_job_id');\n\nconsole.log(testCaseJobResponses);",
|
|
2256
2256
|
},
|
|
2257
2257
|
},
|
|
2258
2258
|
},
|
|
@@ -2269,15 +2269,15 @@ const EMBEDDED_METHODS = [
|
|
|
2269
2269
|
markdown: "## get-mcp-tools\n\n`client.mcpTool.getMcpTools(agent_id: string, mcp_id: string, component_id?: string, version?: number): object[]`\n\n**get** `/get-mcp-tools/{agent_id}`\n\nGet MCP tools for a specific agent\n\n### Parameters\n\n- `agent_id: string`\n\n- `mcp_id: string`\n The ID of the MCP server to get tools from.\n\n- `component_id?: string`\n The ID of the component if the MCP server is configured under a component.\n\n- `version?: number`\n Optional version of the agent to use for this request. Default to latest version.\n\n### Returns\n\n- `{ description: string; inputSchema: object; name: string; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst mcpToolDefinitions = await client.mcpTool.getMcpTools('oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD', { mcp_id: 'mcp-server-1' });\n\nconsole.log(mcpToolDefinitions);\n```",
|
|
2270
2270
|
perLanguage: {
|
|
2271
2271
|
http: {
|
|
2272
|
-
example: 'curl https://api.retellai.com/get-mcp-tools/$AGENT_ID \\\n -H "Authorization: Bearer $
|
|
2272
|
+
example: 'curl https://api.retellai.com/get-mcp-tools/$AGENT_ID \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
|
|
2273
2273
|
},
|
|
2274
2274
|
python: {
|
|
2275
2275
|
method: 'mcp_tool.get_mcp_tools',
|
|
2276
|
-
example: '
|
|
2276
|
+
example: 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nmcp_tool_definitions = client.mcp_tool.get_mcp_tools(\n agent_id="oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",\n mcp_id="mcp-server-1",\n)\nprint(mcp_tool_definitions)',
|
|
2277
2277
|
},
|
|
2278
2278
|
typescript: {
|
|
2279
2279
|
method: 'client.mcpTool.getMcpTools',
|
|
2280
|
-
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: '
|
|
2280
|
+
example: "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst mcpToolDefinitions = await client.mcpTool.getMcpTools('oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD', {\n mcp_id: 'mcp-server-1',\n});\n\nconsole.log(mcpToolDefinitions);",
|
|
2281
2281
|
},
|
|
2282
2282
|
},
|
|
2283
2283
|
},
|
|
@@ -2285,11 +2285,11 @@ const EMBEDDED_METHODS = [
|
|
|
2285
2285
|
const EMBEDDED_READMES = [
|
|
2286
2286
|
{
|
|
2287
2287
|
language: 'python',
|
|
2288
|
-
content: '# Retell Python API library\n\n<!-- prettier-ignore -->\n[)](https://pypi.org/project/retell-sdk/)\n\nThe Retell Python library provides convenient access to the Retell REST API from any Python 3.9+\napplication. The library includes type definitions for all request params and response fields,\nand offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).\n\n\n\n\n\n## MCP Server\n\nUse the Retell MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=%40retell-ai%2Fmcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkByZXRlbGwtYWkvbWNwLXNlcnZlciJdLCJlbnYiOnsiUkVURUxMX0FQSV9LRVkiOiJZT1VSX1JFVEVMTF9BUElfS0VZIn19)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22%40retell-ai%2Fmcp-server%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40retell-ai%2Fmcp-server%22%5D%2C%22env%22%3A%7B%22RETELL_API_KEY%22%3A%22YOUR_RETELL_API_KEY%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n## Documentation\n\nThe REST API documentation can be found on [docs.retellai.com](https://docs.retellai.com/). The full API of this library can be found in [api.md](api.md).\n\n## Installation\n\n```sh\n# install from PyPI\npip install retell-sdk\n```\n\n## Usage\n\nThe full API of this library can be found in [api.md](api.md).\n\n```python\nfrom retell import Retell\n\nclient = Retell(\n api_key="YOUR_RETELL_API_KEY",\n)\n\nagent_response = client.agent.create(\n response_engine={\n "llm_id": "llm_234sdertfsdsfsdf",\n "type": "retell-llm",\n },\n voice_id="retell-Cimo",\n)\nprint(agent_response.agent_id)\n```\n\n\n\n## Async usage\n\nSimply import `AsyncRetell` instead of `Retell` and use `await` with each API call:\n\n```python\nimport asyncio\nfrom retell import AsyncRetell\n\nclient = AsyncRetell(\n api_key="YOUR_RETELL_API_KEY",\n)\n\nasync def main() -> None:\n agent_response = await client.agent.create(\n response_engine={\n "llm_id": "llm_234sdertfsdsfsdf",\n "type": "retell-llm",\n },\n voice_id="retell-Cimo",\n )\n print(agent_response.agent_id)\n\nasyncio.run(main())\n```\n\nFunctionality between the synchronous and asynchronous clients is otherwise identical.\n\n### With aiohttp\n\nBy default, the async client uses `httpx` for HTTP requests. However, for improved concurrency performance you may also use `aiohttp` as the HTTP backend.\n\nYou can enable this by installing `aiohttp`:\n\n```sh\n# install from PyPI\npip install retell-sdk[aiohttp]\n```\n\nThen you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:\n\n```python\nimport asyncio\nfrom retell import DefaultAioHttpClient\nfrom retell import AsyncRetell\n\nasync def main() -> None:\n async with AsyncRetell(\n api_key="YOUR_RETELL_API_KEY",\n http_client=DefaultAioHttpClient(),\n) as client:\n agent_response = await client.agent.create(\n response_engine={\n "llm_id": "llm_234sdertfsdsfsdf",\n "type": "retell-llm",\n },\n voice_id="retell-Cimo",\n )\n print(agent_response.agent_id)\n\nasyncio.run(main())\n```\n\n\n\n## Using types\n\nNested request parameters are [TypedDicts](https://docs.python.org/3/library/typing.html#typing.TypedDict). Responses are [Pydantic models](https://docs.pydantic.dev) which also provide helper methods for things like:\n\n- Serializing back into JSON, `model.to_json()`\n- Converting to a dictionary, `model.to_dict()`\n\nTyped requests and responses provide autocomplete and documentation within your editor. If you would like to see type errors in VS Code to help catch bugs earlier, set `python.analysis.typeCheckingMode` to `basic`.\n\n\n\n## Nested params\n\nNested parameters are dictionaries, typed using `TypedDict`, for example:\n\n```python\nfrom retell import Retell\n\nclient = Retell()\n\nagent_response = client.agent.create(\n response_engine={\n "llm_id": "llm_234sdertfsdsfsdf",\n "type": "retell-llm",\n },\n voice_id="retell-Cimo",\n custom_stt_config={\n "endpointing_ms": 0,\n "provider": "azure",\n },\n)\nprint(agent_response.custom_stt_config)\n```\n\n\n\n## Handling errors\n\nWhen the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `retell.APIConnectionError` is raised.\n\nWhen the API returns a non-success status code (that is, 4xx or 5xx\nresponse), a subclass of `retell.APIStatusError` is raised, containing `status_code` and `response` properties.\n\nAll errors inherit from `retell.APIError`.\n\n```python\nimport retell\nfrom retell import Retell\n\nclient = Retell()\n\ntry:\n client.agent.create(\n response_engine={\n "llm_id": "llm_234sdertfsdsfsdf",\n "type": "retell-llm",\n },\n voice_id="retell-Cimo",\n )\nexcept retell.APIConnectionError as e:\n print("The server could not be reached")\n print(e.__cause__) # an underlying Exception, likely raised within httpx.\nexcept retell.RateLimitError as e:\n print("A 429 status code was received; we should back off a bit.")\nexcept retell.APIStatusError as e:\n print("Another non-200-range status code was received")\n print(e.status_code)\n print(e.response)\n```\n\nError codes are as follows:\n\n| Status Code | Error Type |\n| ----------- | -------------------------- |\n| 400 | `BadRequestError` |\n| 401 | `AuthenticationError` |\n| 403 | `PermissionDeniedError` |\n| 404 | `NotFoundError` |\n| 422 | `UnprocessableEntityError` |\n| 429 | `RateLimitError` |\n| >=500 | `InternalServerError` |\n| N/A | `APIConnectionError` |\n\n### Retries\n\nCertain errors are automatically retried 2 times by default, with a short exponential backoff.\nConnection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict,\n429 Rate Limit, and >=500 Internal errors are all retried by default.\n\nYou can use the `max_retries` option to configure or disable retry settings:\n\n```python\nfrom retell import Retell\n\n# Configure the default for all requests:\nclient = Retell(\n # default is 2\n max_retries=0,\n)\n\n# Or, configure per-request:\nclient.with_options(max_retries = 5).agent.create(\n response_engine={\n "llm_id": "llm_234sdertfsdsfsdf",\n "type": "retell-llm",\n },\n voice_id="retell-Cimo",\n)\n```\n\n### Timeouts\n\nBy default requests time out after 1 minute. You can configure this with a `timeout` option,\nwhich accepts a float or an [`httpx.Timeout`](https://www.python-httpx.org/advanced/timeouts/#fine-tuning-the-configuration) object:\n\n```python\nfrom retell import Retell\n\n# Configure the default for all requests:\nclient = Retell(\n # 20 seconds (default is 1 minute)\n timeout=20.0,\n)\n\n# More granular control:\nclient = Retell(\n timeout=httpx.Timeout(60.0, read=5.0, write=10.0, connect=2.0),\n)\n\n# Override per-request:\nclient.with_options(timeout = 5.0).agent.create(\n response_engine={\n "llm_id": "llm_234sdertfsdsfsdf",\n "type": "retell-llm",\n },\n voice_id="retell-Cimo",\n)\n```\n\nOn timeout, an `APITimeoutError` is thrown.\n\nNote that requests that time out are [retried twice by default](#retries).\n\n\n\n## Advanced\n\n### Logging\n\nWe use the standard library [`logging`](https://docs.python.org/3/library/logging.html) module.\n\nYou can enable logging by setting the environment variable `RETELL_LOG` to `info`.\n\n```shell\n$ export RETELL_LOG=info\n```\n\nOr to `debug` for more verbose logging.\n\n### How to tell whether `None` means `null` or missing\n\nIn an API response, a field may be explicitly `null`, or missing entirely; in either case, its value is `None` in this library. You can differentiate the two cases with `.model_fields_set`:\n\n```py\nif response.my_field is None:\n if \'my_field\' not in response.model_fields_set:\n print(\'Got json like {}, without a "my_field" key present at all.\')\n else:\n print(\'Got json like {"my_field": null}.\')\n```\n\n### Accessing raw response data (e.g. headers)\n\nThe "raw" Response object can be accessed by prefixing `.with_raw_response.` to any HTTP method call, e.g.,\n\n```py\nfrom retell import Retell\n\nclient = Retell()\nresponse = client.agent.with_raw_response.create(\n response_engine={\n "llm_id": "llm_234sdertfsdsfsdf",\n "type": "retell-llm",\n },\n voice_id="retell-Cimo",\n)\nprint(response.headers.get(\'X-My-Header\'))\n\nagent = response.parse() # get the object that `agent.create()` would have returned\nprint(agent.agent_id)\n```\n\nThese methods return an [`APIResponse`](https://github.com/RetellAI/retell-python-sdk/tree/main/src/retell/_response.py) object.\n\nThe async client returns an [`AsyncAPIResponse`](https://github.com/RetellAI/retell-python-sdk/tree/main/src/retell/_response.py) with the same structure, the only difference being `await`able methods for reading the response content.\n\n#### `.with_streaming_response`\n\nThe above interface eagerly reads the full response body when you make the request, which may not always be what you want.\n\nTo stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.\n\n```python\nwith client.agent.with_streaming_response.create(\n response_engine={\n "llm_id": "llm_234sdertfsdsfsdf",\n "type": "retell-llm",\n },\n voice_id="retell-Cimo",\n) as response :\n print(response.headers.get(\'X-My-Header\'))\n\n for line in response.iter_lines():\n print(line)\n```\n\nThe context manager is required so that the response will reliably be closed.\n\n### Making custom/undocumented requests\n\nThis library is typed for convenient access to the documented API.\n\nIf you need to access undocumented endpoints, params, or response properties, the library can still be used.\n\n#### Undocumented endpoints\n\nTo make requests to undocumented endpoints, you can make requests using `client.get`, `client.post`, and other\nhttp verbs. Options on the client will be respected (such as retries) when making this request.\n\n```py\nimport httpx\n\nresponse = client.post(\n "/foo",\n cast_to=httpx.Response,\n body={"my_param": True},\n)\n\nprint(response.headers.get("x-foo"))\n```\n\n#### Undocumented request params\n\nIf you want to explicitly send an extra param, you can do so with the `extra_query`, `extra_body`, and `extra_headers` request\noptions.\n\n#### Undocumented response properties\n\nTo access undocumented response properties, you can access the extra fields like `response.unknown_prop`. You\ncan also get all the extra fields on the Pydantic model as a dict with\n[`response.model_extra`](https://docs.pydantic.dev/latest/api/base_model/#pydantic.BaseModel.model_extra).\n\n### Configuring the HTTP client\n\nYou can directly override the [httpx client](https://www.python-httpx.org/api/#client) to customize it for your use case, including:\n\n- Support for [proxies](https://www.python-httpx.org/advanced/proxies/)\n- Custom [transports](https://www.python-httpx.org/advanced/transports/)\n- Additional [advanced](https://www.python-httpx.org/advanced/clients/) functionality\n\n```python\nimport httpx\nfrom retell import Retell, DefaultHttpxClient\n\nclient = Retell(\n # Or use the `RETELL_BASE_URL` env var\n base_url="http://my.test.server.example.com:8083",\n http_client=DefaultHttpxClient(proxy="http://my.test.proxy.example.com", transport=httpx.HTTPTransport(local_address="0.0.0.0")),\n)\n```\n\nYou can also customize the client on a per-request basis by using `with_options()`:\n\n```python\nclient.with_options(http_client=DefaultHttpxClient(...))\n```\n\n### Managing HTTP resources\n\nBy default the library closes underlying HTTP connections whenever the client is [garbage collected](https://docs.python.org/3/reference/datamodel.html#object.__del__). You can manually close the client using the `.close()` method if desired, or with a context manager that closes when exiting.\n\n```py\nfrom retell import Retell\n\nwith Retell() as client:\n # make requests here\n ...\n\n# HTTP client is now closed\n```\n\n## Versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes that only affect static types, without breaking runtime behavior.\n2. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n3. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/RetellAI/retell-python-sdk/issues) with questions, bugs, or suggestions.\n\n### Determining the installed version\n\nIf you\'ve upgraded to the latest version but aren\'t seeing any new features you were expecting then your python environment is likely still using an older version.\n\nYou can determine the version that is being used at runtime with:\n\n```py\nimport retell\nprint(retell.__version__)\n```\n\n## Requirements\n\nPython 3.9 or higher.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n',
|
|
2288
|
+
content: '# Retell Python API library\n\n<!-- prettier-ignore -->\n[)](https://pypi.org/project/retell-sdk/)\n\nThe Retell Python library provides convenient access to the Retell REST API from any Python 3.9+\napplication. The library includes type definitions for all request params and response fields,\nand offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).\n\n\n\n\n\n## MCP Server\n\nUse the Retell MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=%40retell-ai%2Fmcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkByZXRlbGwtYWkvbWNwLXNlcnZlciJdLCJlbnYiOnsiUkVURUxMX0FQSV9LRVkiOiJZT1VSX1JFVEVMTF9BUElfS0VZIn19)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22%40retell-ai%2Fmcp-server%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40retell-ai%2Fmcp-server%22%5D%2C%22env%22%3A%7B%22RETELL_API_KEY%22%3A%22YOUR_RETELL_API_KEY%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n## Documentation\n\nThe REST API documentation can be found on [docs.retellai.com](https://docs.retellai.com/). The full API of this library can be found in [api.md](api.md).\n\n## Installation\n\n```sh\n# install from PyPI\npip install retell-sdk\n```\n\n## Usage\n\nThe full API of this library can be found in [api.md](api.md).\n\n```python\nimport os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\n\nagent_response = client.agent.create(\n response_engine={\n "llm_id": "llm_234sdertfsdsfsdf",\n "type": "retell-llm",\n },\n voice_id="retell-Cimo",\n)\nprint(agent_response.agent_id)\n```\n\nWhile you can provide an `api_key` keyword argument,\nwe recommend using [python-dotenv](https://pypi.org/project/python-dotenv/)\nto add `RETELL_API_KEY="YOUR_RETELL_API_KEY"` to your `.env` file\nso that your API Key is not stored in source control.\n\n## Async usage\n\nSimply import `AsyncRetell` instead of `Retell` and use `await` with each API call:\n\n```python\nimport os\nimport asyncio\nfrom retell import AsyncRetell\n\nclient = AsyncRetell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\n\nasync def main() -> None:\n agent_response = await client.agent.create(\n response_engine={\n "llm_id": "llm_234sdertfsdsfsdf",\n "type": "retell-llm",\n },\n voice_id="retell-Cimo",\n )\n print(agent_response.agent_id)\n\nasyncio.run(main())\n```\n\nFunctionality between the synchronous and asynchronous clients is otherwise identical.\n\n### With aiohttp\n\nBy default, the async client uses `httpx` for HTTP requests. However, for improved concurrency performance you may also use `aiohttp` as the HTTP backend.\n\nYou can enable this by installing `aiohttp`:\n\n```sh\n# install from PyPI\npip install retell-sdk[aiohttp]\n```\n\nThen you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:\n\n```python\nimport os\nimport asyncio\nfrom retell import DefaultAioHttpClient\nfrom retell import AsyncRetell\n\nasync def main() -> None:\n async with AsyncRetell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n http_client=DefaultAioHttpClient(),\n) as client:\n agent_response = await client.agent.create(\n response_engine={\n "llm_id": "llm_234sdertfsdsfsdf",\n "type": "retell-llm",\n },\n voice_id="retell-Cimo",\n )\n print(agent_response.agent_id)\n\nasyncio.run(main())\n```\n\n\n\n## Using types\n\nNested request parameters are [TypedDicts](https://docs.python.org/3/library/typing.html#typing.TypedDict). Responses are [Pydantic models](https://docs.pydantic.dev) which also provide helper methods for things like:\n\n- Serializing back into JSON, `model.to_json()`\n- Converting to a dictionary, `model.to_dict()`\n\nTyped requests and responses provide autocomplete and documentation within your editor. If you would like to see type errors in VS Code to help catch bugs earlier, set `python.analysis.typeCheckingMode` to `basic`.\n\n\n\n## Nested params\n\nNested parameters are dictionaries, typed using `TypedDict`, for example:\n\n```python\nfrom retell import Retell\n\nclient = Retell()\n\nagent_response = client.agent.create(\n response_engine={\n "llm_id": "llm_234sdertfsdsfsdf",\n "type": "retell-llm",\n },\n voice_id="retell-Cimo",\n custom_stt_config={\n "endpointing_ms": 0,\n "provider": "azure",\n },\n)\nprint(agent_response.custom_stt_config)\n```\n\n\n\n## Handling errors\n\nWhen the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `retell.APIConnectionError` is raised.\n\nWhen the API returns a non-success status code (that is, 4xx or 5xx\nresponse), a subclass of `retell.APIStatusError` is raised, containing `status_code` and `response` properties.\n\nAll errors inherit from `retell.APIError`.\n\n```python\nimport retell\nfrom retell import Retell\n\nclient = Retell()\n\ntry:\n client.agent.create(\n response_engine={\n "llm_id": "llm_234sdertfsdsfsdf",\n "type": "retell-llm",\n },\n voice_id="retell-Cimo",\n )\nexcept retell.APIConnectionError as e:\n print("The server could not be reached")\n print(e.__cause__) # an underlying Exception, likely raised within httpx.\nexcept retell.RateLimitError as e:\n print("A 429 status code was received; we should back off a bit.")\nexcept retell.APIStatusError as e:\n print("Another non-200-range status code was received")\n print(e.status_code)\n print(e.response)\n```\n\nError codes are as follows:\n\n| Status Code | Error Type |\n| ----------- | -------------------------- |\n| 400 | `BadRequestError` |\n| 401 | `AuthenticationError` |\n| 403 | `PermissionDeniedError` |\n| 404 | `NotFoundError` |\n| 422 | `UnprocessableEntityError` |\n| 429 | `RateLimitError` |\n| >=500 | `InternalServerError` |\n| N/A | `APIConnectionError` |\n\n### Retries\n\nCertain errors are automatically retried 2 times by default, with a short exponential backoff.\nConnection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict,\n429 Rate Limit, and >=500 Internal errors are all retried by default.\n\nYou can use the `max_retries` option to configure or disable retry settings:\n\n```python\nfrom retell import Retell\n\n# Configure the default for all requests:\nclient = Retell(\n # default is 2\n max_retries=0,\n)\n\n# Or, configure per-request:\nclient.with_options(max_retries = 5).agent.create(\n response_engine={\n "llm_id": "llm_234sdertfsdsfsdf",\n "type": "retell-llm",\n },\n voice_id="retell-Cimo",\n)\n```\n\n### Timeouts\n\nBy default requests time out after 1 minute. You can configure this with a `timeout` option,\nwhich accepts a float or an [`httpx.Timeout`](https://www.python-httpx.org/advanced/timeouts/#fine-tuning-the-configuration) object:\n\n```python\nfrom retell import Retell\n\n# Configure the default for all requests:\nclient = Retell(\n # 20 seconds (default is 1 minute)\n timeout=20.0,\n)\n\n# More granular control:\nclient = Retell(\n timeout=httpx.Timeout(60.0, read=5.0, write=10.0, connect=2.0),\n)\n\n# Override per-request:\nclient.with_options(timeout = 5.0).agent.create(\n response_engine={\n "llm_id": "llm_234sdertfsdsfsdf",\n "type": "retell-llm",\n },\n voice_id="retell-Cimo",\n)\n```\n\nOn timeout, an `APITimeoutError` is thrown.\n\nNote that requests that time out are [retried twice by default](#retries).\n\n\n\n## Advanced\n\n### Logging\n\nWe use the standard library [`logging`](https://docs.python.org/3/library/logging.html) module.\n\nYou can enable logging by setting the environment variable `RETELL_LOG` to `info`.\n\n```shell\n$ export RETELL_LOG=info\n```\n\nOr to `debug` for more verbose logging.\n\n### How to tell whether `None` means `null` or missing\n\nIn an API response, a field may be explicitly `null`, or missing entirely; in either case, its value is `None` in this library. You can differentiate the two cases with `.model_fields_set`:\n\n```py\nif response.my_field is None:\n if \'my_field\' not in response.model_fields_set:\n print(\'Got json like {}, without a "my_field" key present at all.\')\n else:\n print(\'Got json like {"my_field": null}.\')\n```\n\n### Accessing raw response data (e.g. headers)\n\nThe "raw" Response object can be accessed by prefixing `.with_raw_response.` to any HTTP method call, e.g.,\n\n```py\nfrom retell import Retell\n\nclient = Retell()\nresponse = client.agent.with_raw_response.create(\n response_engine={\n "llm_id": "llm_234sdertfsdsfsdf",\n "type": "retell-llm",\n },\n voice_id="retell-Cimo",\n)\nprint(response.headers.get(\'X-My-Header\'))\n\nagent = response.parse() # get the object that `agent.create()` would have returned\nprint(agent.agent_id)\n```\n\nThese methods return an [`APIResponse`](https://github.com/RetellAI/retell-python-sdk/tree/main/src/retell/_response.py) object.\n\nThe async client returns an [`AsyncAPIResponse`](https://github.com/RetellAI/retell-python-sdk/tree/main/src/retell/_response.py) with the same structure, the only difference being `await`able methods for reading the response content.\n\n#### `.with_streaming_response`\n\nThe above interface eagerly reads the full response body when you make the request, which may not always be what you want.\n\nTo stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.\n\n```python\nwith client.agent.with_streaming_response.create(\n response_engine={\n "llm_id": "llm_234sdertfsdsfsdf",\n "type": "retell-llm",\n },\n voice_id="retell-Cimo",\n) as response :\n print(response.headers.get(\'X-My-Header\'))\n\n for line in response.iter_lines():\n print(line)\n```\n\nThe context manager is required so that the response will reliably be closed.\n\n### Making custom/undocumented requests\n\nThis library is typed for convenient access to the documented API.\n\nIf you need to access undocumented endpoints, params, or response properties, the library can still be used.\n\n#### Undocumented endpoints\n\nTo make requests to undocumented endpoints, you can make requests using `client.get`, `client.post`, and other\nhttp verbs. Options on the client will be respected (such as retries) when making this request.\n\n```py\nimport httpx\n\nresponse = client.post(\n "/foo",\n cast_to=httpx.Response,\n body={"my_param": True},\n)\n\nprint(response.headers.get("x-foo"))\n```\n\n#### Undocumented request params\n\nIf you want to explicitly send an extra param, you can do so with the `extra_query`, `extra_body`, and `extra_headers` request\noptions.\n\n#### Undocumented response properties\n\nTo access undocumented response properties, you can access the extra fields like `response.unknown_prop`. You\ncan also get all the extra fields on the Pydantic model as a dict with\n[`response.model_extra`](https://docs.pydantic.dev/latest/api/base_model/#pydantic.BaseModel.model_extra).\n\n### Configuring the HTTP client\n\nYou can directly override the [httpx client](https://www.python-httpx.org/api/#client) to customize it for your use case, including:\n\n- Support for [proxies](https://www.python-httpx.org/advanced/proxies/)\n- Custom [transports](https://www.python-httpx.org/advanced/transports/)\n- Additional [advanced](https://www.python-httpx.org/advanced/clients/) functionality\n\n```python\nimport httpx\nfrom retell import Retell, DefaultHttpxClient\n\nclient = Retell(\n # Or use the `RETELL_BASE_URL` env var\n base_url="http://my.test.server.example.com:8083",\n http_client=DefaultHttpxClient(proxy="http://my.test.proxy.example.com", transport=httpx.HTTPTransport(local_address="0.0.0.0")),\n)\n```\n\nYou can also customize the client on a per-request basis by using `with_options()`:\n\n```python\nclient.with_options(http_client=DefaultHttpxClient(...))\n```\n\n### Managing HTTP resources\n\nBy default the library closes underlying HTTP connections whenever the client is [garbage collected](https://docs.python.org/3/reference/datamodel.html#object.__del__). You can manually close the client using the `.close()` method if desired, or with a context manager that closes when exiting.\n\n```py\nfrom retell import Retell\n\nwith Retell() as client:\n # make requests here\n ...\n\n# HTTP client is now closed\n```\n\n## Versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes that only affect static types, without breaking runtime behavior.\n2. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n3. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/RetellAI/retell-python-sdk/issues) with questions, bugs, or suggestions.\n\n### Determining the installed version\n\nIf you\'ve upgraded to the latest version but aren\'t seeing any new features you were expecting then your python environment is likely still using an older version.\n\nYou can determine the version that is being used at runtime with:\n\n```py\nimport retell\nprint(retell.__version__)\n```\n\n## Requirements\n\nPython 3.9 or higher.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n',
|
|
2289
2289
|
},
|
|
2290
2290
|
{
|
|
2291
2291
|
language: 'typescript',
|
|
2292
|
-
content: "# Retell TypeScript API Library\n\n[)](https://npmjs.org/package/retell-sdk) \n\nThis library provides convenient access to the Retell REST API from server-side TypeScript or JavaScript.\n\n\n\nThe REST API documentation can be found on [docs.retellai.com](https://docs.retellai.com/). The full API of this library can be found in [api.md](api.md).\n\n\n\n## MCP Server\n\nUse the Retell MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=%40retell-ai%2Fmcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkByZXRlbGwtYWkvbWNwLXNlcnZlciJdLCJlbnYiOnsiUkVURUxMX0FQSV9LRVkiOiJZT1VSX1JFVEVMTF9BUElfS0VZIn19)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22%40retell-ai%2Fmcp-server%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40retell-ai%2Fmcp-server%22%5D%2C%22env%22%3A%7B%22RETELL_API_KEY%22%3A%22YOUR_RETELL_API_KEY%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n## Installation\n\n```sh\nnpm install retell-sdk\n```\n\n\n\n## Usage\n\nThe full API of this library can be found in [api.md](api.md).\n\n<!-- prettier-ignore -->\n```js\nimport Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: 'YOUR_RETELL_API_KEY',\n});\n\nconst agentResponse = await client.agent.create({\n response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },\n voice_id: 'retell-Cimo',\n});\n\nconsole.log(agentResponse.agent_id);\n```\n\n\n\n### Request & Response types\n\nThis library includes TypeScript definitions for all request params and response fields. You may import and use them like so:\n\n<!-- prettier-ignore -->\n```ts\nimport Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: 'YOUR_RETELL_API_KEY',\n});\n\nconst params: Retell.AgentCreateParams = {\n response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },\n voice_id: 'retell-Cimo',\n};\nconst agentResponse: Retell.AgentResponse = await client.agent.create(params);\n```\n\nDocumentation for each method, request param, and response field are available in docstrings and will appear on hover in most modern editors.\n\n\n\n\n\n## Handling errors\n\nWhen the library is unable to connect to the API,\nor if the API returns a non-success status code (i.e., 4xx or 5xx response),\na subclass of `APIError` will be thrown:\n\n<!-- prettier-ignore -->\n```ts\nconst agentResponse = await client.agent\n .create({\n response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },\n voice_id: 'retell-Cimo',\n })\n .catch(async (err) => {\n if (err instanceof Retell.APIError) {\n console.log(err.status); // 400\n console.log(err.name); // BadRequestError\n console.log(err.headers); // {server: 'nginx', ...}\n } else {\n throw err;\n }\n });\n```\n\nError codes are as follows:\n\n| Status Code | Error Type |\n| ----------- | -------------------------- |\n| 400 | `BadRequestError` |\n| 401 | `AuthenticationError` |\n| 403 | `PermissionDeniedError` |\n| 404 | `NotFoundError` |\n| 422 | `UnprocessableEntityError` |\n| 429 | `RateLimitError` |\n| >=500 | `InternalServerError` |\n| N/A | `APIConnectionError` |\n\n### Retries\n\nCertain errors will be automatically retried 2 times by default, with a short exponential backoff.\nConnection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict,\n429 Rate Limit, and >=500 Internal errors will all be retried by default.\n\nYou can use the `maxRetries` option to configure or disable this:\n\n<!-- prettier-ignore -->\n```js\n// Configure the default for all requests:\nconst client = new Retell({\n maxRetries: 0, // default is 2\n});\n\n// Or, configure per-request:\nawait client.agent.create({\n response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },\n voice_id: 'retell-Cimo',\n}, {\n maxRetries: 5,\n});\n```\n\n### Timeouts\n\nRequests time out after 1 minute by default. You can configure this with a `timeout` option:\n\n<!-- prettier-ignore -->\n```ts\n// Configure the default for all requests:\nconst client = new Retell({\n timeout: 20 * 1000, // 20 seconds (default is 1 minute)\n});\n\n// Override per-request:\nawait client.agent.create({\n response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },\n voice_id: 'retell-Cimo',\n}, {\n timeout: 5 * 1000,\n});\n```\n\nOn timeout, an `APIConnectionTimeoutError` is thrown.\n\nNote that requests which time out will be [retried twice by default](#retries).\n\n\n\n\n\n## Advanced Usage\n\n### Accessing raw Response data (e.g., headers)\n\nThe \"raw\" `Response` returned by `fetch()` can be accessed through the `.asResponse()` method on the `APIPromise` type that all methods return.\nThis method returns as soon as the headers for a successful response are received and does not consume the response body, so you are free to write custom parsing or streaming logic.\n\nYou can also use the `.withResponse()` method to get the raw `Response` along with the parsed data.\nUnlike `.asResponse()` this method consumes the body, returning once it is parsed.\n\n<!-- prettier-ignore -->\n```ts\nconst client = new Retell();\n\nconst response = await client.agent\n .create({\n response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },\n voice_id: 'retell-Cimo',\n })\n .asResponse();\nconsole.log(response.headers.get('X-My-Header'));\nconsole.log(response.statusText); // access the underlying Response object\n\nconst { data: agentResponse, response: raw } = await client.agent\n .create({\n response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },\n voice_id: 'retell-Cimo',\n })\n .withResponse();\nconsole.log(raw.headers.get('X-My-Header'));\nconsole.log(agentResponse.agent_id);\n```\n\n### Logging\n\n> [!IMPORTANT]\n> All log messages are intended for debugging only. The format and content of log messages\n> may change between releases.\n\n#### Log levels\n\nThe log level can be configured in two ways:\n\n1. Via the `RETELL_LOG` environment variable\n2. Using the `logLevel` client option (overrides the environment variable if set)\n\n```ts\nimport Retell from 'retell-sdk';\n\nconst client = new Retell({\n logLevel: 'debug', // Show all log messages\n});\n```\n\nAvailable log levels, from most to least verbose:\n\n- `'debug'` - Show debug messages, info, warnings, and errors\n- `'info'` - Show info messages, warnings, and errors\n- `'warn'` - Show warnings and errors (default)\n- `'error'` - Show only errors\n- `'off'` - Disable all logging\n\nAt the `'debug'` level, all HTTP requests and responses are logged, including headers and bodies.\nSome authentication-related headers are redacted, but sensitive data in request and response bodies\nmay still be visible.\n\n#### Custom logger\n\nBy default, this library logs to `globalThis.console`. You can also provide a custom logger.\nMost logging libraries are supported, including [pino](https://www.npmjs.com/package/pino), [winston](https://www.npmjs.com/package/winston), [bunyan](https://www.npmjs.com/package/bunyan), [consola](https://www.npmjs.com/package/consola), [signale](https://www.npmjs.com/package/signale), and [@std/log](https://jsr.io/@std/log). If your logger doesn't work, please open an issue.\n\nWhen providing a custom logger, the `logLevel` option still controls which messages are emitted, messages\nbelow the configured level will not be sent to your logger.\n\n```ts\nimport Retell from 'retell-sdk';\nimport pino from 'pino';\n\nconst logger = pino();\n\nconst client = new Retell({\n logger: logger.child({ name: 'Retell' }),\n logLevel: 'debug', // Send all messages to pino, allowing it to filter\n});\n```\n\n### Making custom/undocumented requests\n\nThis library is typed for convenient access to the documented API. If you need to access undocumented\nendpoints, params, or response properties, the library can still be used.\n\n#### Undocumented endpoints\n\nTo make requests to undocumented endpoints, you can use `client.get`, `client.post`, and other HTTP verbs.\nOptions on the client, such as retries, will be respected when making these requests.\n\n```ts\nawait client.post('/some/path', {\n body: { some_prop: 'foo' },\n query: { some_query_arg: 'bar' },\n});\n```\n\n#### Undocumented request params\n\nTo make requests using undocumented parameters, you may use `// @ts-expect-error` on the undocumented\nparameter. This library doesn't validate at runtime that the request matches the type, so any extra values you\nsend will be sent as-is.\n\n```ts\nclient.agent.create({\n // ...\n // @ts-expect-error baz is not yet public\n baz: 'undocumented option',\n});\n```\n\nFor requests with the `GET` verb, any extra params will be in the query, all other requests will send the\nextra param in the body.\n\nIf you want to explicitly send an extra argument, you can do so with the `query`, `body`, and `headers` request\noptions.\n\n#### Undocumented response properties\n\nTo access undocumented response properties, you may access the response object with `// @ts-expect-error` on\nthe response object, or cast the response object to the requisite type. Like the request params, we do not\nvalidate or strip extra properties from the response from the API.\n\n### Customizing the fetch client\n\nBy default, this library expects a global `fetch` function is defined.\n\nIf you want to use a different `fetch` function, you can either polyfill the global:\n\n```ts\nimport fetch from 'my-fetch';\n\nglobalThis.fetch = fetch;\n```\n\nOr pass it to the client:\n\n```ts\nimport Retell from 'retell-sdk';\nimport fetch from 'my-fetch';\n\nconst client = new Retell({ fetch });\n```\n\n### Fetch options\n\nIf you want to set custom `fetch` options without overriding the `fetch` function, you can provide a `fetchOptions` object when instantiating the client or making a request. (Request-specific options override client options.)\n\n```ts\nimport Retell from 'retell-sdk';\n\nconst client = new Retell({\n fetchOptions: {\n // `RequestInit` options\n },\n});\n```\n\n#### Configuring proxies\n\nTo modify proxy behavior, you can provide custom `fetchOptions` that add runtime-specific proxy\noptions to requests:\n\n<img src=\"https://raw.githubusercontent.com/stainless-api/sdk-assets/refs/heads/main/node.svg\" align=\"top\" width=\"18\" height=\"21\"> **Node** <sup>[[docs](https://github.com/nodejs/undici/blob/main/docs/docs/api/ProxyAgent.md#example---proxyagent-with-fetch)]</sup>\n\n```ts\nimport Retell from 'retell-sdk';\nimport * as undici from 'undici';\n\nconst proxyAgent = new undici.ProxyAgent('http://localhost:8888');\nconst client = new Retell({\n fetchOptions: {\n dispatcher: proxyAgent,\n },\n});\n```\n\n<img src=\"https://raw.githubusercontent.com/stainless-api/sdk-assets/refs/heads/main/bun.svg\" align=\"top\" width=\"18\" height=\"21\"> **Bun** <sup>[[docs](https://bun.sh/guides/http/proxy)]</sup>\n\n```ts\nimport Retell from 'retell-sdk';\n\nconst client = new Retell({\n fetchOptions: {\n proxy: 'http://localhost:8888',\n },\n});\n```\n\n<img src=\"https://raw.githubusercontent.com/stainless-api/sdk-assets/refs/heads/main/deno.svg\" align=\"top\" width=\"18\" height=\"21\"> **Deno** <sup>[[docs](https://docs.deno.com/api/deno/~/Deno.createHttpClient)]</sup>\n\n```ts\nimport Retell from 'npm:retell-sdk';\n\nconst httpClient = Deno.createHttpClient({ proxy: { url: 'http://localhost:8888' } });\nconst client = new Retell({\n fetchOptions: {\n client: httpClient,\n },\n});\n```\n\n## Frequently Asked Questions\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes that only affect static types, without breaking runtime behavior.\n2. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n3. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/RetellAI/retell-typescript-sdk/issues) with questions, bugs, or suggestions.\n\n## Requirements\n\nTypeScript >= 4.9 is supported.\n\nThe following runtimes are supported:\n\n- Web browsers (Up-to-date Chrome, Firefox, Safari, Edge, and more)\n- Node.js 20 LTS or later ([non-EOL](https://endoflife.date/nodejs)) versions.\n- Deno v1.28.0 or higher.\n- Bun 1.0 or later.\n- Cloudflare Workers.\n- Vercel Edge Runtime.\n- Jest 28 or greater with the `\"node\"` environment (`\"jsdom\"` is not supported at this time).\n- Nitro v2.6 or greater.\n\nNote that React Native is not supported at this time.\n\nIf you are interested in other runtime environments, please open or upvote an issue on GitHub.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n",
|
|
2292
|
+
content: "# Retell TypeScript API Library\n\n[)](https://npmjs.org/package/retell-sdk) \n\nThis library provides convenient access to the Retell REST API from server-side TypeScript or JavaScript.\n\n\n\nThe REST API documentation can be found on [docs.retellai.com](https://docs.retellai.com/). The full API of this library can be found in [api.md](api.md).\n\n\n\n## MCP Server\n\nUse the Retell MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[](https://cursor.com/en-US/install-mcp?name=%40retell-ai%2Fmcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkByZXRlbGwtYWkvbWNwLXNlcnZlciJdLCJlbnYiOnsiUkVURUxMX0FQSV9LRVkiOiJZT1VSX1JFVEVMTF9BUElfS0VZIn19)\n[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22%40retell-ai%2Fmcp-server%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40retell-ai%2Fmcp-server%22%5D%2C%22env%22%3A%7B%22RETELL_API_KEY%22%3A%22YOUR_RETELL_API_KEY%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n## Installation\n\n```sh\nnpm install retell-sdk\n```\n\n\n\n## Usage\n\nThe full API of this library can be found in [api.md](api.md).\n\n<!-- prettier-ignore -->\n```js\nimport Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst agentResponse = await client.agent.create({\n response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },\n voice_id: 'retell-Cimo',\n});\n\nconsole.log(agentResponse.agent_id);\n```\n\n\n\n### Request & Response types\n\nThis library includes TypeScript definitions for all request params and response fields. You may import and use them like so:\n\n<!-- prettier-ignore -->\n```ts\nimport Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst params: Retell.AgentCreateParams = {\n response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },\n voice_id: 'retell-Cimo',\n};\nconst agentResponse: Retell.AgentResponse = await client.agent.create(params);\n```\n\nDocumentation for each method, request param, and response field are available in docstrings and will appear on hover in most modern editors.\n\n\n\n\n\n## Handling errors\n\nWhen the library is unable to connect to the API,\nor if the API returns a non-success status code (i.e., 4xx or 5xx response),\na subclass of `APIError` will be thrown:\n\n<!-- prettier-ignore -->\n```ts\nconst agentResponse = await client.agent\n .create({\n response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },\n voice_id: 'retell-Cimo',\n })\n .catch(async (err) => {\n if (err instanceof Retell.APIError) {\n console.log(err.status); // 400\n console.log(err.name); // BadRequestError\n console.log(err.headers); // {server: 'nginx', ...}\n } else {\n throw err;\n }\n });\n```\n\nError codes are as follows:\n\n| Status Code | Error Type |\n| ----------- | -------------------------- |\n| 400 | `BadRequestError` |\n| 401 | `AuthenticationError` |\n| 403 | `PermissionDeniedError` |\n| 404 | `NotFoundError` |\n| 422 | `UnprocessableEntityError` |\n| 429 | `RateLimitError` |\n| >=500 | `InternalServerError` |\n| N/A | `APIConnectionError` |\n\n### Retries\n\nCertain errors will be automatically retried 2 times by default, with a short exponential backoff.\nConnection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict,\n429 Rate Limit, and >=500 Internal errors will all be retried by default.\n\nYou can use the `maxRetries` option to configure or disable this:\n\n<!-- prettier-ignore -->\n```js\n// Configure the default for all requests:\nconst client = new Retell({\n maxRetries: 0, // default is 2\n});\n\n// Or, configure per-request:\nawait client.agent.create({\n response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },\n voice_id: 'retell-Cimo',\n}, {\n maxRetries: 5,\n});\n```\n\n### Timeouts\n\nRequests time out after 1 minute by default. You can configure this with a `timeout` option:\n\n<!-- prettier-ignore -->\n```ts\n// Configure the default for all requests:\nconst client = new Retell({\n timeout: 20 * 1000, // 20 seconds (default is 1 minute)\n});\n\n// Override per-request:\nawait client.agent.create({\n response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },\n voice_id: 'retell-Cimo',\n}, {\n timeout: 5 * 1000,\n});\n```\n\nOn timeout, an `APIConnectionTimeoutError` is thrown.\n\nNote that requests which time out will be [retried twice by default](#retries).\n\n\n\n\n\n## Advanced Usage\n\n### Accessing raw Response data (e.g., headers)\n\nThe \"raw\" `Response` returned by `fetch()` can be accessed through the `.asResponse()` method on the `APIPromise` type that all methods return.\nThis method returns as soon as the headers for a successful response are received and does not consume the response body, so you are free to write custom parsing or streaming logic.\n\nYou can also use the `.withResponse()` method to get the raw `Response` along with the parsed data.\nUnlike `.asResponse()` this method consumes the body, returning once it is parsed.\n\n<!-- prettier-ignore -->\n```ts\nconst client = new Retell();\n\nconst response = await client.agent\n .create({\n response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },\n voice_id: 'retell-Cimo',\n })\n .asResponse();\nconsole.log(response.headers.get('X-My-Header'));\nconsole.log(response.statusText); // access the underlying Response object\n\nconst { data: agentResponse, response: raw } = await client.agent\n .create({\n response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },\n voice_id: 'retell-Cimo',\n })\n .withResponse();\nconsole.log(raw.headers.get('X-My-Header'));\nconsole.log(agentResponse.agent_id);\n```\n\n### Logging\n\n> [!IMPORTANT]\n> All log messages are intended for debugging only. The format and content of log messages\n> may change between releases.\n\n#### Log levels\n\nThe log level can be configured in two ways:\n\n1. Via the `RETELL_LOG` environment variable\n2. Using the `logLevel` client option (overrides the environment variable if set)\n\n```ts\nimport Retell from 'retell-sdk';\n\nconst client = new Retell({\n logLevel: 'debug', // Show all log messages\n});\n```\n\nAvailable log levels, from most to least verbose:\n\n- `'debug'` - Show debug messages, info, warnings, and errors\n- `'info'` - Show info messages, warnings, and errors\n- `'warn'` - Show warnings and errors (default)\n- `'error'` - Show only errors\n- `'off'` - Disable all logging\n\nAt the `'debug'` level, all HTTP requests and responses are logged, including headers and bodies.\nSome authentication-related headers are redacted, but sensitive data in request and response bodies\nmay still be visible.\n\n#### Custom logger\n\nBy default, this library logs to `globalThis.console`. You can also provide a custom logger.\nMost logging libraries are supported, including [pino](https://www.npmjs.com/package/pino), [winston](https://www.npmjs.com/package/winston), [bunyan](https://www.npmjs.com/package/bunyan), [consola](https://www.npmjs.com/package/consola), [signale](https://www.npmjs.com/package/signale), and [@std/log](https://jsr.io/@std/log). If your logger doesn't work, please open an issue.\n\nWhen providing a custom logger, the `logLevel` option still controls which messages are emitted, messages\nbelow the configured level will not be sent to your logger.\n\n```ts\nimport Retell from 'retell-sdk';\nimport pino from 'pino';\n\nconst logger = pino();\n\nconst client = new Retell({\n logger: logger.child({ name: 'Retell' }),\n logLevel: 'debug', // Send all messages to pino, allowing it to filter\n});\n```\n\n### Making custom/undocumented requests\n\nThis library is typed for convenient access to the documented API. If you need to access undocumented\nendpoints, params, or response properties, the library can still be used.\n\n#### Undocumented endpoints\n\nTo make requests to undocumented endpoints, you can use `client.get`, `client.post`, and other HTTP verbs.\nOptions on the client, such as retries, will be respected when making these requests.\n\n```ts\nawait client.post('/some/path', {\n body: { some_prop: 'foo' },\n query: { some_query_arg: 'bar' },\n});\n```\n\n#### Undocumented request params\n\nTo make requests using undocumented parameters, you may use `// @ts-expect-error` on the undocumented\nparameter. This library doesn't validate at runtime that the request matches the type, so any extra values you\nsend will be sent as-is.\n\n```ts\nclient.agent.create({\n // ...\n // @ts-expect-error baz is not yet public\n baz: 'undocumented option',\n});\n```\n\nFor requests with the `GET` verb, any extra params will be in the query, all other requests will send the\nextra param in the body.\n\nIf you want to explicitly send an extra argument, you can do so with the `query`, `body`, and `headers` request\noptions.\n\n#### Undocumented response properties\n\nTo access undocumented response properties, you may access the response object with `// @ts-expect-error` on\nthe response object, or cast the response object to the requisite type. Like the request params, we do not\nvalidate or strip extra properties from the response from the API.\n\n### Customizing the fetch client\n\nBy default, this library expects a global `fetch` function is defined.\n\nIf you want to use a different `fetch` function, you can either polyfill the global:\n\n```ts\nimport fetch from 'my-fetch';\n\nglobalThis.fetch = fetch;\n```\n\nOr pass it to the client:\n\n```ts\nimport Retell from 'retell-sdk';\nimport fetch from 'my-fetch';\n\nconst client = new Retell({ fetch });\n```\n\n### Fetch options\n\nIf you want to set custom `fetch` options without overriding the `fetch` function, you can provide a `fetchOptions` object when instantiating the client or making a request. (Request-specific options override client options.)\n\n```ts\nimport Retell from 'retell-sdk';\n\nconst client = new Retell({\n fetchOptions: {\n // `RequestInit` options\n },\n});\n```\n\n#### Configuring proxies\n\nTo modify proxy behavior, you can provide custom `fetchOptions` that add runtime-specific proxy\noptions to requests:\n\n<img src=\"https://raw.githubusercontent.com/stainless-api/sdk-assets/refs/heads/main/node.svg\" align=\"top\" width=\"18\" height=\"21\"> **Node** <sup>[[docs](https://github.com/nodejs/undici/blob/main/docs/docs/api/ProxyAgent.md#example---proxyagent-with-fetch)]</sup>\n\n```ts\nimport Retell from 'retell-sdk';\nimport * as undici from 'undici';\n\nconst proxyAgent = new undici.ProxyAgent('http://localhost:8888');\nconst client = new Retell({\n fetchOptions: {\n dispatcher: proxyAgent,\n },\n});\n```\n\n<img src=\"https://raw.githubusercontent.com/stainless-api/sdk-assets/refs/heads/main/bun.svg\" align=\"top\" width=\"18\" height=\"21\"> **Bun** <sup>[[docs](https://bun.sh/guides/http/proxy)]</sup>\n\n```ts\nimport Retell from 'retell-sdk';\n\nconst client = new Retell({\n fetchOptions: {\n proxy: 'http://localhost:8888',\n },\n});\n```\n\n<img src=\"https://raw.githubusercontent.com/stainless-api/sdk-assets/refs/heads/main/deno.svg\" align=\"top\" width=\"18\" height=\"21\"> **Deno** <sup>[[docs](https://docs.deno.com/api/deno/~/Deno.createHttpClient)]</sup>\n\n```ts\nimport Retell from 'npm:retell-sdk';\n\nconst httpClient = Deno.createHttpClient({ proxy: { url: 'http://localhost:8888' } });\nconst client = new Retell({\n fetchOptions: {\n client: httpClient,\n },\n});\n```\n\n## Frequently Asked Questions\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes that only affect static types, without breaking runtime behavior.\n2. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n3. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/RetellAI/retell-typescript-sdk/issues) with questions, bugs, or suggestions.\n\n## Requirements\n\nTypeScript >= 4.9 is supported.\n\nThe following runtimes are supported:\n\n- Web browsers (Up-to-date Chrome, Firefox, Safari, Edge, and more)\n- Node.js 20 LTS or later ([non-EOL](https://endoflife.date/nodejs)) versions.\n- Deno v1.28.0 or higher.\n- Bun 1.0 or later.\n- Cloudflare Workers.\n- Vercel Edge Runtime.\n- Jest 28 or greater with the `\"node\"` environment (`\"jsdom\"` is not supported at this time).\n- Nitro v2.6 or greater.\n\nNote that React Native is not supported at this time.\n\nIf you are interested in other runtime environments, please open or upvote an issue on GitHub.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n",
|
|
2293
2293
|
},
|
|
2294
2294
|
];
|
|
2295
2295
|
const INDEX_OPTIONS = {
|