Алгоритмы назначения чатов
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. Онлайн-чаты
-
Анализируется занятость всех активных операторов (находящихся в статусе Онлайн), а именно сколько свободных слотов есть у операторов в пределах числа, указанного в параметре
max_chats_per_operator
в account config (т.е. сколько новых чатов каждый из них может взять при текущем количестве чатов). -
Вычисляется, для каких сочетаний отделов и языков общения какие операторы доступны.
-
Для каждого сочетания отдела и языка список активных операторов, привязанных к отделу, сортируется по убыванию количества свободных слотов.
-
Онлайн-чаты сортируются по времени поступления обращения (т.е. времени создания чата): более старые чаты распределяются первыми.
-
Первый в отсортированном списке из пункта 4 чат распределяется на выбранного оператора из пункта 3.
Проход 2. Офлайн-чаты
После того, как все онлайн-чаты распределены, тем же образом распределяются офлайн-чаты.
Иными словами, сервис Webim выбирает того оператора, который находится в статусе онлайн, при этом:
-
Уполномочен ответить на обращения, то есть принадлежит соответствующему отделу, см. Регистрация отделов, и общается на языке обращения
-
Имеет наименьшее количество назначенных на него диалогов, и это количество меньше установленного лимита (см. ниже)
Если такой оператор найден, то новое обращение распределяется на него. Если таких операторов в настоящий момент нет, то обращение остаётся ожидать распределения в очереди. Операторы и администраторы видят такие обращения в РМО в списке Общая очередь либо Офлайн-обращения. Администратор видит длину очереди нераспределённых обращений в графе Ожидает на Панели приборов.
Алгоритм назначения чатов при включённой приоритизации отделов (скиллизации)
Автораспределение происходит сначала для всех онлайн-чатов, затем для офлайн-чатов. И те, и другие чаты последовательно проходят через один алгоритм. Офлайн-чаты начинают распределяться, когда распределены все онлайн-чаты.
Проход 1. Онлайн-чаты
-
Анализируется занятость всех активных операторов (находящихся в статусе Онлайн), а именно сколько свободных слотов есть у операторов в пределах числа, указанного в параметре
max_chats_per_operator
(т.е. сколько новых чатов каждый из них может взять при текущем количестве чатов). -
Вычисляется, для каких сочетаний отделов и языков общения какие операторы доступны, а также какие у них указаны значения приоритетов для каждого сочетания.
-
Список операторов с их приоритетами для разных отделов и языков сортируется по возрастанию уровней приоритетов: от операторов с наивысшим приоритетом для отдела обращения (т.е. наименьшим числовым значением приоритета) к операторам с наименьшим приоритетом.
-
Для элемента списка с отсортированными приоритетами из пункта 3 последовательно в порядке сортировки берутся очереди чатов, соответствующие:
-
онлайновости чатов (в данном случае онлайн-чаты)
-
отделам и языкам общения оператора для выбранного приоритета
-
-
Среди отобранных в пункте 4 чатов выбирается минимальный чат и очередь.
Минимальный чат в очереди — первый чат внутри отсортированной очереди, а минимальная очередь — первая очередь в отсортированном списке очередей.
-
Минимальный чат из пункта 5 распределяется на оператора из пункта 2, то есть, у которого:
-
наибольшее количество свободных слотов
-
наивысший приоритет для отдела, в который поступил данный чат
-
Проход 2. Офлайн-чаты
После того, как все онлайн-чаты распределены, тем же образом распределяются офлайн-чаты.
Следовательно, при автоназначении чатов из общей очереди на операторов можно заметить, что обращения, поступившие в сервис раньше, могут назначаться на операторов после того, как распределились обращения, поступившие в сервис позже по времени. Такое поведение системы является корректным и объясняется особенностями логики распределения чатов. Наглядно механизм автоназначения чатов при включённой приоритизации отделов можно рассмотреть на примере.
Пример
-
Оператор 1 имеет один свободный слот (т.е. больше, чем у Оператора 2) и может взять в обработку один чат.
-
Ожидающие автораспределения чаты сортируются согласно приоритетам оператора (у Оператора 1 в приоритете чаты в Отдел 2). Вверху списка оказываются чаты в Отдел 2, после них — чаты в Отдел 1.
-
Чаты для отделов сортируются по времени поступления обращения. У чатов, поступивших в Отдел 2, наибольшим приоритетом обладает чат, поступивший в 11:55 (раньше, чем другой чат в данный отдел). В Отдел 1 поступило только одно обращение, и оно стоит в очереди после чатов в Отдел 2.
-
На оператора распределяется самый ранний чат из чатов в Отдел 2, то есть тот, что поступил в 11:55.
-
После этого распределяется следующее по времени обращение в Отдел 2, то есть обращение в 12:01.
-
Так как обращение в Отдел 1 не было взято за это время в обработку другим оператором (все его слоты были заняты или он обрабатывал чаты из отделов с более высоким для себя приоритетом), оно распределяется на Оператора 1 в 12:10 после того, как все чаты в Отдел 2 были обработаны. Если бы до этого в Отдел 2 поступило новое обращение и оно бы не было назначено на других операторов до того, как у Оператора 1 появился свободный слот, оно бы обладало наивысшим приоритетом и было на него распределено, и обращению в Отдел 1 пришлось бы ждать ещё дольше.
Таким образом, обращение, которое было оставлено раньше всех (в 11:40) было обработано позднее, чем обращения, оставленные в 11:55 и 12:01, поскольку включённая скиллизация нацелена на то, чтобы обращения обрабатывались наиболее компетентными по конкретному вопросу операторами.
Чтобы оценить, насколько эффективно распределены приоритеты отделов у различных операторов, администраторы могут воспользоваться возможностями аналитики на странице Статистика, отслеживать метрики на Панели приборов. При обнаружении закономерности, что обращениям в те или иные отделы отводится чрезмерно низкий приоритет (наблюдается слишком долгое распределение чатов в какой-то отдел), целесообразно пересмотреть и перераспределить приоритеты отделов у операторов, повысив их для "проблемных" отделов, либо увеличив максимально допустимое количество чатов для операторов.
Если включена приоритизация отделов (скиллизация) и администратор меняет приоритеты отделов, то произойдет следующее: при сохранении изменений выполнится операция обновления настроек (flush) и в следующем 30-секундном цикле работы автоназначения сработают новые приоритеты. То есть, максимальное время ожидания вступления в силу настроек — длительность операции обновления настроек + 30 секунд.
Автоназначение приоритетных чатов
Если включена настройка high_priority_urls
в account config, то вне зависимости от типа автоназначения (со скиллизацией отделов или без неё) и статуса чатов (онлайн или офлайн) первыми будут распределяться чаты посетителей с приоритетных страниц. Таким образом, при сортировке чатов дополнительно будет проверяться поле посетителя high_priority
, значение которого определяется тем, с какой страницы посетитель начал чат. Если значение поля равно 1 ('high_priority' = "1"
- посетитель находится на приоритетной странице), то этот чат будет расположен в очереди раньше других. Затем приоритетные чаты (если их несколько) сортируются по времени обращения.
Также поле high_priority
может быть указано у посетителя(ей) самостоятельно клиентом, если нужно, чтобы чаты от определённых посетителей обрабатывались в первую очередь. Например, такой подход можно использовать в мобильном приложении на основе Webim Mobile SDK.
Переключение между режимами
На бесплатном тарифе включение автоназначения невозможно.
Включение и регулирование функции автоназначения осуществляет администратор в разделе Общие настройки, на вкладке Дополнительные функции:
Для включения функции:
-
Установите флажок Автоназначение.
-
Укажите Максимальное кол-во чатов на оператора. Это значение устанавливает лимит, при превышении которого автоназначение на такого оператора перестаёт работать. Значение по умолчанию: 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 |
|
Выбор оператора при автоназначении по времени назначения предыдущего чата на него. Выбирается оператор, которому последний чат назначался раньше всех из числа предварительно отсеянных. |
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.