Как мы автоматизировали контроль качества звонков в B2B
Привет! В этом посте расскажу, как я решил задачу, которая на первый взгляд кажется простой: прослушивать звонки менеджеров и оценивать их качество. На деле это целый пайплайн с кучей граблей.
Предыстория: что было до
Имеем отдел продаж в B2B-компании и асессора - человека, который слушает звонки и оценивает качество работы менеджеров. Проблема: звонков становилось всё больше, времени на сегментацию и прослушку уходило катастрофически много.
На тот момент мы пользовались готовым решением от интегратора. Минусы - стандартный набор: биллинг за каждый чих, гибкость настройки уровня "попробуй сломать веник". Мы могли только подставлять свои промпты, и всё.
Асессор тратил почти всё рабочее время на ручную прослушку, и качество начало страдать. РОП не получал нормальных отчётов и тратил время на ручную сводку данных.
Что нужно было решить
Почесав затылок, полез читать документацию. Задача из одной превратилась в 6:
1. Научиться дергать API телефонии и забирать записи 2. Подобрать транскрипционную модель для русской речи 3. Решить диаризацию (деление спикеров по ролям) 4. Понять, как обрабатывать разговор и что хотим на выходе 5. Не сливать в нейронку чувствительные данные (152-ФЗ) 6. Куда агрегировать результаты
Как решал
Телефония. Оператор оставил нормальную документацию с тестированием запросов прямо в интерфейсе. Вопрос закрылся за один вечер.
Транскрипция. Сначала попробовал Whisper и Vosk. Оба коряво работали с русской речью, искажали как попало. Выбор пал на GigaAM от Сбера - натренирована на русской речи, работает стабильно.
Диаризация. Повезло: оператор отдает записи с разделёнными каналами. В 100% случаев знаем, когда говорит менеджер, а когда клиент. Проблема отпала сама собой.
Логика оценки. Стандартный контроль качества "оцени 10 критериев по 10-балльной шкале" нам не подходил. Мы не техподдержка, разговоры требуют творческого подхода, а не скриптов. Пошёл от простого: критерии в формате "да/нет".
Менеджер задавал наводящие вопросы? Да/Нет. Назначил дату следующего контакта? Да/Нет. Этого оказалось достаточно, пользуемся схемой по сей день.
152-ФЗ. Два варианта: локальный контур с локальными моделями или облако с маскировкой. Локально дорого для проверки гипотезы, выбрали второе.
Чувствительные данные маскируются перед отправкой, метаданные в нейросеть вообще не передаются. Анализируем в Яндекс Клауд - чуть дороже, но данные хотя бы в российской юрисдикции.
Куда отправлять результат. Алерты в мессенджеры. РОП получает автоматические отчёты, менеджеры видят косяки сразу. При желании - крепить в сделку CRM или собирать дашборд.
Что получилось
Асессор получил важный буст: сразу видит, какой разговор перепроверить, и сильно меньше слушает пустые. Система обрабатывает звонки, асессор смотрит только проблемные.
РОП получил автоматические отчёты вместо ручной сводки. Десятки часов в месяц освободились.
Потом пайплайном заинтересовались коллеги из сопровождения. Адаптировали за пару дней - теперь контролируем качество общения с действующими клиентами. Клиентский негатив в производственной части снизился. Точную цифру назвать сложно, но заметно чаще предотвращаем негатив в зародыше.
Итого
Платим только за сервер и биллинг LLM. Решение интегратора больше не используем.
Сегодня для проверки таких гипотез есть все инструменты, если готов разбираться в документации и понимать как это работает. Делать что-то вслепую - утопия, если хочешь стабильный инструмент. А готовые решения не зазорны, если не нужна гибкость и всё устраивает.
Если у вас похожая задача с контролем качества звонков или автоматизацией отчётности - давайте обсудим. Личка открыта.