Q4
03/10/2026, 3:15 PMAI Evy
03/10/2026, 3:15 PMAI Evy
03/10/2026, 3:16 PMAI Evy
03/10/2026, 3:16 PMAI Evy
03/10/2026, 3:16 PMfilter_criteria object in your API request . Here's how to structure your request:
javascript
import Retell from 'retell-sdk';
const client = new Retell({
apiKey: 'YOUR_RETELL_API_KEY',
}) ;
const callResponses = await client.call.list() ;
console.log(callResponses) ;
The response will include a disconnection_reason field for each call . Transfer-related disconnection reasons you should look for include call_transfer .
Additionally, webhook events can help you track transfer failures in real-time [(2) ]() . Retell AI supports these transfer-related webhook events :
- transfer_started - Triggered when a transfer is initiated
- transfer_bridged - Triggered when a transfer successfully bridges
- transfer_cancelled - Triggered when a transfer is cancelled or fails to connect
- transfer_ended - Triggered when the transfer leg ends
The webhook payload will include the transfer_destination field when applicable [(2) ]() [(1) ]() .
To specifically identify failed transfers, look for calls with transfer_cancelled webhook events or check the disconnection_reason field in your call data .Q4
03/10/2026, 3:17 PMAI Evy
03/10/2026, 3:17 PMAI Evy
03/10/2026, 3:17 PMdisconnection_reason field through the Retell Dashboard to diagnose specific failure reasons [(3) ]() . The dashboard should display call details including disconnection reasons like call_transfer [(1) ]() [(2) ]() .
For programmatic access, you can use the List Calls API to filter and retrieve calls with transfer-related issues [(1) ]() . The API response includes the disconnection_reason field that indicates why calls failed [(1) ]() [(2) ]() .
If you need more specific guidance on navigating the dashboard to find these calls, I recommend:
- Visit [Documentation]()
- Visit [Hire certified Retell partner]()
Would you like a general answer based on my knowledge instead?AI Evy
03/10/2026, 3:17 PMAI Evy
03/10/2026, 3:17 PMAI Evy
03/11/2026, 2:12 PMQ4
03/11/2026, 2:12 PMAI Evy
03/11/2026, 2:13 PMivr_option setting in your agent, you can set it to hang up if an IVR is encountered . The call will attempt to detect IVR systems during the first 3 minutes of the call . If an IVR is detected, the action you've defined will be executed .
Here's how to configure it:
javascript
{
"action": {
"type": "hangup"
}
}
[(1) ]() , [(2) ]()
When an IVR is detected and the hangup action is triggered, the call will end with a disconnection_reason of ivr_reached [(3) ]() . This is considered expected behavior when the agent is configured to hang up upon encountering an IVR system .
To disable IVR detection, you can set ivr_option to null [(1) ]() [(2) ]() .AI Evy
03/11/2026, 2:13 PMAI Evy
03/11/2026, 2:13 PMQ4
03/11/2026, 2:55 PMAI Evy
03/11/2026, 2:55 PMAI Evy
03/11/2026, 2:55 PMerror_asr) is a disconnection reason indicating that Retell's Automatic Speech Recognition (ASR) encountered a problem during the call [(1) ]() . When this error occurs, the call status is marked as error .
ASR is the technology that converts spoken language into written text [(2) ]() . It's the first critical step in enabling AI voice agents to understand and respond to callers . When the ASR system fails, the agent cannot accurately transcribe what the caller is saying, which prevents the conversation from continuing .
This is considered an error condition rather than expected behavior [(1) ]() . If you're experiencing error_asr disconnection reasons, it indicates a technical issue with the speech recognition processing that prevented the call from completing successfully .AI Evy
03/11/2026, 2:55 PMAI Evy
03/11/2026, 2:55 PMQ4
03/11/2026, 2:56 PMAI Evy
03/11/2026, 2:56 PMAI Evy
03/11/2026, 2:56 PMAI Evy
03/11/2026, 2:56 PM1000 from your server
- **Error LLM Websocket Corrupt Payload**: LLM websocket received unspecified payload
- **Error No Audio Received**: Has not received audio from Twilio or web frontend for a while after connection has established
- **Error ASR**: Retell's ASR encountered a problem
- **Error Retell**: Unspecified Retell side problem
- **Error Unknown**: Unknown error
- **Error User Not Joined**: User did not join web call within 30s after calling startWebCall
- **Registered Call Timeout**: Phone call is 30s or more apart from registration
Transfer-Related:
- **Transfer Bridged**: Not listed in the standard disconnection reasons, but appears in webhook events when a transfer successfully bridges
- **Transfer Cancelled**: Not listed in the standard disconnection reasons, but appears in webhook events when a transfer is cancelled or fails to connect
You can check these disconnection reasons through the Retell Dashboard or by using the get-call API endpoint .AI Evy
03/11/2026, 2:56 PMAI Evy
03/11/2026, 2:56 PMQ4
03/11/2026, 4:54 PMAI Evy
03/11/2026, 4:54 PMAI Evy
03/11/2026, 4:55 PMjavascript
import Retell from 'retell-sdk';
const client = new Retell({
apiKey: 'YOUR_RETELL_API_KEY',
}) ;
const agentResponse = await client.agent.create({
response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },
voice_id: '11labs-Adrian',
}) ;
console.log(agentResponse.agent_id) ;
The Create Voice Agent endpoint requires:
- **response_engine**: The Response Engine to attach to the agent (you need to create a Response Engine first)
- **voice_id**: Unique voice id used for the agent
You can also configure optional parameters like agent_name, voice_model, responsiveness, interruption_sensitivity, webhook_url, and many other settings .
Make sure your voice_id and llm_id are correct and valid [(2) ]() . If you use an incorrect or obsolete voice ID, you may receive a 404 error .AI Evy
03/11/2026, 4:55 PMAI Evy
03/11/2026, 4:55 PMQ4
03/11/2026, 4:56 PMAI Evy
03/11/2026, 4:56 PMAI Evy
03/11/2026, 4:56 PMjavascript
import Retell from 'retell-sdk';
const client = new Retell({
apiKey: 'YOUR_RETELL_API_KEY',
}) ;
const agentResponse = await client.agent.create({
response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },
voice_id: '11labs-Adrian',
}) ;
console.log(agentResponse.agent_id) ;
You can include extensive optional parameters to fully configure your agent :
- **agent_name**: Name for your reference
- **voice_model**: Select specific voice model (e.g., "eleven_turbo_v2")
- voice_speed, voice_temperature, **volume**: Control voice characteristics
- responsiveness, **interruption_sensitivity**: Control conversation dynamics
- enable_backchannel, **backchannel_frequency**: Configure backchanneling behavior
- **language**: Specify language/dialect (e.g., "en-US")
- webhook_url, **webhook_events**: Set up event notifications
- enable_voicemail_detection, **voicemail_message**: Configure voicemail handling
- **ivr_option**: Define IVR detection behavior
- end_call_after_silence_ms, **max_call_duration_ms**: Set call timeout rules
- **post_call_analysis_data**: Define data extraction after calls
The only prerequisites are creating a Response Engine first (like a Retell LLM) and having a valid voice_id . Once created, the agent is immediately functional and can handle calls .AI Evy
03/11/2026, 4:57 PMAI Evy
03/11/2026, 4:57 PMQ4
03/11/2026, 4:57 PMAI Evy
03/11/2026, 4:57 PMAI Evy
03/11/2026, 4:57 PMresponse_engine parameter [(1) ]() [(2) ]() .
Agent Type Determination:
The API creates a Single Prompt Agent by default when you use a Retell LLM as the response engine [(3) ]() [(5) ]() . The single prompt approach uses one comprehensive prompt to define the agent's behavior [(5) ]() .
Multi-Prompt Agents:
Multi-prompt combines several single prompt agents into a structured tree of prompts, where each node can contain its own specific prompt and transition logic .
Conversation Flow Agents:
Conversation Flow provides the most control over dialogue paths and is designed for users who prefer not to engage in extensive prompt engineering . It uses a node-based visual editor where each node focuses on one specific task .
To create different agent types, you would need to configure the appropriate response engine structure. The basic API example shown creates a single prompt agent by attaching a RetellAI Evy
03/11/2026, 4:58 PMAI Evy
03/11/2026, 4:58 PMQ4
03/17/2026, 1:25 PMAI Evy
03/17/2026, 1:25 PMAI Evy
03/17/2026, 1:26 PMlinked_conversation_flow_ids field that lists all conversation flow IDs where that component is being used [(1) ]() .
Here's what the API returns:
json
{
"conversation_flow_component_id": "<string>",
"name": "Customer Information Collector",
"linked_conversation_flow_ids": [
"<string>"
]
}
The linked_conversation_flow_ids array contains the IDs of all conversation flows that reference this shared component . If your component is used in 2 conversation flows, you'll see 2 flow IDs in this array .
In the Dashboard:
When viewing a shared component in the Components tab under Library Components, you can see which agents use it [(2) ]() . The component tracks all conversation flows it's linked to .
Important behavior:
When you delete a shared component from the library, linked instances in agents are downgraded to local copies and stop receiving sync updates, but your agents keep working .AI Evy
03/17/2026, 1:26 PMAI Evy
03/17/2026, 1:26 PMQ4
03/17/2026, 1:27 PMAI Evy
03/17/2026, 1:27 PMAI Evy
03/17/2026, 1:27 PMlinked_conversation_flow_ids that shows which conversation flows use that component [(2) ]() :
javascript
{
"conversation_flow_component_id": "<string>",
"linked_conversation_flow_ids": [
"<string>"
]
}
Step 2: Match conversation flows to agents
Once you have the conversation flow IDs, you need to identify which agents use those conversation flows [(1) ]() . Each agent has a response_engine that references a specific conversation flow .
When you create an agent, you attach a conversation flow ID as the response engine :
javascript
{
"response_engine": {
"conversation_flow_id": "llm_234sdertfsdsfsdf",
"type": "conversation-flow"
}
}
To find all agents using a specific conversation flow (and therefore your component) , you would need to list your agents and check which ones have that conversation flow ID in their response engine configuration .
In the Dashboard:
The dashboard shows you which conversation flows use a component when you view it in the Components tab under Library Components [(3) ]() . However, to see the actual agent names/IDs, you'd need to cross-reference those conversation flow IDs with your agents [(1) ]() .AI Evy
03/17/2026, 1:27 PMAI Evy
03/17/2026, 1:27 PM