Skip to main content

How to setup round robin/automatic chats assignment workflow?

This article describes how to setup auto assignment workflow in Live Helper Chat. Auto assignment works two ways out of the box.

  • Live auto assignment - means chats are auto assignment on chat sync event in visitor widget. This allows auto assignment work even if there is no cronjob running. Disadvantage is it does not respect FIFO order if you have a lot of chats.
  • Using workflow cronjob - this is a recommended way of having auto assignment setup. You should also disable live auto assignment in that case. Using cronjob chats will be assigned in FIFO order.


In department you can find auto assignment settings.

Attributes definition

Maximum number of active chats user can have at a time, 0 - unlimited

You can set how many actives chats user can have at a time.

If this variable is not set we would assign chat to user if

  • Either operator does not have max chats limit OR and his active chats is less than

If this variable is set we would assign chat to user if

  • Either operator does not have max chats limit set AND active chats ir less than defined maximum number of chats in department.
  • OR
  • Either he has limit set and number of chats is less than number of active chats he has now

Maximum number of department active chats, 0 - unlimited

Auto assignment workflow would be executed only if department is having less active chats than defined amount. If this limit is reached, new chats will not be assigned to any operator.

Automatically assign chat to another operator if operator did not accepted chat in seconds, 0 - disabled

If you set 10 means operator would have 10 seconds to accept a chat before chat is assigned to another operator.

  • Back office is checking for a new chats every 10 seconds by default. You should decrease that time to 3 or 4 seconds in. chat configuration
  • Chat is assigned to operator even if operator is in invisible mode. Operator participating in auto assignment workflow should be online and in visible mode. If invisbile operator opens a chat nothing will happen and chat will be assigned to another operator!

Minimum delay between chat assignment to operator

Then we assign chat to one operator we can give some delay before another chat can be assigned to the same operator.

Exclude inactive chats

Pending and active chats which visitors has closed chats explicitly or visitors being redirected to survey will be excluded

Try to assign chats first to the same language speaking operators

Operator in their accounts can choose what languages they are speaking. So it's possible to try first to assign chats to same language speaking operators.

Check for presence of variable && Resume auto assign if chat remains pending for n seconds

  • additional_data.<variable>
  • chat_variable.<variable>

Using this functionality we can allow to participate in auto assignment chats which have custom variables only. By defining time we do these checks only if chat is not older than defined amount of time.


This functionality should be used only by advanced users which want to do some fancy things 😄

Workflow cronjob influence

If you want auto assignment workflow to work independently of what visitor does (still on site or not) you have to be running workflow cronjob. I suggest in that scenario run cronjob every 5 seconds.

Disable live auto assignment

Usually auto assignment happens when visitor is waiting untill someone accepts a chat. If you are running workflow cronjob it makes sense uncheck this as cronjob will do this part. This also will make visitor UI feel faster.

Disable live auto assign option can be found here

System configuration -> Live help configuration -> Chat configuration -> Misc

How to deny the operator to open all pending chats?

By default operator can open all pending chats. Not only assigned to him. If you are using auto assignment workflow and do not want to allow an operator to open all pending chats just remove this permission.


How to deny the operator to open all chats?

If you remove this permission operator will be able to open chats only where he is an owner.


How automatically open assigned chat for an operator?

  • You have to in user account check Automatically accept assigned chats
  • Operator has to have enabled Pending chats list enabled or My pending and active chats list enabled

How to show pending chats order from oldest to newest?

You can change pending chats order in chat configuration

How prioritise a chat to be assigned first if chat is waiting more than X amount of time?

This is usefull in case you are having long queue and chat's wait time becomes very long. As an example if chat is waiting more than 10 minutes you want it to be assigned first.

Navigate to

System configuration -> Chat configuration > Misc

Enter value for this field Chats waiting in pending queue more than n seconds should be auto-assigned first. Time in seconds'


To user explicitly has to be assigned department. It's not enough just check all departments. Within each department have to be checked department.

Department adjustment

You have in department "Auto assignment" secion enable automatic chats transfer.

Users adjustment

By default users sees all pending department chats. To disable that and show only to him assigned pending chats you have to

  • Edit user and in "Pending chats" tab, uncheck "User can see all pending chats, not only assigned to him"
  • By default operators do not have permission to choose what pending chats they can see. You can grant permission to choose them personally what list he want's to see. Assigned to operators role permission
  • "lhuser" => "allowtochoosependingmode" | "Users, groups management" => "Allow user to choose what pending chats he can see, only assigned to him or all."
  • User has to be online for chat being assigned to him
  • If you want that assigned chat would be opened automatically for user. User in his account has have checked "Chats" => "Automatically accept assigned chats"
    • If user does not see Chats tab in his account you have to give operators role this permission Module - (lhuser) Function - (allowtochoosependingmode)
  • Also in "Visible lists" worh checking "My pending and active chats list enabled" so user would see new widget where only to him assigned active and pending chats would be presented. For user to be able to change what he sees he has to have this permission
    • Module - ('lhuser'), Function - ('change_visibility_list')