cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1830
Views
0
Helpful
7
Replies

UCCX 7.0 Script - Record IVR Options in Script

dmurthy74
Level 1
Level 1

HI,

     I have to come up with a design using the UCCX scripting to meet a business requirement. The business would like to capture all the different menu options the caller presses before he reaches an agent. For example, Main menu will have - "press 1 for English, 2 for Spanish".When caller opts for 1, menu 2 plays as "press 1 for employee,2 for manager". assume the caller opts 1 and reaches an agent. The business would like to know that the caller entered 1,1 and reached an agent. What would be the most efficient way to design this? I do use an external database to write some other call information but using the same approach for writing each and every IVR option might be an overkill and might lead to some performance issue due to the repeated DB writes. Is there any alternative approach this?

Thanks,

Deepa

2 Accepted Solutions

Accepted Solutions

Anthony Holloway
Cisco Employee
Cisco Employee

Instead of writing to the DB everytime a menu choise is made, you could buffer the menu selections in a String variable, and then write it one time, at the end of the call.  You'll probably need the Exception handler for Contact Inactive to make that work effectively.

Otherwise, you could store the menu selections in a custom call variable, which is well suited for this type of data storage.  You use the Set Enterprise Info step for that.  Also, you can take the same approach as above, and buffer DTMF until the end of the script, for a single write.

View solution in original post

How do I acheive using a string variable across multiple sctipts.

If you're calling them as subflows you can pass the variable back into the parent script (see the parameters of the Call Subflow step). When you pass it back, you would need to pass it to a temporary String variable and then append that to the real variable.

If you're passing the call between multiple applications using a Call Redirect or Trigger Application step, you can use a session to store the String variable. At the beginning of the next application you could pull the String variable into the script from the session.

Just remember that the custom call variables are limited to 40 characters in the database.

View solution in original post

7 Replies 7

Anthony Holloway
Cisco Employee
Cisco Employee

Instead of writing to the DB everytime a menu choise is made, you could buffer the menu selections in a String variable, and then write it one time, at the end of the call.  You'll probably need the Exception handler for Contact Inactive to make that work effectively.

Otherwise, you could store the menu selections in a custom call variable, which is well suited for this type of data storage.  You use the Set Enterprise Info step for that.  Also, you can take the same approach as above, and buffer DTMF until the end of the script, for a single write.

Hi Anthony,

Thanks for your response! There are situations one call spreads across a couple scripts (script 1 invokes a subflow where a certain option is pressed). A string Variable would be local to only one script. How do I acheive using a string variable across multiple sctipts.

WOuld your second alternative of using a Custom call variable achieve this purpose? If so, can you elaborate,please?

Thanks,

DM

How do I acheive using a string variable across multiple sctipts.

If you're calling them as subflows you can pass the variable back into the parent script (see the parameters of the Call Subflow step). When you pass it back, you would need to pass it to a temporary String variable and then append that to the real variable.

If you're passing the call between multiple applications using a Call Redirect or Trigger Application step, you can use a session to store the String variable. At the beginning of the next application you could pull the String variable into the script from the session.

Just remember that the custom call variables are limited to 40 characters in the database.

I kind of understood using a string variable though I have to try it out first but I still couldn't figure out the use of ECC variables for this purpose. I will not be able to use any of the call variables (1 to 10) since they are used up for different purporses already. So, I wanted look into the ECC option. I did the following in the Main.aef

Declared a variable called MenuOptions.

When caller presses 1, set MenuOptions='1'

Then, setEnterpriseCallInfo to set this MenuOptions value to the user.MenuOptions ECC variable in the properties of this step.

But how do I use this variable in the subflows that this main script invokes or if the call traverses Applciations? Also, since this is a ECC variable, this will not get reflected in the HRC reports. So, I need to write it to an external DB. If so, How do you write custom call variables, espl in this case, into a DB?

I guess I need a little more clarity on how to accomplish this design. 

It's on the first tab in the Set Enterprise Info step, and the 10 fields look something like this:

--Call.Variable.1--

--Call.Variable.2--

etc.

Then in HRC, you run a Call Custom Variable report.

Hi,

     I think I did not explain well in my previous post. In the current environment, I have run out of all the 10 Call.Variables and hence will have to use the Expanded Call Variables (using the second tab in the setEnterpriseCallInfo step). Hence, I will not be able to use the CustomCall Variables report in the HRC. So, I am not sure how to write these IVR options in a report form. I was thinking of writing this variable into a DB.

Secondly, I am still not clear on how this call variables (ECC variables in my case) will remain active across applications or subflows. Assume, a call travereses from script1 that plays Menu1 and then traveresed to Script2 that has Menu2. Do the value/content of these Call Variables behave like Global Variables in Java or other programming languages?

Hope I was able to explain it better this time:)

Thanks again,

Deepa

The enterprise variables you create/store with the set enterprise info step, follow the contact through the call center.  Hence, you set the variables for a specific contact, in the default case, it's the Triggering Contact.

So, if you are using that means as a way to track and follow the caller around through the call center scripts, then write the values to an external DB, that should work.  Knowing when to write to the DB might be tricky, with all the layers.  By the way, are your scripts written like the story line of Inception?