IVR Scenarios and Publishing
An IVR in 4phone is a visual call flow built from connected blocks and published to live production routing. With an IVR, you can greet callers, play audio prompts, collect key presses (DTMF), transfer calls to extensions, route callers into queues, branch by business hours, and call external HTTP services.
How the Workflow Works
Every IVR scenario has:
- one editable draft;
- one published version;
- a visual editor where you add blocks and connect branches;
- a publish action that locks in the live version for incoming calls.
Saving a draft does not affect live call routing. Incoming calls always execute the published version of the scenario.
Available Blocks
The visual editor provides the following blocks:
Answerto start the call flow;Audioto play a sound file;Menufor DTMF keypad navigation;Transferto route to an extension;Queueto send the call to a group of operators;Timeto branch between business hours and after-hours;Voicemailto record a caller's message;Hangupto end the call;Webhookfor a simple call to an external URL;HTTP Requestwith configurable method, URL, headers, body, and timeout;Ratingto collect a post-call DTMF rating on a1-5scale.
How to Build a Minimal Production Scenario
The simplest working IVR typically looks like this:
Answer;Audioplaying a welcome greeting;Menuwith options1and2;TransferorQueuedepending on the caller's selection;- a fallback branch in case the caller presses nothing or enters an invalid digit.
Key Rules of the Visual Editor
The editor operates as a directed graph:
- click a block in the palette to add it to the canvas;
- edit the selected block's properties in the side panel;
- delete any selected block or connection explicitly;
- deleting a block also removes its incoming and outgoing connections;
- self-loops (connecting a block to itself) are not allowed;
- cycles between blocks are not allowed;
- a single output port on a block can connect to only one target.
If you connect the same output port to two different targets, the scenario will fail validation and cannot be published.
Draft, Preview, and Publishing
The standard lifecycle looks like this:
- create or edit the scenario in the visual editor;
- save the draft;
- optionally open the configuration preview;
- publish the scenario;
- after publishing, verify the DID assignment and place a test call.
Preview is helpful when you want to verify that all transitions are wired properly before switching over your live call flow.
When Publishing Is Required
Publishing is mandatory whenever you want your scenario or recent edits to handle live calls.
DID routing only uses published IVR scenarios. If you save a draft without publishing it, incoming calls will continue using the previously published version.
How the Time Block Works
The Time block splits incoming calls into working-hours and after-hours branches.
To configure it properly:
- set the start and end hours;
- specify the days of the week in ISO format;
- connect both the
Work(open) andOff(closed) outputs to appropriate actions.
Examples:
1-5means Monday through Friday;6,7means Saturday and Sunday;1,3,5means Monday, Wednesday, and Friday only.
The days-of-week field uses ISO numbering: 1 = Mon, 7 = Sun. For a standard Monday-to-Friday workweek, enter 1-5.
Best Practices for Menus and DTMF
A Menu block must have at least one DTMF digit branch. In practice, always include:
- an audio prompt with clear instructions;
- branches for each announced digit;
- a fallback branch for timeouts and invalid key presses;
- a live test call from both a mobile phone and the softphone.
Make sure your team knows how to send DTMF tones from the softphone using the in-call dialpad during an active call.
Pre-Publish Validation Checks
Before publishing, the platform validates both the graph structure and the readiness of referenced targets.
A scenario will be rejected from publishing if:
- the scenario name is empty;
- there are no blocks on the canvas;
- a
TransferorVoicemailblock references an empty or non-existent extension; - a
Queueblock references an empty or non-existent queue; - a
WebhookorHTTP Requestblock has no URL configured; - a
Menublock has no digit branches connected; - a
Timeblock has no routing branches connected; - a
Timeblock has a start time later than its end time; - the graph contains a cycle;
- a single output port connects to multiple targets.
What to Prepare in Advance
For a smooth IVR setup, prepare the following beforehand:
- welcome greeting audio;
- clear menu prompt instructions;
- an after-hours audio message;
- fallback handling logic;
- target extensions and queues that are already created and active.
How to Test an IVR Before Launch
Use this quick pre-launch checklist:
- save the draft;
- inspect the flow in preview if the scenario is complex;
- publish the scenario;
- assign it to the target DID;
- place a test inbound call;
- test every digit branch;
- verify both working-hours and after-hours routing if you use a
Timeblock; - confirm that calls reach the intended extension, queue, or voicemail;
- if call recording matters for this flow, verify that a recording appears after completing the test call.
Common Issues
The IVR is in the list, but the DID does not run the new scenario
Usually, the scenario was saved only as a draft and not published, or the DID route is still pointing to a different target.
The menu plays, but pressing a digit does nothing
Check:
- whether branches
1,2, and other expected digits are connected; - whether your phone or softphone is actually sending DTMF tones;
- whether the target extensions and queues exist;
- whether the call is timing out into the fallback branch.
The call drops or gets lost after the IVR
Most often, the issue lies in the target destination:
- the target extension no longer exists;
- the target queue is inactive or has no available agents;
- recent changes were saved as a draft but never published;
- only one branch of a
Timeblock is connected, leaving the other branch unhandled.
The Time block triggers on the wrong days
Almost always, this is due to the Days of Week format. Use ISO numbering and double-check that 1 represents Monday, not Sunday.
- all blocks and branches are clear to your team;
- audio prompts have been tested on a real phone call;
- the draft is saved and the production version is published;
- the DID is routed to this specific IVR;
- every transition leads to an existing, active target;
- DTMF navigation, business hours schedules, and fallback branches have been tested.
Next, it is helpful to open How to Configure a DID Number and Route, Call Queues and Agent Assignment, How to Use the Softphone, and Call Recordings and Quality Control.