This is our observation in a CSHC application in Pega Chat routing.
When there were 2 available agents Agent A and Agent B, first chat request went to Agent A. Agent A wrapped up interaction. A second request went to Agent A again. They tried this 4 more times and all requests went to Agent A. Agent B never got a request.
This is not about load balancing, but how does the routing logic choose between 2 available agents and is there any way to modify that?
Chats are routed to agents based on their presence status (i.e., if they’re “Available” or “Not Available”), the number of active (and offered) chats they have (i.e., an agent with 1 chat will be offered a new chat before an agent with 2 chats), and the time they logged into the chat server.
So in the scenario you describe, Agent A and Agent B are both available, and both have 0 chats, then the next chat will go to the agent who first logged into the chat server. It sounds like this was Agent A.
There are no configs to be able to adjust this logic in Pega CS 8.1 and prior releases, but we are making enhancements to the routing logic in Pega CS 8.2 (and beyond).
I understand the concern about the current logic…but this doesn’t tend to be an issue in real-world scenarios, at least not if there is a reasonable number of new/incoming chats. If chat volume is very low, then Agent A might get a chat and complete it before a second chat arrives. But in most cases, a second chat will arrive (and a third and a fourth) while Agent A is still working on that first chat. In that case, Agent B, who has 0 chats to Agent A’s 1 chat, would be offered the second chat. Once the day (or a new shift) starts, new chats are arriving regularly – and being completed regularly – so each agent will have a changing number of chats (1, 2, 3…up to the number set in the “Max concurrent conversations” config), and routing tends to be even across agents.