Разработка BI для продаж: от данных Битрикс24 до управленческой аналитики
Шесть лет назад я занималась внедрением BI-отчётности для отдела продаж.
Сейчас это уже привычная технология. У Битрикс24 появился BI Конструктор, Power BI стал значительно функциональнее, а обучающих материалов — в десятки раз больше.
Но тогда всё выглядело совсем иначе.Во многих компаниях управленческая отчётность по-прежнему собиралась вручную: данные выгружали в Excel, объединяли из разных источников, строили сводные таблицы и готовили отчёты для руководителей практически в ручном режиме.
Полноценные BI-системы только начинали появляться в российских компаниях, а информации о Power BI, DAX, Power Query и интеграции с Битрикс24 было совсем немного. Большую часть решений приходилось искать самостоятельно, экспериментировать и проверять на практике.
Именно в этот период мне довелось разрабатывать BI-систему для отдела продаж. Цель проекта заключалась не в том, чтобы сделать красивые графики. Нужно было построить полноценную аналитическую платформу: автоматически получать данные из Битрикс24, подготовить их к анализу, разработать модель данных и дать руководителям инструмент, который позволял принимать решения на основе актуальной информации, а не ручных отчётов.
На выходе получилась система, которая позволяла смотреть продажи не фрагментами, а как единый процесс:
- от новых заявок до реализации,
- от активности менеджеров до финансового результата,
- от выручки до рентабельности,
- от общей картины до анализа по конкретному человеку, месяцу или направлению.
Что было сделано
С технической точки зрения это был не просто отчёт, а полноценное BI-решение:
- данные загружались из Битрикс24 по REST API;
- в Power Query (M) строился слой трансформаций и подготовки данных;
- в Power BI собиралась модель данных;
- в DAX реализовывались расчётные меры и логика переключения показателей;
- в интерфейсе отчёта настраивались сквозные фильтры и интерактивные сценарии анализа.
То есть я работала не только с визуализацией, а с полной цепочкой: источник данных → загрузка → трансформации → модель → метрики → интерактивная аналитика.
Как была организована загрузка данных
Источником данных был Битрикс24, подключённый через API. Для извлечения использовался коннектор на основе batch-запросов, а дальше основная работа начиналась уже на стороне BI.
Из CRM загружались данные по:
- сделкам,
- заявкам,
- стадиям,
- клиентам,
- менеджерам,
- звонкам,
- причинам отказа,
- производителям,
- расходам и бонусам.
С технической стороны важно понимать: CRM не отдаёт «готовую аналитику». Она отдаёт разрозненные сущности, JSON-структуры, пользовательские поля, технические идентификаторы, разные типы данных и бизнес-логические состояния, которые ещё нужно привести к рабочему виду.
Поэтому ключевая сложность была не в факте подключения Битрикс24, а в построении поверх него устойчивого аналитического слоя.
Что происходило на уровне ETL
Основная инженерная работа велась в Power Query.
После получения данных из API мне нужно было:
- очистить и структурировать выгрузки;
- привести типы данных;
- нормализовать поля CRM;
- развернуть списочные значения;
- связать сущности между собой;
- переименовать технические поля в понятные бизнесу названия;
- подготовить факты и справочники для модели.
Это особенно важно в проектах, где данные приходят из CRM, потому что там почти всегда есть:
- технические имена полей;
- пользовательские поля формата UF_CRM_*;
- смешанные типы данных;
- мультизначные поля;
- разное представление дат, чисел и статусов.
Чтобы поверх таких данных можно было строить надёжную аналитику, их нужно было не просто «загрузить», а именно инженерно подготовить.
Как была устроена модель данных
После этапа трансформаций строилась модель Power BI.
Я выделяла:
- фактовые таблицы — сделки, звонки, заказы, воронка;
- справочники — менеджеры, месяцы, стадии, производители, типы услуг, причины провала, компании и т.д.
Такой подход позволял:
- избежать хаоса в связях;
- использовать единые разрезы на разных страницах;
- строить повторно используемые меры;
- поддерживать сквозную фильтрацию без дублирования логики.
Для бизнеса это означает «в отчёте всё связано между собой». Для разработчика — что модель не разваливается при росте количества визуализаций и сценариев анализа.
Как была реализована логика показателей
Одна из важных функций системы — возможность быстро переключать логику анализа.
Например, на одном и том же наборе страниц пользователь мог смотреть:
- количество,
- выручку,
- прибыль,
- в некоторых блоках — длительность или другие специализированные показатели.
Для этого использовалась отдельная таблица-переключатель и меры на DAX, где логика строилась через SELECTEDVALUE() и условное переключение между агрегатами.
Иными словами:
- выбирается режим «выручка» — все ключевые графики перестраиваются по выручке;
- выбирается «прибыль» — те же визуализации показывают уже прибыль;
- выбирается «количество» — отчёт работает в количественном сценарии.
Это кажется простой функцией с точки зрения пользователя, но за ней стоит довольно важная разработческая работа:
- согласованный расчётный слой;
- продуманная модель;
- единая логика мер;
- параметризация визуализаций.
Сквозные фильтры как часть архитектуры, а не только интерфейса
Помимо переключателя показателей, в отчёте были реализованы сквозные фильтры:
- по менеджеру;
- по месяцу или группе месяцев;
- по выбранному типу показателя.
На практике это означало, что руководитель мог выбрать, например:
- менеджера,
- нужный месяц,
- режим анализа по прибыли,
и затем увидеть этот же контекст одновременно:
- в воронке,
- в заказах,
- в звонках,
- в клиентской аналитике,
- в низкой рентабельности,
- в неудачных сделках.
С точки зрения бизнеса это удобно: не нужно заново настраивать каждую страницу, всё работает как единое пространство анализа.
С точки зрения разработки это тоже важный показатель зрелости решения: сквозные фильтры работают только тогда, когда правильно собраны модель, меры и логика взаимодействия элементов отчёта.
Какие блоки вошли в систему
В итоге BI-система охватывала практически весь контур продаж.
Воронка
Позволяла анализировать движение сделок по этапам, видеть количество, выручку, прибыль и рентабельность.
Новые заявки
Показывали входящий поток и распределение по менеджерам.
Размещённые и реализованные заказы
Позволяли не смешивать промежуточный и фактический результат, что особенно важно для B2B-продаж.
Сделки в работе
Давали руководителю понимание текущего портфеля и состояния активных сделок.
Неудачные сделки
Показывали причины потерь, объём упущенных возможностей и распределение по менеджерам.
Аналитика по производителям
Помогала оценивать вклад поставщиков, брендов и направлений.
Клиентская аналитика
Позволяла смотреть новых клиентов, размещённые и реализованные заказы в клиентском разрезе.
Сделки с низкой рентабельностью
Подсвечивали случаи, где оборот есть, а прибыльность бизнеса — под вопросом.
Звонки
Отдельный блок позволял анализировать:
- входящие,
- исходящие,
- количество,
- длительность,
- распределение по менеджерам и периодам.
То есть по сути это был не один дашборд, а единая BI-система для управления отделом продаж.
Что это дало бизнесу
Для собственника или руководителя ценность BI не в том, что «всё красиво нарисовано». Ценность в том, что появляется возможность принимать решения на основе связанной картины, а не разрозненных цифр.
После внедрения такой системы можно было быстрее отвечать на вопросы:
- где в воронке узкое место;
- кто из менеджеров реально влияет на результат;
- где проседает рентабельность;
- какие сделки застревают;
- какие причины отказов повторяются;
- какие клиенты и производители приносят деньги;
- где активность есть, а результата нет.
Проще говоря, продажи становились прозрачными и управляемыми.
Шесть лет назад этот проект был для меня прежде всего техническим вызовом. Сегодня я понимаю, что его главная ценность была совсем в другом.
Руководителям не нужны сложные модели данных, DAX или ETL-процессы сами по себе. Им нужна возможность быстро получить ответ на вопрос: что происходит с продажами и почему.
Именно это и должна делать хорошая BI-система — превращать разрозненные данные в понятную картину, на основе которой можно принимать решения.
Инструменты за эти годы сильно изменились. Многие задачи теперь решаются проще, чем тогда. Но сама цель осталась прежней: сделать так, чтобы бизнес опирался не на ощущения и ручные сводки, а на актуальные данные.
Думаю, именно поэтому этот проект остаётся актуальным для меня и сегодня.