Разработчику
Один POST — и агент звонит
Приём заявки одним запросом: ключ на компанию, идемпотентность по вашему идентификатору лида. Ошибки приходят с человекочитаемой причиной.
POST /api/v1/leadsприём заявки
curl -X POST https://zangai.uz/api/v1/leads \
-H "X-Api-Key: <ваш ключ>" \
-H "Content-Type: application/json" \
-d '{
"external_id": "crm-8842",
"phone": "+998901234567",
"name": "Мадина",
"source": "instagram_ads"
}'События платформы
Подписка на исходящие вебхуки в кабинете пока недоступна: ниже — события, которые платформа различает внутри себя, а не то, что вы можете получать.
- lead.createdзаявка принята и прошла проверку комплаенса
- call.finishedитог звонка с расшифровкой и исходом
- conversation.updatedновое сообщение в диалоге
- deal.status_changedсделка сменила статус
- consent.revokedконтакт попросил больше не звонить
Правила игры
Что стоит знать до интеграции
- Ключ выпускается на компанию, лимит 20 запросов в минуту на ключ.
- Повторный external_id не создаёт второй звонок — идемпотентность на стороне платформы.
- Ошибки в формате RFC 7807 с request_id: его достаточно, чтобы поддержка нашла запрос.
- Ключ несёт одно право — leads:write: принять заявку. Других методов у публичного API сегодня нет.
Важно про согласия
Если у контакта нет согласия, а сценарий рекламный, API вернёт 422 со списком отклонённых номеров. Это не ошибка интеграции — это требование закона, встроенное в приём данных. Обойти его параметром запроса нельзя.
Полная спецификация
Схема всех методов — OpenAPI. Ключ выпускается в кабинете, в разделе «Ключи API».