Genesys CTI User Forum

Genesys CTI User Forum => Genesys CTI Technical Discussion => Topic started by: Gef Buneri on June 21, 2016, 09:28:07 AM

Title: [SOLVED] Searching for a method to dinamically add/remove agents from vq target
Post by: Gef Buneri on June 21, 2016, 09:28:07 AM
Hi everyone, hope all fine out there; I'm studying a method to dinamically change the agents the selectdn can choose from, when building the target.

I was thinking about something related to skills, where a certain skill inside a certain group of agents can be selected, instead of others. So, the idea is SelectDN[VQ,GroA,GroA1,GroAx] where skill in (Skill1,Skill2,Skillx).


Could it be done?


Best regards,


Gef.

Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: cavagnaro on June 21, 2016, 12:09:19 PM
You do have very weird requests my friend. ;)

Enviado de meu E6633 usando Tapatalk

Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: Gef Buneri on June 21, 2016, 12:18:56 PM
Of course, Cav; easy things aren't for me :D

The goal is to dinamically remove from target, agents who are near workshift's end, so they're cannot be selected as target an amount of time before the end of the workshift.
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: cavagnaro on June 21, 2016, 05:10:31 PM
And why the VQ?
VQ is a stat parameter only.

I do remember a post about dynamic target creation using ExpandGroup I think. But there was a solution already
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: terry on June 21, 2016, 05:58:56 PM
Do you mean something like that:
x= CreateSkillGroup['', GroA, 'Skill1>0 & Skill2>0 & SkillX>0']
y= CreateSkillGroup['', Gro1, 'Skill1>0 & Skill2>0 & SkillX>0']
z= CreateSkillGroup['', GroAx, 'Skill1>0 & Skill2>0 & SkillX>0']
SelectDN[VQ,x,y,z]
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: Dionysis on June 21, 2016, 06:08:02 PM
You know you can route based on the actual schedule right?  So you can deliver interactions based on the activity that's scheduled rather than skills etc.

Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: cavagnaro on June 21, 2016, 06:10:39 PM
[quote author=terry link=topic=9672.msg43777#msg43777 date=1466531936]
Do you mean something like that:
x= CreateSkillGroup['', GroA, 'Skill1>0 & Skill2>0 & SkillX>0']
y= CreateSkillGroup['', Gro1, 'Skill1>0 & Skill2>0 & SkillX>0']
z= CreateSkillGroup['', GroAx, 'Skill1>0 & Skill2>0 & SkillX>0']
SelectDN[VQ,x,y,z]
[/quote]

That one Terry :D
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: Gef Buneri on June 22, 2016, 07:56:01 AM
Yes Terry, that's it. So fine 'til the CreateSkillGroup function, then I should put the result in a var and use the var as a .GA value in the SelectDN; got it right? Ok, it should work fine... now the last step: how to assign skill to agent, from ird, using a var?

Thanks Dionysis, I know, but here the point is to dinamically change skill basing on a pre-assigned value that represents the agent's workshift. So, basing on a table containing the cross reference between agent id and his workshift, the scheduling have to change dinamically and agents belonging to the same group should become selectable or not, as targets, from time to time. The trick is that agents belong to the same agent group, so I can't no longer use the whole group as the single target, but I must partialize what the group contains.
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: cavagnaro on June 22, 2016, 12:20:37 PM
You don't assign a skill to an agent, skills are queries. You search for agents who meet a criteria. Why would you want to assign a skill? You already know who they are...
Why not better create skills with the values being their work hours?



Enviado de meu E6633 usando Tapatalk

Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: Gef Buneri on June 22, 2016, 12:29:46 PM
Sure Cav, this point is quite clear to me, but it will not satisfy the needing, the way I think it; 'cause the goal is to remove agents from targeting a bit earlier than the workshift end hour, just to know the duration of the workshift isn't enough. My idea is to create a table with the skill association in where I'll assign a skill to mark them as selectable/not selectable basing on a schedule, to make the agent not selectable 10 minutes before his workshift's end.

To make the long short, I would like to be sure the system does no longer select the agent even if he is in ready state, to avoid the routing of calls on that agent, if he is near the workshift's end. I can't apply a schedule to the whole group.

It can be done as you're suggesting, creating some logic like "during this interval, don't select these skills", where the skill represents the workshift, but workshifts change frequently in the week, for the same agent.
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: Tambo on June 22, 2016, 01:21:31 PM
do it via total logged in time , but that will work if they all on same shift length
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: Gef Buneri on June 24, 2016, 01:42:44 PM
I'm pointing to a possible solution (not working at the moment). Trying to use a stored procedure to dinamically update CFG_SKILL_LEVEL table @config DB, but it seems changes done directly in the table are not considered by URS, letting the level set in skill level value inside the person proprerties in cme to be the significant value. I mean:

I create a skill in cme, assign that skill with a specific level through person properties in cme, so I have a record in config db indicating person dbid/skill/Skill level. I change the level value in the db's record, but nothing changes; CreateSkillGroup still selecting agent using CME skill value, instead of db's changed value.


Any clues?
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: Tambo on June 24, 2016, 01:58:15 PM
use skill level from CME then in strategy use -5 etc so that skill level used for routing is 5 less than CME , that does work as i've used it before
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: Gef Buneri on June 24, 2016, 02:12:34 PM
Hi Tambo, thank you for the reply. Got the logic, but can't figure out how to use it. I mean, the goal is to make urs to createskillgroup using the skill level on db instead of the one in cme.

Following your logic I should use an expression like "skillname = (x - y)" where x is the CME value and (x - y) is the config db value?
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: Tambo on June 24, 2016, 02:28:57 PM
no no need for DB skill level, use current skill level then assign new skill level in the strategy
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: Gef Buneri on June 24, 2016, 02:41:59 PM
Oh, ok, I see. But I must read the value somewhere, 'cause I have to choose only agents who can be selected. The idea was to change the skill level directly in Genesys Config DB to allow a stored procedure to do the skill scheduling based on the workshifts calendar.
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: Tambo on June 24, 2016, 02:52:41 PM
em i wouldn't advise changing the config DB directly, but that's maybe just me. CME / GA may not update the new value quickly.

can i ask though why are you trying to find a technical fix to something that shouldn't be a telephony issue. Surely agents know when they are going to finish and can go into not ready ?
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: Gef Buneri on June 24, 2016, 02:58:45 PM
Your point is right, but management wants an automatized system to avoid human operation, 'cause in my company it is seen as a point of failure (many times agents forget to logout and receive a call one minute before workshift's end or so).

