Справочник · Перезвони

Заявки на звонок

Заявки на обратный звонок - как с виджета Перезвони на сайте. Через API можно заказать звонок клиенту и следить, чем он закончился. Заявка принадлежит проекту: ключ видит заявки только своих проектов.

Объект заявки

Заявка на обратный звонок: с виджета на сайте или через API.

objectстрокаобязателен

Тип объекта, всегда lead.

Значения: lead

iduuidобязателен

id заявки.

project_iduuidобязателен

id проекта заявки.

department_iduuidобязателенможет быть null

id отдела, сотрудникам которого звоним.

phoneстрокаобязателен

Телефон клиента, обычно в E.164: +79991234567.

nameстрокаобязателенможет быть null

Имя клиента.

statusстрокаобязателен

Где заявка сейчас: scheduled - звонок назначен на время (или ждёт повтора), queued - в очереди на звонок, in_progress - идёт звонок, completed - разговор состоялся: с сотрудником или с ИИ-ассистентом (см. call.handled_by), missed - дозвониться не удалось (почему - в status_reason), cancelled - заявку отменили, not_called - звонок не заказывали (почему - в status_reason).

Значения: scheduledqueuedin_progresscompletedmissedcancellednot_called

status_reasonстрокаобязателенможет быть null

Почему missed или not_called: team_no_answer - не ответили сотрудники, customer_no_answer - не ответил клиент, error - сбой связи, insufficient_funds - на балансе не хватило денег на звонок. У остальных статусов - null.

Значения: team_no_answercustomer_no_answererrorinsufficient_funds

sourceстрокаобязателен

widget - заявка с виджета на сайте, api - через API.

Значения: widgetapi

source_urlстрокаобязателенможет быть null

Страница, с которой оставили заявку.

utmобъектобязателенможет быть null

UTM-метки заявки: только непустые из пяти стандартных. Нет ни одной - null.

Вложенные поля: 5
utm_sourceстрока

utm_source.

utm_mediumстрока

utm_medium.

utm_campaignстрока

utm_campaign.

utm_termстрока

utm_term.

utm_contentстрока

utm_content.

qualifierстрокаобязателенможет быть null

Причина звонка из списка отдела.

scheduled_atдата и время с зонойобязателенможет быть null

На какое время назначен звонок, UTC. Если ждёт повтора после недозвона - время повтора. Звонок сразу - null.

callобъектобязателенможет быть null

Звонок по заявке. Звонили несколько раз - последняя попытка. Пока звонка не было - null.

Вложенные поля: 7
started_atдата и время с зонойобязателен

Когда начали звонить, UTC.

answered_atдата и время с зонойобязателенможет быть null

Когда ответил сотрудник, UTC. Звонил ИИ-ассистент - null.

connected_atдата и время с зонойобязателенможет быть null

Когда начался разговор клиента с сотрудником или с ИИ-ассистентом, UTC.

ended_atдата и время с зонойобязателенможет быть null

Когда звонок закончился, UTC.

duration_secцелое числообязателенможет быть null

Сколько секунд длился разговор.

handled_byстрокаобязателен

team - звонили сотрудники, ai - звонил ИИ-ассистент.

Значения: teamai

ai_outcomeстрокаобязателенможет быть null

Чем закончился разговор с ИИ-ассистентом: transferred - перевёл на сотрудника, lead - записал заявку, ended - разговор завершён, limit - кончилось время разговора, failed - сбой, hangup - клиент положил трубку. Звонили сотрудники или итога ещё нет - null.

Значения: transferredleadendedlimitfailedhangup

ratingобъектобязателенможет быть null

Оценка звонка клиентом. Не оценил - null.

Вложенные поля: 3
scoreцелое числообязателен

Оценка от 1 до 5.

reasonsмассив (строка)обязателен

Что клиент отметил в оценке.

rated_atдата и время с зонойобязателенможет быть null

Когда клиент оценил звонок, UTC.

handled_atдата и время с зонойобязателенможет быть null

