Skip to content

Алгоритмы назначения чатов

Cервис Webim предлагает несколько алгоритмов выбора оператора для обслуживания поступившего обращения от посетителя сайта.

Виды алгоритмов назначения чатов

Глобально Webim поддерживает два вида назначения чатов: ручной и алгоритмы автоназначения.

При использовании алгоритма ручного выбора чатов, который действует по умолчанию, операторы сами берут в обработку пользовательские обращения из общей очереди. Эта очередь нераспределённых обращений отображается у оператора в РМО в списке Ожидают ответа (у каждого оператора этот список сужается за счёт отсева тех обращений, в которых посетители потребовали операторов из других отделов или с навыками общения на других языках).

Это единственный алгоритм, доступный на бесплатном тарифе.

Алгоритмы автоназначения предусматривают автоназначение диалогов на операторов по выбору сервиса Webim. При этом оператор параллельно с автоматическим назначением на него чатов может самостоятельно брать диалоги из общей очереди в обработку, если её просмотр не отключён. В секции Ожидают ответа в этом случае отображаются только те диалоги, которые назначены сервисом на данного конкретного оператора. Автоназначение упрощает работу и операторам, и администратору, а для посетителей снижает риск неответа или позднего ответа.


Виды автоназначения

Условно можно выделить две разновидности автоназначения: базовое автоназначение и автоназначение с приоритизацией отделов (скиллизацией), что является дополненной и видоизменённой версией базового автоназначения.

Алгоритм скиллизации предполагает распределение чатов на операторов с учётом приоритетов отделов (скиллов). При включении данного алгоритма на странице редактирования оператора появляется вкладка Отделы, где можно установить приоритеты для отделов, к которым он привязан. В первую очередь на оператора будут назначаться обращения, оставленные в отдел, приоритет для которого выше (число меньше).

Использование алгоритма скиллизации может решать разные задачи. Например, таким образом можно обеспечить попадание большей части обращений с определённых отделов к конкретным операторам (наиболее компетентным в направлении отдела), но они, в случае загруженности наименее "приоритетного" для себя отдела, могли бы взять часть его обращений в обработку, что позволило бы равномернее распределить нагрузку между операторами и не упустить обращения.

Также скиллизация может помочь сделать так, чтобы обращения с каких-либо отделов обслуживались операторами в первую очередь: например, если нагрузка на какой-либо отдел больше, чем на другие.

Скиллизация отделов также может быть включена для отделов, которые обрабатывают обращения с каналов общения. То, откуда поступают обращения в отдел, не влияет на приоритизацию, и она происходит по выставленным для отделов приоритетам.

Подробнее о выставлении приоритета конкретным отделам, к которым привязан оператор, можно узнать здесь


Описание работы режимов автоназначения

Во всех режимах автоназначения в зависимости от настроек параметров возможны следующие алгоритмы выбора оператора из списка (при прочих равных):

Значение параметра auto_assign_priority_by_last_chat_assigned_ts Значение параметра auto_assign_priority_by_operator_order Сценарий автоназначения
true true либо false Для назначения чата среди операторов с наименьшим количеством диалогов (count) будет выбран тот, на которого последний диалог назначался наибольшее количество времени назад (значение параметра last_chat_assigned_ts минимальное).
false true Для назначения чата среди операторов с наименьшим количеством диалогов (count) будет выбран оператор с наименьшим значением порядка сортировки (указывается во вкладке Основные на странице редактирования оператора).
false false Чат будет назначен на случайного оператора из числа операторов с наименьшим количеством диалогов.

По умолчанию значением параметров auto_assign_priority_by_last_chat_assigned_ts и auto_assign_priority_by_operator_order является false.

Кроме того, существует ряд особенностей распределения чатов между операторами и ботами внутри отделов. Подробно настройка маршрутизации чатов между ботами и операторами, а также логика и алгоритмы распределения чатов описаны в статье.


Алгоритм назначения чатов при базовом автоназначении

Ниже описан механизм распределения чатов при базовом автоназначении.

Автораспределение происходит сначала для всех онлайн-чатов, затем для офлайн-чатов. И те, и другие чаты последовательно проходят через один алгоритм. Офлайн-чаты начинают распределяться, когда распределены все онлайн-чаты.

Проход 1. Онлайн-чаты

  1. Анализируется занятость всех активных операторов (находящихся в статусе Онлайн), а именно сколько свободных слотов есть у операторов в пределах числа, указанного в параметре max_chats_per_operator в account config (т.е. сколько новых чатов каждый из них может взять при текущем количестве чатов).

  2. Вычисляется, для каких сочетаний отделов и языков общения какие операторы доступны.

  3. Для каждого сочетания отдела и языка список активных операторов, привязанных к отделу, сортируется по убыванию количества свободных слотов.

  4. Онлайн-чаты сортируются по времени поступления обращения (т.е. времени создания чата): более старые чаты распределяются первыми.

  5. Первый в отсортированном списке из пункта 4 чат распределяется на выбранного оператора из пункта 3.

