Chat distribution

Chat distribution

The following Agent allocation scenarios are available in Beesender Chat Master by default:

The client initiates the chat

Once the chat has been initiated by a client, the Agent search procedure is as follows

Step 1 Are there any agents that meet all 4 of the following conditions?

  1. The Agent must be active;

  2. The Agent works with chats in this channel;

  3. The Agent is in the "Online" status;

  4. The Agent has a vacant chat slot.

The search is repeated every 5 seconds if no agents are found that meet all the above conditions. If there is more than 1 agent that fulfils the condition in step 1, then the search is continued.

Step 2 Which of the operators has a lower "Queue position" in the Agent card?

For example
If the agents of Agent Group “Line 1” and “Line 2” are found in step 1, then a further search will be carried out among the agents of “Line 1” group.
If the agents of Agent Group “Line 2” and “Line 3” are found in step 1, then a further search will be carried out among the agents of “Line 2” group.

If the number of agents that meet the condition in step 1 and have the same lowest Queue Position - is greater than 1, then the search is continued.
Step 3 Which agent has fewer open chats?
If the agents have the same number of chats running, continue searching.

Step 4 Allocate the chat to the agent who closed the last chat earlier than the other agents.

For example
If "Agent A" last closed a chat at 15:00 and "Agent B" last closed a chat at 15:05, than “Agent A” will be the chat's operator.

Step 4 is applied starting Beesender Chat Master version 3.2 or newer.

Agent initiated chat from a Contact card

If a chat is initiated by an agent from a Contact card, the chat will be assigned to that agent, regardless of the settings in the Beesender Chat Settings.

Transfer to an agent via the communication panel

When communicating with a client, you may need to transfer a chat to a group of agents or to a specific agent.

To transfer a chat to a group of agents

 

The search follows the flow:

Step 1 Are there any agents that meet all 5 of the following conditions?

  1. The Agent must be active;

  2. The Agent works with chats in this channel;

  3. The Agent is in the "Online" status;

  4. The Agent has a vacant chat slot;

  5. Agent is included in the selected Agent’s group.

If more than 1 operator meets the condition in step 1, then

Step 2 Which of the agents in the selected group has fewer open chats running?

If all operators have an equal chatload

Step 3 Allocate the chat to the agent who closed the last chat earlier than the other agents.

 

Step 3 is applied starting Beesender Chat Master version 3.2 ore newer.

Transferring chat to selected agent

If there is an available slot, the chat is assigned to the chosen representative.

When transferring a chat to a specific agent, the chat is distributed regardless of the "Channels" settings in the Agent card.

On hold chat conversation

When a chat is put on hold, the following applies:

  1. the "Time for changing agent (minutes)" timeout does not distribute the chat to another operator;

  2. the chat will not be closed by the timeout “Time for closing chat after last message (minutes)";

  3. when determining agent’s vacancy, the chat is not counted as an open chat on the agent.

Alternative Chat Distribution flow

This logic refers to the application “BeesenderMonthPriorityRouting”, which overrides chat distribution logic for a new as follows

Step 1 Are there any agents that meet all 5 of the following conditions?

  1. The Agent must be active;

  2. The Agent works with chats in this channel;

  3. The Agent is in the "Online" status;

  4. The Agent has a vacant chat slot;

  5. Agent is included in the Agent’s group with lowest Queue position.

If more than 1 operator meets the conditions in step 1, then

Step 2 Which of the agents in the selected group has fewer closed chats among all the chats created today? 

If all operators have an equal number of chats closed today

Step 3 Allocate the chat to the agent who has fewer closed chats for the 30-day period than other agents have.

The same logic will be applied when transferring a chat to a group of agents, except that in Step 1 Condition 5, the Agents group will be defined by the user's choice.

Glossary

Agent vacancy

This will be calculated by subtracting 'channel weights for all open chat channels currently assigned to this Agent' from the 'Agent's max load'. There is a free slot for that chat if the chat channel weight is less than or equal to the Agent vacancy value.

Chat distribution Job to agent group

Managing start and stop

By default, the distribution job is disabled.

To start the job, you must manually launch the business process: Run the routing to the group Job

To stop the job, use the process: Stop the routing to the group Job

Distribution frequency and volume configuration

On the "Chat distribution" tab in the "Beesender chat settings" section, two fields are available:

  • Chat distribution start frequency (sec.)

How often the system starts chat distribution to a group of agents. Value cannot be negative.

  • Chats quantity to distribute from

Number of chats to distribute per run to a group of agents. Value cannot be negative.

image-20250604-065211.png

 

Priority Logic:

  • If both fields are filled in (> 0), these values are used.

  • If both fields are set to 0, the job refers to system settings:
    BeesenderRoutingFrequence (default: 5 seconds)
    BeesenderRoutingQueueSize (default: 15 chats)

    2.1. If only one field is filled in and the second is 0, the system setting will be used only for the empty one, and the filled value will be taken from the section.

  • If system settings are not specified, default values are applied:
    Frequency: 5 seconds
    Chat count: 15

How chats get into thequeue

Chats enter the BeesenderChatInQueue object when the Transfer to agent group business process is triggered. A record is created with the following fields:

  • Chat — Chat ID

  • Group — Operator group ID (BeesenderOperatorGroup directory)

  • Reason — Reason for transfer

  • IsBotTransfer — Flag indicating bot transfer

Other ways to add chats to the queue are also possible — for example, through a chatbot business process or manually via the Creatio interface.

How the Job works

The job runs at the specified frequency.

From the BeesenderChatInQueue object, chats that are not closed and not on hold are selected, sorted by creation date (CreatedOn) — from oldest to newest.

The number of chats specified in Number of chats to distribute is selected (or according to the priority logic).

An agent is selected for each chat, and the distribution occurs based on the defined strategy.

After processing, the record is removed from the BeesenderChatInQueue object, regardless of whether the chat was distributed or not.

If there are no suitable chats, the job completes with no action.

Distribution logic when the Job is disabled

If the job is disabled, chats are distributed using the standard logic used previously.

When the Transfer to agent group process is triggered, a check is performed:

  • If the job is enabled — the chat is placed in the BeesenderChatInQueue

  • If the job is disabled — distribution logic is executed without using the queue

Distribution Logic for Chatbot
Depending on the IsBotTransfer field in the BeesenderChatInQueue object, the distribution method is recorded in the BeesenderChatOperator object:

  • Distributed by chatbot — if the chat was transferred by a bot

  • Distributed by operator — if the transfer was initiated by an operator