Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Очередь (Queue) - логическая сущность, позволяющая определять приоритеты между входящим обращениями и распределять их между агентами.
Очередь вызовов является неотъемлемым компонентом любого Call-центра. Она предназначения для приема вызовов и постановки их в очередь ожидания. Вызов ожидает очереди до тех пор, пока не освободится один из операторов. Таким образом количество упущенных вызовов существенно снижается. Пока вызывающий абонент ожидает ответа, ему может проигрываться музыка, место в очереди и приблизительное время ожидания в очереди.

Call-центр Eltex предоставляет два типа очередей: базовые и расширенные. Оба типа доступны в IVR редакторе.

Базовая очередь

Базовая очередь доступна в стандартной лицензии ECSS-10. Для такого типа очереди определяется одна из следующих стратегий распределения вызовов:

  • Random
  • Serial (Серийный)
  • Progressive (Нарастающий)
  • Cyclic (Циклический)
  • Multicall (Массовый обзвон)
  • В базовую очередь можно подключить только телефонные номера (Операторы с АРМ не обслуживаются)
  • Очереди не видны супервизору;
  • Базовую очередь, созданную в одном IVR сценарии, нельзя использовать в другом.

Преимуществом такой очереди является простота конфигурирования. Такая очередь подойдёт клиентам, которым нужна возможность обеспечивать комфортное ожидание дозвонившимся абонентам, и в то же время не нужен полный функционал Call-центра (АРМ оператора, АРМ супервизора и так далее).

Пример настройки базовой очереди в IVR-редакторе см. Создание очереди call-центра в IVR-редакторе.

Расширенная очередь

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

  • Расширенная очередь может распределять вызовы на телефонные номера и операторов.
  • Супервизор может просматривать статистику по данной очереди; осуществлять мониторинг и прослушивание вызовов, распределенных с данной очереди; осуществлять консультирование операторов (более подробно о возможностях АРМ супервизора см. Супервизор).
  • Очередь учитывает статусы операторов и не распределяет вызовы на отсутствующих на месте агентов;
  • Очередь не распределяет вызовы на операторов, которые заняты постобработкой вызовов (см. Оператор);
  • Расширенную очередь можно добавить в несколько IVR сценариев;

Для такого типа очереди определяется одна из следующих стратегий распределения вызовов:

  • Random
  • LOA
  • MIA
  • Serial (Серийный)
  • Progressive (Нарастающий)
  • Cyclic (Циклический)
  • Multicall (Массовый обзвон)

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

Постобработка вызова - это состояние, когда оператор уже положил трубку, но ещё не готов принять следующий вызов, так как ему требуется предпринять дополнительные действия связанные с обработкой текущего вызова - например заполнить специальную карточку инцидента, заказа и так далее. Для завершения постобработки оператор может воспользоваться АРМ Оператора (см. Оператор), или использовать специальный feature-код телефонного аппарата (см. Оператор). Только после этого очередь будет считать данного оператора доступным.

Чтобы сконфигурировать расширенную очередь необходимо выполнить следующие шаги:

Помимо стратегий распределения и ограничений на помещение в очередь, которыми обладают базовая очереди, расширенная очередь обладает ещё одним важным свойством - группы. Очередь может быть членом одной или более групп. Если при создании очереди группа не была указана, очередь считается членом группы по умолчанию - default. Для того чтобы супервизор мог наблюдать за очередью, очередь должна находиться в той же самой группе, что и супервизор. Помимо административной роли, деление на группы имеет также чисто технический аспект: чем меньше группа (чем меньше в ней очередей и операторов) тем ниже трафик между ECSS-10 и АРМ Супервизора.

Более подробно настройка полноценной очереди будет рассмотрена ниже.

Стратегии распределения базовой очереди

Базовая очередь доступна в стандартной лицензии ECSS-10. Для такого типа очереди определяется одна из следующих стратегий распределения вызовов:

  • Random(Случайный выбор)
  • Serial(Серийный)
  • Progressive(Нарастающий)
  • Cyclic(Циклический)
  • Multicall(Массовый обзвон)

Стратегии распределения расширенной очереди

Стратегии распределения делятся на два вида: простые и множественного выбора.

Простые стратегии распределения

