Открыть меню
Toggle preferences menu
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

2. Входящие очереди

Материал из Платформа Эра. Документации
Версия от 11:47, 11 декабря 2024; Oagapov (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Очередь ожидания — это режим последовательного обслуживания поступающих обращений операторами контактного центра.

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

Ключевые параметры очереди:
Наименование в платформе JSON параметр Бизнес-смысл
Имя "name" Наименование очереди
Код для ссылок "code" Необходим для вызова из других элементов платформы
Приоритет "priority" Приоритет среди других очередей. Чем меньше значение, тем приоритетнее
Алгоритм "algorithm" Алгоритм выбора оператора в очереди
Максимальная продолжительность (сек) "maxDuration" Максимальное время ожидания абонента в очереди
Максимальное количество переводов "maxTransferCount" Максимальное количество попыток перебора операторов в очереди
Участники "members": [] Участники очереди, которым разрешено обрабатывать вызовы этой очереди

Очереди обслуживаются классом callcenter/acd/ACDQueues.

Алгоритм выбора оператора в момент выхода абонента из очереди:
  1. Движок очередей собирает множество операторов, которые удовлетворяют условиям переключения (статус оператора, подключена ли телефонная линия (для звонка), достаточно ли свободной ёмкости у оператора);
  2. Далее отсеваются операторы, которые не удовлетворяют условиям по навыкам (если активно условие наличие навыка). При этом, если навык не обязателен, то навык операторов без навыка считается равным 0;
    1. Если среди доступных операторов есть обладатели разных значений навыка, то выбирается множество с минимальным или максимальным значением (в зависимости от настройки очереди);
  3. Выбираются операторы с минимальным приоритетом из настроек вкладки Участники;
  4. Среди оставшегося множества выбирается необходимый оператор по алгоритму Очереди (вкладка Свойства).
Пример полного лога

Для просмотра полного лога с информацией о том, как Платформа выбрала того или иного оператора в очереди, активируйте переключатель «Фиксировать в журнале событий». Далее откройте приложение «Администратор Платформы», меню «События» — «Текущие». Через некоторое время события будут сброшены в архив («События» — «Завершенные»), если параметр системы platform.events.archiveLevel выше уровня Trace.

Статусы операторов

Откройте приложение «Администратор Контактного центра», далее — «Справочники» — «Статусы операторов». Изучите перечень доступных статусов.

  • Базовый тип статуса для указания определения поведения в статусе,
  • Цвет для отображения у других сотрудников,
  • Доступен ли для ручного выбора самим сотрудником,
  • Сбрасывать ли статус при отключении Оператора.

Задание:

  • Создайте статус «Обучение» любого цвета, доступным для ручного выбора и типом «Не готов». Убедитесь, что статус стал доступен в приложении «Оператор».

Распределение вызовов

В приложении «Администратор Контакт-центр» создайте очередь. Укажите обязательное имя и код для использования из других приложений платформы (например, из IVR-сценариев). Укажите алгоритм «Наиболее свободный» и добавьте операторов к участникам очереди с одинаковым приоритетом. В приложении «Настройка», в IVR-сценарии (ivrscripts) настройте маршрут звонка в очередь при помощи компонента «Колл-центр»:

  • Установите приоритет (чем меньше приоритет, значение, тем выше приоритет);
  • Укажите код для ссылок созданной очереди;
  • В контексте передайте callerid() (А номер абонента) и calledid() (Б номер);
  • Во вкладке «Участники очереди» перечислите будущих операторов очереди. Это могут быть конкретные пользователи, группы пользователей или другие очереди.

Совершите звонок через IVR-сценарий и примите входящий звонок оператором контактного центра.

Вопросы по разделу:

  • Установите различные приоритеты для пользователей и групп пользователей в участниках очереди и установите алгоритм «Случайный». Как будут распределяться вызовы?

Задание:

  • Переведите звонок на другого сотрудника платформы (не оператора). Используйте CTI-панель для перевода.

Квалификация оператора

В приложении «Администратор Контакт-центра» в справочнике создайте навыки «Английский язык» и «Китайский язык». Установите навыки среди операторов с различными или одинаковыми уровнями.

В карточке очереди (вкладка «Обработка») укажите «Учитывать навыки операторов» и выберите обязательность наличия навыка. В случае необязательного использования навыка, операторы без навыков также участвуют в очереди с пониженным приоритетом.

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

Сохраните очередь и примите входящие звонки с учётом навыков операторов.

Приоритет в очереди

Схема приоритета

Приоритет вызова рассчитывается как сумма приоритета звонка в IVR-сценарии + приоритета очереди.

Создайте в IVR-сценарии вторую ветку для отдельных абонентов (например, для мобильных телефонов) и соедините с компонентом «Колл-центр» той же самой очереди и установите приоритет 50.

Создайте в IVR-сценарии отдельную ветку для абонентов, которые ввели цифру «2» в DTMF-режиме. Соедините с компонентом «Колл-центр» этой же очереди и установите приоритет 100.

Совершите входящий звонок с измененным алгоритмом распределения звонка.

Обратите внимание, что в случае совпадения приоритетов действует принцип FIFO (first in first out). Обслуживание получит абонент, который ждёт дольше всего.

Ожидание в очереди

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

Фоновое воспроизведение в IVR-сценарии

В IVR-сценарии перед компонентом колл-центра установите компонент воспроизведения. Смените режим на «Фоновое воспроизведение». Загрузите mp3-файл. В результате загруженный звуковой файл будет воспроизводится в асинхронном режиме. Воспроизведение прервётся в момент ответа оператора колл-центра.

IVR-сценарий слоя контакт-центра

В приложении «Администратор контакт-центра» во вкладке «Звонки» — «Сценарии голосовые» создайте IVR-сценарий ожидания в очереди. Укажите код для ссылок, например wait. Откройте сценарий и добавьте компонент «Воспроизведение». Сохраните и откомпилируйте сценарий.

В карточке очереди во вкладке «События» добавьте состояние «Ожидание» и укажите голосовой сценарий wait.

Заказ обратного звонка из очереди

Заказ колл-бэка (callback) из очереди ожидания колл-центра — это функция, позволяющая клиенту не ждать на линии, когда все операторы заняты. Реализуем эту функцию в платформе.

Создание исходящей кампании для перезвонов

Создание исходящей кампании

В приложении “Исходящие кампании” необходимо создать новую кампанию, с помощью которой будут обрабатываться заявки на перезвон

Параметры входящей кампании

В нашем случае тип будет ручной, т.е. операторы будут вручную брать звонки из колл-листа. При необходимости можно выбрать автоматический обзвон.

Количество линий можно настроить согласно своим ресурсам.

На вкладке “Контрагенты” указывается параметры колл-листа, т.е. таблицы в которой будут храниться абоненты для перезвона.

Таблица контрагентов во входящей кампании

Выбираем базовый объект “Простые контрагенты”. В нем заложена базовая логика колл-листов.

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

Условия удаления контрагентов
Выбор очереди распределения вызовов

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

На вкладке “Операторы” мы можем выбрать существующую очередь, на операторов которой будут распределяться задачи по перезвону.

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

Выбор сценария диалога
Запуск кампании

После сохранения кампании, необходимо её запустить или активировать автостарт. Если кампания завершается после запуска или выдает ошибки, необходимо проверить описанные выше настройки.



Создание голосового сценария IVR

Создание голосового сценария ожидания в очереди

В приложении “Администратор контакт-центра”, в разделе “Звонки” необходимо создать новый голосовой сценарий.

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

Настройки голосового сценария

Демо ролики для тестирования приложены к данной статье.

Загрузка роликов для воспроизведения

Сценарий воспроизведения в очереди будет выглядеть следующим образом:

  1. Задаем системные переменные
  2. Воспроизводим музыку
  3. Воспроизводим предложение заказа обратного звонка, с чтением DTMF команд
  4. Проверяем, была ли введена команда
  5. Общая схема готового сценария
    Если команда не введена, заново воспроизводим музыку из пункта 2 и замыкаем цикл
  6. Если команда введена, делаем HTTP-запрос для создания записи в колл-листе
  7. Воспроизводим ролик о регистрации запроса на обратный звонок
  8. Делаем отбой звонка

Далее рассмотрим каждый шаг детально.

К статье приложен файл выгрузки данного демо-сценария. Его можно импортировать для анализа и тестов.

2.1 Сохраняем номер телефона абонента в переменную

1. Сохраняем номер телефона

Для получения номера телефона используем следующее выражение:

'this.remoteParty_number

2.2. Задаем шаблон HTTP-запроса для создания записи в колл-листе

2. Шаблон HTTP-запроса
'"{ \"campaign_id\": \"[Заменить на ID исходящей кампании]\", \"fio\": \"\", \"increment\": null, \"notes\": \"\", \"personalAgent_id\": null, \"phoneNumbers\": [ { \"kind\": \"mobile\", \"phoneNumber\": \"##phoneNumber##\" } ], \"result\": null, \"scheduledNumber\": null, \"scheduledTime\": null, \"scheduledTimeMax\": null, \"state\": null, \"timeZone\": null, \"tryCount\": null }"
ID исходящей кампании

В шаблоне необходимо указать ID созданной нами ранее исходящей кампании.

Пример результата:

'"{ \"campaign_id\": \"48a44a8a-245d-4bbe-8ef4-dd2328cdcb6b\", \"fio\": \"\", \"increment\": null, \"notes\": \"\", \"personalAgent_id\": null, \"phoneNumbers\": [ { \"kind\": \"mobile\", \"phoneNumber\": \"##phoneNumber##\" } ], \"result\": null, \"scheduledNumber\": null, \"scheduledTime\": null, \"scheduledTimeMax\": null, \"state\": null, \"timeZone\": null, \"tryCount\": null }"
3. Подстановка номера в шаблон

2.3. Подставить номер абонента в шаблон

4. Остановка фона

Для этого используем следующую конструкцию:

'JsonTemplate.replace('##phoneNumber##',phoneNumber)

2.4. Остановка фона

Добавляем компонент “Воспроизведение” с типом Остановка фона. Данный компонент остановит воспроизведение других фоновых записей, чтобы они не накладывались друг на друга

2.5. Воспроизведение музыки

Воспроизводим фоновую музыку ожидания из файла

2.6. Предложение заказа обратного звонка.

5. Воспроизведение файла

Воспроизводим ролик с предложением, в параметрах указываем количество символов DTMF — 1, а также создаем переменную, куда будет сохранен буфер введенных команд DTMF.

2.7. Проверяем введенные команды DTMF

Проверку осуществляем при помощи следующего выражения:

dtmf_callback.toString()=="1"
6. Ролик с предложением заказа обратного звонка

В нашем примере, для заказа обратного звонка необходимо ввести цифру 1

Ветку “Нет” проводим к воспроизведению музыки, для того чтобы зациклить данный процесс.

2.8. Отправка HTTP-запроса для создания записи в колл-листе.

7. Проверка введенных символов DTMF
8. Отправка HTTP-запроса

Если пользователь ввел необходимую команду, мы отправляем запрос к API.

Детально работа с API описана в данной статье.

В данном случае мы производим POST запрос к сервису SimpleContragents

POST https://{{ERAURL}}/rest/v1/model/callcenter/outbound/SimpleContragents

Формат передаваемых данных следующий:

{
    "campaign_id": "c1692593-23e2-410a-bf8f-f3a2c27cd863",
    "ext": null,
    "fio": "Никита Леонидович Небывалый",
    "id": "e6d03318-ad64-4ba8-b8ee-dac91edee5ad",
    "increment": null,
    "notes": "Задолженность: 466681 руб.",
    "personalAgent_id": null,
    "phoneNumbers": [
      {
        "kind": "mobile",
        "phoneNumber": "89902355924"
      }
    ],
    "result": null,
    "scheduledNumber": null,
    "scheduledTime": null,
    "scheduledTimeMax": null,
    "state": null,
    "timeZone": null,
    "tryCount": null
  }
Голосовой сценарий в очереди

Минимальное заполнение шаблона мы произвели в пунктах 8.2.2, 8.2.3.

После успешного выполнения запроса воспроизводим соответствующий ролик и отбиваем звонок.

Подключение голосового сценария к очереди

Последним шагом настройки будет добавление созданного нами голосового сценария к очереди.

В нужной очереди, на вкладке “События”, необходимо добавить новое событие с состоянием “Ожидание”, выбрать канал “Звонок”, в качестве сценария выбрать созданный нами ранее голосовой сценарий, режим запуска оставить “Асинхронный”

Обработка заказанных в очереди звонков
Обработка звонков пользователями

В приложении “Оператор контакт-центра”, в разделе Кампании необходимо выбрать созданную нами кампанию по перезвонам. Откроется список заказанных звонков, где можно осуществить перезвон.

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