5 минАналитикаРазбор

31% звонков не попадали в отчёты, и никто этого не видел

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

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

Пока не сверили количество. За две недели телефония зафиксировала 1 473 звонка. В отчёты попали 1 014. Остальные 459 — 31 процент — не были учтены нигде.

Где терялись звонки

Менеджер в отчёте определялся по имени оператора, которое приходит из телефонии. В коде стояло сопоставление по регулярному выражению: если в имени встречается «Иван» — это Иван, если «Андрей» — Андрей.

Работает ровно до первого несовпадения. А в телефонии операторов называют как придётся: «Зелёный», «Фиолетовый (авито+wa)», «Синий», «Личный тел. — Владимир». Такие имена не совпадают ни с одним шаблоном, и звонки просто не попадали ни к кому.

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

И ещё одна ошибка рядом

Отдельным правилом весь трафик одной телефонной станции считался оптовым. Проверка данными показала, что это чужое подразделение: пересечение клиентских баз — один процент, привязка звонивших к контрагентам — 0,1 процента против 15 у своих, входящие линии вообще из другого города.

Из-за этого правила оптовый сегмент в отчётах был завышен почти втрое. Решения о том, куда направлять усилия отдела, принимались по этим цифрам.

Что поменяли

  • Менеджер определяется по внутреннему номеру, а не по имени. Номер — технический ключ, он переживает переименования; имя осталось только как запасной вариант.
  • Ключ учитывает область действия: один и тот же внутренний номер на другой станции принадлежит другому человеку.
  • Ошибочное правило про «всю станцию как опт» убрали, данные не потеряли — добавили отдельный фильтр по подразделениям.

Главное изменение — в самом отчёте

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

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

Теперь появление нового оператора или очередная смена нумерации видны в тот же вечер, а не через три месяца случайной проверкой.

Как проверить свои отчёты

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

Счётчик аналитики, который не работал ни дняМетрика была установлена, код на месте, ошибок в консоли нет. И ни одного визита в статистике. Причина — одна строчка, из-за которой браузер подменял функцию счётчика тегом скрипта.790 товаров, которых не было на сайте полгодаКаталог в учётной системе и каталог на сайте разошлись тихо: без ошибок в логах и жалоб от покупателей. Разбираем, почему инкрементальная синхронизация физически не может увидеть часть изменений и как это найти у себя.