Простые стратегии распределения подразумевают выбор одного свободного оператора за попытку распределения. Вот их список:

  • MIA (Most Idle Agent) - очередь выбирает оператора, с момента последней попытки распределения на которого прошло больше всего времени. Более формально это можно описать следующим образом. При включенной стратегии mia идентификаторы операторов помещаются в специальный список в порядке в котором они перечислены в конфиге. При распределении очередь будет выбирать свободного оператора, который наиболее всего близок к голове данного списка, и распределять на него вызов, при этом сразу же перемещая его идентификатор в конец списка.
  • LOA (Least Occupied Agent) - очередь выбирает оператора, который за определенный интервал времени менее других обслуживал вызовы, распределенные очередью. Размер интервала определяется таймером /domain/<Domain>/timers/core/abonent_manager_statistic_boom_timeout и по умолчанию равен 5 минут.
  • Random - очередь выбирает оператора случайным образом

Если оператор не отвечает на распределенный вызов, он временно блокируется очередью. Время блокировки зависит от свойства оператора goodness:

  • good - время блокировки 20 секунд;
  • bad - время блокировки 40 секунд;
  • ugly - время блокировки 60 секунд;

Изначально у всех операторов значение свойства goodness = good. При каждом неотвеченном вызове значение goodness, в зависимости от текущего значения, изменяется от good к bad или от bad к ugly. При каждом отвеченном вызове значение goodness изменяется в обратном направлении - от ugly к bad или от bad к good.
Очередь не будет предпринимать попытки распределения на заблокированного оператора и, если у вызова не исчерпались попытки распределения, вызов будет обслужен другим свободным оператором.
Блокировка очередью не является штатным механизмом работы очереди, так как оператор, уходящий на перерыв или отсутствующий по другим причинам, может перейти в состояние "отошел", либо выполнить logout, используя телефонный аппарат или веб-АРМ. Кроме того, супервизор может принудительно заблокировать оператора, используя механизм блокировки супервизором, или же выполнить force-logout. Однако блокировки очередью служат защитным механизмом, в случае если отсутствующий на оператор всё же не был выведен из обслуживания, или же, если в качестве операторов используются рядовые абоненты SSW, не использующие функционал агентов. Сказанное выше о блокировках очередью справедливо для всех простых стратегий распределения как в базовых, так и в расширенных очередях.

Стратегии распределения множественного выбора

Стратегии распределения множественного во время одной процедуры распределения захватывают сразу всех операторов (или подходящих по скиллу. См. skill-based распределение) и устанавливают с ними соединение, руководствуясь логикой конкретной стратегии распределения.

  • Multicall (Массовый обзвон) - очередь распределяет вызов на всех операторов из числа доступных одновременно. Первый оператор, поднявший трубку будет обслуживать вызов, соединения с остальными операторами отбиваются. В случае если ни один из выбранных операторов не отвечает на вызов, все операторы, участвовавшие в распределении блокируются и их свойство goodness изменяется аналогично простым стратегиям распределения. Однако время блокировки не зависит от значения goodness и всегда равно 20 секундам.

В случае всех остальных стратегий распределения множественного выбора, блокировка очередью не применяется.
Параметр очереди window_duration актульнен только для стратегий serial, cycled и progressive. Это время в секундах после которого очередь начнет устанавливать соединение со следующей подгруппой операторов. Иными словами, это время сдвига окна распределения. По умолчанию 10 секунд.

  • Serial (Серийный выбор) - устанавливает соединение с операторами в порядке, в котором они добавлены в очередь. Сначала осуществляется соединение с первым оператором. Если оператор не отвечает по прошествии времени, указанного в window_duration, или же если оператор отбивает вызов, соединение с текущим оператором прекращается и начинается соединение со следующим по списку оператором. Так продолжается до тех пор, пока окно не достигнет последнего оператора. После этого окно уже не сдвигается, и продолжается попытка соединения с последним оператором до исчерпания времени max_distribution_duration или пока оператор не отклонит соединение. При неудачной попытке распределения, механизм будет запускаться повторно до исчерпания количества попыток, определяемого параметром max_distribution_attempts.
  • Progressive (Нарастающий выбор) - аналогично стратегии Serial последовательно производятся попытки соединения с операторами, но в отличие от стратегии Serial соединение с предыдущим оператором не прекращается при начале соединения с новым участником. В финале, если никто из участников не положит трубку, очередь будет параллельно осуществлять соединение со всеми операторами аналогично стратегии Multicall. Когда окно включит в себя последнего оператора, попытка распределения будет продолжаться до исчерпания времени max_distribution_duration или пока все операторы не отклонят соединение. При неудачной попытке распределения, механизм будет запускаться повторно до исчерпания количества попыток, определяемого параметром max_distribution_attempts.
  • Cycled (Циклический выбор) - аналогично стратегии Serial последовательно производятся попытки соединения с операторами. После достижения последнего оператора окно переходит к первому оператору, и так далее по-кругу. Соединения будут продолжаться до тех пор пока не истечет время max_distribution_duration. При неудачной попытке распределения, механизм будет запускаться повторно до исчерпания количества попыток, определяемого параметром max_distribution_attempts.

