You are here: For Administrators > Additional IVR Variables

IVR Improvements

In this release, Virtual Contact Center introduces significant improvements to the IVR scripting capabilities. The following new objects are added:

Set Variable

The ability to set variables allows programming abilities within IVR scripts enabling better caller experience. You can use variables to remember the user input and use them to drive the call flow. You can create variables to store values of string and number types, reference them anywhere and any number of times in the script.

Virtual Contact Center allows two types of variables in IVR:

System Variables

These are pre-defined variables which cannot be edited.

User Defined Variables

These are variables defined by users. You can initialize these variables with a certain value and modify them later.

To access these objects:

  1. Log into Configuration Manager.
  2. Go to Scripts.
  3. Add a new script for phone channel.
  4. Select a node and the ADD link.
  5. From the drop-down menu of objects, select Set Variable.
  6. Enter a name to indicate the use of the object.
  7. Select a pre-defined variable from the drop-down list or create a new variable.
  8. Select a value for the variable and save.

How do I create a new variable?

  1. To create a new variable, click Add new link in the Set Variable Insert object dialog box.
  2. Enter a variable name. You must begin the variable name with an underscore.
  3. Select the data type. It can be String, Number, or String/Number type.
  4. Click OK to save.

Test Variable

The Test Variable object allows you to test an already defined variable and test it against a set value. To test a variable, select either a system variable or a user-defined variable, test it against a specific value. For example, test how many calls are ahead of a call using the system variable $QueuePosition. If there are more than ten calls ahead of this call, announce the position to the caller, and offer the caller to receive a call back. If there are fewer than 10 calls ahead of this call, continue the caller in the queue.

To access the Test Variable object within the script, click Add next to a node and select the Test Variable object from the Insert Object list.


The Randomize object allows us to randomly pick callers and offer a different treatment from the regular. For example, in a customer survey program, you may want to randomly select 50% of callers, direct them to a survey. You will need to use the randomize object that randomly picks callers and offers a specific treatment based on the path chosen.

Use Cases

We have discussed a few sample use cases that demonstrate the use of variables in IVR scripts.

Use Case 1: Reward Callers Based on Language Selection

In this use case, a company serving language enthusiasts is running a campaign to reward its customers. The objective is to identify the language spoken by callers and offer them a suitable reward. For callers speaking in English,offer a language kit to learn French. For callers speaking in French, offer a language kit to learn English. The call flow is driven by the language selection of the caller. Callers are prompted to select a language in the IVR, then the system stores their language selection in a variable, and uses it for further treatment.

Use Case 2: Determine the Queue Position of a Caller and Offer Suitable Choices

In this use case, we want to offer callers suitable choices based on the queue position. While callers are informed of their queue position, we offer them choices for further action.

The following script demonstrates how you can use the test variable object to accomplish the desired result.

Use Case 3: Get Valid Agent Scoring from Customers

In this use case, the objective is to get a valid scoring (1 to 9) for agents serving customers. The script must allow a maximum of four tries for a valid input. If the caller exceeded four tries and failed to provide a valid input, then disconnect the call. In this script, we store the number of tries in a user defined variable called Loop-Count. With each try, the user input is validated. If the caller entered an invalid input (0, *,#, and empty), then the caller is prompted for another input until the number of tries exceeds the maximum allowed. After each invalid input, the loop count is increased by 1. After the fourth try, the value of loop count is tested true and hence the call is disconnected.


Send us your Feedback