Перейти к содержанию

Очереди в РМО

Большую роль в работе сервиса Webim играют очереди. В отличие от разделов, они напрямую не видны пользователю, однако именно они определяют порядок обработки обращений. Для поступающих в систему обращений предназначена общая очередь (она отображается в одноимённом разделе). В неё входят прочие очереди, каждая из которых — это набор диалогов в состоянии queue или offline_queue с уникальной связкой отдел-язык-офлайновость, не назначенных на оператора. Иными словами, для каждого языка в каждом отделе есть две очереди: онлайн- и офлайн-обращения.

При включённом автоназначении система работает с очередями следующим образом: раз в секунду из всех очередей выбирается самая горячая (с наиболее старым первым диалогом), система пытается найти доступного оператора, на которого можно его назначить. Доступным считается оператор, который находится онлайн, совпадает с диалогом по языку и отделу, а также не занят. Занятым он считается, если на нём находится максимальное число диалогов (max_chats_per_operator). Если назначить диалог удаётся, выбор самой горячей очереди повторяется, если нет — текущая очередь перестаёт учитываться, пока в системе не произойдёт какое-либо событие (очевидно, если не удалось назначить первый диалог в очереди, то же будет и со всеми остальными диалогами). Переоткрытые, переведённые и тому подобные диалоги ведут себя так же. Обратите внимание, что распределение работает по времени создания диалога, а не по времени попадания в очередь. Диалог, у которого время создания раньше, распределится раньше. Также на порядок назначения может повлиять присутствие веб-страницы в списке Приоритетные страницы. Когда диалог назначается на оператора, он находится в том же состоянии (пока оператор не возьмёт его), но уже не входит в очереди, хотя в сервисе это выглядит так, будто у каждого оператора есть своя очередь назначенных диалогов. При прочих равных условиях выбирается оператор с наименьшим числом диалогов, если таких несколько — оператор выбирается из их числа случайным образом. Однако это можно изменить, см. ниже.

Действует ли автоназначение для офлайн-обращений, по умолчанию определяется той же настройкой, что для онлайн-обращений (auto_assign), но при желании Вы можете обратиться в техническую поддержку, чтобы настроить это поведение отдельно (auto_assign_offline). Также для них действуют те же тайм-ауты, за одним исключением: тайм-аут ожидания оператора для первого сообщения не работает для офлайн-обращений, находящихся в очереди.

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

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

На работу автоназначения могут влиять некоторые настройки. Для их изменения нужно обратиться в техническую поддержку:

  • 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 — если включено, в настройках операторов появится вкладка Отделы, где можно будет выставить отделы, где состоит оператор, и их приоритет при автоназначении.