Category Archives: UCCX

{uccx scripting: db get data}

In this follow up post to DB integration in UCCX, we’re finally going to attempt to get our hands dirty..First we’ll start easy and pull out a simple set of data from a single table with an easy sql statement. I also want to utilize the Java Array type in order to hopefully dispel any intimidation you might have toward this object (variable). And lastly, I’m going to write some equivalent Java code around JDBC that does away with the built-in Cisco steps to “open” your mind to the fact that although Cisco has a specific step for something doesn’t necessary require you to use it..(this will obviously be geared to those of you out there with some programming experience..whether it is C, python, perl, php, etc).
Continue reading

{uccx scripting: db subsystem setup}

When I last left you in regards to ‘UCCX DB Integration’ I was talking about the tools that help aid you when you have a project that calls for you to interact with an external DataBase within a UCCX Script. Ok, it has been over 2 months and I still haven’t posted a part 2 in this “sql” series. Last week a friend asked me to help get him started with integrating with an MS SQL Server because as he said it..’it has been a while since I last did this.’

Product: UCCX 8.x + with Premium License, MS SQL Server 2000
Scenario: You need to interact with a MS SQL Server.

Most of this post is going to be in screenshots..at this point there will not be any code (that I leave behind)..as I’m just going to focus on setting up the DB Subsystem and testing the DB Connection from there.. and from the tool I use, which I previously introduced, called RazorSQL. Let’s get started:
Continue reading

{uccx scripting: write xml doc w/o keyword transform step}

This post was inspired by a conversation on the Cisco Technical Support Forums that was originally pinned in 2007 (fwiw I was still in the US Army then).

Can I write an xml document other than using the template file and keyword tranform step?
I have too many values (1000+) to transform, it would take too long to enter them manually in the keyword transform step…

Continue reading

{uccx scripting: after hours transfer automation}

Product: UCCX 8.x + with Enhanced License or better
Scenario: During after hours, you want to have the ability to automate the process of assigning the Representative who will answer the calls. The rotation occurs every week; the on call assignment/duration is MON-SUN.
Problem: I’m quoting someone who commented on a potential method of setting up an automated way of doing this: “You are right but it doesn’t work the way I’m thinking. Such as an on-call rotation. Still need to Manually hit a button.” What I’m demonstrating here solves that very statement…but with UCCX…
Disclaimer: There are a few other ways to do what I’m about to demonstrate, which have in fact been demonstrated on the Cisco technical support forums..If you use this script you use with limited support, but I do love to answer questions especially when it involves solving a puzzle..Obviously if this script isn’t abstracted enough for your use and you don’t understand that IF Step(you will come to see shortly 🙂 then you may find yourself in trouble if you use this.
Continue reading

{uccx tips & tricks: more dates part 2}

Product: UCCX 8.x + with Enhanced License or better
Scenario: For whatever reason, you want to have the ability as a script writer to get Today’s Date (that’s easy enough), Yesterday’s Date, and Tomorrow’s Date then we will Create Generated Date Prompts out of them that only play Month Day and not the Year.
Tip/Trick: Demonstrating the power of the Expression Editor when using a bit of Java code to get stuff done. (This could be said of a lot of the tip/tricks I like to write).
Disclaimer: There are a few other ways to do what I’m about to demonstrate, which have in fact been demonstrated on the Cisco technical support forums..
Continue reading

{ccx script tips & tricks: agent rna => vm}

Product: UCCX version 8.x-10.x (but probably applies to 7.x and below as well)
Scenario: A call is transferred to an Agent, but the Agent does not answer the call so a Ring-No-Answer condition occurs which sends the call back into the CCX Script for processing. The call center supervisor wants all conditions that Match this Scenario to transfer the calls to a general delivery mailbox.
Problem: Number 1: If the UCCX System Parameter for Agent RNA automatically returns an Agent to READY, then the call could get stuck in a loop with the same “unavailable” Agent continuously. Number 2: Our customer’s requirement is asking that after an Agent RNA All Calls “Automatically” Transfer to a General Delivery Mailbox for the Group.

Hope that isn’t confusing. Ultimately, this post will spawn 2 videos. From a verbiage standpoint, I think this will be fairly brief however. The first order of business with the Select Resource Step is to ensure that it doesn’t “Connect” as soon as an Agent becomes available (we need the spacing this causes when we do it that way), but as part of this particular setting, it does force us to create a new User variable as you can see this below as uAgent; another tip, if you didn’t already know the Timeout below is the Default RNA timeout, of course when using the step as below that timeout doesn’t work..you would have to set that timer on the Connect Step that must be added to coincide with this particular setting in the select resource step:

Continue reading

{uccx scripting tips & tricks: valid date checking}

Product: UCCX version 8.x-10.x (but probably applies to 7.x and below as well)
Scenario: A Caller is allowed to enter a date into the keypad of his/her phone (for example, a payment date, date of birth, etc); The Caller enters and Illegal Date like June 31st
Problem: If no error checking is performed and the String (Get Digit String) is converted to a Date using auto conversion of a CCX Set Step the application will throw an exception and the caller will hear the Error Message. (I may repeat this below because this is a new thing I’m adding to the tips/trick posts.)

If you are new to my blog, then you may not know that my day job is more or less as a Cisco Contact Center Express IVR application developer; you can read a small piece I wrote concerning the development of UCCX apps here. In this post of tips and tricks about developing on top of UCCX, I want to show you a method to validate a date without the potentiality of having an Exception thrown in your Application. If you’ve ever develop an IVR application, you’ve probably had some sort of Date input in your application such as a caller entering their Date of Birth, date they want to pay a bill, and/or date they want to go somewhere (think schedules for planes, trains, automobiles, and even ferries/boats). As a note, your UCCX system should have at least an Enhanced IVR Port/CCX seat license. Let’s look at an example that encounters a problem if used on the system (think of the string as been given its value when a caller entered the digits on a keypad).

String sDt = "01672014" //You are Reading Correctly
//This is a Set Step in the CCX Editor
Set date = sDt
//Unfortunately Your Caller Just Got The
//System Error Message and Can't Continue

Continue reading