Assigning interactions to the same agent

Updated 

Concept of Stickiness

In Unified Routing, stickiness refers to a predefined time period during which a case is considered a follow-up or continuation of a previous interaction of the agent with the customer. If the customer reaches out within the stickiness duration, the case is assigned to the same agent who handled the previous interaction. However, if the customer contacts after the stickiness period has elapsed, the case is treated as a fresh case and can be assigned to any available agent. This duration is called the Stickiness Timeout and can be configured in work queue.

Stickiness Illustration

Let's illustrate this with an example:

Suppose a customer named Jane contacts a customer support center regarding an issue with a product. The case is assigned to Agent A, who successfully resolves the issue. After the interaction is closed, the system marks that case as sticky to the Agent A. The stickiness timeout defined in the work queue = 24 hours

Customer follows up within stickiness timeout

If Jane contacts the customer support center again within the Stickiness Timeout, which is 24 hours, the case will be recognized as a follow-up case. In this scenario, the system ensures that the case is automatically routed to Agent A, the same agent who previously assisted Jane. This enables Agent A to have continuity and familiarity with Jane's issue, allowing for a seamless and personalized customer experience.

Customer follows up after Stickiness Timeout

On the other hand, if Jane contacts the support center after the stickiness period has expired, let's say 48 hours later, the case will no longer be considered a follow-up case. It will be treated as a fresh case and can be assigned to any available agent based on the routing rules and criteria set in the system. This provides flexibility in distributing cases and allows different agents to handle new inquiries.

Configuring Stickiness Settings in Queue

Stickiness settings are defined at work queue level and thus for all the cases that get routed to this work queue, same stickiness logic will be applied. Any case that is added to the work queue within the stickiness timeout would be considered as higher priority for assignment, than the other pending cases in the queue even though the other cases are created earlier.

Normally, if you only define stickiness timeout and do not checkmark "Enable Assigee Caoacity timeout", then the sticky case would be assigned immediiately. There may be situations where it is not desirable to assign the follow up cases to the same agent or breach the agent capacity by assigning the follow up cases.

Active Conversation Timeout

When a follow up from the customer comes within the stickiness timeout, we can define its priority based on the time when the customer replied. If the stciky agent has full capacity at the time the customer follow up case comes, we can decide whether the sticky case should breach the agent capacity or wait for the agent for his/her capacity to get free. For this, we divide the stickiness timeout in two parts : Active Conversation Timeout and Post Active Conversation Timeout.

  • If the follow up message is within Active Conversation Timeout, the follow up case can breach the agent capacity and will be immediately assigned to the agent. If the follow up message is after the Active Conversation Timeout or in the Post Active Converstaion timeout, the follow up case should wait for the agent in the agent's holding queue till the duration defined in Stickiness Wait Timeout until agent capacity gets free. If the agent capacity is full during this duration, then the case would be assigned to any other agent in the work queue.

Note:

Holding Queue is an agent specific queue which is used to contain stickiness cases. When the case comes outside active conversation timeout, the case is sent to holding queue of agent where it waits fornthe agent capacity to get free.

Illustration of Stickiness Settings

Let's suppose a customer has followed up again on a case which was last unassigned from the agent at 9:00 AM. The case is routed to the same work queue as it was last time. The stickiness settings are defined as follows :

Stickiness Timeout = 4 Hours

Active Conversation Timeout = 1 Hour

Stickiness Wait Timeout = 20 Minutes

Let's look at how the follow up case is treated based on the customer follow up time.

1. Customer follows up at 2:00 PM

Here, the time difference between the customer follow up (2:00 PM) and last interaction with the agent (9:00 AM) is 5 hours which is greater than the defined stickiness timeout (4 Hours). Hence this case will not be considered for stickiness and will be assigned to any random agent in the work queue.

2. Customer follows up at 11:00 AM

Here, the time difference between the customer follow up (11:00 AM) and last interaction with the agent (9:00 AM) is 2 hours, which is less than the defined stickiness timeout (4 Hours). Hence this case will be considered for stickiness. Now the question comes that if the capacity of the preferred agent is full, it should be breached or not. It will not be beached as the time difference (2 hours) is outside the Active Conversation Timeout (1 hour). The case will wait for the preferred agent till 20 Minutes (Stickiness Wait Timeout). If the agent capacity gets free before 11:20 AM, the case will be assigned to him/her, otherwise it will be assigned to any random agent in the work queue.

3. Customer follows up at 9:30 AM

Here, the time difference between the customer follow up (9:30 AM) and last interaction with the agent (9:00 AM) is 30 minutes, which is less than the defined stickiness timeout (4 Hours). Hence this case will be considered for stickiness. Now the question comes that if the capacity of the preferred agent is full, it should be breached or not. It will be beached as the time difference (30 minutes) is within the Active Conversation Timeout (1 hour). The case will be assigned to the preferred agent irrespective of the consumed capacity of the agent.

Stickiness for unavailable agents

Here users can define the desired availability status of agents in which the follow up/stickiness case can be assigned to the agent.

For example, we want to assign follow up cases in case the agent is "Busy" as he can resume work when he gets free. But we do not want to assign follow up cases when the age. For more details on the use case of this feature, refer to this article.

Stickiness Workflow

For any case entering the work queue, the Stickiness Workflow followed in Unified Routing is shown as follows :