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

Колл-листы в исходящих кампаниях: различия между версиями

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


Для хранения таблиц абонентов в платформе используются объекты класса '''callcenter/outbound/Contragents''' и его наследники. Этот класс поставляется в составе приложения callcenter, и предоставляет базовый набор свойств и действий для работы колл-листа. Можно создавать собственные дочерние классы, дополняя состав данных для соответствия нуждам бизнеса. <blockquote>'''Базовый класс Contragents по-умолчанию подразумевает его использование для множественного количества исходящих кампаний'''. Таким образом, для новых кампаний не требуется создавать полностью новый класс. Разделение осуществляется с помощью свойства '''campaign_id.'''</blockquote>Также в составе приложения callcenter присутствуют два дочерних класса по-умолчанию:
Для хранения таблиц контрагентов в платформе используются объекты класса '''callcenter/outbound/Contragents''' и его наследники. Этот класс поставляется в составе приложения callcenter, и предоставляет базовый набор свойств и действий для работы колл-листа. Можно создавать собственные дочерние классы, дополняя состав данных для соответствия нуждам бизнеса. <blockquote>'''Базовый класс Contragents по-умолчанию подразумевает его использование для множественного количества исходящих кампаний'''. Таким образом, для новых кампаний не требуется создавать полностью новый класс. Разделение осуществляется с помощью свойства '''campaign_id.'''</blockquote>Также в составе приложения callcenter присутствуют два дочерних класса по-умолчанию:


* DemoContragent - пример дочернего класса Contragent с большим количеством дополнительных полей
* DemoContragent - пример дочернего класса Contragent с большим количеством дополнительных полей
Строка 52: Строка 52:
|-
|-
|personalAgent_id  (Персональный оператор)
|personalAgent_id  (Персональный оператор)
|RootUser
|Uuid
|Вызов контрагента может обслужить только персональный  оператор
|Вызов контрагента может обслужить только персональный  оператор
|-
|-
Строка 97: Строка 97:
{| class="wikitable"
{| class="wikitable"
|+Набор действий '''базового''' класса callcenter/outbound/Contragents
|+Набор действий '''базового''' класса callcenter/outbound/Contragents
|Действия
|
|-
|-
|Имя
|Имя
Строка 125: Строка 123:
|}
|}


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


* Ручное добавление в рабочем месте оператора
* Ручное добавление в рабочем месте оператора
Строка 135: Строка 133:
Далее, рассмотрим все доступные варианты.
Далее, рассмотрим все доступные варианты.


=== Ручное добавление в таблицу абонентов ===
=== Ручное добавление в таблицу контрагентов ===
[[Файл:Раздел "Кампании" в рабочем месте оператора.png|мини|Раздел "Кампании" в рабочем месте оператора]]
[[Файл:Раздел "Кампании" в рабочем месте оператора.png|мини|Раздел "Кампании" в рабочем месте оператора]]
В приложении "Оператор контакт-центра" присутствует раздел "Кампании", который является отображением реестра данных класса callcenter/outbound/SimpleContragents. Он позволяет просматривать таблицу абонентов по каждой кампании и добавлять в неё новые записи.  
В приложении "Оператор контакт-центра" присутствует раздел "Кампании", который является отображением реестра данных класса callcenter/outbound/SimpleContragents. Он позволяет просматривать таблицу контрагентовпо каждой кампании и добавлять в неё новые записи.  
[[Файл:Добавление новой записи в таблице абонентов.png|мини|Добавление новой записи в таблице абонентов]]
[[Файл:Добавление новой записи в таблице абонентов.png|мини|Добавление новой записи в таблице контрагентов]]
В данном разделе можно осуществлять ручной обзвон по таблице абонентов (используя действия карточки абонента), производить групповые операции над данными в таблице абонентов, а также производить импорт и экспорт данных (будет рассмотрен далее).
В данном разделе можно осуществлять ручной обзвон по таблице контрагентов (используя действия карточки), производить групповые операции над данными в таблице, а также производить импорт и экспорт данных (будет рассмотрен далее).


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


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


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


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


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


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


Подход к использованию системного REST API описан на [https://vendor.era-platform.ru/docs/era/latest/api/rest/rest_api_approach.html ресурсе Vendor]. Также как и в предудыщих пунктах, крайне полезным будет инструмент REST Sandbox в приложении Builder.
Подход к использованию системного REST API описан на [https://vendor.era-platform.ru/docs/era/latest/api/rest/rest_api_approach.html ресурсе Vendor]. Также как и в предудыщих пунктах, крайне полезным будет инструмент REST Sandbox в приложении Builder.
Строка 197: Строка 195:
Примеры осуществления API-запросов и создания ключей доступа описаны в [[Примеры API запросов|соответствующей статье]].
Примеры осуществления API-запросов и создания ключей доступа описаны в [[Примеры API запросов|соответствующей статье]].


= Применение таблиц абонентов =
= Применение таблиц контрагентов =
[[Файл:Настройка таблицы абонентов в исходящей кампании.png|мини|Настройка таблицы абонентов в исходящей кампании]]
[[Файл:Настройка таблицы абонентов в исходящей кампании.png|мини|Настройка таблицы контрагентов в исходящей кампании]]
Таблицу абонентов можно привязать к конкретной исходящей кампании в приложении "Исходящие кампании".
Таблицу можно привязать к конкретной исходящей кампании в приложении "Исходящие кампании".


Важно выбрать правильный режим загрузки данных в таблице:
Важно выбрать правильный режим загрузки данных в таблице:
Строка 211: Строка 209:
Кроме способа загрузки, на объем и порядок данных, загружаемых из таблицы влияют опциональная фильтрация и сортировка данных, которые доступны в настройках исходящей кампании.
Кроме способа загрузки, на объем и порядок данных, загружаемых из таблицы влияют опциональная фильтрация и сортировка данных, которые доступны в настройках исходящей кампании.


Также, если в таблице абонентов заполнены значения персональных операторов (свойство personalAgent_id), либо настроено сохранение персонального оператора, можно включить режим "привязки" абонента к оператору, который обслуживал его вызов.
Также, если в таблице контрагентов заполнены значения персональных операторов (свойство personalAgent_id), либо настроено сохранение персонального оператора, можно включить режим "привязки" контрагента к оператору, который обслуживал его вызов.


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

Версия от 10:16, 28 июля 2025

Общая информация о работе исходящих компаний описана в курсе Контакт-Центр

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

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

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

Для хранения таблиц контрагентов в платформе используются объекты класса 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 (Персональный оператор) Uuid Вызов контрагента может обслужить только персональный оператор
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-запросов и создания ключей доступа описаны в соответствующей статье.

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

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

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

Важно выбрать правильный режим загрузки данных в таблице:

  • Скользящее окно - данные будут загружаться из таблицы постепенно, по мере обработки. Самый эффективный способ загрузки для большого объема данных
  • Фоном - данные будут загружаться в фоновом режиме во время работы кампании. Сама кампания будет запущена сразу же
  • Сразу - данные будут загружаться полностью при старте кампании. Кампания запустится после окончания загрузки данных. Самый нагруженный вариант

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

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

Также, если в таблице контрагентов заполнены значения персональных операторов (свойство personalAgent_id), либо настроено сохранение персонального оператора, можно включить режим "привязки" контрагента к оператору, который обслуживал его вызов.

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

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