Genesys CTI User Forum

Genesys CTI User Forum => Genesys CTI Technical Discussion => Topic started by: gzooby on November 01, 2013, 12:02:07 PM

Title: Priority depending Interaction Type
Post by: gzooby on November 01, 2013, 12:02:07 PM
Hi Everyone,

Which is the best way to set a Priority depending of the interaction Type. For example, if an agent is ready to receive an interaction, I want to set a different priority so the agent will check first for call interactions, then for chat interactions, then for email interactions...So like to determine an order of importance by type

Any ideas?

Thank you! ;D
Title: Re: Priority depending Interaction Type
Post by: cavagnaro on November 01, 2013, 12:38:34 PM
You have an understanding issue...agent doesn't seek interactions, URS routes interactions to agents...it is the other way. So if you have an interaction and have a free agent then it is routed to him.
While having a call you can receive a chat/email/etc as they are just data messages. You can set NR for each media type, but not apply priorites over agents MediaType availability. The idea is to work on customer satisfaction, not agent POV. If your agent is free of email interactions then he is free to accept the incoming invitation or not. If he doesn't does means he is busy with something else and it will return to the queue going to another free possible agent.
Title: Re: Priority depending Interaction Type
Post by: MarkComplete on November 01, 2013, 06:17:29 PM
One thing you can do it set a Service Objectives based on media type.  It won't necessarily stop all chat traffic to an agent if there are voice calls in queue, but it can help set priority so one media type is weighted higher. The lower the number in the service objective, the higher priority. I'm not sure if that will get you exactly what you are looking for, but you could certainly test in your lab environment.
Title: Re: Priority depending Interaction Type
Post by: gzooby on November 08, 2013, 01:28:45 PM
Hi,

Cavagnaro: Thanks for your reply. I know agents doesnīt take the interactions, i know the interactions are routed to them, the thing is, I am using capacity rules, so agents can receive one interaction of any kind only, and i want to priorize for example voice interactions over chat or email...

MarkComplete: Thanks for your answer, i donīt know what service objectives are, i will investigate it to give it a try!

Thank you! ;D
Title: Re: Priority depending Interaction Type
Post by: cavagnaro on November 08, 2013, 02:23:29 PM
Still don't understand what you want to do. Somebody illustrate me please...I'm might be losing something important.
You have 3 types of interactions, meaning each one has its own queue and the agents have 3 doors. Which can be opened or closed.
The fact that each interaction has its own waiting queue (a customer row) means Voice interactions will never fight a position vs a Chat interaction even when going to same agent as the agent has an independent door for each of them.
So imagine it as real persons, one going to make a deposit with a real agent on a row and others going to ask for information on a ATM. Why on earth I'd compare those 2 queues and even try somehow to prioritize one of them. Even if at the end the Bank will do a transaction as they are different doors they don't fight between them for an attendant availability.

So, what am I missing?? Or my POV is wrong?
Title: Re: Priority depending Interaction Type
Post by: gzooby on November 08, 2013, 02:30:53 PM
Haha you are not missing anything

The thing is , imagine an agent can receive one interaction of any kind only. Only a mail, only a voice call or only a chat. If he is the only agent available and in my voice queue i have one call waiting, and in my chat queue i have one chat interaction waiting, how can i manage to check first the voice queue and if itīs empty, check the chat queue??

Thanks!
Title: Re: Priority depending Interaction Type
Post by: cavagnaro on November 08, 2013, 03:16:13 PM
Ok, so you have 2 queues, with 1 interaction on them, EMail and Voice.
All agents logged off
Agent X arrives
Agent X can only receive email (as per Capacity rule, right?)
Agent X can't receive voice nor chat (as per Capacity rule doesn't allow it, right?)
He logs into Genesys
Genesys does a logged in Event and assign him to his agentgroup(s).
By checking his capacity rule the data is validated against StatServer and sent to URS and TServers
"Hey guys! X arrived and he is ready for Email!"
URS receives and as only has Email, sends the event there and Email routed.

So you say, you want that the Strategy assigned to Voice checks that X is logged in, but as he has no capacity rule, but a Waiting call, to assign that Capacity Rule to agent X?

