IVR Script Types
Author Image

By: Aivis Olsteins

In News


Writing an IVR Script

Interactive Voice Systems are driven by scripts - a set of instructions which determine its behaviour.

The obvious advantage of Interactive Voice Response (IVR) system is its flexibility. They can be adapted for specific requirement, be it a call center, auto attendant, information service or anything else. To achieve that, IVR systems use scripts - small programs which are meant to automate some task. They are attached to the phone lines of incoming calls in CTI systems, and take over control whenever call arrives.

Traditionally, when touch tone (DTMF) was the main (or wven they only) way for user to interact with the system, the general pattern of IVR script was a tree-like multilevel menu: 


The logic of such a script is very simple:

  1. At the start system plays welcome message along with list of choices and promts user to make a selection;
  2. User presses the key;
  3. System moves down the branch, plays next message, lists choices and promts user to make a selection;
  4. User presses the key;
  5. Repeat steps 3 to 4 until goal is achieved.

This structure is easy to understand and serves most of the simple cases. It can even have option to move back up the tree by pressing some predefined key.

However, it is difficult or close to impossible to apply it in more complex cases.  One example is a shopping cart scenario where user can select from the list of items, add them to their shopping cart, and then repeat it over again for many times. Then the structure of the script looks more like this:


The logic of this script is:

  1. Play welcome message;
  2. Preceed into tree-like structure with series of choices, similar like in tree-only scripts;
  3. Ask if user wants to repeat;
  4. If yes, repeat steps 2-3 again;
  5. Finalize.

This script type has a property which the tree-only type does not have: loops. It has much more flexibility and only these scripts can truly be called "scripts": they actually resemble scripts of real life  programming language. Really, you can write it programmatically like this:

play("welcome message");
ready_to_checkout = false;
while (ready_to_checkout == false) {
  play("select an item");
  play("select quantity");
  play("ready to checkout?");
  ready_to_checkout = get_users_choice();



The while() loop wraps most part of the script here.

In pseudo-language of IVR Builder we display loop as a wrapping block around those items included in the sequence. That shows which blocks need to be repeated:




Leave a comment
About Author
Author Image
My name is Aivis Olsteins and I am owner of DataTechLabs. My experience in Telecoms started in early 1990's and I have worked in multiple technical positions in mobile, messaging and data networks. My expertise lies in telecom networks, database systems, distributed processing and large data analysis. These posts are my attempt to share my knowledge with everyone who might find it useful.

Get in Touch

If you have something to say, please use the contact form below to get in touch with us. We will get back to you as soon as possible.

Mail Us

DataTechLabs SIA, Muzikas str 12A
Jurmala, LV-2008, Latvia.

Call Us

+371 67 66 09 01
+ 1 202 499 1550

E-mail Us