- Audio-input IVR accepts spoken responses. Your agent handles these through normal prompting, with no tool needed.
- DTMF-input IVR requires keypad presses. This is what the Press Digit tool is for.
When to use it
Add the Press Digit tool when a single-prompt or multi-prompt voice agent places outbound calls that pass through DTMF phone menus, such as reaching a scheduling line, entering an extension or account number, or navigating a partner’s support tree to a live rep. Reach for a different feature when:- You’re building a conversation flow agent. Use the Press Digit Node instead, which handles IVR navigation as a dedicated node with its own transitions.
- You want to capture digits the caller presses, like a PIN or menu choice, rather than press digits yourself. See Capture DTMF input from user.
- You just want the agent to hang up when it hits an IVR instead of navigating it. See IVR hangup.
2, enters the patient’s member ID when prompted, and reaches a claims rep without a human ever dialing in.
Steps
Add the Press Digit tool

Configure the Press Digit tool before saving it.
Add navigation prompts
1234# for an extension, using the keys 0–9, *, and #.Add interaction rules
Extract IVR post-call data (optional)

Use Add in Post call extraction to define your IVR fields.
hit_ivr (boolean)
hit_ivr (boolean)
reached_human (boolean)
reached_human (boolean)
ivr_loop (boolean)
ivr_loop (boolean)
ivr_type (enum)
ivr_type (enum)
none | basic_menu | speech_ivr | voicemail_greeting_only | after_hours_message_onlyClassify the type of automated system encountered:- none: no automation, human answered directly
- basic_menu: “press 1/2/3” style DTMF menu
- speech_ivr: system asks spoken questions like “tell me why you’re calling” and responds conversationally
- voicemail_greeting_only: immediately reached voicemail greeting/leave-a-message flow (no menus)
- after_hours_message_only: only an after-hours closed message (may mention hours), without offering routing to staff
ivr_outcome (enum)
ivr_outcome (enum)
reached_human | left_voicemail | hung_up | blocked_by_ivr | callback_required | transferred | ivr_loop_detected | invalid_extension | after_hours_info_onlyWhat was the final outcome of the IVR/automated navigation portion of the call?- reached_human: successfully got to a human
- left_voicemail: reached voicemail and a message was left or the voicemail prompt occurred as the end state
- hung_up: call ended before any resolution (caller or system disconnected)
- blocked_by_ivr: could not proceed due to IVR requirements or no matching menu option
- callback_required: system instructed to call back later or offered callback as the only option
- transferred: IVR transferred to a line/department (even if later hold)
- ivr_loop_detected: looping prevented progress
- invalid_extension: extension entry failed (invalid/not recognized)
- after_hours_info_only: ended at after-hours info message with no human reached
ivr_steps_count (number)
ivr_steps_count (number)
ivr_retries_count (number)
ivr_retries_count (number)
ivr_path (text)
ivr_path (text)
Main Menu > Providers > Authorizations > Holdivr_notes (short text)
ivr_notes (short text)
ivr_tree_text (multiline text)
ivr_tree_text (multiline text)
N. Prompt: "<summary>" | Action: "<pressed/said>" | Result: "<next state>".Include only steps that occurred.Test your configuration
- Placing an outbound call to a number with a real IVR, or
- Calling yourself and mimicking an IVR by saying phrases like “Press 1 for customer service.”
Using a custom LLM
If you run your own LLM instead of Retell LLM, you don’t add the Press Digit tool. Instead, setdigit_to_press on your response in the LLM WebSocket protocol, and Retell sends the DTMF tones after the associated content finishes. Have the agent stay silent for that response so it doesn’t speak while pressing. See function calling for a custom LLM for a worked example.
FAQ
Can I hardcode which digit the agent presses?
Can I hardcode which digit the agent presses?
Press 1 to reach the support department.Which keys can the agent press?
Which keys can the agent press?
0–9, *, and #. You can send a single key or a sequence in one press, such as an extension like 1234#.Related
- Press Digit Node: the equivalent for conversation flow agents.
- Capture DTMF input from user: accept keypad input from the caller.
- Handle voicemail and IVR: detect voicemails and IVRs, or hang up automatically.
- Function calling: the full set of tools you can add to an agent.

