Разработка 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-система охватывала практически весь контур продаж.

Воронка

Позволяла анализировать движение сделок по этапам, видеть количество, выручку, прибыль и рентабельность.

Разработка BI для продаж: от данных Битрикс24 до управленческой аналитики

Новые заявки

Показывали входящий поток и распределение по менеджерам.

Разработка BI для продаж: от данных Битрикс24 до управленческой аналитики

Размещённые и реализованные заказы

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

Разработка BI для продаж: от данных Битрикс24 до управленческой аналитики

Сделки в работе

Давали руководителю понимание текущего портфеля и состояния активных сделок.

Неудачные сделки

Показывали причины потерь, объём упущенных возможностей и распределение по менеджерам.

Разработка BI для продаж: от данных Битрикс24 до управленческой аналитики

Аналитика по производителям

Помогала оценивать вклад поставщиков, брендов и направлений.

Разработка BI для продаж: от данных Битрикс24 до управленческой аналитики

Клиентская аналитика

Позволяла смотреть новых клиентов, размещённые и реализованные заказы в клиентском разрезе.

Сделки с низкой рентабельностью

Подсвечивали случаи, где оборот есть, а прибыльность бизнеса — под вопросом.

Звонки

Отдельный блок позволял анализировать:

  • входящие,
  • исходящие,
  • количество,
  • длительность,
  • распределение по менеджерам и периодам.

То есть по сути это был не один дашборд, а единая BI-система для управления отделом продаж.

Что это дало бизнесу

Для собственника или руководителя ценность BI не в том, что «всё красиво нарисовано». Ценность в том, что появляется возможность принимать решения на основе связанной картины, а не разрозненных цифр.

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

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

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

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

Руководителям не нужны сложные модели данных, DAX или ETL-процессы сами по себе. Им нужна возможность быстро получить ответ на вопрос: что происходит с продажами и почему.

Именно это и должна делать хорошая BI-система — превращать разрозненные данные в понятную картину, на основе которой можно принимать решения.

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

Думаю, именно поэтому этот проект остаётся актуальным для меня и сегодня.

3