Skorozvon API
Skorozvon API
REST API
● Авторизация
● Формат ответа
● Аккаунт
● Лиды
● Результаты работы
● Звонки
● Настраиваемые поля
● Сценарии
● Результаты сценариев
● Список проектов
● Статистика по проекту
Отчеты
● Параметры запроса
○ Описание объекта Filter
● Пример тела запроса
● Структура ответа
○ Структура записи
○ Описание записи
■ Описание объекта Durations
■ Описание объекта User
■ Описание объекта Organization
■ Описание объекта Lead
■ Описание объекта Scenario
■ Описание объекта ScenarioResultGroup
■ Описание объекта MainLead
■ Описание объекта Event
■ Описание объекта СallProject
■ Описание объекта Responsible
● Пример запроса с помощью утилиты CURL
● Пример ответа
Webhooks
Виджет
REST API
REST API позволяет получать информацию о вашем аккаунте, лидах (контактах), звонках
и записях разговоров.
API доступно по протоколу HTTPS по url
https://app.skorozvon.ru/api/v2
Авторизация
Для авторизации запросов используется протокол OAuth 2.0.
При взаимодействии сервер-сервер, ключ авторизации можно получить с помощью
режима “Password Credentials”.
Необходимые реквизиты для авторизации можно получить на странице
https://app.skorozvon.ru/#settings/integration/api.
Пример с заголовком
curl https://app.skorozvon.ru/api/v2/leads \
-H "Authorization: Bearer {access_token}"
Пример с параметром
curl
https://app.skorozvon.ru/api/v2/leads?access_token={access_token}
Пример
curl https://app.skorozvon.ru/oauth/token \
-X POST \
-F grant_type="refresh_token" \
-F refresh_token="{refresh_token}" \
-F client_id="ID приложения" \
-F client_secret="Ключ приложения" \
-H "Authorization: Bearer {access_token}"
Данный токен может быть получен через службу поддержки. На текущий момент
применяется только для отчетов .
Пример
curl https://app.skorozvon.ru/api/reports/calls_total.json \
-X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Key #{endless_token}'
Формат ответа
REST API возвращает ответы на запросы в формате JSON.
Информация о ресурсе содержится в элементе с ключом data
Постраничная навигация
Некоторые из методов API возвращают список ресурсов с информацией для
постраничной навигации, например список звонков и список лидов. Манипуляции со
списками таких ресурсов производятся единообразно
Параметры запроса
Параметры ответа
Информация о постраничной навигации возвращается в теле ответа в элементе с ключом
pagination.
Аккаунт
GET /api/v2/account/balance
Возвращает текущий баланс. Доступен только пользователям с ролью администратора.
Параметры запроса
Отсутствуют
Параметры ответа
Поле Тип Описание
Лиды
Атрибуты ресурса
GET /api/v2/leads[?page={page}&length={length}...]
Возвращает список контактов с постраничной навигацией. По-умолчанию возвращаются
первые 10 лидов.
GET /api/v2/leads/{id}
Возвращает атрибуты лида
POST /api/v2/leads
Создание лида
Используются атрибуты, приведенные в таблице. Дополнительно доступны:
● bitrix_lead_id (string) - идентификатор лида в Битрикс24. Используется для связки с
существующими лидами в Битрикс24
● call_project_id (bigint) - идентификатор проекта (диалер), в который будет добавлен
лид
PUT /api/v2/leads/{id}
Обновление лида
DELETE /api/v2/leads/{id}
Удаление лида
Массовая загрузка
POST /api/v2/leads/import
Массовое создание лидов.
Параметры запроса
Параметры ответа
id bigint Идентификатор
GET /api/v2/leads/import/{id}
Получение состояния массового создания лидов.
Возможные состояния загрузки (поле state):
● enqueued - загрузка находится в очереди обработки
● processing - создание лидов
● duplicates - дедупликация
● indexing - построение поискового индекса
● loaded - загрузка завершена
GET /api/v2/leads?stored_file_id={id}
Получение списка лидов, созданных через массовую загрузку. По-умолчанию
возвращаются первые 10 лидов. Дополнительно нужно использовать параметры
постраничной навигации.
Чтобы возвращались все загруженные лиды, рекомендуется выполнять запрос, когда
загрузка завершена. Получить состояние загрузки можно методом GET
/api/v2/leads/import/{id}.
Настраиваемые поля
id bigint Идентификатор
Permission
Setting
LeadFieldOption
GET /api/v2/custom_fields
Возвращает список настраиваемых полей с постраничной навигацией
Параметры запроса
POST /api/v2/custom_fields
Возвращает созданное поле
Параметры запроса
PUT /api/v2/custom_fields/{id}
Возвращает обновленное поле
Параметры запроса
DELETE /api/v2/custom_fields/{id}
Возвращает статус об удалении
Результаты работы
Атрибуты ресурса
GET /api/v2/leads/{id}/results
Возвращает список результатов работы с постраничной навигацией по лиду,
упорядоченный по убыванию даты создания
POST /api/v2/leads/{id}/results
Добавляет результат работы с лидом
Звонки
Атрибуты ресурса
id integer Идентификатор
GET /api/v2/calls
Возвращает список вызовов с постраничной навигацией
Для наиболее оптимального времени выполнения запросов рекомендуется фильтровать
вызовы, начиная с заданной даты, используя параметр start_time.
GET /api/v2/calls/{id}
Возвращает атрибуты вызова
GET /api/v2/calls/{id}.mp3
Возвращает запись звонка в формате mp3.
Необходима авторизация с использованием параметра access_token.
Сценарии
Атрибуты ресурса
id bigint Идентификатор
GET /api/v2/scenarios
Возвращает список сценариев
POST /api/v2/scenarios
Создание сценария
GET /api/v2/scenarios/{id}
Возвращает атрибуты сценария
PUT /api/v2/scenarios/{id}
Обновление сценария
DELETE /api/v2/scenarios/{id}
Удаление сценария
Результаты сценариев
Атрибуты ресурса
id integer Идентификатор
GET /api/v2/scenarios/{id}/results
Список результатов
POST /api/v2/scenarios/{id}/results
Создание результата
GET /api/v2/scenarios/{id}/results/{result_id}
Возвращает атрибуты результата
PUT /api/v2/scenarios/{id}/results/{result_id}
Обновление результата
DELETE /api/v2/scenarios/{id}/results/{result_id}
Удаление результата
Список проектов
Атрибуты ресурса
id integer Идентификатор
GET /api/v2/call_projects
Список проектов
Параметры запроса
Статистика по проекту
Атрибуты ресурса
id integer Идентификатор
GET /api/v2/call_projects/{id}/statistic
Статистика по проекту
Отчеты
Параметры запроса
Примечание: передать можно либо users_ids, либо users_emails. Если переданы оба
поля, значения выбираются по users_ids
Пример тела запроса
{
'filter' => {
'results_ids' => ,
'scenarios_ids' =>[1,2],
'tags => [ 'tag1', 'tag2'],
'types' => 'all',
'users_ids' => 'all',
}
selected_fields: ["id","organization"]
page: 1
length: 10
start_time: 1586422474
end_time: 1586423103
}
Структура ответа
{
data: [запись_1, запись_2]]
total: число
length: число
page: число
total_pages: число
}
{
“id”
"started_at"
"region"
"phone"
"call_type"
"duration"
"recording_url"
"source"
"waiting_time"
"waiting_on_line_time"
"terminator"
"cost"
“durations”: {
"without_holding"
"holding"
"billed"
}
"user": {
“id”
"name"
},
"scenario": {
“id”
"name"
},
"organization": {
"id"
"name"
"post"
"business"
"homepage"
"tags"
"inn"
"kpp"
"comment"
"external_id"
"region"
"city"
"address"
},
"lead": {
“id”
"name":
"post"
"phones",
"emails",
"tags"
},
scenario_result: {
“id”
"name"
}
scenario_result_group: {
“id”
"title"
}
main_lead: {
“id”
"name"
"phones"
"responsible": {
“id”
“name”
}
"emails"
},
event: {
“id”, "type", "time", "date", "comment", "responsible", "status"
}
call_project: {
“id”
“title”
}
}
Описание объекта ReportRecord
id integer id звонка
id integer id пользователя
id bigint Идентификатор
id bigint Идентификатор
id bigint Идентификатор
name string Наименование
id bigint Идентификатор
id bigint Идентификатор
id bigint Идентификатор
id bigint Идентификатор
id bigint Идентификатор
curl 'https://app.skorozvon.ru/api/reports/calls_total.json'
-H 'Authorization: Bearer #{access_token}'
-H 'Content-Type: application/json' --data-binary '{"length": 5,
"start_time": 1586422474, "end_time": 1586423103, "page": 1,
"selected_fields": "all",
"filter":{"results_ids":"all","scenarios_ids":"all","tags_ids":["tag1","ta
g2"],"types":"all","users_ids":[1,2,3]}}'
Пример ответа
{
"data":[
{
"id":110,
"started_at":"2020-05-18 13:12:30",
"region":"Свердловская область",
"phone":"+72221113333",
"call_type":"Исходящий",
"duration":4,
"recording_url":"https://app.skorozvon.ru/api/calls/110.mp3",
"source":"+79221413799",
"waiting_time":13,
"waiting_on_line_time":0,
"terminator":"Оператор",
"cost":"0.0",
"durations":{
"without_holding":4,
"holding":0,
"billed":"1.0"
},
"user":{
"id":11356,
"name":"manager1"
},
"organization":{
"id":627307,
"name":"test organization",
"post":"",
"business":"",
"homepage":null,
"tags":"",
"inn":null,
"kpp":null,
"comment":null,
"external_id":null,
"region":"",
"city":"",
"address":""
},
"lead":{
"id":null,
"name":null,
"post":"",
"phones":[
],
"emails":[
],
"tags":"",
"external_id":null,
"region":"",
"city":"",
"address":""
},
"scenario":{
"id":2,
"name":"Стандартный обзвон (лидогенерация)"
},
"scenario_result_group":{
"id":null,
"name":null
},
"main_lead":{
"id":null,
"name":null,
"phones":null,
"responsible":{
"id":null,
"name":null
},
"emails":null
},
"event":{
"id":null,
"type":null,
"time":null,
"date":null,
"comment":null,
"responsible":{
"id":null,
"name":null
},
"status":null
},
"call_project":{
"id":null,
"title":null
}
},
{
"id":111,
"started_at":"2020-05-18 13:12:05",
"region":"Свердловская область",
"phone":"+79990000799",
"call_type":"Исходящий",
"duration":5,
"recording_url":"https://app.skorozvon.ru/api/calls/111.mp3",
"source":"+79990000799",
"waiting_time":15,
"waiting_on_line_time":0,
"terminator":"Оператор",
"cost":"0.0",
"durations":{
"without_holding":5,
"holding":0,
"billed":"1.0"
},
"user":{
"id":11356,
"name":"manager1"
},
"organization":{
"id":627307,
"name":"test orgnanization 2",
"post":"",
"business":"",
"homepage":null,
"tags":"",
"inn":null,
"kpp":null,
"comment":null,
"external_id":null,
"region":"",
"city":"",
"address":""
},
"lead":{
"id":null,
"name":null,
"post":"",
"phones":[
],
"emails":[
],
"tags":"",
"external_id":null,
"region":"",
"city":"",
"address":""
},
"scenario":{
"id":2,
"name":"Стандартный обзвон (лидогенерация)"
},
"scenario_result_group":{
"id":null,
"name":null
},
"main_lead":{
"id":null,
"name":null,
"phones":null,
"responsible":{
"id":null,
"name":null
},
"emails":null
},
"event":{
"id":null,
"type":null,
"time":null,
"date":null,
"comment":null,
"responsible":{
"id":null,
"name":null
},
"status":null
},
"call_project":{
"id":null,
"title":null
}
}
],
"length":2,
"total":2,
"total_pages":1,
"page":1
}
Webhooks
Атрибуты
phoneWidget.phoneModel.on('call:ringing', function(call) {
// обработка события начала дозвона
});
phoneWidget.phoneModel.on('call:connected', function(call) {
// обработка события соединения звонка
});
phoneWidget.phoneModel.on('call:ended', function(call) {
// обработка события завершения звонка
});
phoneWidget.login({
email: "e-mail зарегистрированного пользователя",
api_key: "api-ключ"
});
phoneWidget.show();
}
</script>
</head>
<body>
<div id="widget"></div>
<button id="make_call">Call</button>
</body>
</html>