IVR node types
The IVR builder ships the node types listed below. Every call begins at the Incoming Call entry point and walks the flow you design until it hits a terminal node (Hang Up or Voicemail) or is routed out (Send to Queue, Transfer, Send to AI Agent).
Nodes are grouped in the palette into three categories. Incoming Call is auto-added to every flow and is not shown in the palette.
Entry point
- Incoming Call — The entry point of every flow. Auto-added; cannot be removed. The first node connected to its output is the first thing the caller experiences.
Actions
- Say Message — Speaks a text message via TTS in the configured language and voice.
- Play Audio — Plays a pre-recorded audio file you’ve uploaded. Use this for professional greetings and brand-critical messages.
- Gather Input — Collects keypad input (DTMF) or speech from the caller. Each digit can route to a different next node.
- Language Selection — Presents the caller with a language menu and sets the call’s language for the rest of the flow.
- API Call — Makes an HTTP request to a URL you specify, mid-flow. Use the response to drive a downstream Condition or Switch.
- Send SMS — Sends an SMS to the caller during or after the call. Requires the SMS channel to be configured.
Routing
- Send to Queue — Routes the call into one of your call queues. The caller hears the queue’s hold audio while waiting for an agent.
- Callback Queue — Offers the caller a callback instead of waiting. They hang up, keep their place, and the system calls back when an agent is free.
- Is Open — Branches the flow based on whether you’re inside business hours per your Opening Hours configuration.
- Returning Customer — Branches based on whether the caller’s number is associated with an existing recent conversation.
- Condition — If/else branching on a variable you’ve set or an API response from earlier in the flow.
- Switch — Multi-way branching from a single variable. Like a switch statement.
- Route to Channel — Hands the call off to another phone number’s IVR flow — used to share sub-flows across numbers or implement language-specific entry points.
- Transfer — Transfers the call to an external phone number, outside Atender.
- AI Agent — Hands the call off to an AI voice agent (an Agent Stack with voice enabled). The agent runs the conversation autonomously and can escalate back to a queue if it chooses. Requires the
ai_voice_agentfeature to be enabled.
Terminals
- Hang Up — Ends the call. Use after a “Goodbye” Say Message or as a clean exit from a closed-hours branch.
- Voicemail — Records the caller’s message, drops it as a conversation in your inbox, and ends the call.
How nodes connect
Each node has a single input and one or more outputs:
- Actions have a single output — the call proceeds linearly.
- Gather Input has one output per configured digit, plus a no-input output.
- Is Open has two outputs: Open and Closed.
- Returning Customer has two outputs: Returning and New.
- Condition has two outputs: True and False.
- Switch has one output per configured case, plus a default output.
- Routing nodes (Send to Queue, Callback Queue, Transfer, AI Agent, Route to Channel) end the flow for that call — control passes out of the IVR.
- Terminals (Hang Up, Voicemail) end the call.
Flow validation
Before you can save a flow, the builder validates the structure. Common errors:
- A node has no incoming connection (unreachable).
- A required output is unconnected (e.g., Gather Input’s no-input branch).
- A Send to Queue node references a queue that no longer exists.
- The flow has no path to any terminal — the call would loop forever.
Fix the errors highlighted on the canvas, then save.