How do chat requests get routed to agents?
Chat, Agent, Business Rules
When a chat is submitted by an end user it is inserted into the "Default Chat Queue" unless first acted upon by chat rules used to route the chat to another queue. If chat rules are in place, the chat is routed to the specific chat queue specified in the rule. Chat rules are different than incident rules. Once the chat has been routed to its proper queue, the chat will follow the process outlined here to be assigned to an agent.
The assignment of chat will occur using a specific algorithm. When a chat request is made the system creates two lists:
1. A list of waiting chats, and
2. A list of available agents with at least 1 available chat session
The list of waiting chats is sorted by longest wait time; therefore the oldest chat is served first. The list of available agents is sorted based on the last assignment time of the agent session. If agents are logged in and haven't had any chats during their session, each agent has an equal chance of receiving the first chat that comes in, regardless of the order in which the agents logged in. Once each agent has accepted a chat, then the router will assign the chat based on which agent has the oldest request for a chat. The longest waiting chat is assigned to the agent with the oldest outstanding request for a chat.
The chat assignment algorithm takes the following into consideration:
- The time a chat session was requested by the end user
- The time the agent was last assigned a chat session
- Whether the Pull Policy on the profile is set for First Due or Strict Priority. For more information on Pull Policy, please see Answer ID 8179: Understanding Chat Permissions: Chat Queue Pull Policy.
The chat assignment algorithm does not take the following into consideration:
- Whether the Profile is set for PUSH or PULL Chat Mode. For more information on Push and Pull Chat Modes, please see Answer ID 8178: Understanding Chat Permissions: Pull Chat Mode and Push Mode.
- The number of sessions an agent has available. The system does not proactively distribute the next chat to the agent with the most available chat slots.
Helpful examples for understanding the chat assignment algorithm:
- All agents login at the same time, all are available, none have taken a chat, then one of the agents will receive a chat session.
- Agent A has handled 1 chat, Agent B has handled zero chats, then the next chat in the queue will be assigned to Agent B.
- Agent A has handled 10 chats, Agent B has handled 5 chats, Agent C has newly entered the queue and is available, then the next chat in the queue will be assigned to Agent C.
- All agents have the same profile with max chats set to 3. Agent A is currently handling max chats/has no sessions available, Agent B has one active chat that was assigned at 8:10, Agent C has one active chat that was assigned at 8:15, then the next chat in the queue will be assigned to Agent B.
- Agent A has two active chats where one was assigned at 8:05 and the other at 8:15, Agent B has one active chat that was assigned at 8:10, then the next chat in the queue will be assigned to Agent B.
The Chat Assignment Algorithm and the Ignore Preroute attribute:
Please Note: If the conditional chat link (syndicated or standard) is deployed and the ignore_preroute attribute is enabled (set to 'yes'), then customers may be routed to a different queue than the one originally determined by agent availability (even a queue for which no agent is immediately available). This can conflict with the indication of availability expressed by the widget itself, leading to customer confusion. For this reason, the ignore_preroute attribute should be enabled only when necessary for achieving a specific business goal. For more information, refer to Answer ID 6523: Chat rules not working with ConditionalChatLink.
For additional information, refer to the 'Configuring Chat for Supervisors and Agents' section in online documentation for the version your site is currently running. To access Oracle Service Cloud manuals and documentation online, refer to the Documentation for Oracle Service Cloud Products.