← усі кейси
Виробник і роздріб продуктів здорового харчування E-commerce / FoodTech ·

5 257 дзвінків за одну ніч: карта того, що клієнти питають насправді

Чотири місяці записів кол-центру перетворено на довідник із 24 тем із цитатами клієнтів. Система не оцінює менеджерів - вона чує клієнтів. Головна знахідка: кожне четверте питання - про оплату.

  • 5 257 дзвінків розшифровано за одну ніч: 2,43 секунди на дзвінок, 3,84 млн символів тексту
  • 701 питання витягнуто з розмов і згруповано у 24 теми з цитатами клієнтів і відповідями менеджерів
  • Оплата виявилась темою кожного четвертого питання - 26% усіх звернень
  • Показано, що рахувати треба лише вхідні дзвінки: вихідні давали помітно вищу частку питань про оплату
Python 3.12faster-whisper large-v3Qwen (Ollama)PostgreSQL 16Docker ComposeWireGuardffmpeg

Це кейс не про контроль менеджерів. Про те, як система слухає кожен окремий дзвінок і сигналить керівнику, коли клієнта злили, у нас є окрема історія - AI-аналітика дзвінків, і там фіксація незадоволеного попиту згадана лише як побічна вигода. Тут вона стала самим завданням: не оцінити роботу відділу продажів, а почути клієнтів.

Власник бізнесу знає, що питають його клієнти, зі слів менеджерів. Менеджери переказують те, що запамʼяталось, а запамʼятовується неприємне й нещодавнє. У результаті новий розділ на сайті, текст для бота і сценарій обробки заперечень пишуться під уявлення, а не під факти.

При цьому факти лежать у компанії роками - у вигляді записів розмов, які ніхто ніколи не слухав повністю. Ми перетворили чотири місяці таких записів на довідник, у якому видно, що саме питають, як часто і якими словами.

5 257
дзвінків розшифровано за одну ніч
2,43 с
на один дзвінок
26%
усіх питань - про оплату

Проблема: найдорожчі дані компанії лежать мертвим вантажем

Півтора гігабайта аудіо, близько 92 годин розмов. Прослухати це вручну - кілька тижнів суцільного слухання, і на виході буде не таблиця, а стос нотаток.

Чому це не вирішується вибірково

Вибірка бреше

  • прослухати 50 дзвінків - швидко
  • але саме рідкісні питання дорого коштують
  • вони у вибірку не потрапляють

Памʼять бреше

  • менеджер переказує враження
  • найгучніший клієнт заступає типового

Дані чутливі

  • у розмовах імена, телефони, адреси
  • віддавати такий масив назовні небажано

Третій пункт визначив архітектуру. Це той рідкісний випадок, коли обробка на власному залізі - не питання економії, а вимога до самої задачі.

Як автоматизація це вирішує

Конвеєр із двох частин. Спершу весь масив перетворюється на текст, потім із тексту витягуються питання клієнтів разом із цитатами й відповідями менеджерів. Обидва кроки йдуть на власному сервері з відеокартою, аудіо назовні не виходить.

Від аудіофайлу до карти тем
5 409 записів нормалізація розпізнавання мови текст розмови
Транскрипт локальна модель питання й цитати карта тем

На вході було 5 409 записів. 152 з них виявились непридатними для розпізнавання, тож текст отримали 5 257 дзвінків - саме на них побудована вся подальша картина.

Ключова ідея: рахувати треба тільки вхідні дзвінки

Перший прогін рахував усі дзвінки разом, і частка оплати вийшла завищеною. Артефактом був масштаб, а не лідерство: тема справді номер один, але не настільки, як здавалось спочатку.

Вихідні дзвінки - це не питання клієнтів, це робота менеджерів: дотиснути оплату, нагадати про посилку. Вони роздувають статистику саме по оплаті. Коли ми розділили потоки, різниця стала очевидною: у вихідних дзвінках питань про оплату більше, ніж у вхідних, при тому що самі вихідні вдвічі коротші.

