https://retellai.com/?utm_source=discord&utm_medium=seo logo
my agent does not properly navigate an IVR situati...
# ❓・ai-evy-support
a
@AI Evy my agent does not properly navigate an IVR situation when it is receiving an inbound call from an automated system. The system prompts the agent to "press 1 to accept call", but every time, the agent doesn't press 1, it just responds as normal. However, when I call the agent myself and play the recording of the "press 1 to accept" audio, the agent presses 1 correctly every time. - I am on flex mode but i ran my tests on both flex and rigid mode. the live agent experiencing the issues is on flex mode. - see screenshots for call logs - because its in flex mode I can't see in the Playground the order the agent is running in for the nodes Prompt in the welcome node that correctly presses 1 in my tests: - "Caller is an automated voice saying " The customer's day phone is..." or is saying: "To be connected with the customer, press one. Or say connect." Immediately transition to the next node without waiting for the caller to finish speaking." Call transcript: User 0:00 Hello. Premier Roofing and Retrofit. You have a caller. To accept the call, press one. For more options, press star. Agent 0:09 Hi this is Premiere Roofing, Jenna speaking. This call is being User 0:13 I'm sorry. I did not hear you. Detail log: 2026-03-07 16:58:18.570 call_ebee5f39daf6c062cb794381eb2 info: Starting call: call_ebee5f39daf6c062cb794381eb2 2026-03-07 16:58:19.492 call_ebee5f39daf6c062cb794381eb2 info: Transitioning from node begin (name: begin) to node start-node-1768277431196 (name: Flex Mode) 2026-03-07 16:58:19.503 call_ebee5f39daf6c062cb794381eb2 info: Webhook triggered for call_started 2026-03-07 16:58:20.226 call_ebee5f39daf6c062cb794381eb2 info: Webhook response received for call_started 2026-03-07 16:58:28.536 call_ebee5f39daf6c062cb794381eb2 info: E2E latency for this turn: 1300.00048828125 call_ebee5f39daf6c062cb794381eb2 info: Ending call: call_ebee5f39daf6c062cb794381eb2 call_ebee5f39daf6c062cb794381eb2 info: Webhook triggered for call_ended https://cdn.discordapp.com/attachments/1302816169367044149/1479982673496641556/Screenshot_2026-03-07_at_3.07.42_PM.png?ex=69ae04c6&is=69acb346&hm=7e377338a36f9cfebd1963e007e1be18a5c95336f4a7c81074700c776c838ee0& https://cdn.discordapp.com/attachments/1302816169367044149/1479982674008473754/Screenshot_2026-03-07_at_3.02.15_PM.png?ex=69ae04c6&is=69acb346&hm=a149d8cb46053f724ef49c5843d07ffc9ad2d31e8bcf6c76e616313b93483845& https://cdn.discordapp.com/attachments/1302816169367044149/1479982674364862714/Screenshot_2026-03-07_at_3.02.06_PM.png?ex=69ae04c6&is=69acb346&hm=83acdc98a5b8553ff57e6faeaa0d6750311bdef17786621bbf73077884de3a9c&
a
Thanks for tagging me @Anthony. I'll look through relevant sources and get back to you shortly.
conditions** such as: -
You've reached the scheduling department.
-
Menu repeated 3 times.
-
You've reached an after-hours or voicemail message.
4. Consider using rigid mode for the IVR navigation portion, then transition to Flex Mode for the main conversation. You can enable Flex Mode at the Component level rather than Agent level, so only specific parts of your flow use flexible navigation. [(2) ]() The reason your manual tests work but live calls fail may be due to timing differences or audio characteristics between your test recording and the actual automated system.
### Answer Based on your description, the issue is that your agent in Flex Mode is responding conversationally instead of pressing digits when receiving an inbound IVR prompt. This is a known behavioral difference between how Flex Mode and rigid mode handle IVR navigation. ## The Core Issue For IVR navigation requiring DTMF input, you should use a Press Digit Node rather than relying on prompt instructions within a regular node. [(1) ]() The Press Digit Node is specifically designed for this: "When in this node, the agent will not speak. Instead, it evaluates whether it should press a digit and determines which specific digit to press." This is critical—your agent is speaking ("Hi this is Premiere Roofing, Jenna speaking...") because it's in a regular node that allows speech, not a Press Digit Node that suppresses speech and focuses on digit evaluation. ## Flex Mode Consideration There's an important limitation with Flex Mode and IVR navigation: "Only use Prompt edge, avoid using Equation edge as LLM is really bad at interpret equation conditions." [(2) ]() Additionally, Flex Mode compiles your flow into a single prompt, which may cause the agent to prioritize conversational behavior over IVR navigation logic. ## Recommended Solution 1. Use a dedicated Press Digit Node at the start of your flow to handle the IVR acceptance before transitioning to your main conversation logic. [(1) ]() 2. **Configure detection delay**: "Some IVR systems speak slowly, so to make sure the agent does not make any decision prematurely, you can set a delay on pauses to make sure the whole IVR menu is captured. We recommend setting this to 1 second." 3. **Set clear transition
​ To learn more, see the sources I considered: [[1] Press Digit Node](https://docs.retellai.com/build/conversation-flow/press-digit-node) [[2] Flex Mode](https://docs.retellai.com/build/conversation-flow/flex-mode) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
a
@User I already have a press digit node but its after the welcome node, where i have the prompt to detect an automated message saying "press 1 to accept". Should I change the begin node to "user speaks first" and then set an IVR button press right after that before the welcome node?
@AI Evy I already have a press digit node but its after the welcome node, where i have the prompt to detect an automated message saying "press 1 to accept". Should I change the begin node to "user speaks first" and then set an IVR button press right after that before the welcome node?
a
Thanks for the follow-up, @Anthony. I'll get back to you soon.
### Answer Yes, that's the right approach. You should restructure your flow so the Press Digit Node comes first, before your welcome/greeting node. [(1) ]() Here's why your current setup isn't working: Your welcome node is speaking ("Hi this is Premiere Roofing, Jenna speaking...") before the agent has a chance to evaluate and press the digit. The Press Digit Node is designed so that "the agent will not speak. Instead, it evaluates whether it should press a digit and determines which specific digit to press." ## Recommended Flow Structure 1. Set "User speaks first" at the beginning so the IVR prompt plays first 2. Place the Press Digit Node immediately after to handle the "press 1 to accept" prompt 3. Configure the Press Digit Node with clear instructions:
Copy code
Your goal is to accept the incoming call.
Press 1 when prompted to accept or connect the call.
Listen for phrases like "press 1 to accept" or "to be connected, press one."
4. Set detection delay to 1 second to ensure the full IVR menu is captured before the agent makes a decision 5. Add transition conditions like: -
Call has been connected
or
Reached the customer
-
Call was not accepted
or
Sent to voicemail
6. Then transition to your welcome node after the IVR is successfully navigated One additional note from a community case: a user reported a similar issue where their Press Digit node wasn't working for forwarded calls. The resolution involved both simplifying the agent instructions and working with the provider on DTMF compatibility. [(2) ]()
​ To learn more, see the sources I considered: [[1] Press Digit Node](https://docs.retellai.com/build/conversation-flow/press-digit-node) [[2] Conversation Flow: forwarded calls not accepting DTMF “1” (Press Digit node)](https://discord.com/channels/1186424376300679209/1449889950781804726) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
a
@AI Evy If i set it up like you suggested, can i still use flex mode or does that endanger it to not work?
a
Thanks for the follow-up, @Anthony. I'll get back to you soon.
### Answer Yes, you can still use Flex Mode with this setup. The Press Digit Node has its own LLM setting that operates independently—you can choose a different model specifically for that node to handle the digit-press evaluation. [(1) ]() The key consideration is how you configure the Press Digit Node itself: - Set clear IVR navigation instructions so the agent knows when and what digit to press - Configure detection delay (recommended: 1 second) to ensure the full IVR menu is captured before the agent decides - Write solid transition conditions covering both success ("Reached the customer", "Call connected") and edge cases ("Menu repeated 3 times", "Reached voicemail") One potential issue to be aware of: there's a community-reported behavior where Press Digit nodes may require user speech to trigger transitions. [(2) ]() If you experience the flow stalling after the digit is pressed, this could be the cause. The workaround in that case would be to ensure your transition conditions are based on what the IVR system says after the digit press (e.g., "You are now connected") . For the rest of your flow after the IVR navigation, Flex Mode should work as expected once you've transitioned past the Press Digit Node into your conversation nodes.
​ To learn more, see the sources I considered: [[1] Press Digit Node](https://docs.retellai.com/build/conversation-flow/press-digit-node) [[2] 🚨 press_digit does not trigger node transitions — flow stalls unless user speaks](https://community.retellai.com/t/press-digit-does-not-trigger-node-transitions-flow-stalls-unless-user-speaks/627) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
a
@AI Evy i put my pause detection delay on the press digit node to 5000 ms but the agent presses 1 immediately, which then causes it to transition to the welcome node before the incoming call prompt has finished speaking.
a
Thanks for the follow-up, @Anthony. I'll get back to you soon.
2. **Check your transition conditions**—ensure they're based on what happens after the digit press (e.g., "Call has been connected" or "Reached the customer") rather than just the digit being pressed. 3. Try a more capable LLM model for the Press Digit Node specifically, as you can override the model on a per-node basis. If the issue persists after these adjustments, this may be worth reporting to Retell support with your call ID, as a community member recently reported similar unexpected behavior with Press Digit nodes. [(2) ]()
​ To learn more, see the sources I considered: [[1] Press Digit Node](https://docs.retellai.com/build/conversation-flow/press-digit-node) [[2] 🚨 press_digit does not trigger node transitions — flow stalls unless user speaks](https://community.retellai.com/t/press-digit-does-not-trigger-node-transitions-flow-stalls-unless-user-speaks/627) ​
### Answer The detection delay setting controls how long the agent waits after the IVR system stops speaking before evaluating whether to press a digit—it doesn't prevent the agent from pressing a digit immediately if it determines one is needed. [(1) ]() According to the documentation: "Some IVR systems speak slowly, so to make sure the agent does not make any decision prematurely, you can set a delay on pauses to make sure the whole IVR menu is captured." The node evaluates whether to press a digit "each time the user (IVR system) finishes speaking. This timing is also affected by the detection delay setting." ## What's Likely Happening Your agent is detecting a brief pause in the IVR audio and interpreting it as the end of speech, then immediately pressing 1. The 5000ms delay should help, but if the IVR has a natural pause before saying "press 1," the agent may be triggering prematurely. ## Suggestions 1. Refine your IVR navigation instructions to be more specific about waiting for the complete prompt. For example:
Copy code
Wait until you hear the full menu options before pressing any digit.
Only press 1 after hearing "To accept the call, press one" or similar.
Do not press any digit until the automated system has finished listing all options.
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
Thanks for the follow-up, @Anthony. I'll get back to you soon.
a
@AI Evy It is still pressing 1 too early. also I do not hear the button press. my transition condition prompt is :"You successfully pressed "1"" I also updated the press digit prompt to: "Wait until you hear the full menu options from the automated caller before pressing any digit. Only press 1 after hearing "To accept the call, press one" or similar. Do not press any digit until the automated system has finished listing all options. The entire caller sentence might sound something like "Premier Roofing and Retrofit. You have a caller. To accept the call, press one. For more options, press star."" Here's a recent transcript showing how it pressed too early: "User 0:01 Hello. Tool Invocation: press_digit 0:02 tool_call_id: 3f874a53913357db { "digit_to_press": "NO_PRESS" } Tool Result 0:02 tool_call_id: 3f874a53913357db {"status":"digit pressed"} User 0:02 Roofing Node Transition 0:02 previous node: begin new node: Press Digit (1) User 0:02 and Retrofits. You have a caller. To accept the call, press one. For more options, press star."
a
### Answer Looking at your transcript, the issue is clear: the agent is transitioning to the Press Digit node too early because it's detecting the word "Hello" as a complete utterance and immediately evaluating whether to press a digit. [(1) ]() The transcript shows: - At 0:01, the IVR says "Hello." - At 0:02, the tool invocation fires with
"digit_to_press": "NO_PRESS"
- Then the node transition happens at 0:02 - The IVR continues speaking: "Roofing and Retrofits. You have a caller. To accept the call, press one..." ## The Problem The Press Digit Node "evaluates whether it should press a digit each time the user (IVR system) finishes speaking." The IVR's "Hello." is being interpreted as a complete utterance, triggering the evaluation before the full menu plays. Your 5000ms detection delay should prevent this, but it appears the node is still triggering on that initial pause. ## Suggestions 1. Increase detection delay further or verify it's actually being applied—the behavior suggests the delay may not be taking effect as expected. 2. Your transition condition "You successfully pressed 1" may be problematic. The transcript shows
"digit_to_press": "NO_PRESS"
but the result still says
"status":"digit pressed"
. Consider rewriting the transition to be based on what the IVR says after the press, such as
"Call has been connected"
or
"Reached the customer"
. 3. **Regarding not hearing the button press**: this may be expected behavior—DTMF tones are sent as signals, not necessarily audible to you. Given the unexpected early triggering despite your 5000ms delay setting, this may warrant reaching out to Retell support with your call ID for further investigation.
​ To learn more, see the sources I considered: [[1] Press Digit Node](https://docs.retellai.com/build/conversation-flow/press-digit-node) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.