Skill-based распределение

Для тобы очередь при распределении могла выбрать наиболее подходящего оператора, обладающего тем или иным умением, существует skill-based распределение. Когда оно активировано, очередь будет применять процедуру распределения не ко всем свободным операторам, а к тем из них, кто наиболее соответствует по уровню умения. Примеры умения - владение английским языком, знание принципов построения сетей TCP/IP, навыки оказания первой помощи и так далее. Список скиллов является открытым и администратор домена может создавать произвольные скиллы по своему усмотрению.
Чтобы активировать skill-based распределение, нужно установить у очереди параметр skill_based_distribution (см. "Конфигурирование очереди").
Также для того чтобы skill-based распределение работало, скиллы, с одной стороны, должны быть настроены у операторов, и, с другой стороны должны быть выставлены у вызова перед его помещением в очередь с помощью IVR-блока Set.
Скилл в общем виде задаётся как <имя скилла>[:<уровень скилла>]. Уровень скилла может быть опущен, и тогда он по умолчанию равен 1. Примеры скиллов:

  • english:3,
  • police,
  • medicine

Имя скилла может быть разделено на две части разделенные знаком /: <тип>/<подтип>. Никакой алгоритмической ценности данное разделение не имеет - оно служит только для смысловой группировки скиллов, и специальным образом не обрабатывается. Пример такого задания скиллов:

  • language/english:3
  • language/belarus:5
  • emergency/fire
  • emergency/medicine

