Этот раздел — для тех, кто хочет получать данные о звонках напрямую на свой сервер: складывать в свою CRM, строить дашборды, запускать автоматические сценарии.

Как это работает

Вы регистрируете адрес своего сервера на платформе. После каждого нужного события Саша сама отправляет туда данные POST-запросом в формате JSON. Вам не нужно ничего запрашивать вручную. Если сервер не ответил 200 OK в течение 10 секунд — система сделает ещё 2 попытки с нарастающей паузой между ними (максимум 15 секунд).
Задержка рассчитывается по формуле min(2^N × 500мс, 15000мс), где N — номер попытки. Клиентские ошибки 4xx не повторяются.

Создание вебхука через API

Все эндпоинты привязаны к конкретному колл-листу и требуют JWT-аутентификацию. Базовый путь: /api/call-lists/{callListId}/webhooks

Создать вебхук

POST /api/call-lists/{callListId}/webhooks
Тело запроса:
{
  "targetUrl": "https://your-server.com/webhook",
  "targetUrlType": "api",
  "eventTypes": ["call_result"],
  "description": "Интеграция с нашей CRM"
}
Параметры:
targetUrl
string
required
Адрес назначения. Для api — URL сервера. Для telegram / max — ID чата. Для email — email-адрес. Для bitrix — URL входящего вебхука Bitrix24. Для amocrm — домен AmoCRM. Макс. 500 символов
targetUrlType
string
required
api, telegram, email, bitrix, amocrm или max
eventTypes
string[]
required
Массив с одним элементом: call_result или lead_only
description
string
Любое описание, макс. 500 символов
customFields
object[]
Массив объектов маппинга полей для Bitrix24 и AmoCRM. Для AmoCRM обязательно включить объект с ключом accessToken
Ответ (201):
{
  "secret": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
Секретный ключ показывается только один раз при создании вебхука и используется для проверки подлинности запросов (тип API).

Остальные операции

GET    /api/call-lists/{callListId}/webhooks          — список всех вебхуков
GET    /api/call-lists/{callListId}/webhooks/{id}     — один вебхук по ID
PATCH  /api/call-lists/{callListId}/webhooks/{id}     — включить / выключить
DELETE /api/call-lists/{callListId}/webhooks/{id}     — удалить (204 No Content)
POST   /api/call-lists/{callListId}/webhooks/test     — отправить тестовое событие
Список вебхуков возвращает массив. Секретные ключи маскируются (********). Включить или выключить:
{ "status": "active" }
Допустимые значения: active, disabled. Тестовый запрос:
{
  "targetUrl": "https://your-server.com/webhook",
  "targetUrlType": "api",
  "eventTypes": ["call_result"]
}
Отправляет событие с фиктивными данными на указанный URL.

Настройка CRM-интеграций через API

Bitrix24

В качестве targetUrl укажите URL входящего вебхука из настроек Bitrix24. Через customFields настраивается маппинг полей — ключ это данные из звонка, значение это поле лида в Bitrix24:
{
  "targetUrl": "https://your-domain.bitrix24.ru/rest/1/abc123xyz/",
  "targetUrlType": "bitrix",
  "eventTypes": ["lead_only"],
  "customFields": [
    { "city": "ADDRESS_CITY" },
    { "preferences": "COMMENTS" }
  ]
}
Пошаговая настройка входящего вебхука на стороне Битрикс24 — в разделе Интеграция с Битрикс24.

AmoCRM

В качестве targetUrl укажите домен своего аккаунта. accessToken в customFields обязателен — без него интеграция не заработает. Дополнительные объекты в customFields используются для маппинга в пользовательские поля AmoCRM: ключ — путь к данным, значение — числовой ID поля AmoCRM:
{
  "targetUrl": "your-domain.amocrm.ru",
  "targetUrlType": "amocrm",
  "eventTypes": ["lead_only"],
  "customFields": [
    { "accessToken": "ваш_access_token" }
  ]
}
Пошаговая настройка токена и маппинга полей на стороне AmoCRM — в разделе Интеграция с AmoCRM.

Telegram

В качестве targetUrl укажите ID чата. Помимо текстового сообщения с данными лида, в чат также отправляется файл с историей диалога (если доступна):
{
  "targetUrl": "-1001234567890",
  "targetUrlType": "telegram",
  "eventTypes": ["lead_only"]
}

Email

{
  "targetUrl": "manager@example.com",
  "targetUrlType": "email",
  "eventTypes": ["lead_only"]
}

MAX

{
  "targetUrl": "12345678",
  "targetUrlType": "max",
  "eventTypes": ["lead_only"]
}