Is that it?
Title: Re: Priority depending Interaction Type
Post by: cavagnaro on November 08, 2013, 03:22:50 PM
[quote author=gzooby link=topic=8071.msg35562#msg35562 date=1383921053]
how can i manage to check first the voice queue and if itīs empty, check the chat queue??
[/quote]

again...here...agents don't check nothing...burn that with a laser in your head
Title: Re: Priority depending Interaction Type
Post by: cavagnaro on November 08, 2013, 03:28:12 PM
And assuming you say: No, agents can receive by capacity rule all three (should be "and" not "or" in the statement),

Would be
"Hey guys! X arrived and he is ready for Email and voice!
URS receives and propagates, sends the event there and Email routed.
URS receives and propagates, sends the event there and Voice routed.

Both almost at the same time, of course, email recheck usually is a little bit slower in seconds, so probably he will receive voice first (as is a live person/interaction) and the Email a few seconds later as is a passive interaction. Just because he had the 2 doors opened and in Ready.


So which scenario are you referring to?

Title: Re: Priority depending Interaction Type
Post by: terry on November 08, 2013, 04:01:05 PM
Why not just in strategy that process emails calls set one priority and in startegy for procesing voice calls set higher priority. In such case when agent is not ready and there are voice and email interaction in the queue waiting for the agent, voice interaction will be ahead and be picked up first by URS when agents becomes available.

Mentioned service objectives also can be used to order calls in queues (placing vocie calls aheoad of emails). Priority though is first thing URS looks at, service objectives are used if priority of interactions are the same.
Title: Re: Priority depending Interaction Type
Post by: cavagnaro on November 08, 2013, 04:37:31 PM
Won't make sense neither again, as priority applies for the RP, so again, a Chat/EMail/Voice interaction priorities don't have nothing to do with other media types
Title: Re: Priority depending Interaction Type
Post by: gzooby on November 08, 2013, 04:41:53 PM
Hi!

Is the second scenario, agent can receive both emails and voice interactions, and assume they are routed at the same time, is there a way I can priorize one of them? Maybe using Priority as Terry said??
Title: Re: Priority depending Interaction Type
Post by: gzooby on November 08, 2013, 04:42:56 PM
Agent X acn receive both type of interactions, but only one at a time.. :)
Title: Re: Priority depending Interaction Type
Post by: cavagnaro on November 08, 2013, 05:07:01 PM
[quote author=gzooby link=topic=8071.msg35569#msg35569 date=1383928976]
Agent X acn receive both type of interactions, but only one at a time.. :)
[/quote]

One at the time?? How? Never saw that configuration as each channel is independent. Mostly...why even if possible?  ???

Where do you restrict that one agent can receive one interaction type even when he has the door in Ready State?

Title: Re: Priority depending Interaction Type
Post by: gzooby on November 08, 2013, 05:10:12 PM
If I use capacity rule "One Default Interaction of any type only", it doesnīt include voice?? Only e-services interactions? ???
Title: Re: Priority depending Interaction Type
Post by: terry on November 08, 2013, 05:22:04 PM
Not sure about exact meaning of "priority applies for the RP".
For URS priority is property of call (that can be set/changed anytime by strategy processing the call).
startegy processed vioce calls can Call Priority[100] ans startegy processing emails can call priority[10], if startegy process both types of call then media type of call can be checked in strategy.

In any case I believe only available options (after compeeting calls "presdented" to URS) are:
- use priorityies
- use service obejctive
- use thresholds - condition imposed on URS' queues (aka target selection objects) -
        like placing voice call in one queue, emails in another and impose condtion on second queue -
        do not route untill there is at least one call in first queue.
        This last approach is quite complex, also can require complex statistics.
        (first 2 approaches are much easiier)


   
Title: Re: Priority depending Interaction Type
Post by: cavagnaro on November 08, 2013, 05:22:57 PM
From Genesys support:

[quote]
However, if no capacity rule specified for Person, Place, and Tenant object, the Default Capacity Rule <system default> always displays 0 as a maximum number of interaction for any media, except voice
[/quote]

That means you are not declaring Capacity rules actually and let by default Statserver to use the ones created on CME without including Voice...not very nice from my point of view.
Why not create a Capacity Rule with Voice and Chat, Voice Email, Voice email chat and let them be 1 on all of them?


