Дашборд метрик чат-бота
24 метрики из базы портала и внешней Postgres в одном отчёте — вместо трёх ручных выгрузок.
Задача
Руководитель поддержки не видел, как работает чат-бот: сколько диалогов он закрывает, почему закрывает и как быстро отвечают операторы. Данные были, но лежали в разных местах и считались по-разному.
Что сделал
- Собрал датасет из 24 колонок: диалоги, закрытия ботом и по неактивности, скорость ответа в корзинах, оценки
- Связал базу портала с внешней PostgreSQL, где лежали логи обращений
- Разложил показатели на пять блоков: диалоги и бот, обзор, скорость ответа, удовлетворённость, детализация
- Перевёл подписи метрик на русский в самом датасете, чтобы их не приходилось угадывать на графиках
Результат
Стало видно, что бот закрывает около 15% диалогов и почти все — по неактивности клиента. Это и стало главным выводом: сценарий не удерживает людей, а ждёт, пока они уйдут.
Три подводных камня, на которых такие дашборды врут
Целочисленное деление в Trino (0% вместо 15%), джойн справочника, который размножает строки сессий, и поле «время первого ответа», которое на деле означает «время до первого ответа в диалоге» и равно нулю, если ответа не было.
Каналы считаются по source, а не по названию конфига
Один конфиг обслуживает разные каналы: диалоги Авито лежали внутри конфига WhatsApp, а ВК был размазан по трём конфигам. Считать по названию — гарантированно неверные цифры.