Example: Planning an IVR

Use

Plan the flow of your IVR carefully before starting the IVR editor, and make sure you know VoiceXML principles and supported VoiceXML elements. Draw a flowchart, or at least list the required steps. The following lists refer to a simple menu example Example_QueueTransfer_IVR_import.xml that you can get by contacting Sinch.

Procedure

Plan Steps of Application

Voice XML proceeds from first element to the next one unless something else is specified.

In our menu example:

  1. A call arrives to the IVR number.

  2. An audio prompt asks the caller to press 1 for the queue 1, and 2 for the queue 2.

  3. If 1 is pressed, the call is transferred to queue 1.

  4. If 2 is pressed, the call is transferred to queue 2.

  5. If the caller makes the choice that is none of the defined ones, the call returns to the menu.

  6. If the caller makes no choice, the call is disconnected.

Elements of Example Application

Find the elements that perform the planned step. If there are several similar steps, use variables and make general procedures with form elements. Defining them takes a little bit more time but they can be reused later on.

In our menu example:

  • The menu element consists of audio element that plays a prompt file, choice elements that define menu items, nomatch that defines what happens when the caller returns a wrong DTMF, and noinput that defines what happens when the caller does not make any choice. Both nomatch and noinput require own child elements like goto and exit.

  • The global var element defines the variable for queue number, and its value is defined in a form where there are two block elements for assigning the queue numbers for each two choices.

  • The second form includes the actual transfer element.