anfisa.phone
Блог

Блог · 1 августа 2026 · 8 мин

В отчёте по звонкам был разговор, которого не было

Подрядчик разбирал звонки нейросетью и однажды случайно поймал её на выдумке. С этой задачи начался наш продукт, а первый же прогон на 191 звонке показал проблему, которую никто не искал.

Меня зовут Василий Орловский. Я делаю программы для компаний, где одну и ту же работу повторяют руками каждый месяц. Этот блог про продукт, который разбирает телефонные разговоры отдела продаж, а началось всё с чужой таблицы в экселе.

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

Разбирал он с помощью нейросети. Расшифровки отдавал ей, а готовый результат просматривал глазами. И вот однажды открыл запись совсем по другому поводу и не узнал разговор. В отчёте стояло: клиент, вопрос, цена, договорённость. А на записи ничего этого нет. Строку модель сочинила.

Сверить все строки с записями он не мог. Для этого надо переслушать все звонки за месяц, а тогда незачем и затевать.

Дальше хуже. Если модель сочинила один раз, значит могла сочинять и раньше, а те отчёты давно у клиентов. Сколько там таких строк, уже не узнать.

Он мне так и сказал: «Я теперь не знаю, что я людям отправлял». Когда он поймал её на выдумке ещё несколько раз, пришёл ко мне.

Что за работа

Раз в месяц он присылал два вложения: архив записей из телефонии и свой файл отчёта, где под каждый период заведена отдельная вкладка. В письме одна фраза: прослушать все звонки, проанализировать и заполнить текущую вкладку по аналогии с прошлыми.

За один заход через меня прошёл 191 звонок по четырём рекламным каналам одного клиента. Шесть часов записей. В отчёте на каждый звонок семь граф: время, клиент, телефон, предмет запроса, объём, что предложил менеджер, чем кончилось.

Предыдущий месяц подрядчик закрывал сам, 129 строк по тем же четырём каналам. А на этот заход отдал работу целиком.

Что я сделал

Цепочка вышла из трёх шагов. Записи уходят на расшифровку. Дальше каждый разговор идёт в модель своим отдельным запросом, с одними и теми же вопросами. Ответы раскладываются по графам отчёта.

Вот это «своим отдельным запросом» и есть весь фокус. Модель отвечает не про месяц работы отдела продаж, а про один конкретный звонок, и любую строку можно открыть и послушать.

От архива до последнего готового файла прошло 3 часа 36 минут, причём половину времени я писал скрипты, которых до этого не было. Следующий такой архив разобрался бы минут за двадцать.

Тут, кстати, понятно, почему за такую работу вообще платят. Слушаешь, печатаешь, переносишь из окна в окно. Решать там нечего.

Выдумки пропали

Недавно я вернулся к тем файлам и сверил свой разбор с расшифровками по одному каналу, все 78 звонков. Выдуманных цифр не нашлось ни одной: каждая цена из отчёта звучит в разговоре. Имена менеджеров тоже, все 33.

Задачу, с которой ко мне пришли, я закрыл. И тут же поймал себя на другом.

Зато вылезло другое

Поле «клиент» я пояснил модели примерами: «снабженец», «частник». В готовом отчёте эти два слова стоят в 26 строках из 78. В самих разговорах они не звучат ни разу. Шесть человек назвали свою компанию, а в графу всё равно ушло обобщение.

И ещё одна цифра, честно говоря, неприятная. Графу «что предложил менеджер» подрядчик месяцем раньше заполнил в 86% строк. Мой разбор заполнил её в 36%. То есть по этой графе живой человек с наушниками сделал вдвое больше, чем моя автоматика.

Выдумка хотя бы нелепая. Откроешь запись и сразу слышишь, что разговор был про другое. А обобщение и пустая графа выглядят как обычные строки отчёта. Никому и в голову не придёт лезть за записью, чтобы проверить слово «снабженец».

Получается, подрядчик изредка натыкался на первое, а второго у себя вообще не видел.

Почему модель подставляет пример вместо ответа

Она не отличает инструкцию от образца. Я пишу ей: «напиши роль клиента, например снабженец». Она берёт это слово как готовый ответ и ставит туда, где не разобралась в разговоре.

Это как если новому сотруднику дать бланк, где в графе для примера карандашом написано «ООО Ромашка». Половина бланков вернётся с Ромашкой.

На эти грабли мы наступили дважды. В июне я не счёл такие строки дефектом: ну обобщила и обобщила. В июле тот же механизм всплыл уже в работающем продукте, задел сотни звонков, и разбирались мы неделю.

Теперь примеров в инструкции нет, вместо них квадратные скобки с описанием поля. А на выходе стоит проверка, которая отбрасывает шаблонные значения.

Ещё две находки из того же прогона

Оценку менеджера я просил по шкале от 0 до 100. На 112 звонках модель поставила четыре разных балла: 60, 70, 80 и 90, причём 70 всего три раза. Сто делений превратились в три, сравнивать по ним менеджеров бессмысленно.

Вторая находка про категорию «пропущенный». В неё падали звонки, где человек дозвонился и попросил соединить с конкретным менеджером, а того не оказалось на месте. Разговор был, обращение было, результата нет. В отчёте такая строка выглядит как проблема со связью, хотя это ушедший клиент.

Что из этого стало продуктом

Строчка «менеджеры слабо отрабатывают возражения» не даёт руководителю ничего. Он не может спросить, в каком разговоре, значит и сделать с этим ничего не может.

Поэтому рядом с каждым выводом у нас лежат запись и расшифровка. Модель ошибается и сейчас, пустые графы у неё тоже бывают, но любую строку можно открыть и послушать за полминуты.

Второе, что пришлось поменять, это срок. Отчёт раз в месяц не поможет клиенту, которому не перезвонили во вторник: к среде он купит у другого поставщика. Записи из телефонии система забирает сама, разбирает в тот же день и вечером присылает руководителю сводку.

Что работает хуже, чем хотелось бы

Вечерняя сводка до сих пор уходит по неполному дню. В замере к моменту отправки было разобрано от 29,8% до 50% звонков: руководитель видел половину картины и не знал об этом. Чиним, про причину напишу отдельно.

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

Разговор с менеджером по итогам разбора мы за руководителя не проведём. Эмоции и интонацию в голосе продукт не разбирает: сейчас этого нет, хотим научиться, сроков не называю.

Проверьте свой отчёт за две минуты

Возьмите отчёт по звонкам, который вам приносят, неважно, кто его делает, человек или программа. Отсчитайте десять строк подряд и посмотрите, сколько из них можно открыть и послушать.

Если ни одной, то перед вами пересказ. Верить ему можно ровно настолько, насколько вы верите пересказчику. А тот разговор, с которого началась эта статья, выглядел в таблице совершенно нормально: клиент, вопрос, цена, договорённость. Всё на месте, кроме самого разговора.

А как у вас проверяют такие отчёты? Напишите, интересно, попадались ли кому-то выдуманные строки.

О чём будет этот блог

Про то, как устроен разбор разговоров изнутри, и про наши собственные ошибки в нём. Одна статья уже написана: наш алгоритм записал сотрудника в худшие за то, что он честно передавал звонки коллегам. Виноват был неудачный способ отличать один звонок от другого.

Цифры здесь будут только те, которые я могу показать в системе.

Разберём неделю ваших звонков и покажем, что в них происходит. Обычно это занимает один день.

Оставить заявку