https://retellai.com/?utm_source=discord&utm_medium=seo logo
inbound call rings for a bit and then shows busy o...
# ❓・ai-evy-support
o
@AI Evy inbound call rings for a bit and then shows busy on my cell phone... https://dashboard.retellai.com/phoneNumbers page is congifugred to a specific call agent and it allows the country code of my cell phone. what could be wrong ?
a
Thanks for tagging me @optimystic. I'll look through relevant sources and get back to you shortly.
### Answer When inbound calls ring and then show busy, there are several potential causes to investigate: Check if calls appear in Retell's call logs If the calls don't show up in your Retell dashboard at all, the calls aren't reaching Retell's system—this points to a configuration issue at the telephony provider level before calls reach Retell. [(1) ]() Common causes for busy/486 errors: -
dial_busy
— The number dialed is busy [(2) ]() -
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 Troubleshooting steps: 1. Check the call history and detailed log in your Retell dashboard—it contains the disconnection reason, SIP error code, and error message [(3) ]() 2. Verify your phone number has an
inbound_agent_id
properly set (if null, the number won't accept inbound calls) [(4) ]() 3. If using custom telephony (SIP trunking) : - Double check your configuration and ensure you imported the correct information [(3) ]() - If configuration is incorrect, delete the imported number and re-import - Check with your telephony provider to see what error they're seeing on their side 4. Check if you have an inbound webhook configured—a failing webhook can prevent calls from starting [(5) ]() **If using R
etell-managed numbers:** If you purchased the number through Retell and haven't made configuration changes, this may require Retell support to investigate the backend routing.
​ To learn more, see the sources I considered: [[1] Inbound calls to connected telnyx number always returns user busy](https://community.retellai.com/t/inbound-calls-to-connected-telnyx-number-always-returns-user-busy/304) [[2] Debug call disconnection](https://docs.retellai.com/reliability/debug-call-disconnect) [[3] Debug outbound connection issues](https://docs.retellai.com/reliability/debug-outbound-call) [[4] Get Phone Number](https://docs.retellai.com/api-references/get-phone-number) [[5] Twilio Number to agent rings busy, while other assigned to same AI Agent are successful](https://community.retellai.com/t/twilio-number-to-agent-rings-busy-while-other-assigned-to-same-ai-agent-are-successful/710) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
o
i have a webhook configured on latenode.com (a zapier alternative) i put that url in https://dashboard.retellai.com/settings/webhooks when i test that it says sent successfully maybe i have misconfigured what data it is looking for.. is there a example output from that webhook that i can use to know what data i should be expecting?
@AI Evy i have a webhook configured on latenode.com (a zapier alternative) i put that url in https://dashboard.retellai.com/settings/webhooks when i test that it says sent successfully maybe i have misconfigured what data it is looking for.. is there a example output from that webhook that i can use to know what data i should be expecting?
a
Thanks for the follow-up, @optimystic. I'll get back to you soon.
### Answer --- Yes! Here's a sample webhook payload you should expect from the **call event webhook**:
Copy code
json
{
  "event": "call_ended",
  "call": {
    "call_type": "phone_call",
    "from_number": "+12137771234",
    "to_number": "+12137771235",
    "direction": "inbound",
    "call_id": "Jabr9TXYYJHfvl6Syypi88rdAHYHmcq6",
    "agent_id": "oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",
    "call_status": "registered",
    "metadata": {},
    "retell_llm_dynamic_variables": {
      "customer_name": "John Doe"
    },
    "start_timestamp": 1714608475945,
    "end_timestamp": 1714608491736,
    "disconnection_reason": "user_hangup",
    "transcript": "...",
    "transcript_object": [ [Object], [Object], [Object], [Object] ],
    "transcript_with_tool_calls": [ [Object], [Object], [Object], [Object] ],
    "opt_out_sensitive_data_storage": false
  }
}
[(1) ]() Key things to know: - The webhook sends three event types:
call_started
,
call_ended
, and
call_analyzed
- Each webhook POST contains an
event
field indicating the event type, plus a
call
object with the call details - Your endpoint should return a 2xx status code to acknowledge receipt—no response body is expected Important note about calls that don't connect: If a call doesn't connect (like
dial_failed
,
dial_no_answer
,
dial_busy
) , the
call_started
webhook will not be triggered, but
call_ended
and
call_analyzed
will still fire For your Latenode setup, make sure your workflow can handle all three event types. A common issue is that platforms like Make/Zapier stop processing after the first webhook hit (
call_started
) , so you may need to configure it to continue listening for subsequent events [(2) ]()
​ To learn more, see the sources I considered: [[1] Webhook Overview](https://docs.retellai.com/features/webhook-overview) [[2] Discord message from @zz4chy on 2025-01-11](https://discord.com/channels/1186424376300679209/1186462578310910112/1327439441534390343) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
o
@AI Evy in order to use Extract Variable Node do i have to have it connected to recieve input from a converation node ?
a
Thanks for the follow-up, @optimystic. I'll get back to you soon.
### Answer The Extract Dynamic Variable Node is used to extract information from conversation and store it as a dynamic variable. [(1) ]() The node doesn't require input from a specific "conversation node" per se—it extracts information from the conversation itself that has occurred up to that point in the flow. To create a variable in the Extract Dynamic Variable Node, you fill in: - Variable Name – A short name to reference this variable - Description – A brief explanation of what this value should be - Variable Type – Choose from
Text
,
Number
,
Enum
, or
Boolean
- Enum Options – Options to choose from (only when type is enum) Important note from the community: When using extracted dynamic variables in custom functions, reference the variable name directly like
{{make}}
rather than using dot notation like
{{scheduling_info_extraction.make}}
. [(2) ]() The node needs to be placed in your conversation flow where the relevant information has already been spoken/collected during the conversation—it pulls from the conversation history up to that point.
​ To learn more, see the sources I considered: [[1] Extract Dynamic Variable Node](https://docs.retellai.com/build/conversation-flow/extract-dv-node) [[2] Extracted Dynamic Variables not sending through custom function in Conversation Flow Prompt](https://discord.com/channels/1186424376300679209/1442542149546803312) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
o
@AI Evy when i look in the call history Do you currently have a steady place to live? Do you feel safe in your current living situation? Do you have problems with any of the following in your home? Within the past 12 months, have you worried about running out of food before you had money to buy more? In the past 12 months, has lack of reliable transportation prevented you from: Are you currently employed? Calculate the number of concerned questions there are all these columns, which are none of the questions i have instructed the conversation nodes to ask. how do i remove them ? and how do i add columns for the variables i have extracted ?
a
Thanks for the follow-up, @optimystic. I'll get back to you soon.
### Answer Those columns you're seeing are likely from Post-Call Analysis fields configured on your agent, not from your conversation nodes or extracted variables. To customize your Call History columns: Adding columns for your extracted variables: - Go to Call History → Customize View → Add Custom Attribute [(1) ]() [(2) ]() - Your extracted dynamic variables should appear in
collected_dynamic_variables
in the call data [(3) ]() [(4) ]() Removing unwanted columns: - In Call History, use Customize View to reorder or hide columns you don't need [(1) ]() [(2) ]() - The questions you're seeing ("Do you currently have a steady place to live?" etc.) appear to be Post-Call Analysis fields—check your agent's Post-Call Analysis settings to remove or modify them To see your extracted variables: - Enable the
collected_dynamic_variables
field in your Call History view—this contains variables extracted during the call [(3) ]() [(4) ]() The Call History customization feature allows you to add custom fields for deeper tracking and reorder columns to match your workflow [(1) ]() [(2) ]() .
​ To learn more, see the sources I considered: [[1] Platform Changelogs | Retell AI](https://www.retellai.com/changelog) [[2] CF Components, Warm Transfer Caller ID, Call History & More.](https://www.retellai.com/changelog/cf-components-warm-transfer-caller-id-call-history-more) [[3] Register Phone Call](https://docs.retellai.com/api-references/register-phone-call) [[4] Get Call](https://docs.retellai.com/api-references/get-call) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
o
@AI Evy ON https://dashboard.retellai.com/settings/webhooks i have a webhook that seems specific for calls https://docs.retellai.com/features/webhook-overview does this work also for chats (without inbound or outbound calls)
a
Thanks for the follow-up, @optimystic. I'll get back to you soon.
### Answer The sources I have available focus primarily on call-related webhooks and don't provide explicit documentation about whether the webhook at
/settings/webhooks
works for chat/SMS conversations without calls. However, there are some relevant details: For inbound SMS, the inbound webhook does support SMS—the documentation mentions
chat_inbound
as an alternative to
call_inbound
in the response structure. [(1) ]() For example, the inbound webhook response for SMS uses
chat_inbound
instead of `call_inbound`:
Copy code
json
{
  "chat_inbound": {
    "override_agent_id": "agent_12345",
    "dynamic_variables": {
      "customer_name": "John Doe"
    }
  }
}
For post-call analysis webhooks, the
call_analyzed
event type is specifically documented for calls. [(2) ]() I don't have explicit documentation confirming whether the general webhook at
/settings/webhooks
fires events for standalone chat/SMS conversations (without an associated call) . You may want to test this directly or check with Retell support for clarification on chat-specific webhook events. Check out these potentially useful sources: - [Inbound webhook]() - [Send & receive SMS]() Would you like me to try to answer more generally based on my knowledge?
​ To learn more, see the sources I considered: [[1] Inbound webhook](https://docs.retellai.com/features/inbound-call-webhook) [[2] Consume the analysis data](https://docs.retellai.com/features/post-call-analysis-consumption) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
o
@AI Evy i just completed a test chat with my agent but the result does not show up in my https://dashboard.retellai.com/chat-history
a
Thanks for the follow-up, @optimystic. I'll get back to you soon.
### Answer Chat sessions are stored in a separate Chat History tab, not Call History. [(1) ]() If your chat test isn't appearing, here are the most common causes and fixes: 1. Check the correct tab Navigate to the "Chat History" tab specifically—chat and call sessions are stored separately. 2. Verify data storage settings For chat agents, ensure your agent's
data_storage_setting
is configured to capture data. Available options include
everything
,
everything_except_pii
, or
basic_attributes_only
. [(2) ]() 3. Add the webhook to settings A community member reported a similar issue where chats weren't appearing in history. The fix was adding the agent-level webhook to the webhook tab in settings—after doing so, all the chats appeared. [(3) ]() 4. Use the API to verify You can also retrieve chat details programmatically using the Get Chat API or List Chat API to confirm whether sessions are being created. [(4) ]() If the
/list-chat
API endpoint returns an empty array, chat sessions aren't being created at all, which points to a configuration issue at the session creation level. [(3) ]()
​ To learn more, see the sources I considered: [[1] Monitor sessions via dashboard](https://docs.retellai.com/features/session-history) [[2] Chat history shows no record](https://community.retellai.com/t/chat-history-shows-no-record/526) [[3] Discord message from @siddhp on 2025-12-11](https://discord.com/channels/1186424376300679209/1186462578310910112/1448822043649900574) [[4] Chat Agent Conversation History | Not available?](https://discord.com/channels/1186424376300679209/1392005463477981215) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
o
chat is not showing up in https://dashboard.retellai.com/chat-history and /list-chat endpoint does not show my most recent chat history... does that mean my node for ending is not firing or configured correct ?
@AI Evy chat is not showing up in https://dashboard.retellai.com/chat-history and /list-chat endpoint does not show my most recent chat history... does that mean my node for ending is not firing or configured correct ?
a
Thanks for the follow-up, @optimystic. I'll get back to you soon.
### Answer If chats aren't appearing in the Chat History dashboard or via the
/list-chat
endpoint, it's not necessarily related to your end node configuration. [(1) ]() Key things to check: 1. Verify the chat session was created properly — A chat session needs to be created via the
create-chat
API endpoint first, which returns a
chat_id
for subsequent requests. [(2) ]() 2. Check chat status — Chats have three possible statuses:
ongoing
,
ended
, or
error
. [(3) ]() If the chat is still
ongoing
, it should still appear in the list. If it shows
error
, the session may have encountered issues. 3. Data storage settings — A community member reported a similar issue where chat sessions weren't appearing. The resolution involved verifying the
data_storage_setting
configuration on the agent. [(4) ]() 4. Use the API to verify — You can retrieve chat details programmatically using the Get Chat API or List Chat API to confirm whether sessions exist. [(5) ]()
Copy code
javascript
import Retell from 'retell-sdk';
const client = new Retell({
  apiKey: 'YOUR_RETELL_API_KEY',
}) ;
const chatResponses = await client.chat.list() ;
console.log(chatResponses) ;
[(6) ]() If the list returns an empty array even though you completed a chat, the issue is likely at the session creation level rather than the ending node. The chat session may not have been properly initiated with the
create-chat
endpoint. [(2) ]()
​ To learn more, see the sources I considered: [[1] Monitor sessions via dashboard](https://docs.retellai.com/features/session-history) [[2] Create Chat Completion](https://docs.retellai.com/deploy/create-chat-completion) [[3] Get Chat](https://docs.retellai.com/api-references/get-chat) [[4] Chat history shows no record](https://community.retellai.com/t/chat-history-shows-no-record/526) [[5] Chat Agent Conversation History | Not available?](https://discord.com/channels/1186424376300679209/1392005463477981215) [[6] List Chat](https://docs.retellai.com/api-references/list-chat) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
o
@AI Evy when trying to create a chat via curl command. i get this {"status":"error","message":"Cannot start a chat session with selected agent."}% how to fix ? does that mean my agent is a voice-only agent and It cannot be used with the chat API?
a
Thanks for the follow-up, @optimystic. I'll get back to you soon.
### Answer Yes, that error indicates you're trying to use a voice agent with the chat API, which won't work. Voice agents and chat agents are separate in Retell AI. [(1) ]() To fix this, you need to create a Chat Agent: 1. Navigate to the Agents section in your Retell dashboard 2. Click "Create New Agent" 3. Select "Chat Agent" as the agent type 4. Configure your agent settings and prompts Alternatively, convert your existing voice agent: 1. Open your existing voice agent 2. Click "Convert to Chat Agent" 3. Review the conversion warnings Important: Chat agents do not support certain voice-specific functions like call transfers, DTMF (press digits) , or telephony features. During conversion, such nodes or functions will be automatically removed. Once you have a chat agent created, use that agent's
agent_id
in your curl command to create a chat session. You can verify you have a chat agent by using the Get Chat Agent API endpoint—if you pass a voice agent ID to this endpoint, you'll get an "Invalid agent channel" error. [(2) ]()
​ To learn more, see the sources I considered: [[1] Create chat agent](https://docs.retellai.com/build/create-chat-agent) [[2] Retell Chat Agent API Integration](https://discord.com/channels/1186424376300679209/1440235198125183006) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
o
@AI Evy ok, now i have a chat agent.. i did a test chat that looks like it worked. it went through the flow chart of questions, variables look like they extracted, and i got to my end node message. but that chat was not added to the chat history at https://dashboard.retellai.com/chat-history
a
Thanks for the follow-up, @optimystic. I'll get back to you soon.
### Answer --- Chat sessions and recordings are stored indefinitely and should appear in the Chat History tab. [(1) ]() A community member reported the exact same issue—chat worked correctly but didn't appear in Chat History. [(2) ]() In that case, the issue was related to the
data_storage_setting
configuration. Key troubleshooting steps: 1. Check data storage settings — Navigate to your agent's Security & Fallback Settings → Data Storage Settings and ensure it's set to "everything" or "everything_except_pii" to capture chat interactions. 2. Verify via API — Use the List Chat API to confirm whether the session was recorded:
Copy code
javascript
import Retell from 'retell-sdk';
const client = new Retell({
  apiKey: 'YOUR_RETELL_API_KEY',
}) ;
const chatResponses = await client.chat.list() ;
console.log(chatResponses) ;
[(3) ]() 3. Note on chat agents — A community member flagged that chat agents may not have the same data storage configuration options as voice agents. [(2) ]() If you don't see data storage settings for your chat agent, this may require Retell support to investigate. If the API also returns no results, I'd recommend reaching out to Retell support with your agent ID for further investigation.
​ To learn more, see the sources I considered: [[1] Monitor sessions via dashboard](https://docs.retellai.com/features/session-history) [[2] Chat history shows no record](https://community.retellai.com/t/chat-history-shows-no-record/526) [[3] List Chat](https://docs.retellai.com/api-references/list-chat) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
o
@AI Evy the chat agent data storage settings are missing. it only has Default Dynamic Variables Set fallback values for dynamic variables across all endpoints if they are not provided. but the voice agent has the data storage settings
a
Thanks for the follow-up, @optimystic. I'll get back to you soon.
### Answer Chat agents do support `data_storage_setting`—it's available via the API even if it's not visible in the dashboard UI. [(1) ]() [(2) ]() [(3) ]() To configure data storage for your chat agent via API:
Copy code
javascript
import Retell from 'retell-sdk';
const client = new Retell({
  apiKey: 'YOUR_RETELL_API_KEY',
}) ;
const chatAgentResponse = await client.chatAgent.create({
  response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },
}) ;
[(2) ]() You can set
data_storage_setting
when creating or updating a chat agent with these options: [(1) ]() [(2) ]() [(3) ]() -
everything
— stores all data including transcripts and recordings -
everything_except_pii
— stores data but excludes PII when possible -
basic_attributes_only
— stores only basic metadata A community member reported this exact issue—chat agents missing data storage configuration in the dashboard. [(4) ]() If you're unable to configure this via API, I'd recommend reaching out to Retell support with your agent ID, as they may need to investigate further.
​ To learn more, see the sources I considered: [[1] Get Chat Agent](https://docs.retellai.com/api-references/get-chat-agent) [[2] Create Chat Agent](https://docs.retellai.com/api-references/create-chat-agent) [[3] Update Chat Agent](https://docs.retellai.com/api-references/update-chat-agent) [[4] Chat history shows no record](https://community.retellai.com/t/chat-history-shows-no-record/526) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
o
@AI Evy i just tested a voice agent and where the call should have ended it switched to another test agent as seen in the text below. how do i disable this and/or make it go to the ending node and finish the call "I don't have time right now. Give me a callback tomorrow. Hello, this is Anna, an AI representative calling from Retell Healthcare organization on a recorded line. I'm reaching out to help you access your health service portal. Um, may I speak with Evie Wang, please?"
a
Thanks for the follow-up, @optimystic. I'll get back to you soon.
### Answer Based on your transcript, it looks like your conversation flow has an Agent Transfer Node configured that's switching to a different agent ("Anna") instead of ending the call. [(1) ]() What's happening: Agent Transfer (also known as Agent Swap) enables you to modularize tasks and re-use specialized agents without relying on traditional phone-based transfers. In your case, this transfer is triggering unexpectedly when the user says "Give me a callback tomorrow." How to fix this: 1. Check your conversation flow for Agent Transfer nodes — Look for any "Agent Transfer" nodes in your flow and verify the transition conditions leading to them. Make sure the edges/transitions to that node aren't being triggered by phrases like "callback" or "tomorrow." 2. Use the Ending node instead — Conversational flow agents support a built-in ending node (called "Ending") to properly terminate calls. [(2) ]() Make sure your flow has an Ending node connected for scenarios where the user wants to end the conversation. 3. Review your transition logic — Check the edges connecting your nodes. The transition to the Agent Transfer node may have conditions that are too broad, causing it to fire when the user mentions rescheduling. To locate the issue: - Open your agent in the Conversation Flow builder - Look for any Agent Transfer nodes - Check what conditions trigger the transition to that node - Either remove the Agent Transfer node or adjust the transition conditions to be more specific If you want the call to simply end when the user asks for a callback, connect that conversation path to an Ending node instead of an Agent Transfer node.
​ To learn more, see the sources I considered: [[1] Agent Transfer Node](https://docs.retellai.com/build/conversation-flow/transfer-agent-node) [[2] Problem ending calls in conversational agent flow](https://community.retellai.com/t/problem-ending-calls-in-conversational-agent-flow/197) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
o
@AI Evy when i get to the ending node on my voice agent the chat doesnt automatically disconnect after their last stated message. how can i change that to it hanging up
a
Thanks for the follow-up, @optimystic. I'll get back to you soon.
### Answer The End Node terminates the call the moment the agent enters it. [(1) ]() If the call isn't disconnecting immediately after the farewell message, here's the recommended approach: Use "Speak During Execution" on the End Node: In the End Node settings, enable Speak During Execution and put your farewell message there (e.g., "Goodbye, have a nice day") . You can choose between
Prompt
or
Static Sentence
for this. This ensures the agent speaks the message and then the call ends. If you need a brief pause before hanging up: A community member reported a similar issue where the call ended too abruptly. The solution is to create a Conversation Node with Skip Response enabled before your End Node: [(2) ]() 1. Create a Conversation Node before your End Node 2. Put your farewell message in this node 3. Enable Skip Response in the node settings 4. Connect this node directly to your End Node This allows the farewell message to fully play before the call terminates.
​ To learn more, see the sources I considered: [[1] End Node](https://docs.retellai.com/build/conversation-flow/end-node) [[2] Can I add a 1-second delay to "End Call" node?](https://discord.com/channels/1186424376300679209/1355665071363067916) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
Thanks for the follow-up, @optimystic. I'll get back to you soon.
o
@AI Evy how do i get dynamic variables to show up as custom attributes in my call history https://dashboard.retellai.com/call-history i have them marked as variables in Post Call Data Retrieval Define the information that you need to extract from the voice. (Learn more) Call Summary Call Successful has_a_project looking_to_buy purchase_price Own_money_total rehab_budget after_repair_value property_address user_requests_live_transfer requests_follow_up_call and have defined them in Custom Attributes Added fields will show up as columns in the table. collected_dynamic_variables has_a_project looking_to_buy purchase_price Own_money_total rehab_budget after_repair_value property_address user_requests_live_transfer request_follow_up_call but they dont show up
a
### Answer There are two different data sources you're working with, and they need to be accessed differently in Call History: 1. Collected Dynamic Variables — These are variables extracted during the conversation via Extract Dynamic Variable nodes. They appear in
collected_dynamic_variables
in the call response. [(1) ]() [(2) ]() 2. Post-Call Analysis fields — These are analyzed after the call ends and appear in
call_analysis.custom_analysis_data
. [(2) ]() [(3) ]() To display them in Call History: For collected dynamic variables, add
collected_dynamic_variables
as a custom attribute—the individual variables will be nested inside this object. [(1) ]() [(2) ]() For Post-Call Analysis fields (like your
has_a_project
,
looking_to_buy
, etc.) , these should appear under the
call_analysis
section. The custom fields you define appear in
custom_analysis_data
. [(2) ]() [(3) ]() Important note: Post-call analysis fields will not populate for calls that were not connected or where no conversation took place. [(4) ]() Check whether the field exists before relying on it. Troubleshooting steps: 1. Verify your calls actually completed with conversation—post-call analysis only runs on connected calls with actual dialogue 2. Use the Get Call API to inspect a specific call and confirm where your data is appearing:
​ To learn more, see the sources I considered: [[1] Register Phone Call](https://docs.retellai.com/api-references/register-phone-call) [[2] Get Call](https://docs.retellai.com/api-references/get-call) [[3] List Calls](https://docs.retellai.com/api-references/list-calls) [[4] Post Call Analysis Overview](https://docs.retellai.com/features/post-call-analysis-overview) ​
Copy code
javascript
const callResponse = await client.call.retrieve('your_call_id') ;
console.log(callResponse.collected_dynamic_variables) ;
console.log(callResponse.call_analysis) ;
[(2) ]() 3. In Call History customization, try adding
call_analysis
as a custom attribute to see if your post-call fields appear there If the data appears in the API response but not in the dashboard columns, this may be a UI limitation worth raising with Retell support.
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
o
@AI Evy what happens if i make a out bound call to a disconnected number ?
a
Thanks for the follow-up, @optimystic. I'll get back to you soon.
### Answer I don't have explicit documentation covering what happens when you make an outbound call to a disconnected number specifically. However, based on related documentation, here's what I can share: Possible outcomes: - The call may fail to connect and return a SIP error code. For example, calls rejected due to spam flagging return SIP error code 608. [(1) ]() - If voicemail detection is enabled (
enable_voicemail_detection: true
) , the system may attempt to detect voicemail before timing out. [(2) ]() [(3) ]() - The call would likely show as "not connected" in your call history, and post-call analysis fields would not populate for calls that were not connected or where no conversation took place. [(4) ]() To investigate a specific failed call: - Check the call status and disconnection reason in your Retell dashboard - Use the Get Call API to retrieve detailed call information including any error codes For specific behavior on disconnected numbers, I'd recommend testing with a known disconnected number and reviewing the call details, or reaching out to Retell support for clarification. Check out these potentially useful sources: - [Documentation]() - [Hire certified Retell partner]() Would you like me to try to answer more generally based on my knowledge?
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
​ To learn more, see the sources I considered: [[1] iOS 26 Call Screening: Best Practices for Outbound | Retell AI](https://www.retellai.com/blog/ios-call-screening) [[2] Get Voice Agent](https://docs.retellai.com/api-references/get-agent) [[3] Update Voice Agent](https://docs.retellai.com/api-references/update-agent) [[4] Post Call Analysis Overview](https://docs.retellai.com/features/post-call-analysis-overview) ​
o
@AI Evy can i program my flow to leave a voicemail if no one answers ?
a
Thanks for the follow-up, @optimystic. I'll get back to you soon.
### Answer Yes, you can configure your agent to leave a voicemail when it detects one. [(1) ]() How to set it up: 1. Navigate to your agent settings → call settings and enable "Voicemail Detection" 2. Choose "Leave a message" as the voicemail behavior. You have two options: - **Static message**: The agent will leave a pre-recorded message, like
Hi, this is {{your name}}, please give us a callback tomorrow at 10am.
- **Prompt**: The agent will leave a message generated dynamically based on instructions you provide, like
summarize the call and ask user to call back
Via API, you can configure this using the
voicemail_option
parameter: [(2) ]()
Copy code
json
{
  "action": {
    "type": "static_text",
    "text": "Please give us a callback tomorrow at 10am."
  }
}
Important notes: - Voicemail detection runs continuously within the first 3 minutes of the call [(1) ]() - If you select to leave a message, the system will wait for its turn to speak to leave that message - The voicemail detection acts globally—you can rely on the built-in detection rather than creating custom transitions in your conversation flow [(3) ]() - If voicemail is detected and the action is taken successfully, the call will have a disconnection reason of
voicemail_reached
[(1) ]()
​ To learn more, see the sources I considered: [[1] Handle voicemail](https://docs.retellai.com/build/handle-voicemail) [[2] Create Voice Agent](https://docs.retellai.com/api-references/create-agent) [[3] Leave VM detection](https://discord.com/channels/1186424376300679209/1406015418585579601) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
Thanks for the follow-up, @optimystic. I'll get back to you soon.
o
@AI Evy how can i make sure to flag or mark disconnected phone numbers from my existing client list of 5000
a
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
### Answer --- You can use Batch Calling combined with call history analysis to identify disconnected numbers from your list. [(1) ]() [(2) ]() Recommended approach: 1. Upload your 5,000 contacts via Batch Call — Create a batch call with your CSV file containing all phone numbers. [(1) ]() 2. Monitor call outcomes — After the batch completes, you can view metrics including calls that failed to connect. The dashboard shows Sent, Picked Up, and Successful rates, and you can click the history icon to view call details for each call in the batch. 3. Check disconnection reasons — Calls have specific
disconnection_reason
values that indicate why they failed: [(3) ]() [(4) ]() -
dial_busy
— Line was busy -
dial_failed
— Call failed to connect -
dial_no_answer
— No answer -
invalid_destination
— Number is malformed or unreachable 4. Export call history — Use the export feature in Call History to download results with your selected filters and column settings. [(4) ]() You can filter for unsuccessful sessions to identify patterns in failure reasons. [(5) ]() 5. Use the API for programmatic access — Retrieve call details via the List Calls or Get Call API to programmatically identify which numbers had connection failures, then update your client list accordingly. Tip: Numbers returning
invalid_destination
or
dial_failed
consistently are likely disconnected and should be flagged for removal or verification.
​ To learn more, see the sources I considered: [[1] Create Batch calls](https://docs.retellai.com/deploy/make-batch-call) [[2] Scale Outreach with Efficient Batch Calling | Retell AI](https://www.retellai.com/features/batch-call) [[3] Create Web Call](https://docs.retellai.com/api-references/create-web-call) [[4] Platform Changelogs | Retell AI](https://www.retellai.com/changelog) [[5] Monitor sessions via dashboard](https://docs.retellai.com/features/session-history) ​
o
@AI Evy i hvae a conversation node that asks "Ask for the referral’s name and contact information (including phone number and email address), and what type of project they’re working on. Be friendly and convey appreciation. Confirm details back to the borrower for accuracy." that connects to a extract variable node to extract the name, phone number, email address of the referral that connects to a ending node that says "Thank you for your time and partnership. Feel free to reach out at any time." but when i test this out, after collecting the referral contact information... it does not give the ending node static message and just hangs up
a
Thanks for the follow-up, @optimystic. I'll get back to you soon.
​ To learn more, see the sources I considered: [[1] End Node](https://docs.retellai.com/build/conversation-flow/end-node) [[2] Conversation Node](https://docs.retellai.com/build/conversation-flow/conversation-node) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
### Answer The End Node terminates the call the moment the agent enters it—it does not wait to speak first by default. [(1) ]() To make your farewell message play before hanging up: Enable "Speak During Execution" on your End Node. When enabled, a text input box appears where you can write instructions or a static sentence (like "Thank you for your time and partnership. Feel free to reach out at any time.") that the agent will say while the call is ending. You can choose between
Prompt
and
Static Sentence
. Steps to fix: 1. Click on your End Node 2. In the node settings on the right, enable Speak During Execution 3. Enter your farewell message there 4. The agent will now speak this message before the call terminates Alternative approach: If you need more control, add a Conversation Node with Skip Response enabled before your End Node. [(2) ]() Put your farewell message in that node, enable Skip Response in the node settings (which means the agent will speak and then automatically transition to the next node without waiting for user input) , then connect it to your End Node.
o
@AI Evy Speak During Execution is already enabled on my ending node... but the ending message is still not being spoke to the customer before hanging up. would changing my execution mode from flex mode to rigid mode fix this ?
a
Thanks for the follow-up, @optimystic. I'll get back to you soon.
### Answer This is a known issue specifically with Flex Mode. [(1) ]() In Flex Mode, a "race condition" often causes the tool to terminate the call before the TTS finishes speaking. Recommended fix (without switching to rigid mode) : Instead of relying on "Speak during execution" in the End Node, move the logic to your Global Prompt with an "Output-First" protocol: 1. Leave the End Node empty (no speak during execution message) 2. In your Global Prompt, add explicit instructions: - Tell the agent to output the farewell sentence first (e.g., "Thank you for your time and partnership...") - Instruct the agent to trigger the end_call tool immediately after generating that specific sentence - Command the agent to never wait for user input between the speech and the tool call This forces the LLM to sequence the speech and the hangup action correctly. Regarding switching to rigid mode: Switching to rigid mode could potentially fix this timing issue since it processes nodes more sequentially. However, be aware that one community member reported rigid mode experiencing significantly higher latency (~5000ms) compared to flex mode (~1300ms) . [(2) ]() This may or may not affect your specific setup. Alternative approach: Add a Conversation Node with Skip Response enabled before your End Node, put your farewell message there, then connect to an empty End Node. This gives the message time to complete before the call terminates.
​ To learn more, see the sources I considered: [[1] Speak During Execution not working for End Call node](https://discord.com/channels/1186424376300679209/1451006517909258352) [[2] Rigid Mode Latency Issue - 5000ms vs Normal 1300ms in Flex Mode](https://community.retellai.com/t/rigid-mode-latency-issue-5000ms-vs-normal-1300ms-in-flex-mode/537) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
o
@AI Evy i dont see a option for Skip Response in the node settings of a conversation node
a
Thanks for the follow-up, @optimystic. I'll get back to you soon.
### Answer Skip Response is a node setting available in Conversation Nodes. [(1) ]() According to the documentation, when you select a Conversation Node, the Node Settings panel should include: - **Skip Response**: when enabled, the transition will only have one edge that you can connect, and when the agent is done talking, it will transition to the next node via that specific edge. This is useful when you want the agent to say things like disclaimers, where you don't need a response to move on to another node. Troubleshooting steps: 1. Make sure you've clicked directly on the Conversation Node to select it 2. Look at the right-side panel where node settings appear 3. The Skip Response toggle should be listed under Node Settings along with other options like Global Node, Block Interruptions, and LLM selection If you still don't see this option, try refreshing your dashboard or checking if you're editing the correct node type (it must be a Conversation Node, not a Function Node or other node type) .
​ To learn more, see the sources I considered: [[1] Conversation Node](https://docs.retellai.com/build/conversation-flow/conversation-node) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
o
@AI Evy in the conversation node i see the options for Global Node,Block Interruptions,LLM,Node Knowledge Base,Fine-tuning Examples... there is no option for skip response
a
Thanks for the follow-up, @optimystic. I'll get back to you soon.
### Answer --- The documentation confirms Skip Response is a Conversation Node setting. [(1) ]() According to the docs, the Node Settings for a Conversation Node include: - **Skip Response**: when enabled, the transition will only have one edge that you can connect, and when agent is done talking, it will transition to the next node via that specific edge. This is useful when you want the agent to say things like disclaimers, where you don't need a response to move on to another node. - Global Node - Block Interruptions - LLM - Fine-tuning Examples Since you're seeing Global Node, Block Interruptions, LLM, Node Knowledge Base, and Fine-tuning Examples but not Skip Response, this may be: 1. A UI display issue — Try refreshing your browser or clearing cache 2. Related to your execution mode — The UI may differ between Flex Mode and Rigid Mode 3. A dashboard update — The option may have been relocated or renamed in a recent update I'd recommend reaching out to Retell support directly with your agent ID, as this appears to be a UI discrepancy between what the documentation describes and what you're seeing in the dashboard.
​ To learn more, see the sources I considered: [[1] Conversation Node](https://docs.retellai.com/build/conversation-flow/conversation-node) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
o
@AI Evy when i look at call logs... i have fields/colums for these Recording URL, Scrubbed Recording URL, Public Log URL, Transcript , Transcript With Tool Callsm Scrubbed Transcript With Tool Calls... but none of them have output from the last 6 or 7 calls i have tested
a
Thanks for the follow-up, @optimystic. I'll get back to you soon.
### Answer If your call logs are missing recordings, transcripts, and public log URLs, the most likely cause is your Data Storage Setting configuration. [(1) ]() Check your Data Storage Setting: Navigate to your agent → Security & Fallback Settings → Data Storage Settings and verify which option is selected: - Everything — stores transcripts, recordings, and logs - Everything except PII — stores content, excluding PII when possible - Basic Attributes Only — stores only metadata (no transcripts/recordings/logs) If set to Basic Attributes Only, transcripts, recordings, and logs will not be stored. When you query the call later via the API, you will not get these fields. Other things to verify: 1. Call status — These fields are only available after the call ends. Check that
call_status
shows
ended
rather than
registered
or
ongoing
. [(2) ]() [(3) ]() 2. Call connection — If calls didn't actually connect (e.g.,
dial_failed
,
dial_no_answer
) , there would be no transcript or recording to store. 3. Per-call override — The
data_storage_setting
can also be set per-call, which would override the agent setting. [(4) ]() A community member reported a similar issue where sessions weren't appearing in history, and verifying the
data_storage_setting
resolved it. [(5) ]()
​ To learn more, see the sources I considered: [[1] Data Storage Settings - Retell AI](https://docs.retellai.com/accounts/privacy-disable) [[2] Register Phone Call](https://docs.retellai.com/api-references/register-phone-call) [[3] Get Call](https://docs.retellai.com/api-references/get-call) [[4] Update Call](https://docs.retellai.com/api-references/update-call) [[5] Chat history shows no record](https://community.retellai.com/t/chat-history-shows-no-record/526) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
o
@AI Evy the agent seems to be skiping a conversation node to ask for referral contact information after saying they dont have a upcoming project despite the nodes being connected to one another ,,, what am i missing
a
Thanks for the follow-up, @optimystic. I'll get back to you soon.
### Answer --- When nodes are connected but transitions aren't happening as expected, there are several things to check: 1. Review your transition conditions Edges connect nodes and define transition conditions between them. [(1) ]() Even if nodes appear connected visually, the transition condition may not be triggering correctly. Ensure your transition conditions precisely match your intended triggers. [(2) ]() 2. Split complex nodes If a node contains instructions to collect multiple pieces of information, the agent might inconsistently follow them. Consider splitting into separate nodes—for example, one node for asking about projects, then a separate node for collecting referral information. 3. Add transition fine-tune examples If the agent isn't transitioning to the expected node, add transition fine-tune examples to help the model understand your expectations. 4. Check if the conversation flow matches your graph When users deviate from the defined flow (like saying they don't have a project) , the actual conversation may not match your flow graph. Consider: - Adding key steps as global nodes to allow users to skip or jump between nodes - Making node instructions more flexible 5. Use the LLM Playground Debug tools Use the debug flow to see what's going wrong, then apply fixes like adjusting LLM temperature or adding fine-tune examples. [(3) ]() Specific troubleshooting for your case: Since the skip happens after the user says they don't have an upcoming project, your transition condition on that edge may be too broad or the model is interpreting the "no project" response as a signal to skip ahead. Try m
aking the transition condition more explicit about when to proceed to the referral node versus when to skip it.
​ To learn more, see the sources I considered: [[1] Retell AI’s Advanced Conversation Flow | Retell AI](https://www.retellai.com/blog/unlocking-complex-interactions-with-retell-ais-conversation-flow) [[2] Debug guide](https://docs.retellai.com/build/conversation-flow/debug-guide) [[3] Tools not being triggered](https://community.retellai.com/t/tools-not-being-triggered/201) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
o
@AI Evy for the batch calling scheduling , what time zone is it assuming i am in ?
a
Thanks for the follow-up, @optimystic. I'll get back to you soon.
### Answer When creating a batch call, the
call_time_window
parameter allows you to specify your timezone explicitly. [(1) ]() How timezone works: The
call_time_window
object includes a timezone field where you define the specific timezone for your calling windows. Each window is a half-open interval
[startMin, endMin)
in minutes since 00:00 local time based on the timezone you specify. In the dashboard: When configuring batch calls via the UI, you can open the configuration modal to define the batch call time windows, which includes setting your timezone. [(2) ]() Key points: - You must explicitly set your timezone in the
call_time_window
configuration - The system does not assume a default timezone—you specify it (e.g.,
America/Los_Angeles
,
America/New_York
, etc.) - Cross-midnight windows are NOT allowed (must satisfy startMin < endMin) [(1) ]() -
endMin = 1440
(24:00) is valid If you're scheduling via the
trigger_timestamp
parameter without a
call_time_window
, that timestamp is represented as a Unix timestamp in milliseconds, which is timezone-agnostic (UTC-based) .
​ To learn more, see the sources I considered: [[1] Create Batch Call](https://docs.retellai.com/api-references/create-batch-call) [[2] Create Batch calls](https://docs.retellai.com/deploy/make-batch-call) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
o
@AI Evy im trying to create a batch call and got a error (Country is not in the allowed outbound country list for this phone number)
a
Thanks for the follow-up, @optimystic. I'll get back to you soon.
### Answer This error means your phone number's
allowed_outbound_country_list
doesn't include the country you're trying to call. [(1) ]() How to fix it: 1. Navigate to Phone Numbers in your Retell dashboard 2. Click on the phone number you're using for batch calls 3. Under Allowed Outbound Countries, add the countries you need to call Changes are saved automatically. Via API, you can update this using:
Copy code
curl -X PATCH "<https://api.retellai.com/update-phone-number/+14155551234%22> \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "allowed_outbound_country_list": ["US", "CA"]
  }'
Use ISO 3166-1 alpha-2 country codes (e.g., "US" for United States, "CA" for Canada) . Quick workaround: One community member resolved a similar issue by temporarily setting all countries as allowed, which worked immediately. [(2) ]() Important: If
allowed_outbound_country_list
is
null
or empty, calls to all countries are allowed by default. [(3) ]() However, if it contains a specific list and your destination country isn't included, you'll get this error. [(4) ]() Also verify your phone numbers in the CSV are in proper E.164 format (
+1XXXXXXXXXX
for US) with no dashes or spaces.
​ To learn more, see the sources I considered: [[1] Fraud Protection](https://docs.retellai.com/reliability/fraud-protection) [[2] Batch Calling Not Working](https://discord.com/channels/1186424376300679209/1455597262649561272) [[3] List Phone Numbers](https://docs.retellai.com/api-references/list-phone-numbers) [[4] Outbound batch call error for US numbers despite valid E.164 formatting](https://community.retellai.com/t/outbound-batch-call-error-for-us-numbers-despite-valid-e-164-formatting/332) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
o
@AI Evy i tried adding just us and canada and verified that via the get phone number api endpoint.... still didnt work... then tried removing those to allow all countries, that didn't work either and now i get the error Call country not supported: KY, +13456805080
a
Thanks for the follow-up, @optimystic. I'll get back to you soon.
### Answer The error "Call country not supported: KY" indicates the issue is with the destination number, not your outbound country settings. [(1) ]() The phone number
+13456805080
has country code
+1345
, which is the *Cayman Islands (KY) *, not the United States. [(2) ]() While it starts with
+1
, the
345
area code belongs to the Cayman Islands. Why your settings didn't help: Your
allowed_outbound_country_list
controls which countries you're allowed to call, but this error suggests the Cayman Islands may not be supported by Retell's telephony providers at all—regardless of your allowlist configuration. What to check: 1. Verify the destination numbers in your batch call CSV are actually US numbers (area codes like 201, 212, 415, etc.) rather than Caribbean nations that share the +1 country code 2. Common +1 country codes that are NOT US: - +1345 = Cayman Islands (KY) - +1876 = Jamaica - +1246 = Barbados - +1809/829/849 = Dominican Republic Next steps: If you need to call Cayman Islands numbers specifically, this may require contacting Retell support to confirm whether KY is a supported destination. For your batch calls to US numbers, ensure none of your CSV entries accidentally contain Caribbean area codes.
​ To learn more, see the sources I considered: [[1] Fraud Protection](https://docs.retellai.com/reliability/fraud-protection) [[2] Outbound batch call error for US numbers despite valid E.164 formatting](https://community.retellai.com/t/outbound-batch-call-error-for-us-numbers-despite-valid-e-164-formatting/332) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.