# API Документация # Авторизация Для работы с платформой вам потребуется токен авторизации. Для выполнения методов в данном API необходимо получить токен авторизации. Получить его можно в методе /login, отправив логин и пароль от учётной записи платформы Диалог. Отправлять токен в методах необходимо в заголовке запроса: 'Authorization: Bearer \[токен\]'. **Ссылка на API документацию:** [https://dialog-api.intersvyaz.it/#tag/Avtorizaciya](https://dialog-api.intersvyaz.it/#tag/Avtorizaciya)
# Работа с обзвонами # Создание обзвонов
#### Описание 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 статус код и сообщение об ошибке.