cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1092
Views
0
Helpful
2
Replies

Lookup Skillgroups Agent is Assigned to

Joe Gilbert
Level 1
Level 1

I am trying to find a solution to accomplish the following in ICM. Callers will call into a menu. The menu collects a 7 digit number.

This 7 digit number will correspond with an agents peripheral number. This will then be used in a queue to agent node to route the caller to an individual agent. We cannot figure out what to do next if the agent is not available. The requirement is to send this call to a skillgroup that the not available agent is a member of.

Is it possible to lookup what skillgroups this agent is in and send the call to that skillgroup? Thank you for any help.

2 Replies 2

Gergely Szabo
VIP Alumni
VIP Alumni

Hi Joe,

this information is available in the config database of the ICM [instancename]_awdb. Look for the database view named "Skill_Group_Member".

The way to accomplish it is to look this information up in this database and then send it back to the ICM script to finish the process.

It depends, how you inject this information into the ICM script itself, you might use an external script (a call to IP IVR) or if you have Application Gateway in place, you could exchange this information using it. I would probably do it using Application Gateway, however, I guess IP IVR would be simpler.

0. try to send to agent, if not, continue here:

1. send agents PeripheralNumber to an external script,

2. have external script connect ICM's config db and run this query:

SELECT sgm.SkillGroupSkillTargetID

FROM Agent ag JOIN Skill_Group_Member sgm ON ag.SkillTargetID = sgm.AgentSkillTargetID

WHERE ag.PeripheralNumber = '--your-value--'

3. collect all SkillGroupSkillTargetID's and send them back to ICM as an array,

4. use the Queue node to queue the call to the skill group that match (now, this is the least elegant part of the whole solution, listing all the skill groups and have specific conditions whether or not to sent the call there).

I hope this helps.

G.

Interesting question - I like Gergely's idea.

If you were doing this with CVP you could use a Studio app (rather than a microapp) to collect the digits representing the agent's peripheral number and call out to the AW DB.

1. You really need to check that this peripheral number is valid before handing it back to ICM for queue to agent, so I think you need to query the AW DB anyway and check. If not a valid peripheral number, tell the caller and they have to re-enter.

2. Make the query above to the AW DB, and in the Studio code, massage the result set to a comma-separated list of skill group IDs, and pass it back to ICM along with the agent's PN.

3. Queue to agent implicit at high priority. If agent not logged in, go to 4. Queue for the required time (say 60s) then go to 4.

4. I can only agree with Gergely's suggestion. Have a queue to skill group with all the named skill groups that agents can be members of, then have a condition if clause on each row to use the "find" function to see if the skill group ID of that particular skill is in the comma-separated list.

It's still messy if agents are in multiple skill groups and some skill groups have few members and others have many members and you end up choosing the smaller.

Maybe you can create "artificial" skill groups just for the above purpose than partition your agents into larger sets just for this task.

Regards,

Geoff