Agent routing¶
The contact center uses its set skills, knowledge, queues, etc. to load agents. If multiple agents are at the same level of previous values, calls among them are ordered according to the logic “Most Idle”.
Note
Routing can also be affected by Agent blocked [s]
and agent settings Max. missed calls
.
“Most idle” routing¶
Assuming that all agents accept the calls distributed to them, the calls are to be divided equally among all of them. This is actually checked in FrontStage using the LastCallUtc
value from the Agent
database table. The agent with the lowest value will be given priority to receive the call.
Important
In the datagrid in your application you will see the value “Last call time” formatted according to the time zone of your account. The UTC time is then recorded in the database.
Example:
Two agents
They have the same level of skills and proficiencies
They have the same queue
Both of them are in the
Ready
state
The first call arrives on the line, is distributed to the queue, rings first for agent #1, the call ends with successful handling,
LastCallUtc
set to the current time.A second call arrives on the line, is distributed to the queue, now rings in priority for agent #2, because his
LastCallUtc
is lower than for agent #1, the call ends with a successful handling,LastCallUtc
set to the current time.A third call comes in on the line, is distributed to the queue, rings again for agent #1 because his
LastCallUtc
is now lower than for agent #2, the call ends with a successful handling,LastCallUtc
set to the current time.
Actions affecting the LastCallUtc update¶
To make the function more efficient, multiple events have been introduced that trigger the LastCallUtc
updating to the current time (detection of an event from the list) and thus affect the example above.
Call ringing at the agent’s workplace
Answering a call by an agent
End call (UTC time detected on the FrontStage side)
Missed call by agent and subsequent distribution to FrontStage
Agent login to the workplace when the
AgentAfterLoginGoLast
configuration parameter is set totrue
Optimising idle behaviour¶
In the situation where one of the agents is not working optimally and is not systematically answering distributed calls, he or she is moved to the back of the queue so that this behavior does not disrupt the operation of the contact center and thus disrupt the experience of customers who would not be able to consistently reach them. This situation bypasses the LastCallUtc
evaluation.
Example:
Two agents
They have the same level of skills and proficiencies
They have the same queue
Both of them are in the
Ready
state
The first call comes on the line, is distributed to the queue, rings first for agent #1, the call is picked up and handled successfully.
A second call comes on the line, is distributed to the queue, rings first for agent #2, he doesn’t answer. The call goes to agent #1, he doesn’t answer either. Caller hangs up, call lost.
A third call comes on the line, is distributed to the queue, and rings for agent #1, who was previously active and picking up calls.
Agent #2 has been relegated to the back of the queue because it is uncertain if he is actually present at his workplace in this condition.
Note
The supervisor should monitor agent performance statistics in real time, and if this behavior is detected, the supervisor should switch the agent to the Pause
state or otherwise arrange for remediation.