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

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

Материал из Платформа Эра. Документации
Нет описания правки
 
(не показана 1 промежуточная версия этого же участника)
Строка 148: Строка 148:
Импорт данных поддерживается только из CSV и JSON.
Импорт данных поддерживается только из CSV и JSON.


Шаблон для импорта CSV можно получить, выбрав все колонки для отображения и выполнив экспорт в CSV (даже пустой таблицы)
Шаблон для импорта CSV можно получить, выбрав все колонки для отображения и выполнив экспорт в CSV (даже пустой таблицы), а также он [[Формат CSV для загрузки колл-листов|описан в отдельной статье]].
Шаблон импорта JSON (SimpleContragents):<syntaxhighlight lang="json">
Шаблон импорта JSON (SimpleContragents):<syntaxhighlight lang="json">
[
[
Строка 173: Строка 173:
   }
   }
]
]
</syntaxhighlight>Детально изучить структуру базовых таблиц можно через приложение Builder, в пакете callcenter.<blockquote>Для этого способа добавления данных, а также дальнейшних требуется опыт работы с JSON-структурой данных.
</syntaxhighlight>Детально изучить структуру базовых таблиц можно через приложение Builder, в пакете callcenter.<blockquote>Для этого и следующих способов добавления, требуется опыт работы с JSON-структурой данных.


Полезным инструментом для взаимодейтсвия с данными через JSON является раздел '''REST Sandbox''' в приложении '''Builder.'''</blockquote>
Полезным инструментом для взаимодействия с данными через JSON является раздел '''REST Sandbox''' в приложении '''Builder.'''</blockquote>


=== Добавление данных в служебных сценариях и IVR ===
=== Добавление данных в служебных сценариях и IVR ===
Строка 184: Строка 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.


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

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

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

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

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

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

Кроме полей самой таблицы, в рамках кампании могут быть добавлены дополнительные поля. Их набор задается расширениями (доступны на вкладке "Контрагенты" в настройках кампании).