Edit: Check case 000037293
Title: Re: Priority depending Interaction Type
Post by: terry on November 08, 2013, 06:02:23 PM
Might be wrong but up to my knowledge out-of-box capacity rule "Default_One_interaction_of_any_type_only" already has right defintrion- you probably need just to configure tenant with this rule and thats it.
Title: Re: Priority depending Interaction Type
Post by: cavagnaro on November 08, 2013, 06:05:25 PM
[quote author=terry link=topic=8071.msg35573#msg35573 date=1383931324]
Not sure about exact meaning of "priority applies for the RP".
For URS priority is property of call (that can be set/changed anytime by strategy processing the call).
startegy processed vioce calls can Call Priority[100] ans startegy processing emails can call priority[10], if startegy process both types of call then media type of call can be checked in strategy.

In any case I believe only available options (after compeeting calls "presdented" to URS) are:
- use priorityies
- use service obejctive
- use thresholds - condition imposed on URS' queues (aka target selection objects) -
        like placing voice call in one queue, emails in another and impose condtion on second queue -
        do not route untill there is at least one call in first queue.
        This last approach is quite complex, also can require complex statistics.
        (first 2 approaches are much easiier)


 
[/quote]

Hey terry,
Well I do know we can upload a Voice strategy on a email logic but would that make sense?

I mean, even if same strategy is attached to different RPs and Virtual ones on Multimedia interactions, do you mean a priority applied to a Routing Point X will also reflect on another Routing with same strategy loaded on a Routing Point Y?
I always considered that each interaction was independent about on which RP it was loaded. Of course you have stats that can be applied to get a global view but my priority applied on RP X wouldn't matter to the RP applied on Y.

If so I'd like to understand that much better as would be something very new to me...never saw on URS Genesys logs something that would indicate such behavior...if you can expand your explanation that would be great.

Thanks!
Title: Re: Priority depending Interaction Type
Post by: terry on November 08, 2013, 06:28:10 PM
Sorry, a bit confused, may be I put it wrong.
All calls/interactions of course are independent (doesn't matter are they on same RP or not, do they run the same strategy or not).
Just under applying priority I mean calling in strategy function Priority[] which will affect only call that execute this function.
I meant that if startegies for voice calls somewhere at the beginning execute Priority[20] - every vocie call going through it will starts from priority 20. if strategirs for emails has somewhere at the beginning
Priority[10] - just the same all emails has priority 10.
In such case when agent is waited by both voice and email and becomes ready then voice call will always be selected.

If strategies already use priorities for something then probableyranges of priorities can be allocated to different medias (emails operate in range 1-100, voice in range 101-200) etc so voice calls will always be prefereble over emails calls when some agent become ready.
 


Title: Re: Priority depending Interaction Type
Post by: Kubig on November 09, 2013, 08:31:41 AM
From my point of view in standard deployment -> one common pair URS + StatServer for voice and eServices layer -> the voice interactions always have priority over other interaction types in routing, because voice interactions are "real-time" and must be delivered as "first". Just for imagine:

[list type=decimal]
[li]In routing is one voice interaction and one email interaction. The email interaction is in routing for longer time[/li]
[li]Each interaction type is routed through another RP,VQ and targeted on another VG[/li]
[li]Your agent belong to both VG. Does not matter if though his skills or linked to VG directly. And the agent is not ready for both channel[/li]
[li]Both interactions are waiting in different VQs[/li]
[li]Agent change his status on both channel from NotReady to Ready (=> WaitForNextCall)[/li]
[li]URS with statserver "cooperation" check current waiting interactions and "compare" with agent state and capacity rule (when used)[/li]
[li]If the agent "meets" conditions for both interaction. URS will preferred the voice interaction before email, block the agent for another routing and routes to him (EventRouteUsed -> EventDiverted)[/li]
[li]If your capacity rule allows combination of voice + anything others - the email which was waiting in routing is routed to the agent in a short time after voice. If the agent status is still ready for that media of course[/li]
[/list]

I mean just nothing to do here if your deployment is properly
Title: Re: Priority depending Interaction Type
Post by: terry on November 09, 2013, 11:19:49 PM
I'm afraid it is not exactly so - all medias are the same for URS (there is no "built-in" prioritization based on medias or whatever else for that matter, except waiting time of calls - longer waiting calls tends to be ahead in queues comapred to calls waiting less).
Strategies should give explicit instructions (through prioroty, service objective, etc) to make URS put calls of one media ahead of call of other media.
Title: Re: Priority depending Interaction Type
Post by: Kubig on November 10, 2013, 10:48:32 AM
My tests in my lab show and confirm my opinion, but may be I am wrong. Just describe how it works in real :-)
Title: Re: Priority depending Interaction Type
Post by: cavagnaro on November 10, 2013, 02:56:13 PM
URS seems to check Multimedia Interactions based on some timer, not as voice which if going to run on a race is already on the set, ready position waiting for the go. You can test this by having an email on queue, set an agent on ready and the email doesn't appear immediately. As if you test voice it is send as soon as see the agent Ready. If you put one-one interaction you will always see voice arrives first.

Now, of course, the scenario we are talking is if the agent, place or tenant has that capacity rule of "Only one of any type" configured as gzooby suggested he has. Otherwise, he has N channels being N the amount of media types configured on the capacity rule.

Reading Capacity Rules guide and some URS options, seems voice is always prioritized by default.
We can seem to be able to change that rules by creating some functions on the strategy by checking agents states, but never a voice priority will affect a email priority for example, just because each interaction has a property which controls that, "media type".
What capacity rules can do with the Capacity Rule Editor (not the wizard to create Capacity Rules) is to be more flexible and if for example agent has 1 voice call, then no other multimedia, but if he has 1 email only then you can send 3 more emails and 1 chat, if 1 chat then send voice too...
I actually never read before this feature, which seems very very interesting and of course, such routing as not as simple as voice standard (default by URS) will add more complexity to the strategies and design of the overall functionality. No out-of-the-box solution.

So I don't see priorities being a part of this solution.
Service Objective neither because again it works for a media type only, not a global one, because URS focus on interactions, not the agent side exactly, it see something ready  for distribution of an interactioin, bam! send it! (bam! on multimedia not very bam!...)

I'm loving this post because is making me read a lot and investigate, even find some contradictory states on the Genesys documentation about this stuff.
Of course, best way will be now to do some lab tests as never used such rule of 1 type only...for me seems a waste of time and resources. An agent can handle an email and if voice comes, let him get it, he can work the email later as is much much passive interaction. Chat goes on second place after Voice, as you have a person behind but we are Ok if chat takes a few seconds to be answered, if we receive a please wait, we wait...not as in voice, where we want to spit it all now...human nature.... ;)

