AZykov (обсуждение | вклад) Нет описания правки |
AZykov (обсуждение | вклад) |
||
| Строка 6: | Строка 6: | ||
Платформа Эра предоставляет гибкий функционал по их настройке, использованию и наполнению, позволяющий реализовать исходящие кампании любого уровня сложности. | Платформа Эра предоставляет гибкий функционал по их настройке, использованию и наполнению, позволяющий реализовать исходящие кампании любого уровня сложности. | ||
Для хранения таблиц | Для хранения таблиц контрагентов в платформе используются объекты класса '''callcenter/outbound/Contragents''' и его наследники. Этот класс поставляется в составе приложения callcenter, и предоставляет базовый набор свойств и действий для работы колл-листа. Можно создавать собственные дочерние классы, дополняя состав данных для соответствия нуждам бизнеса. <blockquote>'''Базовый класс Contragents по-умолчанию подразумевает его использование для множественного количества исходящих кампаний'''. Таким образом, для новых кампаний не требуется создавать полностью новый класс. Разделение осуществляется с помощью свойства '''campaign_id.'''</blockquote>Также в составе приложения callcenter присутствуют два дочерних класса по-умолчанию: | ||
* DemoContragent - пример дочернего класса Contragent с большим количеством дополнительных полей | * DemoContragent - пример дочернего класса Contragent с большим количеством дополнительных полей | ||
| Строка 52: | Строка 52: | ||
|- | |- | ||
|personalAgent_id (Персональный оператор) | |personalAgent_id (Персональный оператор) | ||
| | |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 описан на [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), либо настроено сохранение персонального оператора, можно включить режим "привязки" контрагента к оператору, который обслуживал его вызов. | ||
Важным параметром в классе Contragent является часовой пояс клиента, так как это значение влияет на работу ограничений по времени звонков в исходящей кампании, а также на планирование перезвонов. | Важным параметром в классе Contragent является часовой пояс клиента, так как это значение влияет на работу ограничений по времени звонков в исходящей кампании, а также на планирование перезвонов. | ||
Версия от 10:16, 28 июля 2025
Общая информация о работе исходящих компаний описана в курсе Контакт-Центр
Общая информация
В рамках данной статьи будет рассмотрена работа с колл-листами, или таблицами контрагентов на исходящий обзвон.
Платформа Эра предоставляет гибкий функционал по их настройке, использованию и наполнению, позволяющий реализовать исходящие кампании любого уровня сложности.
Для хранения таблиц контрагентов в платформе используются объекты класса callcenter/outbound/Contragents и его наследники. Этот класс поставляется в составе приложения callcenter, и предоставляет базовый набор свойств и действий для работы колл-листа. Можно создавать собственные дочерние классы, дополняя состав данных для соответствия нуждам бизнеса.
Базовый класс Contragents по-умолчанию подразумевает его использование для множественного количества исходящих кампаний. Таким образом, для новых кампаний не требуется создавать полностью новый класс. Разделение осуществляется с помощью свойства campaign_id.
Также в составе приложения callcenter присутствуют два дочерних класса по-умолчанию:
- DemoContragent - пример дочернего класса Contragent с большим количеством дополнительных полей
- SimpleContragent - пример дочернего класса Contragent с минимальным набором дополнительных полей (только ФИО, примечание и результат обзвона)
Эти классы можно использовать как примеры для разработки собственных, или применять "из коробки".
| Свойство | Тип данных | Описание |
| 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, множественное свойство |
| Имя | Описание |
| 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.