Назад к портфолио
Fullstack веб-приложения

Sales Call Insight — Анализатор звонков

Задача

Автоматизировать контроль качества звонков в отделах продаж малого и среднего бизнеса с помощью AI.

Проблема

Руководитель отдела продаж физически не может прослушать больше 5–10% звонков в месяц. Остальные 90% — чёрный ящик. Ошибки менеджеров повторяются, конверсия падает, а причина непрозрачна.

💡

Инсайт

Руководитель не хочет слушать звонки — он хочет знать, кто из менеджеров теряет клиентов и на каком шаге скрипта. Продукт должен давать не транскрипт, а управленческий инсайт.

Вклад

Архитектура системы, Frontend, Backend, интеграция Yandex SpeechKit и YandexGPT, настройка очередей обработки

Результат

SaaS-платформа с batch-обработкой до 200 звонков, гибкими скриптами оценки, RBAC-ролями и дашбордами KPI по менеджерам

React TypeScript Node.js Express PostgreSQL Prisma BullMQ Redis 7 Better Auth Yandex SpeechKit YandexGPT Docker

Один из ключевых вопросов, который задаёт каждый руководитель продаж: «Почему конверсия у одних менеджеров 35%, а у других — 12%?» Ответ лежит в звонках. Но кто будет их слушать?

Я исследовал этот процесс и обнаружил интересную вещь: большинство CRM и колл-центровых инструментов дают запись звонка и транскрипт — и считают задачу решённой. Но транскрипт в 8 000 слов — это не аналитика. Это новая работа.

Анализ: где теряется контроль

Я провёл интервью с несколькими руководителями небольших отделов продаж. Картина была одинаковой:

  • Прослушивают в лучшем случае 5–10% звонков, только когда что-то пошло не так
  • Скрипт продаж есть у всех, но проверить его соблюдение — нет ресурсов
  • Обратная связь менеджерам — раз в неделю, по памяти, без конкретики
  • Результат: одни и те же ошибки повторяются месяцами

Проблема не в отсутствии данных — данных завались. Проблема в отсутствии интерпретации.

Инсайт: продать нужно не транскрипт, а решение

Ключевое осознание пришло после одного интервью: руководитель сказал — «Мне не нужна запись, мне нужно знать: этот менеджер вообще задавал квалифицирующие вопросы или сразу начал продавать цену?»

Это переформатировало всю архитектуру продукта. Не «расшифруй звонок», а «оцени звонок по заданному скрипту и скажи, где было отклонение».

Решение: конвейер от аудио до управленческого инсайта

Загрузка аудио (до 200 файлов за раз)
  → Очередь BullMQ → Yandex Object Storage
    → Yandex SpeechKit (транскрибация с диаризацией)
      → YandexGPT (оценка по скрипту, сентимент-анализ)
        → Структурированный отчёт по каждому звонку
          → Агрегированные дашборды по менеджерам

Архитектурные решения, которые мне важны

Переразбор без повторной транскрибации. Если руководитель захотел изменить скрипт или добавить новый критерий — система не гоняет аудио через SpeechKit заново. Транскрипт уже сохранён, LLM просто переоценивает его по новым критериям. Это экономия API-квот и денег клиента.

BullMQ + Redis для очередей. Загрузить 200 звонков одновременно — не проблема. Очередь забирает их в фоне, сервер не падает, пользователь видит прогресс в реальном времени.

Гибкая система скриптов. Скрипты настраиваются через интерфейс без кода. Можно задать критерии, вес каждого, порог допустимого отклонения. Руководитель настраивает — не разработчик.

RBAC с тремя ролями. Владелец бизнеса видит всё. Менеджер — только свои звонки и свой рейтинг. Агент — только текущую сессию. Это важно: менеджеры не должны сравнивать друг друга в реальном времени — это создаёт нездоровую конкуренцию.

Стек

  • Frontend: React 18 + TanStack Query v5 (серверный стейт) + shadcn/ui
  • Backend: Node.js + Express + Prisma ORM + PostgreSQL 16
  • Очереди: BullMQ + Redis 7
  • AI/Cloud: Yandex SpeechKit (ASR), Yandex Object Storage, YandexGPT
  • Auth: Better Auth
  • Инфраструктура: Docker + UFW + Fail2ban + SSH-tunnel для мониторинга

Результат

Платформа закрывает 100% звонков — руководитель получает оценку каждого, а не выборку. Дашборды показывают KPI по менеджерам: конверсия, топ-ошибки по скрипту, динамика по неделям.

Подробный технический разбор архитектуры и вызовов — в моём блоге.

Главный урок: правильный вопрос важнее правильного алгоритма. Я мог бы сделать «крутой транскрибатор» — вместо этого сделал инструмент управления качеством продаж.

Вернуться к списку проектов