Проход 2. Офлайн-чаты

После того, как все онлайн-чаты распределены, тем же образом распределяются офлайн-чаты.

Иными словами, сервис Webim выбирает того оператора, который находится в статусе онлайн, при этом:

  • Уполномочен ответить на обращения, то есть принадлежит соответствующему отделу, см. Регистрация отделов, и общается на языке обращения

  • Имеет наименьшее количество назначенных на него диалогов, и это количество меньше установленного лимита (см. ниже)

Если такой оператор найден, то новое обращение распределяется на него. Если таких операторов в настоящий момент нет, то обращение остаётся ожидать распределения в очереди. Операторы и администраторы видят такие обращения в РМО в списке Общая очередь либо Офлайн-обращения. Администратор видит длину очереди нераспределённых обращений в графе Ожидает на Панели приборов.


Алгоритм назначения чатов при включённой приоритизации отделов (скиллизации)

Автораспределение происходит сначала для всех онлайн-чатов, затем для офлайн-чатов. И те, и другие чаты последовательно проходят через один алгоритм. Офлайн-чаты начинают распределяться, когда распределены все онлайн-чаты.

Проход 1. Онлайн-чаты

  1. Анализируется занятость всех активных операторов (находящихся в статусе Онлайн), а именно сколько свободных слотов есть у операторов в пределах числа, указанного в параметре max_chats_per_operator (т.е. сколько новых чатов каждый из них может взять при текущем количестве чатов).

  2. Вычисляется, для каких сочетаний отделов и языков общения какие операторы доступны, а также какие у них указаны значения приоритетов для каждого сочетания.

  3. Список операторов с их приоритетами для разных отделов и языков сортируется по возрастанию уровней приоритетов: от операторов с наивысшим приоритетом для отдела обращения (т.е. наименьшим числовым значением приоритета) к операторам с наименьшим приоритетом.

  4. Для элемента списка с отсортированными приоритетами из пункта 3 последовательно в порядке сортировки берутся очереди чатов, соответствующие:

    • онлайновости чатов (в данном случае онлайн-чаты)

    • отделам и языкам общения оператора для выбранного приоритета

  5. Среди отобранных в пункте 4 чатов выбирается минимальный чат и очередь.

    Минимальный чат в очереди — первый чат внутри отсортированной очереди, а минимальная очередь — первая очередь в отсортированном списке очередей.

  6. Минимальный чат из пункта 5 распределяется на оператора из пункта 2, то есть, у которого:

    • наибольшее количество свободных слотов

    • наивысший приоритет для отдела, в который поступил данный чат

Проход 2. Офлайн-чаты

После того, как все онлайн-чаты распределены, тем же образом распределяются офлайн-чаты.

Следовательно, при автоназначении чатов из общей очереди на операторов можно заметить, что обращения, поступившие в сервис раньше, могут назначаться на операторов после того, как распределились обращения, поступившие в сервис позже по времени. Такое поведение системы является корректным и объясняется особенностями логики распределения чатов. Наглядно механизм автоназначения чатов при включённой приоритизации отделов можно рассмотреть на примере.

Пример

  1. Оператор 1 имеет один свободный слот (т.е. больше, чем у Оператора 2) и может взять в обработку один чат.

  2. Ожидающие автораспределения чаты сортируются согласно приоритетам оператора (у Оператора 1 в приоритете чаты в Отдел 2). Вверху списка оказываются чаты в Отдел 2, после них — чаты в Отдел 1.

  3. Чаты для отделов сортируются по времени поступления обращения. У чатов, поступивших в Отдел 2, наибольшим приоритетом обладает чат, поступивший в 11:55 (раньше, чем другой чат в данный отдел). В Отдел 1 поступило только одно обращение, и оно стоит в очереди после чатов в Отдел 2.

  4. На оператора распределяется самый ранний чат из чатов в Отдел 2, то есть тот, что поступил в 11:55.

  5. После этого распределяется следующее по времени обращение в Отдел 2, то есть обращение в 12:01.

  6. Так как обращение в Отдел 1 не было взято за это время в обработку другим оператором (все его слоты были заняты или он обрабатывал чаты из отделов с более высоким для себя приоритетом), оно распределяется на Оператора 1 в 12:10 после того, как все чаты в Отдел 2 были обработаны. Если бы до этого в Отдел 2 поступило новое обращение и оно бы не было назначено на других операторов до того, как у Оператора 1 появился свободный слот, оно бы обладало наивысшим приоритетом и было на него распределено, и обращению в Отдел 1 пришлось бы ждать ещё дольше.

Таким образом, обращение, которое было оставлено раньше всех (в 11:40) было обработано позднее, чем обращения, оставленные в 11:55 и 12:01, поскольку включённая скиллизация нацелена на то, чтобы обращения обрабатывались наиболее компетентными по конкретному вопросу операторами.