Карта клієнтських запитів будується тільки на вхідних. Вихідні не викидаються - вони стають окремою задачею про роботу відділу продажів.

Що дістається людям

На виході - не таблиця частот, а довідник, який можна читати: 701 питання клієнтів, зведене у 24 теми, у кожній темі топ-питання, реальні цитати й те, як на них відповідають менеджери. Ним однаково користуються той, хто пише тексти для сайту, той, хто навчає новачків, і той, хто проєктує бота.

Що це дало бізнесу

Головна цифра - 26% усіх питань стосуються оплати: кожне четверте з 701 питання, витягнутого з розмов. До цього це була думка окремих людей у компанії. Тепер це число, під яке можна перебудовувати процес: від тексту в листі-підтвердженні до окремої сторінки зі способами оплати.

Друга за вагою тема - наявність товару, 74 питання з тих самих 701. Це прямий сигнал: клієнти не бачать залишків самі й змушені питати голосом. Кожен такий дзвінок - це витрачена хвилина менеджера там, де мала спрацювати картка товару.

Ще один результат, який не планувався: масив транскриптів став готовим матеріалом для навчання бота-менеджера. Питання клієнтів реальними словами - це те, чого не напише жоден копірайтер.

Чого система не робить. Вона не оцінює менеджерів і не рахує конверсію - це інша задача з іншою методикою. І вона не читає думки: якщо клієнт не спитав, у карті цього не буде.

Як це влаштовано всередині

Далі - інженерна частина

Наступний розділ пояснює, як система влаштована. Якщо вас цікавить лише результат, його можна пропустити - нижче є розділ про те, кому це підходить.

Шари конвеєра
ЧергаКожен файл - запис у базі зі статусом. Повторний запуск нічого не дублює, перерваний прогін підхоплюється з того місця, де впав
РозпізнаванняЛокальна модель на власному сервері з відеокартою. Доменна підказка зі списком назв - без неї бренд компанії стабільно чувся як інше слово
ВитягЛокальна мовна модель дістає з тексту питання, цитату, відповідь менеджера й оцінку повноти відповіді
ГрупуванняТеми зводяться детермінованим класифікатором, а не моделлю: модель дрібнила той самий сюжет на сотні окремих тем

Метадані взялись безкоштовно: у назві кожного файлу зашиті дата, час, телефон клієнта, напрямок дзвінка і менеджер. Розібрано всі 5 409 імен, без винятків - це дало розріз по напрямку без жодної додаткової роботи.

Три уроки, які варто знати кожному, хто робить подібний конвеєр:

Одна «отруйна» задача може зупинити всю чергу. Проблемний запис ловив таймаут, повертався в чергу, знову брався першим за номером - і так по колу. Лікується так: перед тим як звинувачувати задачу, система питає у двигуна, чи він живий. Живий - рахуємо спробу і після трьох виносимо запис в помилки. Мертвий - повертаємо спробу й чекаємо, не втрачаючи задачу.

Нічне вікно. Відеокарта одна, а задач кілька. Усі важкі прогони працюють з 21:30 до ранку і вдень сплять - інакше вони конкурують між собою, і здорові задачі виглядають зламаними через таймаути.

Часова зона в контейнері. Мінімальний образ не має бази часових зон, і «нічне вікно» тихо зсувається на три години. Перевіряти в будь-якому сервісі, у якого є розклад.

Кому це підходить

Компаніям із власним кол-центром, де записи розмов зберігаються, але ніколи не аналізуються цілком. Особливо перед великою зміною: редизайном сайту, запуском бота, перебудовою скриптів продажу.

Як зрозуміти, що це про вас: спитайте у двох менеджерів, яке питання клієнти ставлять найчастіше. Якщо відповіді різні - у компанії немає карти запитів, є набір вражень.

Ваші клієнти вже розповіли, що їм незрозуміло. Просто ніхто не дослухав до кінця.

Потрібне схоже рішення?

Опишіть задачу - підберу архітектуру під ваш бюджет і дані.