AZykov (обсуждение | вклад) |
Oagapov (обсуждение | вклад) м Исправление орфографии (ссылки и код не затронуты) |
||
| (не показано 18 промежуточных версий 1 участника) | |||
| Строка 6: | Строка 6: | ||
Платформа Эра предоставляет гибкий функционал по их настройке, использованию и наполнению, позволяющий реализовать исходящие кампании любого уровня сложности. | Платформа Эра предоставляет гибкий функционал по их настройке, использованию и наполнению, позволяющий реализовать исходящие кампании любого уровня сложности. | ||
Для хранения таблиц | Для хранения таблиц контрагентов в платформе используются объекты класса '''callcenter/outbound/Contragents''' и его наследники. Этот класс поставляется в составе приложения callcenter, и предоставляет базовый набор свойств и действий для работы колл-листа. Можно создавать собственные дочерние классы, дополняя состав данных для соответствия нуждам бизнеса. <blockquote>'''Базовый класс Contragents по умолчанию подразумевает его использование для множественного количества исходящих кампаний'''. Таким образом, для новых кампаний не требуется создавать полностью новый класс. Разделение осуществляется с помощью свойства '''campaign_id.'''</blockquote>Также в составе приложения callcenter присутствуют два дочерних класса по умолчанию: | ||
Также в составе приложения callcenter присутствуют два дочерних класса по | |||
* DemoContragent - пример дочернего класса Contragent с большим количеством дополнительных полей | * DemoContragent - пример дочернего класса Contragent с большим количеством дополнительных полей | ||
| Строка 54: | Строка 52: | ||
|- | |- | ||
|personalAgent_id (Персональный оператор) | |personalAgent_id (Персональный оператор) | ||
| | |Uuid | ||
|Вызов контрагента может обслужить только персональный оператор | |Вызов контрагента может обслужить только персональный оператор | ||
|- | |- | ||
| Строка 99: | Строка 97: | ||
{| class="wikitable" | {| class="wikitable" | ||
|+Набор действий '''базового''' класса callcenter/outbound/Contragents | |+Набор действий '''базового''' класса callcenter/outbound/Contragents | ||
|- | |- | ||
|Имя | |Имя | ||
| Строка 127: | Строка 123: | ||
|} | |} | ||
= Наполнение таблицы | = Наполнение таблицы контрагентов = | ||
На текущий момент возможны следующие способы добавления новых | На текущий момент возможны следующие способы добавления новых контрагентов в таблицу: | ||
* Ручное добавление в рабочем месте оператора | * Ручное добавление в рабочем месте оператора | ||
* Импорт JSON | * Импорт из CSV и JSON | ||
* Автоматическое добавление через сценарий (IVR или служебный) | * Автоматическое добавление через сценарий (IVR или служебный) | ||
* Добавление через сервис | * Добавление через сервис | ||
* Добавление через API | * Добавление через API | ||
Далее, рассмотрим все доступные варианты. | Далее, рассмотрим все доступные варианты. | ||
=== Ручное добавление в таблицу контрагентов === | |||
[[Файл:Раздел "Кампании" в рабочем месте оператора.png|мини|Раздел "Кампании" в рабочем месте оператора]] | |||
[[Файл:Раздел "Кампании" в приложении Исходящие кампании.png|мини|Раздел "Кампании" в приложении Исходящие кампании]] | |||
В приложении "Исходящие кампании", в разделе Кампании, можно открыть список контрагентов для каждой из них (кнопка Открыть). | |||
При открытии будет отображен реестр данных класса callcenter/outbound/SimpleContragents (или его наследников, в зависимости от настроек кампании). В данном реестре можно производить ручное добавление и модификацию записей, а также производить импорт и экспорт данных. | |||
[[Файл:Добавление новой записи в таблице абонентов.png|мини|Добавление новой записи в таблице контрагентов]] | |||
Данный раздел также присутствует в рабочем месте оператора, с помощью него возможно осуществлять ручной обзвон, если исходящая кампания не является автоматизированной. | |||
=== Импорт из CSV и JSON === | |||
В разделе Кампании рабочего места оператора также доступны операции экспорта и импорта данных. Данные операции можно использовать для ручной загрузки данных в таблицу контрагента. | |||
Поддерживается экспорт в Excel, CSV и JSON. | |||
Импорт данных поддерживается только из CSV и JSON. | |||
Шаблон для импорта CSV можно получить, выбрав все колонки для отображения и выполнив экспорт в CSV (даже пустой таблицы), а также он [[Формат CSV для загрузки колл-листов|описан в отдельной статье]]. | |||
Шаблон импорта JSON (SimpleContragents):<syntaxhighlight lang="json"> | |||
[ | |||
{ | |||
"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 руб." | |||
} | |||
] | |||
</syntaxhighlight>Детально изучить структуру базовых таблиц можно через приложение Builder, в пакете callcenter.<blockquote>Для этого и следующих способов добавления, требуется опыт работы с JSON-структурой данных. | |||
Полезным инструментом для взаимодействия с данными через JSON является раздел '''REST Sandbox''' в приложении '''Builder.'''</blockquote> | |||
=== Добавление данных в служебных сценариях и IVR === | |||
[[Файл:Создание сущности через компонент "Операция".png|мини|Создание сущности через компонент "Операция"]] | |||
Для добавления записи в svc и ivr сценариях используется компонент Операция. Это универсальный компонент для доступа к данным и функциям платформы, включая продуктовый слой. Детально его работа описана в [[Компоненты работы с данными#Операция|курсе по разработке приложений]]. | |||
В данном случае, необходимо использовать тип операции "Модель данных в домене", и операцию "Создание сущности", после чего указать имя класса и передать JSON, собранный по шаблону выше или из REST Sandbox. | |||
=== Добавление данных через сервис === | |||
В случае необходимости описания какой-либо сложной логики создания записи в таблице контрагентов, либо получения данных из внешних систем, рекомендуется разработка собственного сервиса, который будет осуществлять обработку данных и создание записей таблицы. | |||
Разработка сервиса требует знания TS/JS и NodeJS. Пример создания экземпляра класса описан в статье по [[Работа с данными платформы. 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. | |||
Примеры осуществления API-запросов и создания ключей доступа описаны в [[Примеры API запросов|соответствующей статье]]. | |||
= Применение таблиц контрагентов = | |||
[[Файл:Настройка таблицы абонентов в исходящей кампании.png|мини|Настройка таблицы контрагентов в исходящей кампании]] | |||
Таблицу можно привязать к конкретной исходящей кампании в приложении "Исходящие кампании". | |||
Важно выбрать правильный режим загрузки данных в таблице: | |||
* Скользящее окно - данные будут загружаться из таблицы постепенно, по мере обработки. Самый эффективный способ загрузки для большого объема данных | |||
* Фоном - данные будут загружаться в фоновом режиме во время работы кампании. Сама кампания будет запущена сразу же | |||
* Сразу - данные будут загружаться полностью при старте кампании. Кампания запустится после окончания загрузки данных. Подходит для кампаний с небольшим количеством контрагентов | |||
Режим загрузки в первую очередь зависит от бизнес-задач конкретной исходящей кампании, однако в 90% случаев, он не будет влиять на логику обзвона, поэтому рекомендуется выбирать самый эффективный вариант со скользящим окном. | |||
Кроме способа загрузки, на объем и порядок данных, загружаемых из таблицы влияют опциональная фильтрация и сортировка данных, которые доступны в настройках исходящей кампании. | |||
Также, если в таблице контрагентов заполнены значения персональных операторов (поле personalAgent_id), либо настроено сохранение персонального оператора, можно включить режим "привязки" контрагента к оператору, который обслуживал его вызов. | |||
Важным полем таблицы является часовой пояс клиента, так как это значение влияет на работу ограничений по времени звонков в исходящей кампании, а также на планирование перезвонов. | |||
Кроме полей самой таблицы, в рамках кампании могут быть добавлены дополнительные поля. Их набор задается расширениями (доступны на вкладке "Контрагенты" в настройках кампании). | |||
[[Категория:Практика]] | [[Категория:Практика]] | ||
[[Категория:Курс контакт-центр]] | [[Категория:Курс контакт-центр]] | ||
Текущая версия от 21:22, 27 октября 2026
Общая информация о работе исходящих компаний описана в курсе Контакт-Центр
Общая информация
В рамках данной статьи будет рассмотрена работа с колл-листами, или таблицами контрагентов на исходящий обзвон.
Платформа Эра предоставляет гибкий функционал по их настройке, использованию и наполнению, позволяющий реализовать исходящие кампании любого уровня сложности.
Для хранения таблиц контрагентов в платформе используются объекты класса 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 (или его наследников, в зависимости от настроек кампании). В данном реестре можно производить ручное добавление и модификацию записей, а также производить импорт и экспорт данных.

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