So now will do the techy part ;) Will see how this goes on the BY DEFAULT method ;)

Terry I'd love also to see some logs on your side backing your ideas which also sound pretty interesting but again I have no evidence nor documentation to back them... :-/ We do know not everything is documented and many things need tests to make it work with specific configuration and strategies. So would be so cool you could show us how to do so.

Thanks guys for this post which started as a simple question ;)
Title: Re: Priority depending Interaction Type
Post by: terry on November 10, 2013, 08:08:35 PM
Then such test (how URS works with media by default) probably supposed to look like this.

- simple strategy (the same for voice and email) from one object which just try to send call to some agent and wait few minutes if no agents happen to be ready.

- Set URS option verification_time to few seconds (agent readines can be reported
by statserver not in one but few events like ready for vocie immediately followed with ready for email,
and in such case the media reported as ready first will be selected if URS rirectly react on every event). This option allows URS to absorb few agent readiness/not readiness events before reacting on them.

- make email call and see in URS log that email was submitted to URS.

- about 10-20 seconds later make voice call, and again see in URS log that he has this call.

- make agent ready (for both voice and email). Basically email call (as waiting longer) will be selected first.

When URS checks agent and if according to information that URS has at THIS VERY moment more then one waiting calls CAN BE ROUTED to this agent then call will be selected based on following (I don't have logs confirming it right now, may be I'll can get them later, but can put my head(:)) that it is really so - if not it will be considered as defect and fixed ASAP):
- calls with higher prioority will be selected.
- if still there are more then one call (= all of them have same priority) waiting time of competing calls is considered. It can be just plain time calls are waiting or in case of using service objectives compared values are waiting_time/service_objective. This values are counted with milisecond precisson.
- if still there are more then one calls (= values calcualted on previous step are the same up to miliseconds) then call who starts wait the agent first will be selected (there is counter increasing every time some call begins to wait some target, and call with smaller value of this counter will be selected).

When considereing some agent URS prints in log ordered list of calls waiting him (calls will be tried exactly in this order). If URS option default/verbose is 6 then in this list will be provided extra information (in brackets) explaing why every call has position that he has (priority, waiting time, service objective, prediction, etc).
       
Title: Re: Priority depending Interaction Type
Post by: cavagnaro on November 11, 2013, 07:08:59 PM
Hey terry,
Yeah sounds reasonable here*. Where I have my doubts yet is the inverse scenario, where the voice arrived first and then you want the email to be routed first even if arrived later. Again, only lab tests and logs will confirm ;)

* For my knowledge IXN always does a loop on queued emails as they are not alive on IXN like voice on Voice TServer. They are stored on a DB. So each cycle it goes, retrieves and try to route...so your scenario would have to be very synchronized. Again here, tests will say what happens exactly.

Cheers!

gzooby just hope you didn't get scared by this lol
Title: Re: Priority depending Interaction Type
Post by: gzooby on November 18, 2013, 12:19:38 PM
Not at all...
Iīm happy that my simple question generated such discussion!
Thank you all for your time!
;D