Когда сотрудник отметил заявку обработанной в личном кабинете, UTC. Не отмечена - null.

metadataобъектобязателенможет быть null

Ваши данные, переданные при создании через API. У заявок с виджета - null. См. Формат данных.

created_atдата и время с зонойобязателенможет быть null

Когда заявка создана, UTC.

updated_atдата и время с зонойобязателенможет быть null

Когда заявка последний раз менялась, UTC.

Объект заявки
{
  "object": "lead",
  "id": "01a0d7f0-c2b4-7e61-9a3f-6b1d2e8c4a57",
  "project_id": "01a0c4e2-3f10-7b4d-9c2e-5d8a1f6b3e20",
  "department_id": "01a0c4e2-51a8-7c30-8e4b-0f9d3a6c2b18",
  "phone": "+79991234567",
  "name": "Иван",
  "status": "completed",
  "status_reason": null,
  "source": "api",
  "source_url": "https://shop.example.com/cart",
  "utm": {
    "utm_source": "crm",
    "utm_campaign": "autumn"
  },
  "qualifier": "Сервис",
  "scheduled_at": null,
  "call": {
    "started_at": "2026-09-25T09:41:15Z",
    "answered_at": "2026-09-25T09:41:22Z",
    "connected_at": "2026-09-25T09:41:30Z",
    "ended_at": "2026-09-25T09:44:02Z",
    "duration_sec": 152,
    "handled_by": "team",
    "ai_outcome": null
  },
  "rating": null,
  "handled_at": null,
  "metadata": {
    "order_id": "20195208"
  },
  "created_at": "2026-09-25T09:41:12Z",
  "updated_at": "2026-09-25T09:44:02Z"
}
GET/v1/leads

Список заявок

Право: leads:read

Заявки проектов ключа - с виджета и через API, от новых к старым, по страницам. Фильтры можно сочетать.

Параметры запроса

limitцелое числоможет быть null

Сколько заявок на странице, от 1 до 100.

По умолчанию: 20

starting_afteruuidможет быть null

id последней заявки предыдущей страницы: страница начнётся после неё. См. Пагинация.

project_iduuidможет быть null

Только заявки этого проекта. Проекта нет в ключе - ошибка 403.

statusстрокаможет быть null

Только заявки в этих статусах, через запятую. Значения - как у поля status заявки.

phoneстрокаможет быть null

Заявки с этим телефоном клиента. Номер в другой записи API приведёт к E.164.

sourceстрокаможет быть null

widget - заявки с виджета, api - через API.

Значения: widgetapi

created[gte]дата и время с зонойможет быть null

Заявки, созданные не раньше этого времени. Время с часовым поясом (RFC 3339).

created[lte]дата и время с зонойможет быть null

Заявки, созданные не позже этого времени. Время с часовым поясом (RFC 3339).

Ответы

  • 200Страница списка заявок.
  • 401Нет ключа, ключ неверный, истёк или отозван (unauthenticated).
  • 402У компании не подключено дополнение «Публичный API» (api-addon-required).
  • 403У ключа нет нужного права или доступа к проекту (forbidden).
  • 422Данные запроса не прошли проверку (validation). Какие поля и почему - в errors.
  • 429Превышен лимит запросов (rate-limited). Повторите через столько секунд, сколько указано в Retry-After.
  • 503Сервис временно недоступен (unavailable). Повторите позже.
Запрос
curl https://api.ru.dialogi.io/v1/leads \
  -H "Authorization: Bearer dk_live_…"