The only way I can imagine to do this is to create a data base containing a scheduling to change skill, so I can just use a SelectDN on target builded with createskillgroup. On the other side, we are studying a way to set a timer on Siebel integrated CTI phone bar to autoset logout/backoffice or any non frontend state, but siebel dev have got very long sla.
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: cavagnaro on June 24, 2016, 03:16:05 PM
Their schedules are fixed or they vary? What you are asking seems more a WFM task

Enviado de meu E6633 usando Tapatalk

Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: Tambo on June 24, 2016, 03:21:29 PM
ok so only thing i can think of is you need to assign the same new skills to agents that are on the same shift length.
each of these skills then relate to a ListObject which has the length of shift in it -10 mins,
then you need strategy to look at is total logged in time greater than the amount in the ListObject, if so don't route call.

i hope i've explained correctly
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: Tambo on June 24, 2016, 03:26:28 PM
i do agree with Cav though defo WFM
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: Gef Buneri on June 27, 2016, 06:27:31 AM
Hi, yes Tambo, at this point the only choice I have is through a pre assigned skillbyshift, but this will involve manual work, I fear. And yes, Cav, WFM will be the perfect answer, but it isn't included within the suite we own.

Thank very much to you all for the help, now I'll try a lot to see what I can get out of the hat.
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: Gef Buneri on June 29, 2016, 04:15:55 PM
Hi all... again! :)

Where do I can find an exhaustive guide on skill expression for urs? I know I can use expressions like "skillname = skilllevel" with operators, but how can I select an agent who have just the "skillname", so what is the syntax to tell "select the agent who have this "skillname", no matter the value"? or select more skillnames, so the expression will be "select all agents with skillname1 or skillname2 or skillname3, etc.", no matter the skill level.


Regards.
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: n3vek7 on June 29, 2016, 04:23:03 PM
I'd use " [b]Skill >= 0[/b] " for that... (you need to specify a level) :D
Or you can use an agent group and not specify a level.

URS Reference Manual could help.
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: Gef Buneri on June 29, 2016, 04:27:17 PM
Thanks n3vek7, I'll try this way. An expression where "skillname1 >= 0 | skillname2 >= 0  | skillname3 >= 0", and so on.


skillname can be a variable? or the real name of the skill is mandatory?
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: Tambo on June 30, 2016, 08:44:46 AM
if the skill level is 0 then they wont get calls routed to them anyway, so would go with skill >0

real skill name should be specified as you are targeting specific agents for a specific reason
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: terry on June 30, 2016, 09:53:18 AM
If agent has no skill then URS assumes that he has it with level 0. Skill>=0 will include all agents including those who are not configured with skill. Either use skill>0 or 8.x URS need to be used where it is possible just to check is agent configured with the skill or not no matter what is skill level

Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: Janis on June 30, 2016, 09:05:54 PM
Split target selection in functions SelectDN, SuspendForDN, RouteCall. Check the schedule right before RouteCall when free agent found. Make the agent NotReady if it is too late. Go back to Suspend (or maybe Select).
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: Gef Buneri on July 01, 2016, 07:18:18 AM
Wow, thank to you all!!! great, great help. Think I reached a good point:

- Table with genesys login id (unique, indexed), workshift endhour, group of agent the agent belongs  (unique, indexed)
- Oracle stored procedure to give as @out a cat string of all the selectable agents (login ids)
- Assign to the agent the login id as a skill with value >=1
- selectdn using a var containing the skill expression "loginid1 > 0 | loginidx > 0 | ..."


Done! can be? :) or am I too crazy?


At this point one last question... actually I use a single IRD var to cat more than 1100 chars, but IRD vars (7.5), has a limit? how can I check it?
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: terry on July 01, 2016, 08:42:19 PM
There is no limits on size of values if string variables.
There is limit on size of string literals used in strategy, something about 1k.
Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: cavagnaro on July 01, 2016, 08:47:24 PM
Keys 1k values 4k

Enviado de meu E6633 usando Tapatalk

Title: Re: Searching for a method to dinamically add/remove agents from vq target
Post by: Gef Buneri on July 04, 2016, 07:30:59 AM
Thanks guys, all seems to run fire, here.
Title: Re: [SOLVED] Searching for a method to dinamically add/remove agents from vq target
Post by: siralos on July 19, 2016, 09:07:12 AM
Sorry for writing into a solved thread. Verry confusing discussion, maybe I misunderstood everything. The shift of the agents must be stored somewhere in the database. So I would write a stored procedure selecting the agents with their shift ending in x minutes, return it as a comma separated list and then use it as parameter of the ExcludeAgents IRD function.