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

  1. 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.

  2. 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.

  3. 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 to true

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

  1. 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.

  2. 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.

  3. 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.