Ответ 200
{
  "object": "list",
  "data": [
    {
      "object": "lead",
      "id": "01a0d7f0-c2b4-7e61-9a3f-6b1d2e8c4a57",
      "project_id": "01a0c4e2-3f10-7b4d-9c2e-5d8a1f6b3e20",
      "department_id": "01a0c4e2-51a8-7c30-8e4b-0f9d3a6c2b18",
      "phone": "+79991234567",
      "name": "Иван",
      "status": "completed",
      "status_reason": null,
      "source": "api",
      "source_url": "https://shop.example.com/cart",
      "utm": {
        "utm_source": "crm",
        "utm_campaign": "autumn"
      },
      "qualifier": "Сервис",
      "scheduled_at": null,
      "call": {
        "started_at": "2026-09-25T09:41:15Z",
        "answered_at": "2026-09-25T09:41:22Z",
        "connected_at": "2026-09-25T09:41:30Z",
        "ended_at": "2026-09-25T09:44:02Z",
        "duration_sec": 152,
        "handled_by": "team",
        "ai_outcome": null
      },
      "rating": null,
      "handled_at": null,
      "metadata": {
        "order_id": "20195208"
      },
      "created_at": "2026-09-25T09:41:12Z",
      "updated_at": "2026-09-25T09:44:02Z"
    }
  ],
  "has_more": true
}
POST/v1/leads

Создать заявку на звонок

Заявка через API - такой же звонок клиенту, как заявка с виджета на сайте: звонят сотрудники отдела или ИИ-ассистент - как настроен Перезвони в проекте. Тарифицируется заявка так же, как с виджета.

Проверка строже, чем у виджета: отдел не из проекта, причина звонка не из списка отдела, время звонка в прошлом - ошибка 422, а не тихая замена.

Если по этому номеру уже есть заявка в работе, созданная в последнюю минуту, второй звонок не заказывается: ответ 200 с этой заявкой. Вне рабочего времени отдела звонок может быть перенесён на ближайшее рабочее время - тогда у заявки статус scheduled и время в scheduled_at.

Idempotency-Key обязателен: повтор запроса без него заказал бы клиенту второй звонок.

Параметры тела

project_iduuidможет быть null

Проект заявки. Обязателен, если в ключе несколько проектов.

phoneстрокаобязателен

Телефон клиента, на него позвоним. Лучше в E.164; номер в другой записи API приведёт к E.164.

nameстрокаможет быть null

Имя клиента.

department_iduuidможет быть null

Отдел, сотрудникам которого звонить. Должен быть отделом с настройками Перезвони в этом проекте. Без него - отдел, настроенный первым.

scheduled_atдата и время с зонойможет быть null

Позвонить в это время, а не сразу. Время с часовым поясом (RFC 3339), в будущем и не дальше 14 дней.

qualifierстрокаможет быть null

Причина звонка - одна из причин, настроенных у отдела.

source_urlссылкаможет быть null

Страница, с которой пришёл клиент, http или https.

utmобъектможет быть null

UTM-метки: utm_source, utm_medium, utm_campaign, utm_term, utm_content, строки до 255 символов. Другие ключи пропускаем без ошибки, они не сохраняются.

Вложенные поля: 5
utm_sourceстрокаможет быть null
utm_mediumстрокаможет быть null
utm_campaignстрокаможет быть null
utm_termстрокаможет быть null
utm_contentстрокаможет быть null
metadataобъектможет быть null

Ваши данные: плоский объект до 50 ключей, ключ - до 40 символов и не число (10042 или -5 не подойдут), значение - строка до 500 символов, число, true/false или null. Пробелы по краям строки API убирает, пустая строка сохраняется как null. См. Формат данных.

Ответы

  • 201Заявка принята, звонок заказан.
  • 200По этому номеру уже есть заявка в работе: вернули её, второй звонок не заказан.
  • 400Нет заголовка Idempotency-Key (idempotency-key-required) или ключ в неверном формате (idempotency-key-invalid).
  • 401Нет ключа, ключ неверный, истёк или отозван (unauthenticated).
  • 402У компании не подключено дополнение «Публичный API» (api-addon-required).
  • 403У ключа нет нужного права или доступа к проекту (forbidden).
  • 409Idempotency-Key уже использован с другим запросом (idempotency-conflict) или первый запрос с ним ещё выполняется (idempotency-in-progress). В проекте не настроен Перезвони (perezvoni-not-configured).
  • 422Данные запроса не прошли проверку (validation). Какие поля и почему - в errors.
  • 429Превышен лимит запросов (rate-limited). Повторите через столько секунд, сколько указано в Retry-After. У создания заявок свои лимиты: новых заявок на ключ в минуту и заявок на один номер.
  • 503Сервис временно недоступен (unavailable). Повторите позже.
