AZykov (обсуждение | вклад) Нет описания правки |
AZykov (обсуждение | вклад) |
||
| (не показано 20 промежуточных версий этого же участника) | |||
| Строка 1: | Строка 1: | ||
Общая информация о работе исходящих компаний описана в [[7. Исходящие кампании|курсе Контакт-Центр]] | |||
= Общая информация = | = Общая информация = | ||
В рамках данной статьи будет рассмотрена работа с колл-листами, или таблицами контрагентов на исходящий обзвон. | В рамках данной статьи будет рассмотрена работа с колл-листами, или таблицами контрагентов на исходящий обзвон. | ||
| Строка 4: | Строка 6: | ||
Платформа Эра предоставляет гибкий функционал по их настройке, использованию и наполнению, позволяющий реализовать исходящие кампании любого уровня сложности. | Платформа Эра предоставляет гибкий функционал по их настройке, использованию и наполнению, позволяющий реализовать исходящие кампании любого уровня сложности. | ||
Для хранения таблиц | Для хранения таблиц контрагентов в платформе используются объекты класса '''callcenter/outbound/Contragents''' и его наследники. Этот класс поставляется в составе приложения callcenter, и предоставляет базовый набор свойств и действий для работы колл-листа. Можно создавать собственные дочерние классы, дополняя состав данных для соответствия нуждам бизнеса. <blockquote>'''Базовый класс Contragents по-умолчанию подразумевает его использование для множественного количества исходящих кампаний'''. Таким образом, для новых кампаний не требуется создавать полностью новый класс. Разделение осуществляется с помощью свойства '''campaign_id.'''</blockquote>Также в составе приложения callcenter присутствуют два дочерних класса по-умолчанию: | ||
Также в составе приложения callcenter присутствуют два дочерних класса по-умолчанию: | |||
* DemoContragent - пример дочернего класса Contragent с большим количеством дополнительных полей | * DemoContragent - пример дочернего класса Contragent с большим количеством дополнительных полей | ||
| Строка 52: | Строка 52: | ||
|- | |- | ||
|personalAgent_id (Персональный оператор) | |personalAgent_id (Персональный оператор) | ||
| | |Uuid | ||
|Вызов контрагента может обслужить только персональный оператор | |Вызов контрагента может обслужить только персональный оператор | ||
|- | |- | ||
| Строка 97: | Строка 97: | ||
{| class="wikitable" | {| class="wikitable" | ||
|+Набор действий '''базового''' класса callcenter/outbound/Contragents | |+Набор действий '''базового''' класса callcenter/outbound/Contragents | ||
|- | |- | ||
|Имя | |Имя | ||
| Строка 124: | Строка 122: | ||
| | | | ||
|} | |} | ||
= Наполнение таблицы контрагентов = | |||
На текущий момент возможны следующие способы добавления новых контрагентов в таблицу: | |||
* Ручное добавление в рабочем месте оператора | |||
* Импорт из CSV и JSON | |||
* Автоматическое добавление через сценарий (IVR или служебный) | |||
* Добавление через сервис | |||
* Добавление через 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), либо настроено сохранение персонального оператора, можно включить режим "привязки" контрагента к оператору, который обслуживал его вызов. | |||
Важным полем таблицы является часовой пояс клиента, так как это значение влияет на работу ограничений по времени звонков в исходящей кампании, а также на планирование перезвонов. | |||
Кроме полей самой таблицы, в рамках кампании могут быть добавлены дополнительные поля. Их набор задается расширениями (доступны на вкладке "Контрагенты" в настройках кампании). | |||
[[Категория:Практика]] | [[Категория:Практика]] | ||
[[Категория:Курс контакт-центр]] | [[Категория:Курс контакт-центр]] | ||
Текущая версия от 10:36, 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 (или его наследников, в зависимости от настроек кампании). В данном реестре можно производить ручное добавление и модификацию записей, а также производить импорт и экспорт данных.

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