# API Документация # Авторизация Для работы с платформой вам потребуется токен авторизации. Его можно получить следующим способом:
- Получение токена авторизации через техническую поддержку или персонального менеджера продукта. - Получение токена через авторизацию на платформе по логину и паролю.
# Работа с обзвонами # Создание обзвонов
#### Описание API позволяет создавать обзвоны с заданными параметрами. Данная документация описывает API для создания обзвона с указанными параметрами. В случае успешного создания обзвона будет возвращен ID созданного обзвона для последующего получения результатов.
##### POST ##### `https://ai-assistant.is74.ru/api/campaigns`
```json { "campaign": { "project_id": 0, "name": "string", "description": "string", "start_block_id": 0, "schedule": { "date": "string", "start_time": "string", "end_time": "string", "periods": {"id": 1, "title": "Однократно"}, "attempts": {"id": 1, "title": "1"}, "interval": "string"} "phone_id": 0 }, "phones": [ { "phone": "string", "add_data": {} } ] } ```

В **add\_data** передаются json {ключ: значение}, где ключ является параметром из стартового блока сценария

Параметры запроса
CampaignValue RulesDescription
project\_id`required` `integer` ID проекта
name`string` Название обзвона
description`string` Описание обзвона
start\_block\_id`required` `integer`ID стартового блока сценария
schedule`required``json` Расписание обзвона
phone\_id`required` `integer`ID номера телефона, с которого звонить
Schedule
ScheduleValue RulesDescription
date`required` `string`Дата начала обзвона (формат: ГГГГ-ММ-ДД)
start\_time`required` `string`Время начала обзвона (формат: ЧЧ:ММ)
end\_time`required` `string`Время окончания обзвона (формат: ЧЧ:ММ)
periods`required``json`Периодичность обзвона
attempts`required``json`Количество попыток дозвона на номер
interval `required` `string`Время в минутах между попытками дозвона
Periods
PeriodsValue RulesDescription
id `required` `integer` Всегда выставлять значение: 1
title`required` `string`Всегда выставлять значение: "Однократно"
Attempts
**Attempts**Value RulesDescription
id `required` `integer` Значения от "1" до "5". Значение в id соответствует значению в title.
title`required` `string`Значения от "1" до "5". Значение в title соответствует значению в id.
Пример запроса ```json {   "campaign": {     "project_id": 1,     "name": "Обзвон клиентов",     "description": "Обзвон клиентов для опроса удовлетворенности",     "start_block_id": 10,     "schedule": {       "date": "2000-01-01",       "start_time": "09:00",       "end_time": "17:00",       "periods": {"id": 1, "title": "Однократно"},       "attempts": {"id": 1, "title": "1"},       "interval": "5"     },     "state": "Создано",     "phone_id": 5   },   "phones": [     {       "phone": "+79999999999",       "add_data": {"name":"Иванов Иван", "time":"10:00", "phone": 123456}     }   ] } ```
Пример ответа **Код: 200** ```json {   "campaign": {     "id": 12345   } } ``` **Ошибки** - В случае ошибки будет возвращен соответствующий HTTP статус код и сообщение об ошибке.
# Получение результатов диалогов #### Описание API позволяет получить результаты обзвона с указанными параметрами. Данная документация описывает API для получения результатов обзвона с заданными параметрами. В случае успешного запроса будут возвращены необходимые данные о звонках, их продолжительности и количество.
##### POST ##### `https://ai-assistant.is74.ru/api/analytics/{project_id}/report`

Значение **project\_id** вы можете уточнить у вашего личного менеджера или через техническую поддержку платформы.

```json { "analytics_filter": { "scenario_id": 0, "start_block_id": 0, "outgoing_campaign_id": 12345, "date_start": "string", "date_end": "string" }, "columns": [ { "id": 0, "name": "string", "display_name": "string", "column_type": "string", "data_type": "equal", "filter_type": "equal", "filter_value": "string", "sorting": "equal" } ] } ```
Параметры запроса
Analytics filterValue RulesDescription
scenario\_id`required` `integer` ID сценария
start\_block\_id`required` `integer`ID стартового блока сценария
outgoing\_campaign\_id`required` `integer`ID обзвона, результаты которого необходимо получить
start\_block\_id`required` `integer`Дата начала периода для получения результатов
schedule`required``json` Дата окончания периода для получения результатов
columns`array`Информация о полях, которые необходимо получить
Columns
ColumnsValue RulesDescription
id`integer` ID столбца
name`string`Название столбца
display\_name`string`Отображаемое название столбца
column\_type`string`Тип данных в столбце
data\_type`equal`Получить набор столбцов соответствующих типу: - "text" - "number" - "datetime" - "dialog" - "goal"
filter\_type`equal`Тип фильтра применяемый к столбцу: - "equal" - "contains" - "starts\_with" - "ends\_with" - "is\_empty" - "not\_empty" - "is\_true" - "not\_true"
filter\_value`string`Значение выбранного фильтра. То с чем должно проводиться сравнение
sorting`equal`Сортировка, может принимать значения: - "asc" - "desc"
Пример запроса ```json { "analytics_filter": { "scenario_id": 951, "start_block_id": 10, "outgoing_campaign_id": 12345, "date_start": "2000-01-01T08:00:59.096Z", "date_end": "2000-01-01T18:04:59.096Z" }, "columns": [ { "id": 1, "name": "phone_number", "display_name": "Phone Number", "column_type": "field", "data_type": "number", "filter_type": "contains", "filter_value": "79999999999", "sorting": "asc" } ] } ```
Пример ответа **Код: 200** ```json { "columns": [ { "field": "phone_number", "display_name": "Phone Number", "type": "text" } ], "data": [ { // Результаты данных } ], "total_duration": 3600, "avg_duration": 120, "count": 30 } ``` **Ошибки** - В случае ошибки будет возвращен соответствующий HTTP статус код и сообщение об ошибке.