Запрос
curl https://api.ru.dialogi.io/v1/leads \
  -H "Authorization: Bearer dk_live_…" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-20195208" \
  -d '{
    "phone": "+79991234567",
    "name": "Иван"
  }'
Ответ 201
{
  "object": "lead",
  "id": "01a0d7f0-c2b4-7e61-9a3f-6b1d2e8c4a57",
  "project_id": "01a0c4e2-3f10-7b4d-9c2e-5d8a1f6b3e20",
  "department_id": "01a0c4e2-51a8-7c30-8e4b-0f9d3a6c2b18",
  "phone": "+79991234567",
  "name": "Иван",
  "status": "completed",
  "status_reason": null,
  "source": "api",
  "source_url": "https://shop.example.com/cart",
  "utm": {
    "utm_source": "crm",
    "utm_campaign": "autumn"
  },
  "qualifier": "Сервис",
  "scheduled_at": null,
  "call": {
    "started_at": "2026-09-25T09:41:15Z",
    "answered_at": "2026-09-25T09:41:22Z",
    "connected_at": "2026-09-25T09:41:30Z",
    "ended_at": "2026-09-25T09:44:02Z",
    "duration_sec": 152,
    "handled_by": "team",
    "ai_outcome": null
  },
  "rating": null,
  "handled_at": null,
  "metadata": {
    "order_id": "20195208"
  },
  "created_at": "2026-09-25T09:41:12Z",
  "updated_at": "2026-09-25T09:44:02Z"
}
GET/v1/leads/{lead}

Получить заявку

Право: leads:read

Заявка по id - со статусом звонка и его итогом. Заявка из проекта, которого нет в ключе, для ключа не существует - ответ 404.

Параметры пути

leaduuidобязателен

id заявки.

Ответы

  • 200Заявка.
  • 401Нет ключа, ключ неверный, истёк или отозван (unauthenticated).
  • 402У компании не подключено дополнение «Публичный API» (api-addon-required).
  • 403У ключа нет нужного права или доступа к проекту (forbidden).
  • 404Объекта с таким id нет или он в проекте, которого нет в ключе (not-found).
  • 429Превышен лимит запросов (rate-limited). Повторите через столько секунд, сколько указано в Retry-After.
  • 503Сервис временно недоступен (unavailable). Повторите позже.
Запрос
curl https://api.ru.dialogi.io/v1/leads/0192d3a1-7b2c-7c3e-9a51-2f6b8e4d1c90 \
  -H "Authorization: Bearer dk_live_…"
Ответ 200
{
  "object": "lead",
  "id": "01a0d7f0-c2b4-7e61-9a3f-6b1d2e8c4a57",
  "project_id": "01a0c4e2-3f10-7b4d-9c2e-5d8a1f6b3e20",
  "department_id": "01a0c4e2-51a8-7c30-8e4b-0f9d3a6c2b18",
  "phone": "+79991234567",
  "name": "Иван",
  "status": "completed",
  "status_reason": null,
  "source": "api",
  "source_url": "https://shop.example.com/cart",
  "utm": {
    "utm_source": "crm",
    "utm_campaign": "autumn"
  },
  "qualifier": "Сервис",
  "scheduled_at": null,
  "call": {
    "started_at": "2026-09-25T09:41:15Z",
    "answered_at": "2026-09-25T09:41:22Z",
    "connected_at": "2026-09-25T09:41:30Z",
    "ended_at": "2026-09-25T09:44:02Z",
    "duration_sec": 152,
    "handled_by": "team",
    "ai_outcome": null
  },
  "rating": null,
  "handled_at": null,
  "metadata": {
    "order_id": "20195208"
  },
  "created_at": "2026-09-25T09:41:12Z",
  "updated_at": "2026-09-25T09:44:02Z"
}