Как устроен сервис, с чего начать и как подключить его к своей CRM через API, вебхуки и Telegram.
Голосовой бот вокруг ваших данных: города, услуги, цены и реплики задаёте вы.
Клиент звонит на ваш номер → бот определяет вашу компанию по номеру, здоровается, распознаёт услугу (и модель, если есть дерево номенклатуры), называет цену строго из вашего прайса и предлагает записаться. Возражения и частые вопросы — вашими заготовками; сложный случай — перевод на оператора.
Кампания: загрузите контакты, задайте окно набора, число попыток и одновременных звонков. Бот сам набирает по вашему сценарию, ведёт статусы дозвона и повторяет недозвоны. Номера из списка «не звонить» пропускаются (152-ФЗ, согласие на обзвон обеспечиваете вы).
Кампания-опрос вместо ценового диалога: бот задаёт ваши вопросы и собирает оценки 1–5, «да/нет» и свободные ответы. Результаты — выгрузкой в CSV.
Каждый звонок тарифицируется шагом 15 с, видна себестоимость и списание по тарифу. Дашборд показывает звонки по исходам, заявки и расход за период.
Заполните города, услуги и цены. Или примените готовый шаблон сценария.
Привяжите телефонный номер, выберите тариф и пополните баланс.
Создайте ключ API и вебхуки, чтобы данные попадали в вашу CRM.
Доступ к своим данным по токену. Токен создаётся в кабинете: Настройки → Ключи API (показывается один раз).
Передавайте токен в заголовке Authorization:
curl -H "Authorization: Bearer rv_ваш_токен" \
https://capybaravoice.timergali.ru/api/v1/bookings
call.finished или booking.created.Все запросы — GET, ответ JSON (UTF-8), Bearer-токен обязателен.
/api/v1/bookingsзаявки компании/api/v1/callsжурнал звонков/api/v1/campaignsкампании обзвонаПараметров фильтрации сейчас нет: методы отдают свежие записи
целиком (/calls — последние 100). Фильтры по периоду и исходу —
в планах; для реактивных сценариев используйте вебхуки.
/api/v1/bookings{
"bookings": [
{
"id": 128,
"city": "Москва",
"service": "Замена дисплея",
"phone": "+79001234567",
"customer_name": "Иван",
"status": "new",
"created_at": "2026-07-25T10:15:00Z"
}
]
}
/api/v1/calls{
"calls": [
{
"id": 5012,
"call_id": "1690000000.42",
"caller": "+79001234567",
"recognized_city": "Москва",
"recognized_service": "Замена дисплея",
"quoted_price": "4490",
"outcome": "quoted",
"started_at": "2026-07-25T10:14:30Z"
}
]
}
outcome: quoted (названа цена) ·
no_city · no_service · transferred ·
transfer_failed (перевод запрошен, оператор не ответил) ·
abandoned.
/api/v1/campaigns{
"campaigns": [
{ "id": 3, "name": "Весенний обзвон", "status": "active" },
{ "id": 4, "name": "Опрос качества", "status": "paused", "survey_id": 2 }
]
}
status: draft · active ·
paused · done. survey_id есть, если кампания проводит опрос.
Специальных лимитов частоты сейчас нет, но не опрашивайте методы в цикле — для событий в реальном времени используйте вебхуки.
| Код | Когда |
|---|---|
200 | успех |
401 | нет заголовка Authorization или токен неизвестен/отозван |
500 | внутренняя ошибка сервиса |
Тело ошибки — JSON вида {"error": "..."}.
Платформа сама уведомляет вашу систему о событиях. Настраиваются в кабинете: Настройки → Вебхуки.
| Событие | Когда |
|---|---|
booking.created | Создана заявка на запись |
call.finished | Звонок завершён (с исходом) |
На указанный URL приходит POST с JSON. Заголовки:
X-Capybaravoice-Event — имя события, X-Capybaravoice-Signature:
sha256=… — подпись тела HMAC-SHA256 вашим секретом.
POST https://ваш-адрес.ру/hook
Content-Type: application/json
X-Capybaravoice-Event: booking.created
X-Capybaravoice-Signature: sha256=9f86d0818...
{
"event": "booking.created",
"company_id": 42,
"timestamp": "2026-07-25T10:15:00Z",
"data": {
"call_id": "abc-123",
"phone": "+79001234567",
"city": "Москва",
"service": "Замена дисплея",
"price": "4490"
}
}
Посчитайте HMAC-SHA256 от сырого тела запроса вашим секретом и сравните
с X-Capybaravoice-Signature (после sha256=). Пример на Python:
import hmac, hashlib
sig = hmac.new(secret.encode(), body, hashlib.sha256).hexdigest()
assert hmac.compare_digest("sha256=" + sig, request.headers["X-Capybaravoice-Signature"])
Отвечайте статусом 2xx — иначе доставка считается
неуспешной (виден статус в кабинете).
Бот пишет о принятых звонках и новых заявках прямо в ваш чат. Настраивается в кабинете: Настройки → Telegram.
В Telegram напишите @BotFather → /newbot → получите токен.
Напишите боту /start; chat_id подскажет @userinfobot
(для группы id начинается с «−»).
Впишите токен и chat_id в кабинете, включите уведомления и нажмите «Отправить тест».