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

Колл-листы в исходящих кампаниях

Материал из Платформа Эра. Документации
Общая информация о работе исходящих компаний описана в курсе Контакт-Центр

Общая информация

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

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

Для хранения таблиц абонентов в платформе используются объекты класса callcenter/outbound/Contragents и его наследники. Этот класс поставляется в составе приложения callcenter, и предоставляет базовый набор свойств и действий для работы колл-листа. Можно создавать собственные дочерние классы, дополняя состав данных для соответствия нуждам бизнеса.

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

Также в составе приложения callcenter присутствуют два дочерних класса по-умолчанию:

  • DemoContragent - пример дочернего класса Contragent с большим количеством дополнительных полей
  • SimpleContragent - пример дочернего класса Contragent с минимальным набором дополнительных полей (только ФИО, примечание и результат обзвона)

Эти классы можно использовать как примеры для разработки собственных, или применять "из коробки".

Набор свойств базового класса callcenter/outbound/Contragents
Свойство Тип данных Описание
campaign_id (Кампания) Campaign (R) Исходящая кампания (в одной таблице могут храниться контрагенты нескольких кампаний)
increment (Счетчик) Increment Счетчик для сортировки контрагентов по умолчанию
state (Состояние) ContragentState Текущее состояние контрагента
timeZone (Часовой пояс) Integer Часовой пояс контрагента (учитывается при определении допустимого времени дозвона)
tryCount (Количество попыток) Integer Общее количество попыток дозвона по всем номерам контрагента
scheduledTime (Минимальное время) DateTime Запланированное время дозвона (минимальное – вызов ранее этого времени невозможен)
scheduledTimeMax (Максимальное время) DateTime Запланированное время дозвона (максимальное – вызов по истечении этого времени невозможен)
scheduledNumber (Номер) String Запланированный номер (вызов других номеров контрагента невозможен)
personalAgent_id (Персональный оператор) RootUser Вызов контрагента может обслужить только персональный оператор
ext Any
phone (Телефон) String (calc)
workPhone (Рабочий телефон) String (calc)
homePhone (Домашний телефон) String (calc)
mobilePhone (Мобильный телефон) String (calc)
lastPhoneNumber (Последний телефон) String (calc)
phoneNumbers (Номера телефонов) PhoneNumber (M) Телефонные номера контрагента
id (ИД) Uuid Уникальный идентификатор
R – required, обязательное свойство
M – multi, множественное свойство
Набор действий базового класса callcenter/outbound/Contragents
Действия
Имя Описание
makeCall (Позвонить) Совершить звонок контрагенту
scheduleCall (Запланировать) Запланировать звонок контрагенту на указанный номер в заданное время
setResult (Результат) Изменить результат вызова (например, физически соединение установлено, а фактически произошел сброс или тишина в линии)
cleanState (Очистить состояние)
cleanTryCount (Очистить счетчик попыток)
cleanNumbersInfo (Очистить состояния и счетчики номеров)
cleanScheduledInfo (Очистить запланированные время и номер)

Наполнение таблицы абонентов

На текущий момент возможны следующие способы добавления новых абонентов в таблицу:

  • Ручное добавление в рабочем месте оператора
  • Импорт из CSV и JSON
  • Автоматическое добавление через сценарий (IVR или служебный)
  • Добавление через сервис
  • Добавление через API

Далее, рассмотрим все доступные варианты.

Ручное добавление в таблицу абонентов

Раздел "Кампании" в рабочем месте оператора

В приложении "Оператор контакт-центра" присутствует раздел "Кампании", который является отображением реестра данных класса callcenter/outbound/SimpleContragents. Он позволяет просматривать таблицу абонентов по каждой кампании и добавлять в неё новые записи.

Добавление новой записи в таблице абонентов

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

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

Импорт из CSV и JSON

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

Поддерживается экспорт в Excel, CSV и JSON.

Импорт данных поддерживается только из CSV и JSON.

Шаблон для импорта CSV можно получить, выбрав все колонки для отображения и выполнив экспорт в CSV (даже пустой таблицы)

Шаблон импорта JSON (SimpleContragents):

[
  {
    "id": "1a8cb23f-1010-4703-b93d-80a7e262f6a3",
    "campaign_id": "db51f32a-8f1e-475f-a128-4aed897e2840",
    "increment": 0,
    "state": "",
    "phoneNumbers": [
      {
        "phoneNumber": "89478485614",
        "kind": "mobile",
        "state": "",
        "tryCount": 0,
        "lastTryTime": "",
        "display": "Моб. 89478485614"
      }
    ],
    "tryCount": 0,
    "ext": null,
    "lastPhoneNumber": "",
    "fio": "Степан Борисович Варфоломеев",
    "notes": "Задолженность: 186273 руб."
  }
]

Детально изучить структуру базовых таблиц можно через приложение Builder, в пакете callcenter.

Для этого способа добавления данных, а также дальнейшних требуется опыт работы с JSON-структурой данных. Полезным инструментом для взаимодейтсвия с данными через JSON является раздел REST Sandbox в приложении Builder.

Добавление данных в служебных сценариях и IVR

Создание сущности через компонент "Операция"

Для добавления записи в svc и ivr сценариях используется компонент Операция. Это универсальный компонент для доступа к данным и функциям продуктового слоя. Детально его работа описана в курсе по разработке приложений.

В данном случае, необходимо использовать тип операции "Модель данных в домене", и операцию "Создание сущности", после чего указать имя класса и передать JSON, собранный по шаблону выше или из REST Sandbox.

Добавление данных через сервис

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

Разработка сервиса требует знания TS/JS и NodeJS. Пример создания экземпляра класса описан в статье по работе с данными классов курса по разработке. В рамках этого курса, в том числе, разбирается процесс разработки и работы сервисов.

Добавление данных через REST API

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

Подход к использованию системного REST API описан на ресурсе Vendor. Также как и в предудыщих пунктах, крайне полезным будет инструмент REST Sandbox в приложении Builder.

Примеры осуществления API-запросов и создания ключей доступа описаны в соответствующей статье.

Применение таблиц абонентов

Таблицу абонентов можно привязать к конкретной исходящей кампании в приложении "Исходящие кампании".