" /> Additional Threshold and Custom Routing - IRD - Genesys CTI User Forum

Author Topic: Additional Threshold and Custom Routing - IRD  (Read 2906 times)

Offline cavagnaro

  • Administrator
  • Hero Member
  • *****
  • Posts: 7641
  • Karma: 56330
Additional Threshold and Custom Routing - IRD
« on: July 19, 2018, 03:29:47 PM »
Advertisement
Hi guys
I always wondered what are these options used for.
I do remember a note on the Threshold about being like an additional condition to the route, but can't find the sample anymore.
On custom routing never saw a sample using it.


Anyone has more knowledge on these?

Offline cavagnaro

  • Administrator
  • Hero Member
  • *****
  • Posts: 7641
  • Karma: 56330
Re: Additional Threshold and Custom Routing - IRD
« Reply #1 on: July 20, 2018, 05:57:50 PM »
So @terry once mentioned:


[quote]


Additional threshold section of the general tab probably is not appropriate for such purposes - it is executed only at moments when some agent is checked is it Ok for some call (waiting in this target object) be route to him or not.
[/quote]

Anyone has a sample? An idea?


Can't find anything on custom routing except for this:


[url=https://docs.genesys.com/Documentation/GPM/9.0.0/oneguide/cfgSubroutines]https://docs.genesys.com/Documentation/GPM/9.0.0/oneguide/cfgSubroutines[/url]


But when and how it is executed?

Offline terry

  • Sr. Member
  • ****
  • Posts: 328
  • Karma: 35
Re: Additional Threshold and Custom Routing - IRD
« Reply #2 on: July 23, 2018, 04:15:52 PM »
Thresholds and custom Routing basically are not related.

Custom Routing is just way to inject any logic between agent is selected for some call and call is routed to this agent.
"Old" of way to do it was explicit using of function SelectDN/SuspendForDN/RouteCall instead of single target selection object.
Custom Routing allow to do sort of the same without necessity to decompose target selection object.

In other words if it is necessity to do something extra at the moment when selected agent already known but call is not yet routed - attach something, modify something about selected target like DN, Virtual queues, etc, execute extra requests to tserver, even replace routingrequest itself with something completely different (sending some http request), etc - custom routing is quite handy. Subroutine used for custom routing on return expected to indicate one of follwing
  - routing was successfully done (URS will assume that call is routed and will do nothing on its own)
  - routing failed (URS will behave exactly as if EventError happen on its own routing request)
  - routing is not doene, here is new destination to route call to (URS will route call to updated destination).

Thresholds are extra conditions URS will automatically check when evaluating is agent good target for some call or not.
There are different types of thresholds - one of them is "additional" threshold in target selection object.
Specified in it expression must be evaluated to not 0 value for call to be routed to any agent in this target selected object.
Specific agent in this case is not known in this case - threshold is evaluated before URS proceed to look for specific agent.
Common usecase for additional thresholds is something like "service agreement" routing:
Call1 enters target selection object for its primary set of agents and later (if not yet routed) to target selection object of secondary set of agents. But as this secondary set of agents might be primary one for some other calls the Call1 is allowed to route to this secondary set of agent only on some condition (like there are at least 2 available agents in this secondary set).
In such case second target selection object might be equipped with threshold sdata(secondary target set, StatAgentsAvailable)>2.

Reference "https://docs.genesys.com/Documentation/GPM/9.0.0/oneguide/cfgSubroutines" looks like describe usage of thresholds in context of predictive routing. Though they use in such case not additional threshold but something like "ready condition" threshold - this one behave similarly but is executed on different level - when agent that URS trying is already known.






 

Offline cavagnaro

  • Administrator
  • Hero Member
  • *****
  • Posts: 7641
  • Karma: 56330
Re: Additional Threshold and Custom Routing - IRD
« Reply #3 on: July 24, 2018, 03:51:10 PM »

Hi terry,
Thanks for the info, quite useful :D


When you say

[quote author=terry link=topic=11059.msg50280#msg50280 date=1532362552]
  - routing was successfully done (URS will assume that call is routed and will do nothing on its own)
  - routing failed (URS will behave exactly as if EventError happen on its own routing request)
  - routing is not doene, here is new destination to route call to (URS will route call to updated destination).
[/quote]


How? Variables? Do you have documentation I can refer to?


hsujdik sent me the URS reference guide where is described on the Custom Routing, but how can I raise an error for example?
Do you know where can I find a sample strategy?


About additional Thresholds, I got the idea, thanks!

Offline terry

  • Sr. Member
  • ****
  • Posts: 328
  • Karma: 35
Re: Additional Threshold and Custom Routing - IRD
« Reply #4 on: July 24, 2018, 09:10:51 PM »
Basically it is more or less described in ref manual:

The subsequent Interaction processing is determined by the returned value of the subroutine:
• Return the provided target unchanged or updated (replace some parameter like dn, for example) - in this case, the call is routed to the returned destination.
• Return an empty string - In this case, URS assumes that the subroutine itself performs the routing, and there is no need to do anything else with interaction. The flow just goes through the green port of the target selection object.

• Raise an error (if the "wrong"/"not appropriate for whatever reasons" target is selected) - In this case, the interaction is not routed, and control flow either goes through the red port of a target selection object or URS continue to wait for another agent.

Raising error means executing function SetLastError[ErrorCode] with not 0 error in subroutine just before returning from it (note that function object with SetLastError usually continue through red port, as error is set). If error is raised and output parameter happen to be empty string URS will try to look for another agent (if still there is time), sort of try_other reaction on routing error. Otherwise it will simply exits from target selection object on red port.


Offline gkhnvrl

  • Newbie
  • *
  • Posts: 12
  • Karma: 0
Re: Additional Threshold and Custom Routing - IRD
« Reply #5 on: October 17, 2018, 11:38:41 AM »
Hi experts,

Is it possible to select a group of agent inside an agent group ?

We have "best n agents - comes with intdata" for each customer, before routing the call to main AG I want to try to route those best agents and wait for a certain threshold. If not, call will be routed to main AG.
> Its possible to assignt agents(Udata) to variables and target all in one block, but I want to make it dynamic (Any number of agents came with attach data)
> Via updating skills, it could be possible to route. However, Im worriyng about to update config in each call as it may cause unexpected results

As far as I know, StrategySubroutine(with Predictive Routing) does similar routing but it selects best one agent - not a group of agents. Never tried it.
Thx for any suggestions.
« Last Edit: October 17, 2018, 11:55:02 AM by gkhnvrl »

Offline terry

  • Sr. Member
  • ****
  • Posts: 328
  • Karma: 35
Re: Additional Threshold and Custom Routing - IRD
« Reply #6 on: October 19, 2018, 04:16:30 PM »
Create comma separated string of agents and rout to it.