IVR Menu with Dial an Extension Option (Cisco Webex Contact Center)

Sometimes, when you develop an IVR application, there can be a challenge of adding Dial an Extension option to a voice menu; i.e you have to do something like this in your menu:

“If you want to do option1, press 1; if you want to do option2, press 2; if you know the extension number of the employee, please dial it now”

What will be the best way to approach this? In UCCE PCCE environment you can do it in your CVP Call Studio application using Form and Decision Elements. But what about Cisco Webex Contact Center? The scripting is totally different in Webex Contact Center, and there is no Activity (element) in the Call Flow similar to Form in Studio. After reading this post you will see that it is not a problem at all. 

Definitely, if we had an Activity similar to Form Studio element, it could make a solution easier. However, we can do the same logic with Collect Digits Activity and Case Activity in Webex Contact Center flow editor. it is not possible to use a standard Menu Activity here, because a Menu Activity waits just for a single digit from the caller as a choice and it doesn’t allow you to enter more than one digit. Typically extensions are several digits long, right? So a Menu Activity is not an option in this situation. 

Quite the contrary a Collect Digits Activity can be configured to receive a single digit or multiple digits, and this is exactly what we want. However, a Collect Digits Activity has only one output connector. It means that we can collect different digits, of course, but we will not be able to build a choice logic (all calls will go out with this single output and no matter what customer entered). But if we have a choice to evaluate the value of the output variable of our Collect Digit Activity and then make a decision where to send the flow, it could be a way out for us. Happily, in Webex Contact Center flow editor we have a Case activity, and we use the Case activity if there are multiple possibilities or outcomes at a certain decision point in the call flow. So, using a Collect Digit Activity followed by a Case Activity will provide the logic we want. 

Let’s see it in a sample lab script and demonstrate how these two Activities can work together:


The logic of this demo script is as follows: 

– the script plays welcome message;

– then it ask a caller to make a choice or dial extension;

– based on caller’s input the call is sent to different queues and then to the agents if 1, 2 or 0 were received;

– if the caller dials an four digits long extension, the call will be transferred to a regular phone. 

Let’s focus on the Collect Digits and Case Activities, of course. Here are the properties of the Collect Digit Activity. We use Google Text-to-Speech to generate audio prompts in our Webex Contact Center:


The configuration is quite simple here. We just set our TTS Message and the number of digits expected from the caller. In this case, as the customer can dial just a single digit, the minimum length is set to 1. And the maximum length of the sequence is set to 4 (we have four digits extensions). 

Now we can discuss the Case Activity. This Activity allows to evaluate different values (cases) against a variable or even an expression (formula) and therefore create different connections. In our scenario we will evaluate the values 1,2 or 0 against Collect4Digits.DigitsEntered variable, which includes now the caller’s input. If this variable is equal to 1, the call goes to connector 1, if it is equal to 2, the call goes to connector 2 and so on. But if it is not equal to 1,2 or 0 (so the caller entered something else like extension) the call travels via the Default connector. Here come the properties of the Case Activity:


Of course, you can contradict me and say what if the caller will dial, for example, 5? Then the call will also go to the Default connector? Yes, that’s correct. With this configuration it will be so. However, it is just a simple example for demonstration only. For more accurate operation of the Case Activity we could apply more complex values or even wildcards like this one (3… wildcard means any four digits starting from 3): 


All right, in our demo script if the caller dials an extension the call flows through the Default connector to a Blind Transfer Activity. 


The properties of our Blind Transfer are shown below. In our demo the call is transferred to the extension dialed by the caller, so this value is in the Collected4Digits.DigitsEntered variable:


That’s all, actually. Don’t forget as usual to save, validate and then publish your new or updated call flow.