Writing changes to UCCX DB_CRS for Agent Competence Levels

Answered Question
Dec 18th, 2009

My company asked me to look into the viability of writing a customized application of some sort that automatically changes Agent Competence Levels by writing the changes directly to the UCCX database. We recently installed UCCX 7.0 and one of the features/functions that we actually miss from our old Nortel switch was the ability to do this. We would adjust Agent CSQ Competencies every day at 6am and then again at 6pm. This would also allow our management team to adjust skill sets on the fly and in case someone didn't get switched back it the script would automatically take care of it for them.

Several of my concerns/questions are:

  1. How long would it take for the changes to take effect? Is there significant delay between the updating in the Dbase and the actual application of the competency level?
  2. What are the potential issues with UCCX performance?
  3. Are there products out there doing this and I'm just not finding them?
  4. Is it a feature within UCCX that I'm simply not seeing?

The reason we want to avoid using the Web Interface is that it's very slow to respond to updates as well as it's functionality is somewhat limited based on the feedback of the contact centers managers and supervisors. My goal is to make things quick and easy for them but not put the integrity of the system at risk. Any and all feedback is welcome!

I have this problem too.
0 votes
Correct Answer by Tanner Ezell about 7 years 1 month ago

Hi Keith,

To answer your questions:

1. Immediately, the biggest concern you could have is replication across two UCCX servers setup in HA, however that time is insignificant in most cases.

2. None unless you issue a statement that unusually long to performance/locks up the database. Not likely to happen

3. Yes, my company develop utilities like this

4. No, it's not. The web interface is the only official way to change skills.

To point you in the right direction read this guide:

Historical Reporting Administrator and Developer Guide for Cisco ...

The relation (irrc) is

dbo.Resource.resourceSkillMapID

     --> dbo.ResourceSkillMapping.resourceSkillMapID

          --> dbo.ResourceSkillMapping.skillID     --->     dbo.Skill.skillID

But heres the deal, in UCCX, everytime you make a change to a resource it marks the previous resourceID where resourceLoginID = '' AND active = 1, as no longer active (active = 0), creates a new entry with active=1, resourceskillmapid = newResourceSkillMapID which has to be created before changing the resource.

Now maybe you're asking,

     "Well maybe I can just create two resourceSkillMap's with the skills and competencies I want and just update the dboResource.resourceSkillMapID to one of the two depending on the time.."

You can. At which point you can simply use an UPDATE statement on the users you want to change.

It might look something like:

DECLARE @skillMapID int;

DECLARE @cucmLoginID nvarchar; --using the login ID is more reliable than doing it by name, for instance

UPDATE dbo.Resource

SET dbo.Resource.resourceSkillMapID = @skillMapID

WHERE dbo.Resource.resourceLoginID = @cucmLoginID AND dbo.Resource.active =1;

Oh, you want to do it to an entire team?

DECLARE @teamID int;

DECLARE @skillMapID int;

UPDATE dbo.Resource

SET dbo.Resource.resourceSkillMapID = @skillMapID

WHERE dbo.Resource.assignedTeamID = 10 AND dbo.Resource.active = 1;

Should do the trick.

  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 4.5 (2 ratings)
Loading.
Correct Answer
Tanner Ezell Fri, 12/18/2009 - 17:52

Hi Keith,

To answer your questions:

1. Immediately, the biggest concern you could have is replication across two UCCX servers setup in HA, however that time is insignificant in most cases.

2. None unless you issue a statement that unusually long to performance/locks up the database. Not likely to happen

3. Yes, my company develop utilities like this

4. No, it's not. The web interface is the only official way to change skills.

To point you in the right direction read this guide:

Historical Reporting Administrator and Developer Guide for Cisco ...

The relation (irrc) is

dbo.Resource.resourceSkillMapID

     --> dbo.ResourceSkillMapping.resourceSkillMapID

          --> dbo.ResourceSkillMapping.skillID     --->     dbo.Skill.skillID

But heres the deal, in UCCX, everytime you make a change to a resource it marks the previous resourceID where resourceLoginID = '' AND active = 1, as no longer active (active = 0), creates a new entry with active=1, resourceskillmapid = newResourceSkillMapID which has to be created before changing the resource.

Now maybe you're asking,

     "Well maybe I can just create two resourceSkillMap's with the skills and competencies I want and just update the dboResource.resourceSkillMapID to one of the two depending on the time.."

You can. At which point you can simply use an UPDATE statement on the users you want to change.

It might look something like:

DECLARE @skillMapID int;

DECLARE @cucmLoginID nvarchar; --using the login ID is more reliable than doing it by name, for instance

UPDATE dbo.Resource

SET dbo.Resource.resourceSkillMapID = @skillMapID

WHERE dbo.Resource.resourceLoginID = @cucmLoginID AND dbo.Resource.active =1;

Oh, you want to do it to an entire team?

DECLARE @teamID int;

DECLARE @skillMapID int;

UPDATE dbo.Resource

SET dbo.Resource.resourceSkillMapID = @skillMapID

WHERE dbo.Resource.assignedTeamID = 10 AND dbo.Resource.active = 1;

Should do the trick.

Tanner Ezell Fri, 12/18/2009 - 18:01

You can also take the approach of changing compentency levels within dbo.ResourceSkillMapping instead of changing the Skill Map the resource points to

mbeltran Wed, 08/11/2010 - 14:34

Hello Tanner,

Very interested your post. Do you have more examples about how to change the competences levels or skills to agents? It is very interested to know how we could simulate this functionality using direct querys to the Database and in this way, play with number of skills taht a agent has in a particular situation.

Please, ¿can you send me additional information or examples?

mbeltran Thu, 08/12/2010 - 13:17

Hello Tanner,

We followed your instructions to change competences and skills to agents changing the information directly in the Database following your queries and information. Having said that, we get the information changed in the web UCCX administration tool(I take in consideration that this web page application gets information directly from the database).

The problem finally is that the information is in the Database but it is not refreshed in UCCX memory so changes in skills or cometences are not being applied at all............It is necessary to click on UPDATE button in UCCX Administration tool to have values updated in memory.

Any ideas how to update memory values in UCCX Server...???????

Thank you

Actions

This Discussion