Build an IVR flow
A flow is the script your callers walk through — greeting, menu, branches, routing. You build it on a visual canvas by dragging node types from the palette and connecting them.
Before you start
- At least one phone number provisioned in Settings → Voice.
- (Recommended) A queue and a team ready to receive calls — your first flow will likely end at Send to Queue.
- A rough sketch of what the call should sound like — what greeting plays, what menu options exist, where each one goes.
Steps
- Open Settings → Voice.
- Select a phone number in the sidebar.
- Click Create Voice Flow, then click Build Your Flow on the Flow tab. The builder opens with an Incoming Call node already placed.
- Drag a node from the left palette onto the canvas — start with a Say Message node next to Incoming Call.
- Click and drag from the bottom handle of Incoming Call to the top handle of Say Message to connect them.
- Click the Say Message node to open its configuration in the right panel. Enter the greeting text — for example, “Thank you for calling Acme. We’re connecting you now.”
- Keep adding and connecting nodes until the flow describes the full call experience. Configure each node with the caller-facing wording it needs: for Gather Input, set the prompt, Try again message, and Wrong key message; for Language Selection, set the prompt, retry message, and invalid-key wording for each language callers can choose. A simple starter flow:
Incoming Call → Say Message ("Welcome") → Send to Queue (Support)
- Click Save & Publish. Saving writes the definition callers can hear, so Atender refuses any definition that cannot safely go live. If validation passes, the flow is saved; if it fails, the validation panel at the bottom of the canvas lists what’s wrong.
Common starter patterns
A few flow shapes that cover most needs:
- Direct-to-queue. Incoming Call → Say Message → Send to Queue. The simplest possible flow.
- Open/closed branch. Incoming Call → Is Open → (Open) Send to Queue / (Closed) Say Message → Voicemail. Honors your opening hours.
- Menu. Incoming Call → Say Message (“Press 1 for sales, 2 for support”) → Gather Input → (1) Send to Queue (Sales) / (2) Send to Queue (Support).
- Callback offer. Incoming Call → Say Message → Callback Queue. Skip the hold-time waiting altogether.
Verify it worked
After saving, you should see:
- The flow appears in the Flow tab with its name and a status.
- The validation panel at the bottom of the canvas reads Flow is valid.
Assign the flow to a phone number, then dial that number from your own phone. The call should reach the queue or voicemail you designed.
Validation errors and how to fix them
Saving writes the definition callers can hear, so the builder will block saving on a validation error. Warnings are listed in the same panel but do not block saving:
- (Warning) A node is not connected to the flow at all — connect it from a previous node.
- (Warning) A node has an incoming connection but no outgoing one, and is not a terminal node — connect its output to the next step.
- A Gather Input node has no branches — add at least one key branch and connect it to the next step callers should reach.
- A Language Selection key offered to callers has no matching branch — add and connect the branch for every language key in the prompt.
- A Send to Queue node references a queue that no longer exists — pick a different queue or recreate the missing one.
- A reachable prompt still uses palette template text — replace it with the real caller-facing prompt or upload a recording. Save & Publish stays disabled until every reachable Gather Input placeholder prompt is replaced; the same template text on a reachable Say Message or Returning Customer node is only a warning. Draft nodes that are orphaned or unreachable are ignored by this placeholder check.
- The flow has no terminal — every path must eventually reach Hang Up, Voicemail, or a routing exit like Send to Queue or Transfer.
Troubleshooting
-
Symptom: The flow saves, but calls land in a fallback message instead of running the flow. Fix: The flow isn’t assigned to the phone number yet. See Assign an IVR flow to a number.
-
Symptom: Your TTS message sounds wrong (wrong language, robotic voice). Fix: Check the flow’s voice and language configuration first. The first language in the flow is the primary default before callers make a language selection. If the flow has no configured languages, check the channel voice in the Voices tab. See Configure TTS voices for the full resolution order.
-
Symptom: Send to Queue dropdown is empty. Fix: You need to create a queue first. See Set up a call queue.