Zvonobot AI: платформа voice AI-агентов для B2B
Multi-tenant SaaS-кабинет для голосовых AI-агентов на исходящих звонках. Запустил направление с нуля осенью 2025 в группе Prof-IT: 80 платящих B2B-клиентов и 500 000+ минут живых разговоров меньше чем за год. Уже в проде, можно зайти и зарегистрироваться.
- Голосовые AI-агенты
- LLM-оркестрация
- B2B SaaS
- Посекундный биллинг
- SIP-телефония
- Multi-tenant
Zvonobot AI: направление голосовых AI-агентов, запущенное с нуля
Zvonobot AI это направление группы Prof-IT, которое я запустил осенью 2025 и за которое отвечаю целиком: продукт, прайсинг, вывод на рынок. Клиенты собирают голосового AI-агента, дают ему промпт и базу контактов и запускают исходящие кампании: продажи, онбординг, реактивацию, опросы. Команда из четырёх инженеров отгружает, продуктовые решения за мной.
Меньше чем за год: 80 платящих B2B-клиентов, 500 000+ минут живых разговоров в проде, отдел продаж вырос под направление с 4 до 15 менеджеров.
Задача
Осень 2025. Zvonobot: зрелая платформа исходящих обзвонов, роботы прозванивают базы по записанным сценариям. LLM только что научились вести нормальный диалог, и стало ясно, что на записях далеко не уедешь, а если не сделаем живых агентов мы, категорию съест кто-то другой. Вопрос стоял не «строить ли voice AI», а как быстро и дёшево узнать, будут ли за него платить наши клиенты.
Почему исходящий обзвон стоит автоматизировать для B2B-команды, в четыре строки:
- Штат не масштабируется линейно: команду обзвона на 30-60 операторов тяжело нанять, обучить и удержать.
- Скорость до первого касания решает воронку: лид, до которого дозвонились за минуты, конвертируется в разы лучше, а люди не на каждой смене.
- Качество плавает: два оператора, один скрипт, два разных разговора, и нет дешёвого способа проверить, что реально было сказано.
- Lifecycle-звонки (напоминания об онбординге, реактивация, NPS, оплата) поодиночке дёшевы, а вместе это объём, который команда людей не оправдает.
Решение
Вместо того чтобы сначала строить платформу, мы вышли на рынок на white-label платформе за несколько недель. Это поставило реальный продукт перед реальными клиентами почти без затрат на разработку и ответило на единственный важный вопрос: платят ли и возвращаются ли.
Платили и возвращались. На тёплых базах AI-агенты стабильно обходили классические обзвоны по конверсии в целевое действие, первые клиенты продлевались. С этими цифрами, а не с презентацией, я обосновал собственную платформу: маржа по типам звонков и повторные оплаты показали, где white-label упирается в потолок и что вернёт владение стеком.
Результат
- 80 платящих B2B-клиентов меньше чем за год после запуска.
- 500 000+ минут живых разговоров в проде.
- 30% выручки направления дают повторные оплаты.
- Средний чек вырос на 30% после запуска AI-тарифов.
- Отдел продаж вырос с 4 до 15 менеджеров под направление; прайсинг и маржа по типам звонков на мне.
Как устроен продукт
Кабинет Zvonobot AI это поверхность, в которой живут клиенты. Сборка агентов, дозвон, биллинг и аналитика в одной role-aware консоли.
- Регистрация без трения. Почта, пароль, телефон, и клиент внутри. Телефон подтверждается уже в кабинете, перед первым звонком, а не на входе; есть вход через Яндекс ID.
- Сборщик агентов. Голос, модель, язык, структурированный промпт, база контактов и номер, и через минуты работает исходящий агент.
- Кампании. Кампания это «этот агент звонит этой базе с этого номера». Пауза, продолжение, повторные попытки, смена carrier, не выходя со страницы.
- История звонков с маской номеров. Каждый звонок: статус, исход, длительность, стоимость, запись. Номера замаскированы, кабинет безопасен для демо и аудита.
- Клиент не уходит в минус посреди кампании. Кампания резервирует ориентировочную стоимость на старте, реальная списывается после каждого звонка, остаток холда возвращается при остановке.
- Ни один звонок не застревает, каждая минута оплачена ровно один раз. Вебхуки теряются; фоновый поллер каждые 60 секунд сверяет незавершённые звонки с провайдером и закрывает кошелёк.
- Аналитика после звонка. LLM раскладывает каждый разговор на исход, настроение и кастомные параметры, и всё это собирается в дашборд: исходы по частоте, распределение настроения, часы, когда реально отвечают.
- Четыре роли, одна кодовая база. Супер-админ, менеджер, владелец кабинета, бухгалтер, у каждого свой скоуп и вид.
Что внутри
Стек намеренно скучный по краям, чтобы вся интересная работа происходила в середине.
- Frontend: React 19 + TypeScript + Vite, vanilla CSS со строгими design-токенами, переключение через
data-theme="dark", role-aware sidebar. - Backend: Flask modular monolith, SQLAlchemy + Alembic, PostgreSQL под state, Redis под джобы.
- Voice + LLM: оркестрация диалога поверх execution-слоя voice-провайдера; голос агента, ASR, TTS и LLM настраиваются для каждого агента отдельно.
- Телефония: SIP-транк для российских номеров, определение оператора через HLR-запрос, чтобы до набора знать, что номер достижим.
Три продуктовых решения с инженерными последствиями, которые я защищал бы снова:
- Сверять, а не верить вебхукам. Провайдеры теряют события. 60-секундный поллер и есть то, что превращает «каждая минута оплачена ровно один раз» из надежды в факт.
- Холд, потом списание. Ориентировочная стоимость резервируется на старте кампании, реальная списывается по каждому звонку, с блокировкой строки, чтобы два параллельных звонка не потратили одни и те же последние десять рублей.
- Загрузка баз, которая переживает настоящие CSV. Базы приходят как
+7 (982)…,8982…, номера не в той колонке. Всё нормализуется к канонической форме, дедуплицируется, получает оператора, а ненадёжные маршруты отбрасываются по умолчанию. Это начиналось как пет-проектbazabotи переехало в продукт, когда выяснилось, что он нужен каждой кампании.
Как я над ним работаю
Направление на мне: что строим, сколько это стоит, кому и с какой маржой продаём. Команда из четырёх инженеров отгружает. Постановка, приоритеты и ревью мои, а когда гипотезе нужен рабочий ответ быстрее спринта, я собираю прототип сам с AI-агентами (Claude Code, Codex) и передаю команде вывод, а не код.
На практике:
- Цикл: гипотеза → минимальная поверхность → живые клиенты → решение, за дни, а не за кварталы. White-label сначала это тот же цикл, применённый ко всему направлению.
- Скучная инфраструктура это фича: холды, сверка, идемпотентность, маска персональных данных решают, ощущается SaaS стабильным или хрупким, и я отношусь к ним как к продуктовой работе.
- Брать минимальную стабильную поверхность и растить её. Кабинет начинался с одной роли и одного отчёта; сегодня в нём четыре роли, биллинг, сборщик агентов, аналитика и настоящий поток звонков.
Что можно потрогать, а что под NDA
Кабинет открыт: можно зарегистрироваться самому и собрать агента. Скриншоты выше сняты с живого продукта на демо-аккаунте: организация, агент и звонки сгенерированы и обезличены, поэтому их безопасно показывать.
Под NDA остаётся конкретика: реальные названия клиентов, их промпты и базы, voice-провайдер, поверх которого мы работаем, и деньги. Всё описанное выше реально, но детали суммированы. Готов рассказать подробно на созвоне.