# Очереди в РМО

Большую роль в работе сервиса **Webim** играют очереди. В отличие от [разделов](https://webim.ru/kb/control-panel/sections.html), они напрямую не видны пользователю, однако именно они определяют порядок обработки обращений. Для поступающих в систему обращений предназначена общая очередь (она отображается в одноимённом [разделе](https://webim.ru/kb/control-panel/sections.html)). В неё входят прочие очереди, каждая из которых — это набор диалогов в состоянии `queue` или `offline_queue` с уникальной связкой отдел-язык-офлайновость, не назначенных на оператора. Иными словами, для каждого языка в каждом отделе есть две очереди: онлайн- и офлайн-обращения.

При включённом [автоназначении](https://webim.ru/kb/control-panel/settings-general.html) система работает с очередями следующим образом: раз в секунду из всех очередей выбирается самая горячая (с наиболее старым первым диалогом), система пытается найти доступного оператора, на которого можно его назначить. Доступным считается оператор, который находится онлайн, совпадает с диалогом по языку и отделу, а также не занят. Занятым он считается, если на нём находится максимальное число диалогов (`max_chats_per_operator`). Если назначить диалог удаётся, выбор самой горячей очереди повторяется, если нет — текущая очередь перестаёт учитываться, пока в системе не произойдёт какое-либо событие (очевидно, если не удалось назначить первый диалог в очереди, то же будет и со всеми остальными диалогами). Переоткрытые, переведённые и тому подобные диалоги ведут себя так же. Обратите внимание, что распределение работает по времени создания диалога, а не по времени попадания в очередь. Диалог, у которого время создания раньше, распределится раньше. Также на порядок назначения может повлиять присутствие веб-страницы в списке [Приоритетные страницы](https://webim.ru/kb/control-panel/settings-general.html#additional-functions). Когда диалог назначается на оператора, он находится в том же состоянии (пока оператор не возьмёт его), но уже не входит в очереди, хотя в сервисе это выглядит так, будто у каждого оператора есть своя очередь назначенных диалогов. При прочих равных условиях выбирается оператор с наименьшим числом диалогов, если таких несколько — оператор выбирается из их числа случайным образом. Однако это можно изменить, см. ниже.

Действует ли автоназначение для офлайн-обращений, по умолчанию определяется той же настройкой, что для онлайн-обращений (auto_assign), но при желании Вы можете обратиться в техническую поддержку, чтобы настроить это поведение отдельно (`auto_assign_offline`). Также для них действуют те же тайм-ауты, за одним исключением: [тайм-аут ожидания оператора для первого сообщения](https://webim.ru/kb/control-panel/settings-general.html#timeouts) не работает для офлайн-обращений, находящихся в очереди.

В версиях **Webim** ниже 10.1 для офлайн-обращений лимит диалогов на операторе считается отдельно, то есть фактическое число диалогов может превысить **Максимальное кол-во чатов на оператора** вдвое (к примеру, если выставлено 5, то на операторе может находиться до 5 онлайн- и до 5 офлайн-обращений включительно). Если диалог переходит из статуса онлайн в офлайн или наоборот, он переходит и в соответствующий лимит.

Начиная с версии 10.1 для онлайн и офлайн-очередей существует общий лимит количества чатов на оператора (по умолчанию равный 5). Операторам со статусом *Онлайн* сначала назначаются чаты из онлайн-очереди, а чаты из офлайн-очереди начинают назначаться, если в онлайн-очереди чатов больше не осталось.

На работу автоназначения могут влиять некоторые настройки. Для их изменения нужно обратиться в [техническую поддержку](mailto:support@webim.ru):

  * `chat_states_for_count_per_operator` — определяет, в каких состояниях диалоги входят в лимит автоназначения как назначенные на оператора. По умолчанию это `chatting`, `queue`, `offline_queue` и `offline_process`, то есть онлайн- и офлайн-обращения в очереди и в обработке.

  * `auto_assign_to_last_chat_operator` — если включено (по умолчанию) и если от посетителя уже ранее поступали обращения, то новое обращение будет назначено на того же оператора, что и предыдущее. Если также включено `auto_assign_to_last_chat_operator_if_busy`, то это произойдёт, даже если этот оператор занят.

  * `auto_assign_priority_by_last_chat_assigned_ts` — если включено, новое обращение будет назначено на того оператора, который дольше всего не получал обращений.

  * `auto_assign_priority_by_operator_order` — если включено, новое обращение будет назначено на того оператора, у которого меньше всего порядок сортировки, заданный в его профиле.

  * `operator_department_prioritization` — если включено, в настройках операторов появится вкладка Отделы, где можно будет выставить отделы, где состоит оператор, и их приоритет при автоназначении.

---

Источник: https://webim.ru/kb/for-admins/queues.html