В данном примере language/english и language/belarus никак не связаны, и общий префикс language/* не даёт при определении соответствия никаких преимуществ перед другими скиллами. При определении соответствия учитывается только полное имя скилла включающее и тип и подтип

С помощью IVR блока Set вызову могут быть назначены один и более скиллов, разделённых запятой (см. IVR-редактор).
Для того чтобы выбрать наиболее подходящих по умению операторов, очередь выполняет оценку соответствия каждого оператора затребованному скиллу.
В простом случае, когда вызову назначен всего один скилл, его уровень соответствия скиллу (далее conformance) будет равен <Уровень скилла оператора>/<Требуемый уровень скилла вызова>. Т.е, для примера, если вызову назначен уровень скилла language/english:5, а у оператора уровень скилла language/english:4, то вычисленный уровень соответствия скиллу будет равен 4/5, т.е 0.8.
Conformance для одного скилла не может превышать 1, поэтому если вызову требуется уровень скилла language/english:5, то даже если уровень скилла оператора превышает данное значение, он не будет иметь преимуществ перед операторами у которых значение уровня точно равно 5. В обоих случаях conformance будет равняться 1.

Если у оператора отсутствует запрошенный скилл, то его значение conformance для данного скилла будет равняться 0.

После оценки соответствия, очередь выберет из всех операторов подгруппу, у которых максимальное и одинаковое между собой значение conformance и применит к ней текущую стратегию распределения (см. Стратегии распределения). Приведём пример.
Допустим вызову выставлен скилл language/english:5.

Операторskillconformance
Оператор 1language/english:40.8
Оператор 2language/english:71
Оператор 3-0
Оператор 4language/english:51

В этом случае очередь выберет операторов под номером 2 и 4, так как у них максимальное среди прочих значение conformance.

Если у всех операторов значение conformance будет равно 0, то очередь будет применять текущую стратегию распределения ко всем операторам.

В случае, если вызову выставлено более одного скилла, то суммарное значение conformance будет вычислено как сумма conformance каждого скилла в отдельности. Например, если вызову назначены скиллы language/english:5 и emergency/medicine:5, а оператору назначен уровень скилла language/english:4 и emergency/medicine:3, то суммарное значение conformance будет равняться conformance первого скилла т.е 0.8 плюс conformance второго скилла т.е 0.6, и будет равняться 1.4. Т.е. в случае более одного скилла conformance может быть и больше единицы. Приведём пример.
Допустим вызову выставлены скиллы language/english:5 и emergency/medicine:5.

Операторskill-ыconformance englishconformance medicineconformance
Оператор 1language/english:4, emergency/medicine:30.80.61.4
Оператор 2language/english:3, emergency/medicine:40.60.81.4
Оператор 3language/english:30.600.6
Оператор 4emergency/medicine:10011

В этом случае очередь выберет операторов под номером 1 и 2, так как у них максимальное среди прочих значение conformance.

Skill-based распределение и стратегии распределения

В случае простых стратегий распределения (см. Простые стратегии распределения), порядок выбора оператора для распределения можно формально описать так:

  • Выбираются операторы, которые в данный момент не обслуживают вызовы
  • Среди них выбирается подгруппа с наибольшим и равным между собой значением conformance
  • К выбранным операторам применяется простая стратегия распределения

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

В случае стратегий распределения множественного выбора, порядок выбора оператора отличается:

  • Выбираются операторы с наибольшим и равным между собой значением conformance
  • Выполняется выбранная стратегия множественного распределения

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

Выбор оператора по принципу повторного обращения (предпочтительный оператор)

Для того чтобы включить механизм выбора оператора по принципу повторного обращения нужно включить для очереди опцию remember_choice (ссылка на конфигурирование очереди).
Если эта опция включена, очередь будет запоминать, какой оператор был выбран в прошлый раз для обслуживания вызова с номера А, и будет считать этого оператора предпочтительным для обслуживания вызова, пытаясь выполнить распределение на него. Сервис выбора оператора по принципу повторного обращения предваряет любую стратегию распределения и skill-based распределение и если сервис срабатывает успешно, то они не применяются. Очередь хранит информацию о предпочтительном операторе в течение времени, которое определяется параметром cc_queue_remember_choice_timeout в /domain/test.domain/timers/core/*. По умолчанию 1 час со времени последнего соединения с оператором.

remember_choice может принимать значения none, strict и non-strict:

  • none - опция выключена
  • strict - если предпочтительный оператор занят, то вызов будет дожидаться пока он освободится. Если оператор был свободен, но соединиться с ним не удалось, например по причине неответа или DND, то далее для текущего вызова предпочтительный оператор будет игнорироваться и будет применяться выбранная стратегия распределения
  • non-strict - если предпочтительный оператор занят, то далее для текущего вызова предпочтительный оператор будет игнорироваться и будет применяться выбранная стратегия распределения. Если вызов с номера А обслужит другой оператор, то предпочтительным для обслуживания последующих вызовов с номера А станет он.

Ручной (по требованию оператора) режим распределения вызовов из расширенной очереди - Manual

При указании стратегии распределения Manual, очередь НЕ БУДЕТ самостоятельно распределять вызовы. Этим должен будет заниматься супервизор (или оператор, если это позволяется лицензией). Данный функционал необходимо использовать с осторожностью, так как это может привести к слишком долгому ожиданию вызовов в очереди и потере клиентов. Рекомендуем использовать одну из стратегий распределения (mia, loa, random) в совокупности с функционалом принудительного распределения.

Алгоритм работы очереди в режиме Manual:

  1. Вызов поступает в очередь.
  2. Если очередь настроена в данном режиме, то вызовы помещается в очередь с учетом приоритетов и не распределяется на операторов.
  3. Супервизор (и оператор, если позволяется лицензией), выбирает вызов в ручном режиме с использованием АРМ.

Ограничения очереди

Базовая и расширенная очереди могут устанавливать ограничения по количеству вызовов, по времени ожидания вызова в очереди.

Существуют следующие ограничения:

  • Длина очереди - максимальное количество вызовов, которое одновременно может ожидать в очереди. Если количество превышено, вызов не будет добавлен в очередь, а IVR сценарий немедленно продолжит выполнение по ветке FULL (см. Описание IVR сценария с использованием очереди). Для базовой очереди данный параметр указывается в блоке "Очередь" ("Queue") в IVR сценарии, для расширенной - конфигурируется через командную строку CLI реализованную подсистемой Cocon (см. Создание расширенной очереди в CoCon CLI).
  • Максимальное время ожидания - максимальное время, которое вызов может ожидать в очереди. Если время превышено, вызов немедленно покидает очередь и связанный с данным вызовом IVR сценарий немедленно продолжит выполнение по ветке ERROR (см.Описание IVR сценария с использованием очереди). Для базовой очереди данный параметр указывается прямо в блоке очереди в IVR сценарии ("время ожидания"), а для расширенной - конфигурируется через командную строку CLI реализованную подсистемой Cocon (см. Создание расширенной очереди в CoCon CLI).
  • Максимальное предполагаемое время ожидания. Данный параметр является опциональным, доступен только для расширенной очереди (см. Создание расширенной очереди в CoCon CLI). При добавлении вызова очередь пытается предсказать время, которое он будет ожидать в очереди как "Примерная частота обслуживания вызовов очередью" * "Количество предшествующих вызовов". Если полученное время превышает настроенное максимальное предсказываемое время ожидания, то вызов не будет добавлен в очередь, и сценарий немедленно продолжит выполнение по ветке FULL.

Сервис очереди для обратного вызова (Callback)

Если абонент не дождался ответа оператора или сработало ограничение очереди, то вызов может быть отмечен специальным признаком и размещен в очереди в режиме Callback.

Вызов, находящийся в очереди в режиме callback сохраняет многие свойства обычного вызова, в том числе:

  • Позиция в очереди определяется согласно приоритету и времени добавления;
  • К вызову применяются штатные, настроенные для очереди стратегии распределения (включая skill-based распределение);
  • Для вызова работают механизмы принудительного распределения, перемещения в другую очередь и на предпочтительного оператора;
  • Работают опции "максимальное количество попыток распределения", "продолжительность распределения" (подробнее см. Расширенная очередь)

Однако, есть следующие отличия:

  • Максимальное время ожидания ответа для такого вызова равно 2 часам. При этом предыдущее время ожидания (до приобретения вызовом признака callback) не учитывается.
  • Специальная пауза между попытками обратного вызова. В случае, если оператор ответил на вызов, но до абонента дозвониться не удалось, то повторная попытка распределения будет осуществлена не ранее, чем через 5 минут.

Существует два режима работы сервиса очереди Callback:

  • Перезвонить, если абонент не дождался ответа

Если абонент не дождался ответа оператора, то вызов отмечается специальным признаком и размещается в очереди в режиме Callback.

  • Перезвонить при сработавшем ограничении

Позволяет добавлять в очередь в режиме callback вызов, который не проходит ни по одному из граничных условий (max_predicted_time или queue_length) (подробнее см. Расширенная очередь).

Работу сервиса можно настроить через IVR-редактор. Существуют следующие варианты работы данного сервиса:

  • Требовать/не требовать подтверждения с помощью нажатия кнопки на телефонном аппарате:
    • Кнопка для подтверждения
    • Кнопка для отказа
  • Разрешать/не разрешать дальнейшее ожидание
  • Проигрывать/не проигрывать КПВ оператору

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

Режимы "Перезвонить, если абонент не дождался ответа" и "Перезвонить при сработавшем ограничении" не противоречат друг другу и могут использоваться вместе.

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

Если на момент распределения вызов обладает признаком callback и абонент отсоединен, то очередь, выполнив успешное распределение на свободного оператора, предпримет попытку вызова на отсоединенного абонента. Если абонент отвечает, то соединение считается установленным, если нет, то засчитывается неудачная попытка распределения. Свойство goodness у оператора повышается, как в случае успешного обслуживания вызова.

Если на момент распределения абонент остаётся на линии, хотя вызов и добавлялся в режиме "Перезванивать при сработавшем ограничении" или "Перезванивать, если абонент не дождался", процедура распределения отрабатывает штатным образом. Максимальное время ожидания в этом случае соответствует максимальному времени ожидания обычного вызова. Также для этих вызовов не используется специальная пауза между попытками обратного вызова.

  • Нет меток