https://retellai.com/?utm_source=discord&utm_medium=seo logo
I have the Alert set to 'Number of Transfer call f...
# ❓・ai-evy-support
q
@AI Evy I have the Alert set to 'Number of Transfer call failures when sum is above 1. I am getting alerts but cannot find those calls. How can i find calls?
a
Thanks for tagging me @Q4. I'll look through relevant sources and get back to you shortly.
​ To learn more, see the sources I considered: [[1] List Calls](https://docs.retellai.com/api-references/list-calls) [[2] Webhook Overview](https://docs.retellai.com/features/webhook-overview) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
### Answer To find calls with transfer failures, you can use the List Calls API with filter criteria to identify calls where transfers failed [(1) ]() . The List Calls API supports filtering by various call attributes . You can filter calls using the
filter_criteria
object in your API request . Here's how to structure your request:
Copy code
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 .
q
@AI Evy can i find those calls in retell dashboard?
a
Thanks for the follow-up, @Q4. I'll get back to you soon.
### Answer Based on the available sources, I don't have specific information about finding transfer failure calls directly in the Retell Dashboard interface. The sources primarily document the API methods for retrieving call information [(1) ]() [(2) ]() . However, you can check the
disconnection_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?
​ To learn more, see the sources I considered: [[1] List Calls](https://docs.retellai.com/api-references/list-calls) [[2] Get Call](https://docs.retellai.com/api-references/get-call) [[3] frequent outbound call fail during transfer](https://community.retellai.com/t/frequent-outbound-call-fail-during-transfer/774) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
Thanks for the follow-up, @Q4. I'll get back to you soon.
q
@AI Evy - explain me IVR Hangup Hang up if an IVR system is detected.
a
### Answer IVR Hangup is a feature that automatically terminates calls when an Interactive Voice Response (IVR) system is detected [(1) ]() [(2) ]() . When you configure the
ivr_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:
Copy code
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) ]() .
​ To learn more, see the sources I considered: [[1] Get Voice Agent](https://docs.retellai.com/api-references/get-agent) [[2] List Voice Agents](https://docs.retellai.com/api-references/list-agents) [[3] Debug call disconnection](https://docs.retellai.com/reliability/debug-call-disconnect) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
q
@AI Evy what is Error ASR?
a
Thanks for the follow-up, @Q4. I'll get back to you soon.
### Answer Error ASR (
error_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 .
​ To learn more, see the sources I considered: [[1] Debug call disconnection](https://docs.retellai.com/reliability/debug-call-disconnect) [[2] Automatic Speech Recognition (ASR)](https://www.retellai.com/glossary/automatic-speech-recognition-asr) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
q
@AI Evy what are they: Agent Hangup Call Transfer Concurrency Limit Reached Dial Busy Dial Failed Dial No Answer Error ASR Error LLM Websocket Corrupt Payload Error LLM Websocket Lost Connection Error LLM Websocket Open Error LLM Websocket Runtime Error No Audio Received Error Retell Error Unknown Error User Not Joined Inactivity Invalid Destination IVR Reached Marked As Spam Max Duration Reached No Valid Payment Registered Call Timeout SIP Routing Error Telephony Provider Permission Denied Telephony Provider Unavailable Transfer Bridged Transfer Cancelled User Declined User Hangup Voicemail Reached
a
Thanks for the follow-up, @Q4. I'll get back to you soon.
### Answer These are disconnection reasons that explain why calls end or fail to connect [(1) ]() . Here's what each one means: Expected Behavior (Normal Call Endings) : - **User Hangup**: User hung up the call - **Agent Hangup**: AI agent hung up the call - **Call Transfer**: AI agent transferred the call - **Voicemail Reached**: Voicemail is reached (when agent is configured with voicemail settings) - **IVR Reached**: IVR system is reached (when agent is configured to hang up upon encountering IVR) - **Inactivity**: Call terminated due to "end_call_after_silence_ms" setting after long inactivity - **Max Duration Reached**: Call terminated due to maximum duration reached Outbound Call Not Connected: - **Dial Busy**: The number dialed is busy - **Dial Failed**: Dialing failed with no or unknown SIP error code - **Dial No Answer**: The number dialed did not answer - **Invalid Destination**: The number dialed is invalid - **Telephony Provider Permission Denied**: SIP trunk credentials are not authenticated - **Telephony Provider Unavailable**: The telephony provider is unavailable - **SIP Routing Error**: SIP routing is going over too many hops or is in a loop - **Marked As Spam**: The number dialed is marked as spam - **User Declined**: User declined the call Error Conditions: - **Concurrency Limit Reached**: Concurrency limit reached, add retry with exponential backoff or consider enterprise plan - **No Valid Payment**: No valid payment registered on file, or service shut down due to bill overdue - **Error LLM Websocket Open**: LLM websocket did not open between Retell server and your backend (likely incorrect Custom LLM URL or unreachable LLM server) - **Error LLM Websocket Lost Connection**: LLM websocket connection broke during the call - *Error LLM Websocket Runtime
*: LLM websocket received a closing signal other than
1000
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 .
​ To learn more, see the sources I considered: [[1] Debug call disconnection](https://docs.retellai.com/reliability/debug-call-disconnect) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
q
@AI Evy can i create complete voice agent using just API?
a
Thanks for the follow-up, @Q4. I'll get back to you soon.
### Answer Yes, you can create a complete voice agent using just the API [(1) ]() . To create a voice agent via API, you need to provide a response engine and voice configuration . Here's an example:
Copy code
javascript
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 .
​ To learn more, see the sources I considered: [[1] Create Voice Agent](https://docs.retellai.com/api-references/create-agent) [[2] Create Agent (API endpoint)](https://discord.com/channels/1186424376300679209/1424438362458161182) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
q
@AI Evy I mean like complete working voice agent with full configuration which would work
a
Thanks for the follow-up, @Q4. I'll get back to you soon.
### Answer Yes, you can create a fully configured, working voice agent using just the API [(1) ]() . The Create Voice Agent endpoint supports all configuration options available in the dashboard . Here's a complete example with comprehensive configuration:
Copy code
javascript
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 .
​ To learn more, see the sources I considered: [[1] Create Voice Agent](https://docs.retellai.com/api-references/create-agent) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
q
@AI Evy where the prompt will be and is it multi prompt agent, single prompt agent or conversasional flow agent?
a
Thanks for the follow-up, @Q4. I'll get back to you soon.
### Answer When creating an agent via API, the prompt configuration depends on the response engine type you attach [(1) ]() [(2) ]() . For Single/Multi Prompt Agents: The prompt is configured in the Response Engine (Retell LLM) , not directly in the agent creation [(3) ]() [(4) ]() . You first create a Retell LLM with your prompt, then attach it to the agent using the
response_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 Retell
LLM [(1) ]() [(2) ]() . For more details on configuring prompts and choosing between agent types, check out: - [Prompt Engineering Guide]() - [Step 2: Configure the basic settings]() **
​ To learn more, see the sources I considered: [[1] Get Voice Agent](https://docs.retellai.com/api-references/get-agent) [[2] Update Voice Agent](https://docs.retellai.com/api-references/update-agent) [[3] Prompt Engineering Guide](https://docs.retellai.com/build/prompt-engineering-guide) [[4] Step 2: Configure the basic settings](https://docs.retellai.com/build/single-multi-prompt/configure-basic-settings) [[5] Retell AI’s Advanced Conversation Flow | Retell AI](https://www.retellai.com/blog/unlocking-complex-interactions-with-retell-ais-conversation-flow) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
q
@AI Evy how should I know the conversation_flow when looking where component is shared? This shared component is used in 2 conversation flows
a
Thanks for the follow-up, @Q4. I'll get back to you soon.
### Answer When you create or retrieve a shared (library) component, the API response includes a
linked_conversation_flow_ids
field that lists all conversation flow IDs where that component is being used [(1) ]() . Here's what the API returns:
Copy code
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 .
​ To learn more, see the sources I considered: [[1] Create Conversation Flow Component](https://docs.retellai.com/api-references/create-conversation-flow-component) [[2] Components](https://docs.retellai.com/build/conversation-flow/components) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
q
@AI Evy how can identify which agent is using that compnonet?
a
Thanks for the follow-up, @Q4. I'll get back to you soon.
### Answer To identify which agents are using a specific component, you need to map from conversation flows to agents [(1) ]() . Step 1: Get the conversation flow IDs When you retrieve a shared component via API, the response includes
linked_conversation_flow_ids
that shows which conversation flows use that component [(2) ]() :
Copy code
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 :
Copy code
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) ]() .
​ To learn more, see the sources I considered: [[1] Discord message from @andrii09152 on 2025-09-11](https://discord.com/channels/1186424376300679209/1186462578310910112/1415820290251952189) [[2] List Conversation Flow Components](https://docs.retellai.com/api-references/list-conversation-flow-components) [[3] Components](https://docs.retellai.com/build/conversation-flow/components) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.