Чтобы оценить, насколько эффективно распределены приоритеты отделов у различных операторов, администраторы могут воспользоваться возможностями аналитики на странице Статистика, отслеживать метрики на Панели приборов. При обнаружении закономерности, что обращениям в те или иные отделы отводится чрезмерно низкий приоритет (наблюдается слишком долгое распределение чатов в какой-то отдел), целесообразно пересмотреть и перераспределить приоритеты отделов у операторов, повысив их для "проблемных" отделов, либо увеличив максимально допустимое количество чатов для операторов.

Если включена приоритизация отделов (скиллизация) и администратор меняет приоритеты отделов, то произойдет следующее: при сохранении изменений выполнится очистка кэша отделов и в следующем 30-секундном цикле работы автоназначения сработают новые приоритеты. То есть, максимальное время ожидания вступления в силу настроек — длительность операции обновления настроек + 30 секунд.


Автоназначение приоритетных чатов

Если включена настройка high_priority_urls в account config, то вне зависимости от типа автоназначения (со скиллизацией отделов или без неё) и статуса чатов (онлайн или офлайн) первыми будут распределяться чаты посетителей с приоритетных страниц. Таким образом, при сортировке чатов дополнительно будет проверяться поле посетителя high_priority, значение которого определяется тем, с какой страницы посетитель начал чат. Если значение поля равно 1 ('high_priority' = "1" - посетитель находится на приоритетной странице), то этот чат будет расположен в очереди раньше других. Затем приоритетные чаты (если их несколько) сортируются по времени обращения.

Также поле high_priority может быть указано у посетителя(ей) самостоятельно клиентом, если нужно, чтобы чаты от определённых посетителей обрабатывались в первую очередь. Например, такой подход можно использовать в мобильном приложении на основе Webim Mobile SDK.


Переключение между режимами

На бесплатном тарифе включение автоназначения невозможно.

Включение и регулирование функции автоназначения осуществляет администратор в разделе Общие настройки, на вкладке Дополнительные функции:

Опции автоназначения

Для включения функции:

  1. Установите флажок Автоназначение.

  2. Укажите Максимальное кол-во чатов на оператора. Это значение устанавливает лимит, при превышении которого автоназначение на такого оператора перестаёт работать. Значение по умолчанию: 5. Введите значение вручную или используйте стрелочки для увеличения-уменьшения.

Кроме того, возможно отдельно выставлять автоназначение для онлайн и офлайн-чатов. По умолчанию для офлайн-чатов автоназначение включено, если включено автоназначение для онлайн-чатов, и наоборот. Если Вы хотите установить для офлайн-чатов другой режим, Вам необходимо изменить параметр auto_assign_offline в специальных настройках, недоступных через Консоль управления, либо попросить об этом техническую поддержку.

Приоритизация отделов работает при включённом автоназначении, которое включается в Общих настройках (см. предыдущий пункт) и тем самым устанавливает значение true параметру auto_assign. Для активации самого алгоритма скиллизации необходимо установить значение true специальному параметру operator_department_prioritization (по умолчанию false). Это делается в account config по отдельному URL. Если у Вас нет к нему доступа, обратитесь в техническую поддержку Webim.


Настройки для режимов автоназначения

При автоназначении возможна настройка следующих параметров account config:

Параметр Тип Значение по умолчанию Описание
auto_assign_priority_by_operator_order Boolean false Выбор оператора при автоназначении по порядку сортировки, а не случайно. Выбирается оператор с минимальным значением порядка из числа предварительно отсеянных.
auto_assign_priority_by_last_chat_assigned_ts Boolean true для новых аккаунтов, false для ранее созданных Выбор оператора при автоназначении по времени назначения предыдущего чата на него. Выбирается оператор, которому последний чат назначался раньше всех из числа предварительно отсеянных.
auto_assign_to_last_chat_operator Boolean true Чат назначается на оператора, с которым у посетителя был последний чат.
auto_assign_to_last_chat_operator_if_busy Boolean false Чат назначается на оператора, с которым у посетителя был последний чат, вне зависимости от занятости оператора. Действует только при auto_assign_to_last_chat_operator = true.

При включённой скиллизации дополнительно можно устанавливать следующие настройки:

Параметр Тип Значение по умолчанию Описание
default_operator_department_priority Integer 5 Значение приоритета по умолчанию, если не выставлено другое.
restricted_profiles Boolean false Невозможность редактировать свои собственные настройки, в том числе приоритеты отделов (операторы, супервизоры).

Выставлять приоритеты для отделов для операторов и супервизоров всегда может администратор, а супервизор может менять приоритеты операторов, которые находятся в подревизных ему отделах, а также подревизных супервизору напрямую. По умолчанию (при значении системного параметра restricted_profiles = false) операторы и супервизоры могут менять значение приоритетов у своих отделов. Если параметр restricted_profiles = true, операторы и супервизоры не могут редактировать свои приоритеты.

По умолчанию приоритеты отделов равны 5.


Последнее обновление страницы: 13 февраля 2026 г.