Коммерческое предложение: Проект «Альфа»
AI-платформа массовой лидогенерации для партнёрской программы Альфа-Банка
Версия: 1.0 (черновик — ожидает ответов клиента) Дата: 14.03.2026 Клиент: Команда Ильи Подготовил: AiDevTeam
Содержание
Часть I: Коммерческое предложение
- О проекте
- Текущие процессы и боли
- Архитектура решения
- Функциональные блоки
- Пакеты услуг
- Сравнение пакетов
- Наша рекомендация
- Бизнес-выгоды (ROI)
Часть II: Техническое задание
- Границы MVP
- Компоненты системы
- Модель данных
- API-спецификация
- Пользовательские сценарии
- Команда проекта
- Дорожная карта и план спринтов
- Предварительные исследования
- Стратегия тестирования
- Развёртывание и инфраструктура
- Критерии приёмки
- Нефункциональные требования
Часть III: Коммерческие условия
- Как мы работаем
- Условия оплаты
- Ежемесячные расходы
- Риски и митигация
- Гарантии
- Требования к клиенту
- Что не входит
- Открытые вопросы
- Перспективы развития
- Глоссарий
- Следующие шаги
1. О проекте
Проект «Альфа» — AI-платформа массовой лидогенерации для привлечения ИП, ООО и самозанятых к открытию расчётного счёта (РКО) в Альфа-Банке через партнёрскую программу.
Модель монетизации: CPA — 9 000–11 000 руб. за каждый открытый расчётный счёт.
Оффер для клиентов банка: бесплатное РКО, расширенный пакет услуг, карта Alfa Only для ЛПР.
Целевой масштаб:
| Этап | Звонков/день | Каналы |
|---|---|---|
| MVP (запуск) | 500–2 000 | Голосовой AI |
| Рост | 2 000–5 000 | + Telegram |
| Масштаб | 5 000–10 000 | + предиктивный дайлинг |
Регуляторный контекст (Россия):
- ФЗ-41 (с 01.09.2025): маркировка звонков, обязательное согласие на массовые звонки, self-ban через Госуслуги. Штрафы 300K–1M руб.
- ФЗ-152: персональные данные — только серверы в РФ. С 01.07.2025 — штраф 1–6M руб.
- WhatsApp заблокирован в РФ с 12.02.2026. Telegram — единственный мессенджер для российского рынка.
- Антифрод РКН: покрывает 99.6% нумерации, подмена CallerID невозможна.
2. Текущие процессы и боли
| Проблема | Решение |
|---|---|
| «Нужно делать тысячи звонков в день — людей не хватит» | AI-нейроколлер: 500–10 000 звонков/день без увеличения штата |
| «Номера блокируют через 2 дня обзвона» | Интеллектуальная ротация 50–150 DID + прогрев + мониторинг репутации (Kaspersky Who Calls) |
| «Не знаем, какие лиды горячие» | Lead scoring (0–100) + автоматическая маршрутизация горячих лидов к клоузерам за <= 5 мин |
| «С сентября 2025 штрафы за холодные звонки» | Consent management + проверка DNC/self-ban реестров + lead-magnet стратегия |
| «Нет аналитики — сколько звонков → сколько счетов» | Real-time дашборд: воронка, конверсии, A/B скрипты, unit-economics по сегментам |
| «Каждый сегмент (ИП/ООО/самозанятые) — разный разговор» | 3 адаптивных скрипта с LLM-driven ветвлениями + отработка возражений |
| «Пробовали рассылки — Telegram банит» | Контролируемый userbot: 40–50 DM/день, прогрев 7+ дней, ротация аккаунтов |
3. Архитектура решения
flowchart TB
subgraph Channels["Каналы"]
PHONE["Телефония (SIP)"]
TG["Telegram"]
end
subgraph Voice["Голосовой AI"]
STT["STT (распознавание)"]
LLM["LLM (диалог)"]
TTS["TTS (синтез)"]
VAD["VAD (детектор речи)"]
end
subgraph Core["Ядро платформы"]
ORCH["Оркестратор кампаний\n(BullMQ)"]
DM["Диалоговый менеджер\n(LangGraph)"]
SCORE["Lead Scoring"]
CRM["CRM модуль"]
CONSENT["Consent Manager\n(ФЗ-41)"]
end
subgraph Data["Данные"]
PG["PostgreSQL"]
REDIS["Redis"]
CH["ClickHouse\n(OLAP)"]
end
subgraph Infra["Инфраструктура"]
K8S["Yandex Cloud K8s"]
MON["Grafana + Loki"]
DASH["Дашборд\n(Next.js)"]
end
PHONE --> STT --> DM
DM --> LLM --> TTS --> PHONE
VAD --> DM
TG --> DM
ORCH --> PHONE
ORCH --> TG
DM --> SCORE --> CRM
CONSENT --> ORCH
CRM --> PG
ORCH --> REDIS
CRM --> CH
K8S --> Core
MON --> K8S
DASH --> CRM
style Channels fill:#172554,stroke:#3b82f6
style Voice fill:#450a0a,stroke:#ef4444
style Core fill:#14532d,stroke:#22c55e
style Data fill:#78350f,stroke:#f59e0b
style Infra fill:#3b0764,stroke:#a855f7
Ключевые принципы:
- Модульный монолит (Node.js/TypeScript core + Python AI-сервисы) — на 30–40% быстрее в разработке, чем микросервисы
- Каскадный voice pipeline: STT → LLM → TTS через Voximplant (MVP) или LiveKit Agents (масштаб)
- Compliance-first: consent management и DNC-проверки встроены в оркестратор до каждого звонка
- Размещение в РФ: Yandex Cloud / Selectel (ФЗ-152)
4. Функциональные блоки
4.1. Голосовой AI (Нейроколлер)
| Функция | Описание |
|---|---|
| Каскадный пайплайн | STT → LLM → TTS, end-to-end latency <= 1.5 сек |
| Диалоговый менеджер | LangGraph: граф состояний (приветствие → квалификация → возражения → закрытие) |
| Intent recognition | Гибридный каскад: regex (<1 мс) → ruBERT (~10 мс) → LLM fallback (~300 мс) |
| Barge-in | Silero VAD (30 мс фреймы) → мгновенный стоп TTS → перехват потока |
| Мультисегментные скрипты | 3 адаптивных сценария: ИП, ООО, самозанятые |
| A/B тестирование | Параллельный запуск вариантов скрипта с conditional routing |
4.2. CRM и управление контактами
| Функция | Описание |
|---|---|
| Импорт контактов | CSV/Excel → staging → нормализация (E.164) → upsert |
| Дедупликация | Телефон (PK) + ИНН (secondary) + pg_trgm fuzzy на названиях |
| Валидация ИНН | python-stdnum: 10 цифр = ООО, 12 цифр = ИП/самозанятый |
| Lead scoring | Rule-based 0–100: requested_callback +20, asked_pricing +25, agreed_meeting +30 |
| История взаимодействий | Append-only лог, партиционирование по месяцам |
4.3. Оркестрация кампаний
| Функция | Описание |
|---|---|
| Очередь | BullMQ на Redis: приоритеты, rate limiting, delayed jobs |
| Scheduling | Timezone-aware (UTC → локальное время контакта) |
| Retry | Звонки: 2ч → 4ч → следующий рабочий день. Сообщения: 30с → 8мин (exp. backoff) |
| Consent check | Проверка DNC/self-ban перед каждым звонком (ФЗ-41) |
| Pre-call pipeline | MNP (0.03 руб) → HLR → DNC → consent → geo-matching → SIP |
4.4. Телефония и антиспам
| Функция | Описание |
|---|---|
| Мультипровайдерный SIP | Zadarma (API) + MTT (покрытие 85+ регионов) + MCN (цена) |
| Ротация номеров | Max 50–75 звонков/номер/день, warming → active → cooling → retired |
| Мониторинг репутации | Kaspersky Who Calls API + регистрация в Яндекс.Бизнес |
| HLR-проверка | Пакетная ночная + кэш 24–48 часов. SIGMA: 0.03 руб/номер |
4.5. Telegram-канал
| Функция | Описание |
|---|---|
| Userbot (Telethon) | Холодный аутрич: 40–50 DM/день, прогрев 7+ дней, deep link → бот |
| Bot API | FSM + LLM квалификация (~$0.001/ход), follow-up дожим |
| Связка | userbot → t.me/Bot?start=lead_id → Bot API → квалификация → hand-off |
4.6. Маршрутизация лидов (Hand-off)
| Функция | Описание |
|---|---|
| Scoring trigger | score > 75 → Redis Streams → WebSocket push |
| SLA | 5 мин от квалификации до первого контакта клоузера |
| Warm transfer | LiveKit WarmTransferTask (SIP REFER / SIP Replaces) |
4.7. Дашборд и аналитика
| Функция | Описание |
|---|---|
| Real-time метрики | Звонки, конверсии, воронка, статус номеров, расход |
| A/B результаты | Конверсия по вариантам скрипта, статистическая значимость |
| Unit-economics | CPA, стоимость звонка, ROI по сегментам и кампаниям |
| OLAP (ClickHouse) | Исторические срезы, когорты, предиктивная аналитика |
5. Пакеты услуг
5.1. Пакет «Пилот» -- Первый звонок
Масштаб: до 500 звонков/день | Срок: 4–5 недель
| Модуль | Критерий приёмки |
|---|---|
| Voximplant интеграция + 1 скрипт | Бот ведёт диалог >= 3 мин, распознаёт >= 5 интентов |
| CRM: импорт CSV, статусы, история | Импорт 10K контактов за <= 60 сек, дедупликация по E.164 |
| Оркестрация кампаний (BullMQ) | Очередь обрабатывает 500 звонков/день, timezone-aware |
| Ротация номеров (15–20 DID) | Max 50–75 звонков/номер, автосмена при спам-флаге |
| Pre-call pipeline (HLR + MNP) | Проверка 100% номеров перед звонком, кэш 48ч |
| Lead scoring (rule-based) | Score 0–100, лиды >= 75 помечаются «горячие» |
| Базовый дашборд | Конверсии, статусы, воронка — обновление <= 30 сек |
Преимущества:
- Быстрый запуск на Voximplant — первый звонок через 4 недели
- Проверка unit-economics до масштабирования
- Минимальные инфраструктурные расходы (~135K руб/мес)
- Полный compliance ФЗ-152 (Voximplant — серверы в РФ)
Стоимость: 705 000 руб
5.2. Пакет «Старт» -- Мультиканальность
Включает всё из «Пилота» +
Масштаб: до 2 000 звонков/день | Срок: 7–9 недель
| Модуль | Критерий приёмки |
|---|---|
| Telegram бот (userbot + Bot API) | Квалификация лида за <= 5 сообщений, follow-up через 2ч |
| 3 скрипта (ИП / ООО / самозанятые) | Каждый скрипт >= 8 интентов, conditional routing по сегменту |
| Consent management (ФЗ-41) | Проверка DNC/self-ban перед 100% звонков, журнал согласий |
| Warm transfer на клоузеров | Перевод горячего лида за <= 30 сек (SIP REFER) |
| Расширенный дашборд (real-time) | Воронка по каналам, конверсия по сегментам, live-статус |
| Расширенная ротация (50–70 DID) | Автопрогрев, cooling, мониторинг Kaspersky Who Calls |
| DNC/self-ban интеграция | Проверка реестров Роскомнадзора перед каждым звонком |
Бонусы (бесплатно):
- Настройка и прогрев 50 SIP-номеров с мониторингом (обычно ~40 000 руб)
- Импорт и нормализация первой базы контактов до 100K записей (обычно ~25 000 руб)
Общая стоимость бонусов: ~65 000 руб
Преимущества:
- Два канала лидогенерации: голос + Telegram
- Сегментированный подход — свой скрипт под каждый тип бизнеса
- Полный compliance ФЗ-41 (consent + DNC)
- Warm transfer — горячий лид сразу попадает к клоузеру
Стоимость: 1 135 000 руб
5.3. Пакет «Бизнес» -- Оптимизация
Включает всё из «Старта» +
Масштаб: до 5 000 звонков/день | Срок: 11–14 недель
| Модуль | Критерий приёмки |
|---|---|
| A/B тестирование скриптов | >= 2 варианта параллельно, статзначимость при N >= 1000 |
| ClickHouse OLAP-аналитика | Запрос по 10M записей за <= 3 сек, когорты, срезы |
| Гибридный intent recognition | regex → ruBERT → LLM fallback, accuracy >= 90% |
| Мультипровайдерный SIP | Zadarma + MTT, автопереключение при сбое за <= 10 сек |
| Расширенная ротация (100–150 DID) | Автопрогрев, cooling 30–90 дней, retired-пул |
| API для внешних CRM | REST API + webhook для Bitrix24, amoCRM |
| Автоматический ретаргетинг | Повторные попытки по настраиваемому расписанию |
Бонусы (бесплатно):
- Всё из «Старта» +
- Настройка Grafana-дашборда с 15 бизнес-метриками (обычно ~50 000 руб)
- Разработка 3 вариантов скриптов для A/B тестирования (обычно ~45 000 руб)
- Интеграция с Kaspersky Who Calls API для мониторинга репутации (обычно ~30 000 руб)
Общая стоимость бонусов и скидки: ~280 000 руб (бонусы ~190 000 руб + скидка 90 000 руб)
Преимущества:
- Data-driven оптимизация: A/B тесты показывают, какой скрипт конвертирует лучше
- OLAP-аналитика для стратегических решений
- Мультипровайдерный SIP — отказоустойчивость и лучшее покрытие
- API для интеграции с существующей CRM клиента
Стоимость: 1 695 000 руб 1 785 000 руб (скидка 5%)
5.4. Пакет «Премиум» -- Полная автономия
Включает всё из «Бизнеса» +
Масштаб: до 10 000 звонков/день | Срок: 16–20 недель
| Модуль | Критерий приёмки |
|---|---|
| Кастомный голосовой стек (LiveKit) | End-to-end latency <= 800 мс, barge-in <= 100 мс |
| Self-hosted STT/TTS/LLM | Whisper/Vosk + Silero TTS + Llama на GPU, стоимость <= $0.016/мин |
| Kubernetes auto-scaling | HPA по custom metrics, 40–100 подов, scale-up <= 2 мин |
| Predictive dialing | ML-модель оптимального времени звонка, +15–20% к contact rate |
| ML-скоринг лидов | Модель на исторических данных, AUC >= 0.75 |
| Расширенная Telegram автоматизация | Сеть userbot'ов с ротацией, backup 20% пула |
| White-label дашборд | Кастомизация логотипа, цветов, домена |
| SLA + выделенная поддержка (3 мес) | Время реакции <= 2ч в рабочее время |
Бонусы (бесплатно):
- Всё из «Бизнеса» +
- Обучение команды клиента: 2 сессии по 2 часа (обычно ~60 000 руб)
- Аудит безопасности и ФЗ-152 compliance (обычно ~80 000 руб)
Общая стоимость бонусов и скидки: ~510 000 руб (бонусы ~330 000 руб + скидка 180 000 руб)
Кредит на разработку: 250 000 руб на будущие доработки и новые модули
- Действует 12 месяцев с момента запуска
- Можно использовать не более 50% от суммы нового заказа
- Применяется к: новые скрипты, интеграции, кастомизации, расширения
Преимущества:
- Полная независимость от Voximplant — собственный голосовой стек
- Стоимость звонка в 3x ниже ($0.016/мин vs $0.045/мин) при масштабе
- Predictive dialing увеличивает contact rate на 15–20%
- ML-скоринг вместо rule-based — точнее квалификация лидов
- IP на решение остаётся у вас
Стоимость: 2 415 000 руб 2 595 000 руб (скидка 7%)
6. Сравнение пакетов
| Функция | Пилот | Старт | Бизнес | Премиум |
|---|---|---|---|---|
| Звонков/день | 500 | 2 000 | 5 000 | 10 000 |
| Голосовой AI | Voximplant | Voximplant | Voximplant | Кастом (LiveKit) |
| Скрипт диалога (1 / 3) | 1 | 3 | 3 + A/B | 3 + A/B + ML |
| Intent recognition | Keyword | Keyword + NLU | regex → ruBERT → LLM | regex → ruBERT → LLM |
| Barge-in | -- | + | + | + (< 100 мс) |
| Telegram | -- | + | + | + (сеть userbot) |
| CRM | Базовый | + Consent | + API CRM | + White-label |
| Lead scoring | Rule-based | Rule-based | Rule-based | ML-модель |
| Warm transfer | -- | + | + | + (predictive) |
| Ротация DID | 15–20 | 50–70 | 100–150 | 150+ |
| Мониторинг репутации | -- | + | + (Kaspersky) | + (Kaspersky) |
| Дашборд | Базовый | Real-time | + ClickHouse OLAP | + White-label |
| A/B тестирование | -- | -- | + | + |
| Мультипровайдерный SIP | -- | -- | + | + |
| Auto-scaling K8s | -- | -- | -- | + |
| Predictive dialing | -- | -- | -- | + |
| Self-hosted AI | -- | -- | -- | + |
| SLA + поддержка | -- | -- | -- | 3 мес |
| Срок | 4–5 нед | 7–9 нед | 11–14 нед | 16–20 нед |
| Стоимость | 705 000 | 1 135 000 | ||
| Скидка | -- | -- | 5% | 7% |
| Бонусы | -- | ~65 000 | ~190 000 | ~330 000 + кредит 250K |
flowchart TB
subgraph pilot["Пилот — 705 000 руб"]
P1["Voximplant"]
P2["CRM + импорт"]
P3["Оркестратор"]
P4["Ротация DID"]
P5["Дашборд"]
end
subgraph start["Старт — 1 135 000 руб"]
S1["+ Telegram"]
S2["+ 3 скрипта"]
S3["+ Consent ФЗ-41"]
S4["+ Warm transfer"]
end
subgraph biz["Бизнес — 1 695 000 руб"]
B1["+ A/B тесты"]
B2["+ ClickHouse"]
B3["+ Multi-SIP"]
B4["+ ruBERT"]
end
subgraph prem["Премиум — 2 415 000 руб"]
PR1["+ LiveKit (кастом)"]
PR2["+ Self-hosted AI"]
PR3["+ Predictive dial"]
PR4["+ ML-scoring"]
end
pilot --> start --> biz --> prem
style pilot fill:#14532d,stroke:#22c55e
style start fill:#172554,stroke:#3b82f6
style biz fill:#78350f,stroke:#f59e0b
style prem fill:#450a0a,stroke:#ef4444
7. Наша рекомендация
Для вашей ситуации мы рекомендуем начать с пакета «Старт» с последующим переходом на «Бизнес»:
- Два канала (голос + Telegram) — максимальный охват аудитории при минимальных вложениях
- Compliance с первого дня — consent management и DNC-проверки встроены, минимизируя регуляторные риски (ФЗ-41)
- Проверка unit-economics — при CPA 9 000–11 000 руб и стоимости звонка ~12 руб окупаемость при конверсии >= 0.1%
- 3 скрипта под сегменты — ИП, ООО и самозанятые получают релевантный оффер
- Warm transfer — горячий лид сразу у клоузера, пока мотивация максимальная
Путь масштабирования:
«Старт» (1–3 мес) → «Бизнес» (3–6 мес) → «Премиум» (6+ мес)
2K звонков/день 5K звонков/день 10K звонков/день
Voximplant + Telegram + A/B + OLAP + Multi-SIP + Кастом стек + ML
1 135 000 руб + 560 000 руб* + 720 000 руб*
* Стоимость апгрейда — не полная стоимость пакета, а доплата за новые модули (переиспользование платформы).
Экономика переиспользования платформы
| Параметр | Первый пакет | Апгрейд на следующий |
|---|---|---|
| Инфраструктура (K8s, DB, CI/CD) | Создаётся с нуля | 0 руб — уже есть |
| CRM + оркестрация | Создаётся с нуля | 0 руб — расширяется |
| Voximplant/LiveKit интеграция | Создаётся с нуля | 0 руб — переиспользуется |
| Бизнес-логика (новые модули) | 100% | 100% |
| Итого стоимость апгрейда | 100% | 30–50% от аналогичного |
8. Бизнес-выгоды (ROI)
| # | Выгода | Описание |
|---|---|---|
| 1 | Масштаб без штата | 1 AI-агент заменяет 20–30 операторов. 5 000 звонков/день = ~150 человек при ручном обзвоне. Экономия ~3–5M руб/мес на ФОТ |
| 2 | Окупаемость при конверсии 0.15% | 2 000 звонков/день × 22 дня × 0.15% = ~66 открытых счетов/мес × 10 000 руб CPA = 660 000 руб/мес дохода при расходах ~400K (разработка амортизируется за 3 мес) |
| 3 | Скорость запуска | Voximplant MVP — 4–5 недель до первого звонка. Конкуренты на кастомных стеках стартуют 3–6 месяцев |
| 4 | Data-driven оптимизация | A/B тестирование скриптов позволяет увеличить конверсию на 20–40% за первый квартал. Каждый +0.05% конверсии = +33 счёта/мес = +330K руб |
| 5 | Регуляторная защита | Consent management + DNC + маркировка — минимизация риска штрафов по ФЗ-41 (300K–1M руб за инцидент без защиты) |
| 6 | Снижение стоимости при масштабе | Переход на кастомный стек при 5K+ звонков: $0.016/мин vs $0.045/мин = экономия ~450K руб/мес |
Модель окупаемости (пакет «Старт»)
| Параметр | Значение |
|---|---|
| Стоимость разработки | 1 135 000 руб |
| Ежемесячные расходы (инфраструктура) | ~400 000 руб |
| Звонков/день | 2 000 |
| Звонков/месяц (22 рабочих дня) | 44 000 |
| Конверсия в открытый счёт | 0.15% (консервативно) |
| Открытых счетов/месяц | 66 |
| CPA (доход за счёт) | 10 000 руб |
| Доход/месяц | 660 000 руб |
| Прибыль/месяц | ~260 000 руб |
| Окупаемость разработки | ~4.5 месяца |
Часть II: Техническое задание
9. Границы MVP
Ядро (обязательные компоненты)
| ID | Компонент | Описание |
|---|---|---|
| Я1 | Voximplant Voice | Интеграция с Voximplant, 1 скрипт, STT/TTS |
| Я2 | Диалоговый менеджер | LangGraph граф состояний, 5+ интентов |
| Я3 | CRM модуль | Контакты, кампании, interactions, импорт CSV |
| Я4 | Оркестратор | BullMQ, scheduling, retry, timezone-aware |
| Я5 | Ротация DID | 15–20 номеров, warming/active/cooling |
| Я6 | Pre-call pipeline | MNP + HLR + DNC-проверка |
| Я7 | Lead scoring | Rule-based 0–100 |
| Я8 | Дашборд (базовый) | Next.js + Recharts, конверсии, статусы |
Опции Старт (зависят от Ядра)
| ID | Компонент | Зависимость |
|---|---|---|
| О1 | Telegram userbot | Я3, Я4 |
| О2 | Telegram Bot API | Я3, Я7 |
| О3 | Мультисегментные скрипты (×3) | Я1, Я2 |
| О4 | Consent management | Я4, Я6 |
| О5 | Warm transfer | Я1, Я7 |
| О6 | Дашборд расширенный | Я8 |
| О7 | Расширенная ротация (50–70) | Я5 |
Опции Бизнес (зависят от Ядра + Старт)
| ID | Компонент | Зависимость |
|---|---|---|
| Б1 | A/B тестирование скриптов | О3, Я2 |
| Б2 | ClickHouse OLAP | Я3 |
| Б3 | Гибридный intent (ruBERT) | Я2 |
| Б4 | Мультипровайдерный SIP | Я5 |
| Б5 | API для внешних CRM | Я3 |
| Б6 | Авторетаргетинг | Я4 |
| Б7 | Расширенная ротация (100–150) | О7 |
Опции Премиум (зависят от Ядра + Старт + Бизнес)
| ID | Компонент | Зависимость |
|---|---|---|
| П1 | LiveKit voice pipeline | Заменяет Я1 |
| П2 | Self-hosted STT/TTS/LLM | П1 |
| П3 | K8s auto-scaling | Я4 |
| П4 | Predictive dialing | Б2, Я7 |
| П5 | ML-скоринг | Б2, Я7 |
| П6 | Telegram userbot сеть | О1 |
| П7 | White-label дашборд | О6, Б2 |
flowchart LR
subgraph core["Ядро (MVP)"]
Y1["Я1 Voice"]
Y2["Я2 Диалог"]
Y3["Я3 CRM"]
Y4["Я4 Оркестратор"]
Y5["Я5 DID"]
Y6["Я6 Pre-call"]
Y7["Я7 Scoring"]
Y8["Я8 Дашборд"]
end
subgraph start["Старт"]
O1["О1 TG Userbot"]
O3["О3 3 скрипта"]
O4["О4 Consent"]
O5["О5 Warm transfer"]
end
subgraph biz["Бизнес"]
B1["Б1 A/B тесты"]
B2["Б2 ClickHouse"]
B3["Б3 ruBERT"]
B4["Б4 Multi-SIP"]
end
subgraph prem["Премиум"]
P1["П1 LiveKit"]
P2["П2 Self-hosted AI"]
P4["П4 Predictive"]
P5["П5 ML-scoring"]
end
Y3 --> O1
Y1 --> O3
Y4 --> O4
Y7 --> O5
O3 --> B1
Y3 --> B2
Y2 --> B3
Y5 --> B4
Y1 -.->|заменяет| P1
P1 --> P2
B2 --> P4
B2 --> P5
style core fill:#14532d,stroke:#22c55e
style start fill:#172554,stroke:#3b82f6
style biz fill:#78350f,stroke:#f59e0b
style prem fill:#450a0a,stroke:#ef4444
10. Компоненты системы
10.1. Голосовой AI (Voximplant / LiveKit)
Назначение: Автоматизированные исходящие звонки с AI-агентом, способным вести естественный диалог, распознавать интенты и квалифицировать лидов.
flowchart LR
A["SIP Outbound"] --> B["STT\n(распознавание)"]
B --> C["Intent\nClassifier"]
C --> D["LangGraph\nState Machine"]
D --> E["LLM\n(генерация ответа)"]
E --> F["TTS\n(синтез речи)"]
F --> G["SIP Audio"]
H["Silero VAD"] --> |barge-in| F
style A fill:#172554,stroke:#3b82f6
style G fill:#172554,stroke:#3b82f6
style D fill:#14532d,stroke:#22c55e
style H fill:#450a0a,stroke:#ef4444
Алгоритм диалога (LangGraph):
stateDiagram-v2
[*] --> Greeting: Исходящий звонок
Greeting --> Qualification: Ответил
Greeting --> Retry: Не ответил / занято
Qualification --> Presentation: Сегмент определён
Qualification --> Disqualified: Не ЦА
Presentation --> Objections: Есть возражения
Presentation --> Closing: Интерес подтверждён
Objections --> Presentation: Возражение отработано
Objections --> Closing: Согласен
Objections --> Rejected: 3 попытки исчерпаны
Closing --> WarmTransfer: score >= 75, согласен говорить
Closing --> TelegramFollowup: score >= 50, отправить ссылку
Closing --> Callback: Перезвонить позже
WarmTransfer --> [*]
TelegramFollowup --> [*]
Callback --> Retry
Rejected --> [*]
Disqualified --> [*]
Retry --> [*]
Технологии:
- MVP: Voximplant (JS-сценарии, встроенный STT/TTS, ФЗ-152)
- Масштаб: LiveKit Agents + Deepgram/Whisper + Cartesia/Silero TTS + Groq/Llama
Пример диалога:
Бот: Добрый день, Иван Петрович! Меня зовут Алиса, я звоню от лица
партнёрской программы Альфа-Банка. У нас есть специальное предложение
по бесплатному расчётному счёту для ИП. Вам удобно сейчас говорить?
Клиент: Ну, мне интересно, но у меня уже есть счёт в Сбере...
Бот: Понимаю! Многие наши клиенты тоже переходили из Сбера. Отличие в том,
что мы предлагаем бесплатное обслуживание РКО и карту Alfa Only для
владельца бизнеса. Хотели бы узнать подробнее о тарифах?
[intent: asked_pricing → score += 25]
Бенчмарки:
| Метрика | Voximplant (MVP) | Кастом (LiveKit) |
|---|---|---|
| End-to-end latency | 800 мс – 1.5 сек | 500–800 мс |
| Русский WER (STT) | ~8–12% | ~5–8% (Whisper) |
| Стоимость/мин | ~4 руб ($0.045) | ~1.5 руб ($0.016) |
| Concurrent calls | 50–200 | 200–1000+ |
10.2. CRM и управление контактами
Назначение: Хранение, дедупликация и сегментация базы контактов. Полная история взаимодействий.
Алгоритм импорта:
flowchart TB
A["CSV / Excel"] --> B["Staging table"]
B --> C["Нормализация\n(E.164, ИНН)"]
C --> D{"Дубликат?"}
D -->|"Да"| E["Merge + update\nmetadata"]
D -->|"Нет"| F["Insert"]
E --> G["contacts"]
F --> G
G --> H["Сегментация\n(ИП/ООО/СЗ)"]
style A fill:#78350f,stroke:#f59e0b
style G fill:#14532d,stroke:#22c55e
Технологии: PostgreSQL 17 + python-phonenumbers + python-stdnum + pg_trgm
Пример данных:
{
"phone": "+79161234567",
"inn": "773456789012",
"segment": "ip",
"company_name": "ИП Иванов А.Б.",
"region": "moscow",
"metadata": {
"source": "partner_base_march_2026",
"current_bank": "sberbank",
"monthly_turnover": "< 1M"
}
}
10.3. Оркестратор кампаний
Назначение: Управление очередями звонков и сообщений, rate limiting, retry-логика, timezone-aware scheduling.
Технологии: BullMQ на Redis, приоритетные очереди.
Очереди:
voice-calls— исходящие звонки (приоритет по lead score)telegram-msgs— Telegram userbot DM + Bot API follow-uppre-call-checks— HLR/MNP/DNC пакетные проверки
Retry-стратегия:
| Канал | Попытка 1 | Попытка 2 | Попытка 3 |
|---|---|---|---|
| Голос (нет ответа) | +2 часа | +4 часа | Следующий рабочий день |
| Голос (занято) | +30 мин | +2 часа | +4 часа |
| Telegram | +30 сек | +2 мин | +8 мин (exp. backoff) |
10.4. Consent Manager (ФЗ-41)
Назначение: Проверка права на звонок перед каждым контактом. Журнал согласий для юридической защиты.
Pre-call pipeline:
flowchart LR
A["Контакт\nиз очереди"] --> B["MNP\n(0.03 руб)"]
B --> C["HLR\n(0.9 руб)"]
C --> D{"DNC /\nSelf-ban?"}
D -->|"Да"| E["Отмена\nстатус: dnc"]
D -->|"Нет"| F{"Consent?"}
F -->|"Нет"| G["Telegram\n(lead-magnet)"]
F -->|"Да"| H["Geo-match\nномера"]
H --> I["SIP\nзвонок"]
style E fill:#450a0a,stroke:#ef4444
style G fill:#78350f,stroke:#f59e0b
style I fill:#14532d,stroke:#22c55e
Стоимость проверки: ~1.5 руб/номер. При 2 000 звонков/день = ~3 000 руб/день.
10.5. Telegram-канал
Назначение: Вторичный канал лидогенерации и follow-up дожим после звонков.
Архитектура:
| Компонент | Технология | Лимиты |
|---|---|---|
| Userbot (холодный DM) | Telethon (MTProto) | 40–50 DM/аккаунт/день |
| Bot API (квалификация) | python-telegram-bot + FSM | Без лимитов |
| Связка | deep link t.me/Bot?start=lead_id |
— |
Прогрев userbot: 7+ дней, начиная с 5 DM/день, инкрементально до 40–50. Backup аккаунты: 20% от активного пула.
11. Модель данных
Основные сущности
// contacts — база контактов
{
"phone": "+79161234567", // E.164, primary key
"inn": "773456789012", // 10 цифр = ООО, 12 = ИП/СЗ
"segment": "ip", // ip | ooo | self_employed
"company_name": "ИП Иванов А.Б.",
"contact_name": "Иванов Алексей Борисович",
"region": "moscow",
"timezone": "Europe/Moscow",
"lead_score": 0, // 0–100
"status": "new", // new | in_progress | qualified | converted | rejected | dnc
"consent_given": true,
"consent_date": "2026-03-10T14:30:00Z",
"metadata": {
"source": "partner_base_march_2026",
"current_bank": "sberbank"
},
"created_at": "2026-03-10T14:30:00Z",
"updated_at": "2026-03-14T09:15:00Z"
}
// campaigns — конфигурация кампании
{
"id": "camp_2026_03_rko_ip",
"name": "РКО для ИП — Март 2026",
"segment": "ip",
"script_id": "script_ip_v2",
"channels": ["voice", "telegram"],
"schedule": {
"days": ["mon", "tue", "wed", "thu", "fri"],
"hours": { "start": "10:00", "end": "19:00" },
"timezone_mode": "contact_local"
},
"limits": {
"max_calls_per_day": 2000,
"max_calls_per_number": 75,
"max_attempts_per_contact": 3
},
"status": "active",
"created_at": "2026-03-01T10:00:00Z"
}
// interactions — append-only лог (партиционирование по месяцам)
{
"id": "int_20260314_123456",
"contact_phone": "+79161234567",
"campaign_id": "camp_2026_03_rko_ip",
"channel": "voice",
"direction": "outbound",
"did_number": "+74951234567",
"duration_sec": 187,
"disposition": "answered", // answered | no_answer | busy | voicemail | failed
"intents_detected": ["greeting_positive", "asked_pricing", "agreed_meeting"],
"lead_score_delta": 75,
"transcript_url": "s3://recordings/2026/03/14/int_123456.json",
"recording_url": "s3://recordings/2026/03/14/int_123456.wav",
"outcome": "warm_transfer", // warm_transfer | callback | telegram_followup | rejected
"created_at": "2026-03-14T14:23:00Z"
}
12. API-спецификация
Основные эндпоинты
| Метод | Путь | Описание |
|---|---|---|
| POST | /api/v1/contacts/import |
Импорт контактов из CSV/Excel |
| GET | /api/v1/contacts |
Список контактов (фильтры, пагинация) |
| GET | /api/v1/contacts/:phone |
Детали контакта + история |
| POST | /api/v1/campaigns |
Создание кампании |
| PATCH | /api/v1/campaigns/:id |
Обновление (start/pause/stop) |
| GET | /api/v1/campaigns/:id/stats |
Статистика кампании |
| POST | /api/v1/calls/initiate |
Инициировать звонок (внутренний) |
| POST | /api/v1/webhook/voximplant |
Callback от Voximplant |
| POST | /api/v1/webhook/telegram |
Callback от Telegram Bot |
| GET | /api/v1/dashboard/funnel |
Данные воронки для дашборда |
| GET | /api/v1/dashboard/realtime |
Real-time метрики (WebSocket) |
Пример запроса — импорт контактов
POST /api/v1/contacts/import
Content-Type: multipart/form-data
{
"file": "<contacts.csv>",
"campaign_id": "camp_2026_03_rko_ip",
"segment": "ip",
"source": "partner_base_march_2026"
}
Ответ (200):
{
"imported": 9847,
"duplicates_merged": 153,
"invalid_skipped": 12,
"invalid_reasons": [
{ "row": 234, "reason": "invalid_phone_format" },
{ "row": 891, "reason": "invalid_inn_checksum" }
],
"processing_time_ms": 4230
}
Коды ошибок
| Код | Описание |
|---|---|
| 400 | Невалидный формат файла / параметров |
| 409 | Кампания уже запущена (conflict) |
| 422 | Файл пуст или все записи невалидны |
| 429 | Rate limit (max 10 импортов/час) |
| 503 | Voximplant / SIP-провайдер недоступен |
13. Пользовательские сценарии
US1. Запуск кампании обзвона
«Как менеджер, я хочу запустить кампанию обзвона ИП по загруженной базе»
Given: База из 10 000 контактов загружена, скрипт script_ip_v2 настроен
When: Менеджер нажимает «Запустить кампанию» в дашборде
Then:
- Система запускает pre-call pipeline для первых 500 контактов
- Звонки начинаются в локальное время контакта (10:00–19:00)
- Дашборд показывает live-статус: в очереди / в процессе / завершён
US2. AI-агент ведёт диалог
«Как AI-агент, я хочу квалифицировать лида по скрипту и определить сегмент»
Given: Контакт ответил на звонок
When: AI-агент следует скрипту script_ip_v2
Then:
- Диалог длится >= 90 сек (не одностороннее IVR)
- Распознано >= 3 интентов (greeting, pricing, objection и т.д.)
- Lead score обновлён по итогам разговора
- При score >= 75 → warm transfer или Telegram follow-up
US3. Горячий лид — warm transfer
«Как клоузер, я хочу получить горячего лида прямо во время его разговора с ботом»
Given: AI-агент определил score >= 75, клиент согласен поговорить с менеджером When: AI-агент инициирует warm transfer Then:
- SIP REFER переводит звонок на АТС клоузеров за <= 30 сек
- Клоузер видит карточку лида (имя, ИНН, сегмент, score, ключевые интенты)
- Если все клоузеры заняты — бот предлагает callback и ставит задачу
US4. Номер попал в спам
«Как система, я должна обнаружить спам-флаг и вывести номер из ротации»
Given: Номер +74951234567 использовался для 60 звонков сегодня
When: Kaspersky Who Calls API возвращает spam_probability > 0.7
Then:
- Номер переводится в статус
coolingна 30–90 дней - Все очередные звонки с этого номера перемаршрутизированы
- Алерт в Telegram-канал команды
- Резервный номер активируется автоматически
US5. Telegram follow-up после звонка
«Как система, я хочу отправить Telegram-сообщение лиду, который не ответил на звонок»
Given: Контакт не ответил на 2 попытки звонка, Telegram username известен When: Прошло 30 мин после последней попытки Then:
- Userbot отправляет персонализированное DM с deep link на бота
- Бот квалифицирует через FSM (5 вопросов)
- При квалификации → лид передаётся клоузеру
US6. Consent check перед звонком (ФЗ-41)
«Как система, я обязана проверить право на звонок перед каждым контактом»
Given: Контакт в очереди на звонок When: Pre-call pipeline проверяет DNC/self-ban реестры Then:
- Если контакт в DNC → статус
dnc, звонок отменён, контакт исключён из кампании - Если self-ban → статус
self_ban, звонок отменён - Если consent отсутствует → звонок отменён, попытка через Telegram (lead-magnet)
- Все проверки залогированы в
consent_logдля юридической защиты
US7. A/B тест скриптов
«Как маркетолог, я хочу сравнить 2 варианта скрипта для сегмента ООО»
Given: Два скрипта: script_ooo_v1 (формальный) и script_ooo_v2 (неформальный)
When: Кампания запущена с A/B-флагом, 50/50 распределение
Then:
- Каждый контакт случайно получает вариант A или B
- Дашборд показывает: конверсия, средняя длительность, количество возражений
- При N >= 1000 в каждой группе — система рассчитывает p-value
- При p < 0.05 → уведомление «Вариант B конвертирует на 23% лучше»
14. Команда проекта
Роли и ставки
| Роль | Основные задачи | Ставка, руб/ч |
|---|---|---|
| Tech Lead / AI-архитектор | Архитектура, Voximplant/LiveKit, скрипты, code review | 2 750 |
| AI/ML Engineer | Промпты, LangGraph, intent recognition, ruBERT, ML-scoring | 2 200 |
| Backend Engineer | CRM, API, BullMQ, Telegram, интеграции | 1 950 |
| Frontend Engineer | Дашборд (Next.js + Recharts), UI кампаний | 1 950 |
| DevOps | Yandex Cloud, K8s, Docker, CI/CD, Terraform, мониторинг | 1 950 |
| QA Engineer | Тест-кейсы, интеграционные, нагрузочные тесты | 1 650 |
Калькуляция стоимости
| Статья | Пилот | Старт | Бизнес | Премиум |
|---|---|---|---|---|
| Tech Lead / AI-архитектор (50 / 75 / 110 / 160 ч) | 137 500 | 206 250 | 302 500 | 440 000 |
| AI/ML Engineer (40 / 70 / 130 / 220 ч) | 88 000 | 154 000 | 286 000 | 484 000 |
| Backend Engineer (100 / 160 / 240 / 320 ч) | 195 000 | 312 000 | 468 000 | 624 000 |
| Frontend Engineer (50 / 85 / 130 / 160 ч) | 97 500 | 165 750 | 253 500 | 312 000 |
| DevOps (30 / 45 / 75 / 130 ч) | 58 500 | 87 750 | 146 250 | 253 500 |
| QA Engineer (40 / 65 / 100 / 150 ч) | 66 000 | 107 250 | 165 000 | 247 500 |
| Итого разработка | 642 500 | 1 033 000 | 1 621 250 | 2 361 000 |
| Непредвиденные расходы (10%) | 62 500 | 102 000 | 163 750 | 234 000 |
| Итого до скидки | 705 000 | 1 135 000 | 1 785 000 | 2 595 000 |
| Скидка | -- | -- | 5% (90 000) | 7% (180 000) |
| ИТОГО | 705 000 | 1 135 000 | 1 695 000 | 2 415 000 |
15. Дорожная карта и план спринтов
Пакет «Старт» (рекомендуемый) — 7–9 недель
gantt
title Дорожная карта: пакет Старт
dateFormat YYYY-MM-DD
axisFormat %d.%m
section Sprint 0
Архитектура и инфраструктура :s0, 2026-04-07, 5d
Yandex Cloud + Docker + CI/CD :s0b, 2026-04-07, 5d
section Sprint 1
Voximplant интеграция + 1 скрипт :s1a, 2026-04-14, 10d
CRM модуль + импорт контактов :s1b, 2026-04-14, 10d
section Sprint 2
Оркестратор + ротация DID :s2a, 2026-04-28, 10d
Pre-call pipeline + consent :s2b, 2026-04-28, 10d
Базовый дашборд :s2c, 2026-04-28, 10d
section Sprint 3
Telegram userbot + Bot API :s3a, 2026-05-12, 10d
Мультисегментные скрипты (×3) :s3b, 2026-05-12, 10d
Warm transfer :s3c, 2026-05-12, 7d
section Sprint 4
Расширенный дашборд :s4a, 2026-05-26, 7d
Интеграционное тестирование :s4b, 2026-05-26, 7d
Нагрузочное тестирование :s4c, 2026-06-02, 3d
section Запуск
Демо + приёмка :milestone, s5, 2026-06-05, 3d
Пилотный обзвон (100 звонков) :s5b, 2026-06-09, 2d
Ключевые вехи
| Неделя | Веха | Deliverable |
|---|---|---|
| 1 | Sprint 0 | Инфраструктура готова, Yandex Cloud, CI/CD |
| 2–3 | Sprint 1 | Voximplant делает первый звонок, CRM импортирует CSV |
| 4–5 | Sprint 2 | Полный pipeline: pre-call → звонок → scoring → дашборд |
| 6–7 | Sprint 3 | Telegram бот + 3 скрипта + warm transfer |
| 8–9 | Sprint 4 | Расширенный дашборд, тестирование, запуск |
16. Предварительные исследования
Завершённые исследования
| # | Тема | Ключевой результат |
|---|---|---|
| DR1 | Голосовой AI: Build vs Buy | Voximplant для MVP (запуск за дни), кастом (LiveKit) для масштаба. Break-even при ~3 500 звонков/день (self-hosted) |
| DR2 | Регуляторный ландшафт (ФЗ-41, ФЗ-152) | Холодные звонки без согласия — штрафы 300K–1M руб. Lead-magnet стратегия обязательна |
| DR3 | Антиспам-экосистема РФ | 40–60% смартфонов с определителями. Макс. 50–75 звонков/номер/день, прогрев 7–10 дней |
| DR4 | Telegram vs WhatsApp для РФ | WhatsApp заблокирован с 12.02.2026. Telegram — единственный мессенджер. Userbot: 40–50 DM/день |
Источники Deep Research
- 4 исследования, 30+ источников
- Детальные отчёты:
new-clients/docs/specs/ai-leadgen-to-the-moon/Research/ - Сравнительный анализ:
voice-build-vs-buy.md
Открытые исследовательские вопросы
| # | Вопрос | Когда решать |
|---|---|---|
| RQ1 | Оптимальная длительность прогрева DID в российских сетях | Sprint 1 (на реальных номерах) |
| RQ2 | Конверсия Voximplant NLU vs внешний LLM (GPT-4o-mini) | Sprint 2 (A/B на 500 звонках) |
| RQ3 | Реальный WER Yandex SpeechKit vs Deepgram на российских номерах | Sprint 1 |
| RQ4 | Скорость бана Telegram userbot при разных паттернах прогрева | Sprint 3 (на тестовых аккаунтах) |
17. Стратегия тестирования
| Уровень | Покрытие | Инструменты | Критерий |
|---|---|---|---|
| Unit-тесты | Бизнес-логика: scoring, валидация, routing | Jest / Vitest | >= 60% покрытие |
| Интеграционные | Voximplant callback, Telegram Bot API, CRM API | Supertest + testcontainers | Все endpoints 2xx |
| E2E (голос) | Полный цикл: звонок → диалог → scoring → hand-off | Voximplant sandbox + mock SIP | 10 сценариев pass |
| Нагрузочные | Concurrent calls, очередь BullMQ, DB writes | k6 / Artillery | 500 concurrent / p95 < 3s |
| Accuracy | Intent recognition accuracy по сегментам | Тестовый датасет (200 фраз) | >= 85% accuracy |
| Compliance | DNC/self-ban проверки, consent logging | Ручная верификация | 100% coverage |
Конкретные тесты
| # | Тест | Ожидаемый результат |
|---|---|---|
| T1 | 500 звонков за 1 час (Voximplant sandbox) | Все звонки доставлены, 0 dropped |
| T2 | Импорт 100K контактов CSV | Завершено за <= 120 сек, 0 потерянных |
| T3 | DNC-номер в очереди на звонок | Звонок отменён, статус = dnc |
| T4 | Score = 80 после квалификации | Warm transfer инициирован за <= 30 сек |
| T5 | Telegram userbot отправляет 50 DM за день | 0 банов, все доставлены |
| T6 | SIP-провайдер недоступен | Автопереключение на резервный за <= 10 сек |
18. Развёртывание и инфраструктура
Архитектура развёртывания
Yandex Cloud (ru-central1)
├── Managed Kubernetes (3 ноды, 4 vCPU / 8 GB)
│ ├── core-api (Node.js) — 2 реплики
│ ├── voice-worker (Python) — 2–10 реплик (HPA)
│ ├── telegram-worker (Python) — 1–3 реплики
│ ├── dashboard (Next.js) — 2 реплики
│ └── bullmq-worker — 2–5 реплик
├── Managed PostgreSQL 17 (s2.micro, 2 vCPU / 8 GB, 100 GB SSD)
├── Managed Redis 7 (b3-c1-m4)
├── Object Storage (S3) — записи звонков
└── VPC + Security Groups
Требования по пакетам
| Ресурс | Пилот | Старт | Бизнес | Премиум |
|---|---|---|---|---|
| K8s ноды | 2 | 3 | 5 | 8–10 |
| PostgreSQL | s2.micro | s2.small | s2.medium | s2.large |
| Redis | b3-c1-m4 | b3-c1-m4 | b3-c1-m8 | b3-c2-m16 |
| ClickHouse | -- | -- | s3-c2-m8 | s3-c4-m16 |
| GPU (A100/T4) | -- | -- | -- | 1–2 |
| SIP-номеров (DID) | 15–20 | 50–70 | 100–150 | 150+ |
Мониторинг
- VictoriaMetrics — метрики (CPU, memory, calls/sec, queue depth)
- Grafana — дашборды (ops + бизнес)
- Loki — логи (structured JSON, retention 30 дней)
- Tempo — distributed tracing (звонок → pipeline → CRM)
- Alerting — Telegram-канал команды (PagerDuty для Премиум)
Бэкапы
- PostgreSQL: автоматические снимки каждые 6 часов, retention 7 дней
- Записи звонков: Object Storage (lifecycle: 90 дней hot → 1 год cold → удаление)
- Конфигурации: git (GitLab CI)
19. Критерии приёмки
Модуль: Голосовой AI
| Deliverable | Критерий приёмки |
|---|---|
| Voximplant интеграция | Бот совершает исходящий звонок, ведёт диалог >= 90 сек |
| Скрипт диалога | Бот распознаёт >= 5 интентов из 10 тестовых фраз |
| Barge-in | При перебивании — TTS останавливается за <= 500 мс |
| End-to-end latency | <= 1.5 сек от конца фразы до начала ответа |
Модуль: CRM
| Deliverable | Критерий приёмки |
|---|---|
| Импорт контактов | CSV 10K записей импортирован за <= 60 сек, дубликаты обнаружены |
| Дедупликация | Телефон + ИНН: 100% точных дублей найдено |
| Lead scoring | Score обновляется в реальном времени после каждого взаимодействия |
| История | Полная хронология по контакту: звонки, Telegram, scoring events |
Модуль: Оркестрация
| Deliverable | Критерий приёмки |
|---|---|
| Очередь звонков | 500 звонков/день обработано, 0 пропущено |
| Timezone scheduling | Звонки в Владивосток уходят по местному времени (10:00–19:00 VLAT) |
| Retry | Повторные попытки через 2ч/4ч/след. день — автоматически |
| Consent check | 100% звонков проходят DNC/self-ban проверку |
Модуль: Telegram
| Deliverable | Критерий приёмки |
|---|---|
| Userbot DM | 40 сообщений/день отправлено, 0 банов за тестовый период |
| Bot API квалификация | Бот квалифицирует лида за <= 5 сообщений |
| Deep link | Переход userbot → Bot API работает корректно |
Модуль: Дашборд
| Deliverable | Критерий приёмки |
|---|---|
| Воронка | Визуализация: звонки → ответили → квалифицированы → converted |
| Real-time | Данные обновляются с задержкой <= 30 сек |
| Фильтры | По кампании, сегменту, дате, каналу |
20. Нефункциональные требования
| # | Параметр | Порог |
|---|---|---|
| N1 | End-to-end latency голосового AI | <= 1.5 сек (Voximplant), <= 800 мс (кастом LiveKit) |
| N2 | Одновременные звонки | >= 50 (Пилот), >= 200 (Бизнес), >= 500 (Премиум) |
| N3 | Доступность (uptime) | >= 99% за неделю |
| N4 | Время загрузки дашборда | <= 3 сек |
| N5 | Импорт 10K контактов | <= 60 сек |
| N6 | HLR-кэш актуальность | <= 48 часов |
| N7 | Warm transfer SLA | <= 30 сек от триггера до подключения клоузера |
| N8 | OLAP-запрос по 10M записей | <= 3 сек (ClickHouse) |
| N9 | Покрытие тестами (backend) | >= 60% |
| N10 | Время восстановления после сбоя (RTO) | <= 30 мин |
Часть III: Коммерческие условия
21. Как мы работаем
| Активность | Частота | Формат |
|---|---|---|
| Демо спринта | Каждые 2 недели | Видеозвонок + демонстрация на staging |
| Еженедельный sync | 1 раз в неделю (30 мин) | Статус, блокеры, решения |
| Доступ к staging | Постоянный | URL staging-сервера (с Sprint 0) |
| Канал связи | Постоянный | Telegram-группа проекта |
| Приёмка результатов | По завершении спринта | Демо + чеклист приёмки |
| Отчёты по звонкам | После запуска | Еженедельный отчёт: конверсии, расход, проблемы |
Управление изменениями: Изменения к ТЗ оформляются через Change Request — команда оценивает влияние на сроки и бюджет, обе стороны согласуют до начала работ.
Методология: Scrum-like спринты по 2 недели. Каждый спринт заканчивается демо с рабочим инкрементом на staging.
22. Условия оплаты
Пакет «Пилот» — 705 000 руб
| # | Событие | Оплата | Нарастающим итогом |
|---|---|---|---|
| 1 | Предоплата (30%) | 211 500 | 211 500 |
| 2 | Приёмка Sprint 1–2 (Voximplant + CRM + pipeline) | 352 500 | 564 000 |
| 3 | Финальная приёмка + запуск | 141 000 | 705 000 |
Пакет «Старт» — 1 135 000 руб
| # | Событие | Оплата | Нарастающим итогом |
|---|---|---|---|
| 1 | Предоплата (30%) | 340 500 | 340 500 |
| 2 | Приёмка Sprint 1–2 (Voximplant + CRM + pipeline) | 340 500 | 681 000 |
| 3 | Приёмка Sprint 3 (Telegram + скрипты + warm transfer) | 227 000 | 908 000 |
| 4 | Финальная приёмка + запуск | 227 000 | 1 135 000 |
Пакет «Бизнес» — 1 695 000 руб
| # | Событие | Оплата | Нарастающим итогом |
|---|---|---|---|
| 1 | Предоплата (30%) | 508 500 | 508 500 |
| 2 | Приёмка Sprint 1–2 | 339 000 | 847 500 |
| 3 | Приёмка Sprint 3–4 (Telegram + A/B + OLAP) | 508 500 | 1 356 000 |
| 4 | Финальная приёмка + запуск | 339 000 | 1 695 000 |
Пакет «Премиум» — 2 415 000 руб
| # | Событие | Оплата | Нарастающим итогом |
|---|---|---|---|
| 1 | Предоплата (30%) | 724 500 | 724 500 |
| 2 | Приёмка Sprint 1–3 (MVP на Voximplant) | 483 000 | 1 207 500 |
| 3 | Приёмка Sprint 4–6 (Telegram + A/B + OLAP) | 483 000 | 1 690 500 |
| 4 | Приёмка Sprint 7–9 (LiveKit + self-hosted + ML) | 483 000 | 2 173 500 |
| 5 | Финальная приёмка + запуск | 241 500 | 2 415 000 |
23. Ежемесячные расходы
Расходы после запуска — оплачиваются клиентом напрямую (не входят в стоимость разработки).
Вариант A: Voximplant (быстрый старт)
Проприетарная платформа — голос, SIP, STT/TTS включены в тариф.
| Компонент | Пилот (500/день) | Старт (2K/день) | Бизнес (5K/день) |
|---|---|---|---|
| Voximplant (~4 руб/мин × 3 мин × 22 дня) | 132 000 | 528 000 | 1 320 000 |
| Yandex Cloud K8s (2–5 нод) | 15 000 | 25 000 | 50 000 |
| Managed PostgreSQL | 8 000 | 12 000 | 20 000 |
| Managed Redis | 5 000 | 5 000 | 8 000 |
| ClickHouse (OLAP) | -- | -- | 15 000 |
| Object Storage (записи) | 2 000 | 5 000 | 10 000 |
| Мониторинг (self-hosted Grafana) | 3 000 | 3 000 | 5 000 |
| Аренда DID | 8 000 | 25 000 | 50 000 |
| HLR/MNP проверки | 2 000 | 8 000 | 20 000 |
| Итого/мес | ~175 000 | ~611 000 | ~1 498 000 |
| Стоимость/звонок | ~16 руб | ~14 руб | ~14 руб |
Вариант B: Open-source стек (экономия при масштабе)
Self-hosted модели: Whisper (STT, MIT) + Silero TTS v5 (MIT, CPU-only) + Llama 3.1 / Saiga (LLM). Требует GPU-сервер, но стоимость за минуту в 5–7x ниже.
| Модель | Лицензия | Стоимость/мин | Размещение |
|---|---|---|---|
| Whisper large-v3 (STT) | MIT | ~0.09 руб (GPU compute) | Yandex Cloud GPU |
| Silero TTS v5 (TTS) | MIT | ~0.18 руб (CPU-only) | Yandex Cloud CPU |
| Saiga / Llama 3.1 8B (LLM) | Apache 2.0 / Meta | ~0.27 руб (GPU compute) | Yandex Cloud GPU |
| Silero VAD | MIT | бесплатно | CPU |
| LiveKit Agents (оркестрация) | Apache 2.0 | бесплатно | Self-hosted |
| Итого AI | ~0.54 руб/мин | vs 4 руб/мин Voximplant |
| Компонент | Старт (2K/день) | Бизнес (5K/день) | Премиум (10K/день) |
|---|---|---|---|
| AI inference (~0.54 руб/мин × 3 мин × 22 дня) | 71 000 | 178 000 | 356 000 |
| GPU-сервер (1–2x T4, Yandex Cloud) | 30 000 | 45 000 | 80 000 |
| SIP-тарифы (MTT ~1.4 руб/мин) | 92 000 | 231 000 | 462 000 |
| Yandex Cloud K8s (3–8 нод) | 25 000 | 40 000 | 80 000 |
| Managed PostgreSQL | 12 000 | 20 000 | 30 000 |
| Managed Redis | 5 000 | 8 000 | 15 000 |
| ClickHouse (OLAP) | -- | 15 000 | 25 000 |
| Object Storage (записи) | 5 000 | 10 000 | 20 000 |
| Мониторинг (self-hosted Grafana) | 3 000 | 5 000 | 5 000 |
| Аренда DID | 25 000 | 50 000 | 75 000 |
| HLR/MNP проверки | 8 000 | 20 000 | 40 000 |
| Итого/мес | ~276 000 | ~622 000 | ~1 188 000 |
| Стоимость/звонок | ~6.3 руб | ~5.7 руб | ~5.4 руб |
Сравнение вариантов
xychart-beta
title "Monthly costs (K RUB)"
x-axis ["500/day", "2K/day", "5K/day", "10K/day"]
y-axis "K RUB/month" 0 --> 1600
bar "Voximplant" [175, 611, 1498, 0]
bar "Open-source" [0, 276, 622, 1188]
| Масштаб | Voximplant | Open-source | Экономия |
|---|---|---|---|
| 500 зв/день | 175 000 | нецелесообразно* | -- |
| 2 000 зв/день | 611 000 | 276 000 | 335 000 руб/мес (55%) |
| 5 000 зв/день | 1 498 000 | 622 000 | 876 000 руб/мес (58%) |
| 10 000 зв/день | ~2 996 000** | 1 188 000 | 1 808 000 руб/мес (60%) |
* При 500 зв/день GPU-сервер не окупается — Voximplant выгоднее. ** Экстраполяция Voximplant на 10K — используется для сравнения.
Вывод: Open-source стек экономит 55–60% ежемесячных расходов начиная с 2K звонков/день. Компромисс: +3–6 недель на разработку голосового модуля (LiveKit + Whisper + Silero + Llama).
Рекомендация: Начать с Voximplant (Пилот, 500/день), параллельно разворачивать open-source стек. Переключиться при выходе на 2K+ звонков/день.
24. Риски и митигация
quadrantChart
title "Карта рисков"
x-axis "Низкая вероятность" --> "Высокая вероятность"
y-axis "Низкое влияние" --> "Высокое влияние"
"R1 ФЗ-41 штрафы": [0.4, 0.95]
"R2 Антиспам флаги": [0.8, 0.6]
"R3 Latency vs compliance": [0.5, 0.5]
"R4 Telegram бан": [0.7, 0.4]
"R5 Стоимость масштаба": [0.3, 0.4]
"R6 Vendor lock Voximplant": [0.2, 0.3]
| # | Риск | Влияние | Вероятность | Митигация |
|---|---|---|---|---|
| R1 | ФЗ-41: штрафы за звонки без согласия | Критическое (300K–1M руб/инцидент) | Средняя | Consent management + DNC/self-ban проверки + lead-magnet стратегия. При отсутствии согласия — переход на Telegram-канал |
| R2 | Спам-флаг номеров (Яндекс, Kaspersky) | Высокое (потеря канала) | Высокая | Ротация 50–150 DID, max 50–75 звонков/номер, прогрев 7–10 дней, мониторинг Kaspersky API, регистрация в Яндекс.Бизнес |
| R3 | Latency vs compliance (зарубежные API быстрее, но ФЗ-152) | Среднее | Средняя | MVP на Voximplant (серверы в РФ, compliance из коробки). Гибридный режим — опция после юридической консультации |
| R4 | Telegram userbot бан | Среднее (потеря канала) | Высокая | Прогрев 7+ дней, max 40–50 DM/день, backup аккаунты 20%, мониторинг. При бане — автопереключение на backup |
| R5 | Нелинейный рост стоимости при масштабировании | Среднее | Низкая | Переход на self-hosted (Премиум): стоимость/звонок падает с 14 до 7 руб. Мониторинг unit-economics |
| R6 | Voximplant vendor lock-in | Низкое | Низкая | Архитектура с абстракцией голосового модуля. Миграция на LiveKit спланирована в пакете Премиум |
25. Гарантии
- Гарантийный период: 30 дней после финальной приёмки — исправление багов бесплатно
- SLA на исправления: критические баги — реакция в течение 4 рабочих часов, исправление в течение 24 часов
- Исходный код: передаётся клиенту в полном объёме (Git-репозиторий)
- Документация: API-документация, инструкция по развёртыванию, руководство оператора
- Не является гарантией: конверсия звонков, качество базы контактов, действия регулятора
26. Требования к клиенту
| # | Что требуется | Когда | Зачем |
|---|---|---|---|
| 1 | Реферальная ссылка / API партнёрской программы Альфа-Банка | До Sprint 0 | Атрибуция конверсий |
| 2 | База контактов (CSV/Excel) для тестового обзвона | До Sprint 1 | Тестирование pipeline |
| 3 | Скрипты продаж (или готовность к совместной разработке) | До Sprint 1 | Настройка AI-агента |
| 4 | Доступ к АТС клоузеров (SIP credentials) | До Sprint 3 | Warm transfer |
| 5 | Юрлицо для регистрации SIP-номеров | До Sprint 0 | Маркировка звонков (ФЗ-41) |
| 6 | Telegram-аккаунты для userbot (или бюджет на закупку) | До Sprint 3 | Telegram-канал |
| 7 | Ответственный менеджер для еженедельных sync | Постоянно | Координация |
| 8 | Решение по открытым вопросам (раздел 28) | До Sprint 0 | Архитектурные решения |
27. Что не входит
- Закупка и оплата SIP-номеров (DID) — оплачивается клиентом напрямую провайдеру
- Оплата Voximplant / AI API — ежемесячные расходы клиента (раздел 23)
- Оплата Yandex Cloud — ежемесячные расходы клиента
- Создание юридических документов (политика конфиденциальности, согласия на обработку ПД)
- Юридическая экспертиза compliance ФЗ-41 / ФЗ-152 (рекомендуем привлечь юриста)
- Закупка и прогрев Telegram-аккаунтов для userbot
- Разработка мобильного приложения
- Голосовой AI на языках кроме русского
- Интеграция с CRM клиента (кроме пакета «Бизнес» и выше)
- Рынки за пределами РФ (WhatsApp/СНГ)
28. Открытые вопросы
Ответы на эти вопросы необходимы для финализации архитектуры и точной калькуляции. Версия 2.0 КП будет обновлена после получения ответов.
ОВ1. Согласие на звонки (ФЗ-41) — КРИТИЧНО
С 01.09.2025 массовые звонки без согласия = штраф 300K–1M руб.
Варианты:
- A: Lead-magnet стратегия — лендинг → заявка → AI-звонок (полностью легально, рекомендуем)
- B: Холодный обзвон по купленным базам (с 01.09.2025 — юридический риск)
- C: Существующая база с opt-in от партнёра Альфа-Банка
Архитектурное следствие: Вариант A требует лендинг + подсистему согласий. Вариант B — неприемлемый юридический риск. Вариант C — проверка юридической чистоты opt-in.
ОВ2. Голосовой стек: Build vs Buy
Ключевое архитектурное решение: какой подход к голосовому модулю выбрать для MVP?
| Критерий | A. Voximplant (РФ) | B. Vapi.ai (международная) | C. Кастомный стек (LiveKit) |
|---|---|---|---|
| Скорость запуска | 2–5 дней | 1–3 дня | 3–6 недель |
| Стоимость разработки | ~$3–5K | ~$2–3K | ~$15–25K |
| Стоимость за минуту | 3–7 руб/мин | $0.05–0.15/мин | $0.02–0.05/мин (cloud) / $0.016 (self-hosted) |
| ФЗ-152 compliance | Из коробки | Данные за рубежом | Настраиваем сами |
| Latency (e2e) | 800 мс – 1.5 сек | 500 мс – 1 сек | 500–800 мс |
| При 500 зв/день (/мес) | $1,485 | ~$2,000 | $4,467 (cloud) / $3,780 (self-hosted) |
| При 5K зв/день (/мес) | $14,850 | ~$20,000 | $24,350 (cloud) / $9,780 (self-hosted) |
| При 10K зв/день (/мес) | $29,700 | ~$40,000 | $46,170 (cloud) / $15,060 (self-hosted) |
| Vendor lock-in | Средний | Средний | Нет |
| Технический риск | Низкий | Низкий | Высокий |
Наша рекомендация: A (Voximplant) для MVP → C (кастом self-hosted) при >= 3 500 зв/день.
Подробный анализ:
voice-build-vs-buy.md
ОВ3. Маркировка звонков
Чьё название юрлица будет отображаться на экране абонента? Это влияет на регистрацию в Яндекс.Бизнес и конфигурацию SIP.
Варианты:
- A: Юрлицо партнёра Альфа-Банка
- B: Отдельная компания клиента
ОВ4. Data residency (ФЗ-152)
Записи звонков = персональные данные. Где размещаем AI inference?
Варианты:
- A: Yandex Cloud полностью (compliance, SpeechKit STT/TTS — лучший русский WER)
- B: Зарубежные AI API (лучший latency ~500 мс, но данные уходят за рубеж)
- C: Гибрид — AI inference за рубежом, хранение записей в РФ (gray zone)
Рекомендация: A для MVP (Voximplant на Yandex Cloud). Вопрос актуален для пакета Премиум.
ОВ5. Скрипт диалога
- Есть ли готовый скрипт продаж с ветвлениями?
- Сколько сегментов (ИП / ООО / самозанятые = 3 отдельных скрипта)?
- Кто создаёт — мы или клиент предоставляет?
Если скрипта нет — мы разработаем на основе оффера Альфа-Банка (+0 руб, входит в стоимость).
ОВ6. Масштаб на старте
Сколько звонков/день планируется на MVP?
Варианты:
- A: 500/день (Пилот, ~15–20 DID, ~177K руб/мес infra)
- B: 2 000/день (Старт, ~50–70 DID, ~613K руб/мес infra)
- C: Сразу 5 000/день (Бизнес, ~100–150 DID, ~1.5M руб/мес infra)
ОВ7. SIP-провайдер
Есть ли контракт с SIP-провайдером? Если нет, мы рекомендуем мультипровайдерный подход:
- Zadarma — лучший API, $0.045/мин моб.
- MTT — покрытие 85+ регионов РФ, $0.016/мин моб.
- MCN Telecom — лучшая цена, $0.013/мин моб.
ОВ8. Живые клоузеры
Есть ли команда операторов для приёма «тёплых» лидов?
- A: Есть команда + АТС → нужна интеграция warm transfer (SIP REFER)
- B: Нет команды → бот фиксирует данные, клоузер перезванивает (CRM + SLA)
- C: Нет команды, планируем набрать → включить в scope CRM-модуль для клоузеров
ОВ9. Роль Telegram
Как использовать Telegram в платформе?
- A: Fallback для недозвонов (userbot DM после неотвеченного звонка)
- B: Параллельный канал рассылки (userbot массовый outreach)
- C: Follow-up дожим (Bot API после первого контакта)
- D: Комбинация A + C (рекомендуем)
ОВ10. Партнёрская ссылка Альфа-Банка
Как работает атрибуция конверсий?
- A: API партнёрской программы (webhook на статус заявки) → автоматический трекинг
- B: Статическая реферальная ссылка + ручная сверка → достаточно для MVP
ОВ11. Существующая CRM
Есть ли CRM-система (Bitrix24, amoCRM, другая)?
- A: Есть → интеграция через API (входит в пакет «Бизнес»+)
- B: Нет → кастомный CRM-модуль (входит во все пакеты)
ОВ12. Формат базы контактов
В каком формате поступают данные? Какие поля? Примерный объём?
- Ожидаемый формат: CSV/Excel
- Минимальные поля: телефон, ИНН (опционально), тип юрлица
- Желательно: ФИО, регион, текущий банк, оборот
ОВ13. Дашборд
- A: Real-time дашборд (входит в «Старт»+)
- B: Периодические отчёты в Telegram/email (входит в «Пилот»)
ОВ14. Допустимая задержка ответа
Target — 500–800 мс e2e. При Voximplant (РФ серверы) — 800 мс–1.5 сек. Устроит ли маскировка задержки коротким «Ага» / «Одну секунду»?
29. Перспективы развития
После запуска MVP и подтверждения unit-economics платформа может расшириться:
- Predictive dialing — ML-модель определяет оптимальное время звонка для каждого контакта, увеличивая contact rate на 15–20%
- Голосовая аналитика — анализ тональности и эмоций в разговоре (sentiment analysis), автоматическое выявление лучших паттернов в скриптах
- Мультиязычность — адаптация для рынков СНГ (казахский, узбекский) при выходе за пределы РФ
- Видео-презентации — автоматическая генерация персонализированных видеороликов с оффером для каждого сегмента клиентов
- Автономный клоузинг — AI-агент, способный самостоятельно завершить сделку (заполнить заявку на РКО), без участия живого оператора
30. Глоссарий
| Термин | Определение |
|---|---|
| CPA | Cost Per Action — оплата за целевое действие (открытый счёт) |
| РКО | Расчётно-кассовое обслуживание — банковский счёт для бизнеса |
| STT | Speech-to-Text — распознавание речи |
| TTS | Text-to-Speech — синтез речи |
| VAD | Voice Activity Detection — детектор голосовой активности |
| Barge-in | Перебивание — возможность прервать бота во время его ответа |
| DID | Direct Inward Dialing — виртуальный телефонный номер |
| DNC | Do Not Call — реестр номеров, запрещённых для обзвона |
| HLR | Home Location Register — проверка активности номера |
| MNP | Mobile Number Portability — проверка принадлежности номера оператору |
| SIP | Session Initiation Protocol — протокол IP-телефонии |
| Warm transfer | «Тёплый» перевод звонка — бот передаёт лида оператору без разрыва соединения |
| Lead scoring | Оценка «температуры» лида по шкале 0–100 на основе его реакций |
| Consent | Согласие абонента на получение звонков/сообщений |
| Self-ban | Самозапрет — гражданин заблокировал рекламные звонки через Госуслуги |
| LangGraph | Фреймворк для построения графов состояний диалога (state machine) |
31. Следующие шаги
| # | Действие | Ответственный | Срок |
|---|---|---|---|
| 1 | Ответы на открытые вопросы (раздел 28) | Клиент | 1 неделя |
| 2 | Обновление КП до v2.0 по ответам | AiDevTeam | 2–3 дня после п.1 |
| 3 | Выбор пакета и согласование условий | Совместно | 1 неделя |
| 4 | Подписание договора + предоплата | Совместно | 3–5 дней |
| 5 | Kick-off + Sprint 0 (инфраструктура) | AiDevTeam | 1 неделя после п.4 |
Все оценки являются предварительными и будут уточнены после получения ответов на открытые вопросы (раздел 28).
Предложение действительно 30 дней. Разработка: AiDevTeam