Skip to main content

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:

  1. one editable draft;
  2. one published version;
  3. a visual editor where you add blocks and connect branches;
  4. a publish action that locks in the live version for incoming calls.
Important

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:

  1. Answer to start the call flow;
  2. Audio to play a sound file;
  3. Menu for DTMF keypad navigation;
  4. Transfer to route to an extension;
  5. Queue to send the call to a group of operators;
  6. Time to branch between business hours and after-hours;
  7. Voicemail to record a caller's message;
  8. Hangup to end the call;
  9. Webhook for a simple call to an external URL;
  10. HTTP Request with configurable method, URL, headers, body, and timeout;
  11. Rating to collect a post-call DTMF rating on a 1-5 scale.

How to Build a Minimal Production Scenario​

The simplest working IVR typically looks like this:

  1. Answer;
  2. Audio playing a welcome greeting;
  3. Menu with options 1 and 2;
  4. Transfer or Queue depending on the caller's selection;
  5. 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:

  1. click a block in the palette to add it to the canvas;
  2. edit the selected block's properties in the side panel;
  3. delete any selected block or connection explicitly;
  4. deleting a block also removes its incoming and outgoing connections;
  5. self-loops (connecting a block to itself) are not allowed;
  6. cycles between blocks are not allowed;
  7. a single output port on a block can connect to only one target.
Check

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:

  1. create or edit the scenario in the visual editor;
  2. save the draft;
  3. optionally open the configuration preview;
  4. publish the scenario;
  5. 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.

Check

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:

  1. set the start and end hours;
  2. specify the days of the week in ISO format;
  3. connect both the Work (open) and Off (closed) outputs to appropriate actions.

Examples:

  1. 1-5 means Monday through Friday;
  2. 6,7 means Saturday and Sunday;
  3. 1,3,5 means Monday, Wednesday, and Friday only.
Tip

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:

  1. an audio prompt with clear instructions;
  2. branches for each announced digit;
  3. a fallback branch for timeouts and invalid key presses;
  4. a live test call from both a mobile phone and the softphone.
Tip

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:

  1. the scenario name is empty;
  2. there are no blocks on the canvas;
  3. a Transfer or Voicemail block references an empty or non-existent extension;
  4. a Queue block references an empty or non-existent queue;
  5. a Webhook or HTTP Request block has no URL configured;
  6. a Menu block has no digit branches connected;
  7. a Time block has no routing branches connected;
  8. a Time block has a start time later than its end time;
  9. the graph contains a cycle;
  10. a single output port connects to multiple targets.

What to Prepare in Advance​

For a smooth IVR setup, prepare the following beforehand:

  1. welcome greeting audio;
  2. clear menu prompt instructions;
  3. an after-hours audio message;
  4. fallback handling logic;
  5. target extensions and queues that are already created and active.

How to Test an IVR Before Launch​

Use this quick pre-launch checklist:

  1. save the draft;
  2. inspect the flow in preview if the scenario is complex;
  3. publish the scenario;
  4. assign it to the target DID;
  5. place a test inbound call;
  6. test every digit branch;
  7. verify both working-hours and after-hours routing if you use a Time block;
  8. confirm that calls reach the intended extension, queue, or voicemail;
  9. 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:

  1. whether branches 1, 2, and other expected digits are connected;
  2. whether your phone or softphone is actually sending DTMF tones;
  3. whether the target extensions and queues exist;
  4. 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:

  1. the target extension no longer exists;
  2. the target queue is inactive or has no available agents;
  3. recent changes were saved as a draft but never published;
  4. only one branch of a Time block 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.

Before launching your IVR live
  1. all blocks and branches are clear to your team;
  2. audio prompts have been tested on a real phone call;
  3. the draft is saved and the production version is published;
  4. the DID is routed to this specific IVR;
  5. every transition leads to an existing, active target;
  6. 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.