Service level based routing using skip probabilities
Systems and methos are described relating to distributing agents to different queues provided by a contact service. The contact service may define a number of different queues for processing different customer requests, such as may be routed to different agents, with each queue associated with a priority value (higher priority get assigned agents first) and a visibility threshold (how long a request will sit before it is picked up by an agent). The described techniques add a time-to-service level (SL) goal, per queue to determine when queues are over and underperforming. In the case queues are overperforming, various techniques, such as control systems techniques, may be used to determine probabilities by which agents can skip being 10 assigned to the over performing queues, to be assigned to lower priority underperforming queues, to increase meeting the customer SL goals.
1 . A computer-implemented method, comprising:
obtaining, by a contact service, a plurality of requests to connect with a contact service agent through the contact service;
allocating, by the contact service, individual requests of the plurality of requests to one of a plurality of queues provided by the contact service based on at least one contact flow;
dynamically modifying, by a routing service, one or more parameters of individual queues of the plurality of queues to which contact service agents are assigned to process the plurality of requests according to routing profiles associated with the contact service agents, wherein the one or more parameters of the individual queues comprise a time-to-service level goal and a priority value for processing individual requests of the plurality of requests, wherein modifying the one or more parameters of the individual queues further comprises, periodically:
grouping at least a first subset of the plurality of queues into a first set of queues based on determining that individual queues of the plurality of queues are exceeding a time-to-service level goal associated with the individual queues;
grouping at least a second subset of the plurality of queues into a second set of queues based on determining that individual queues of the plurality of queues are not meeting a time-to-service level goal associated with the individual queues;
determining skip probability values, using a controller, by which individual queues in the first set of queues can be skipped for contact agent assignment for processing while still meeting the time-to-service level goal associated with the individual queue based on one or more of a proportional factor, an integral factor, and a derivative factor to enable individual queues in the second subset of queues to be assigned a contact service agent, wherein the skip probability values override the priority values associated with the individual queues;
prioritizing assigning contact service agents to requests in queues in the second set of queues over requests in queues in the first set of queues based on the skip probability values and the priority values associated with individual queues of the first set of queues; and
assigning, by the contact service, the contact service agents to the individual queues of the plurality of queues to connect the contact service agents with the plurality of requests; and
processing the plural of requests with the assigned contact service agents.
2 . The computer-implemented method of claim 1 , further comprising:
implementing at least one anti-wind-up process for the integral factor of the controller.
3 . The computer-implemented method of claim 1 , further comprising:
using an automated heuristic method to recompute at least one gain value of the controller based on at least one of time or a change to the routing profile.
4 . The computer-implemented method of claim 1 , wherein determining the skip probability values by which individual queues in the first set of queues can be skipped for routing agent assignment for processing further comprises:
factoring in a margin of safety to at least one of the skip probability values based on at least one of estimated handle time for requests in other queues of the plurality of queues or traffic forecast data relating to the individual queue.
5 . The computer-implemented method of claim 1 , further comprising:
based upon determining that both the first set of queues and the second set of queues are non-empty, determining the skip probability values by which individual queues in the first set of queues can be skipped for contact agent assignment.
6 . The computer-implemented method of claim 1 , wherein individual queues of the plurality of queues are associated with different configurable time-to-service level goals.
7 . A system, comprising:
one or more processors;
memory that stores computer-executable instructions that, when executed, cause the one or more processors to:
obtain, by a contact service, an allocation of a plurality of requests to a plurality of queues to be processed by a contact service agent through the contact service; and
modify, by the contact service, one or more parameters of individual queues of the plurality of queues to which contact service agents are assigned to process the plurality of requests according to a routing profile, wherein the one or more parameters of the individual queues comprise a time-to-service level goal for processing individual requests of the plurality of requests and a priority value, wherein modifying the one or more parameters of the individual queues further comprises:
determining probability values by which at least a subset of individual queues of the plurality of queues can be skipped for routing agent assignment for processing while still meeting a time-to-service level goal associated with the individual queue to enable individual queues in the plurality of queues that are not in the subset of the individual queues to be assigned a contact service agent, wherein the probability values override the priority value associated with the individual queues; and
assigning the contact service agents to a subset of requests of the plurality of requests in the individual queues in the subset of the individual queues, based on the probability values and the priority values associated with the individual queues of the subset of the individual queues, to connect the contact service agents with the subset of requests; and
processing the subset of requests with the assigned contact service agents.
8 . The system of claim 7 , wherein the computer-executable instructions that, if executed, cause the one or more processors to determining the probability values by which at least some individual of the plurality of queues can be skipped for contact service agent assignment for processing further comprises additional computer-executable instructions that, if executed, further cause the one or more processors to:
determine the probability values using at least one control system technique.
9 . The system of claim 8 , wherein the computer-executable instructions that, if executed, cause the one or more processors to determine the probability values using at least one control system technique further comprises additional computer-executable instructions that, if executed, further cause the one or more processors to:
determine control system variables for individual queues of the subset of queues.
10 . The system of claim 7 , wherein the computer-executable instructions that, if executed, cause the one or more processors to determine the probability values by which at least some individual of the plurality of queues can be skipped for contact service agent assignment for processing further comprises additional computer-executable instructions that, if executed, further cause the one or more processors to:
determine the probability values using at least one additive increase multiplicative decrease (AIMD) algorithm.
11 . The system of claim 7 , wherein the computer-executable instructions that, if executed, cause the one or more processors to determine the probability values by which at least some individual of the plurality of queues can be skipped for contact service agent assignment for processing further comprises additional computer-executable instructions that, if executed, further cause the one or more processors to:
account for a margin of safety in determining at least one probability value of the probability values.
12 . The system of claim 11 , wherein the computer-executable instructions that, if executed, cause the one or more processors to determine the probability values by which at least some individual of the plurality of queues can be skipped for contact service agent assignment for processing further comprises additional computer-executable instructions that, if executed, further cause the one or more processors to:
determine a margin of safety in determining at least one probability value of the probability value based on at least one of estimated handle time for requests in at least one other queue in the plurality of queues or traffic forecast data relating to the individual queue.
13 . The system of claim 7 , wherein the computer-executable instructions that, if executed, cause the one or more processors to determine the probability values by which at least some individual of the plurality of queues can be skipped for contact service agent assignment for processing further comprises additional computer-executable instructions that, if executed, further cause the one or more processors to:
dynamically recalculate the probability values for individual queues of the subset of queues periodically.
14 . The system of claim 7 , wherein the memory stores additional computer executable instructions that, if executed, further cause the one or more processors to:
group at least a subset of the plurality of queues into a first set of queues based on determining that individual queues of the plurality of queues are meeting or exceeding a time to service level goal associated with the individual queues, wherein determining probability values by which at least some individual of the plurality of queues can be skipped for contact service agent assignment for processing while still meeting a time-to-service level goal associated with the individual queue is performed for the first set of queues.
15 . One or more non-transitory computer-readable storage media storing thereon executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to at least:
obtain an allocation of a plurality of requests to a plurality of queues to be processed by a contact service agent through a contact service;
modify one or more parameters of individual queues of the plurality of queues to which contact service agents are assigned to process the plurality of requests according to a routing profile, wherein the one or more parameters of the individual queues comprise a time-to-service level goal and a priority value for processing individual requests of the plurality of requests, wherein modifying the one or more parameters of the individual queues further comprises, periodically:
grouping at least a first subset of the plurality of queues into a first set of queues based on determining that individual queues of the plurality of queues are exceeding a time-to-service level goal associated with the individual queues;
grouping at least a second subset of the plurality of queues into a second set of queues based on determining that individual queues of the plurality of queues are not meeting a time to-service level goal associated with the individual queues;
determining probability values by which individual queues in the first set of queues can be skipped for contact service agent assignment for processing while still meeting the time-to-service level goal associated with the individual queue to enable individual queues in the second subset of queues to be assigned a contact service agent, wherein the probability values override the priority value associated with the individual queues; and
delaying assigning contact service agents to some requests of the plurality of requests in queues in the first set of queues based on the probability values and the priority values associated with individual queues of the first set of queues; and
connecting contact service agents with the plurality of requests to process the plurality of requests after a period of delay.
16 . The one or more non-transitory computer-readable storage media of claim 15 , wherein the instructions further include instructions that cause the computer system to:
determine the probability values by which individual queues in the first set of queues can be skipped for contact service agent assignment for processing while still meeting the time-to-service level goal associated with the individual queue using at least one control system technique.
17 . The one or more non-transitory computer-readable storage media of claim 16 , wherein the instructions further include instructions that cause the computer system to:
determine control system variables for individual queues of the first set of queues.
18 . The one or more non-transitory computer-readable storage media of claim 15 , wherein the instructions further include instructions that cause the computer system to:
adjust the probability values by which individual queues in the first set of queues can be skipped for contact service agent assignment for processing while still meeting the time-to-service level goal associated with the individual queue based on detecting a change in at least one routing profile that at least in part defines routing for at least a subset of the plurality of queues.
19 . The one or more non-transitory computer-readable storage media of claim 15 , wherein the instructions further include instructions that cause the computer system to:
determine a margin of safety in determining at least one probability value of the probability value based on at least one of estimated handle time for requests in at least one queue in the plurality of queues or traffic forecast data relating to the individual queue.
20 . The one or more non-transitory computer-readable storage media of claim 15 , wherein the instructions further include instructions that cause the computer system to:
increase the probability value for individual queues of the first set of queues periodically at a slower rate than decreasing the probability value to reduce a likelihood of the individual queue not meeting the time-to-service level goal.