In this release, 8x8 Contact Center introduces significant improvements to the IVR scripting capabilities. The following new objects are added:
- Set Variable
- Test 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.
8x8 Contact Center allows two types of variables in IVR:
These are pre-defined variables which cannot be edited.
- $QueuePosition: Returns the current position of a call within the queue.
- $callerPhoneNumber: Returns the caller's phone number based on caller ID.
- $callbackPhoneNumber: Returns the call back number input by the caller.
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:
- Log into 8x8 Configuration Manager.
- Go to Scripts.
- Add a new script for phone channel.
- Select a node and the ADD link.
- From the drop-down menu of objects, select Set Variable.
- Enter a name to indicate the use of the object.
- Select a pre-defined variable from the drop-down list or create a new variable.
- Select a value for the variable and save.
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.
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.
- If the queue position is greater than 10, offer to call back when an agent is available.
- If the queue position is less than 10, play promotional messages and retain callers in the queue.
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.