Шаблон для Битрикс24 в Yandex Datalens

Mybi Connect

После обновления выгрузки из Битрикс24 мы решили сделать на ее основе несколько шаблонных отчетов в разных BI-системах. Мы уже публиковали решения в Power BI, бесплатном Apache Superset, отечественном Analytic Workspace и, конечно, не могли обойти стороной Yandex Datalens. Для этого мы привлекли стороннего разработчика отчетов и сейчас делимся результатами и описанием.

Кстати, шаблонные отчеты в нашем случае это те, в которых не используется пользовательских полей CRM, они работают только на дефолтных (базовых), за счет этого шаблоны разворачиваются на выгрузке mybi connect из любого аккаунта Битрикс24. Такие шаблоны размещены в нашем маркетплейсе mybi market для разных источников.

Инесса Старченко

Добрый день! Общая схема работы выглядит следующим образом: данные из Битрикс24 передаются в промежуточное хранилище etl сервиса mybi connect – базу данных, после чего BI-инструмент Yandex Datalens подключается к этому хранилищу и строит на основе этих данных различные визуализации. Mybi connect периодически отправляет запросы на получение изменений из Битрикс24 и распределяет эти данные по таблицам в базе данных. После обновления информации в базе происходит перерасчет показателей и актуализация визуализаций на дашборде Yandex Datalens.

Шаблон Bitrix24

Демо-версию шаблона вы можете изучить самостоятельно.

Дашборд включает четыре вкладки по типам сущности Битрикс24:

  • Вкладка «Лиды» показывает динамику числа лидов, какие источники дают наибольшую/ наименьшую лидогенерацию, можно оценить эффективность отработки лидов менеджерами и увидеть какая конверсия из лидов в сделку, сколько лидов в работе и на каких этапах.
  • Вкладка «Сделки» показывает динамику количества и объема сделок на разных стадиях и этапах воронки; здесь мы сможем понять, какие источники приносят больше сделок, а с какими источниками нецелесообразно сотрудничать, а также оценить нагрузку и эффективность менеджеров.
  • Вкладка «Реестр сделок в работе» показывает детальную информацию по сделкам; здесь можно отследить сделки, которые зависли на том или ином этапе воронки.
  • Вкладка «Задачи» показывает нагрузку на менеджеров в части задач, а так же дает оценку доле выполненных или просроченных задач.

На каждой вкладке предусмотрена фильтрация по периодам создания лидов/сделок/задач, по их статусу, типу, воронке, источнику привлечения, по ответственному сотруднику и более специфические, например, срок «зависания» на стадии для сделок.

Помимо стандартной фильтрации с использованием панели фильтров, в дашборде реализован механизм кросс-фильтрации, позволяющий динамически изменять аналитические данные на основании выбранных показателей на графиках или таблицах.

Битрикс24 обладает богатым набором разных сущностей и параметров, что отражается на структуре выгрузки mybi connect, а точнее, на количестве таблиц в ней. Перед визуализацией данные обрабатываются и передаются с помощью SQL-запросов. Давайте более подробно разберем SQL-запрос по выбору идентификатора сделки и их статусы («Успех», «Провал» или «В работе») на основе последней стадии, на которой находилась сделка:

SELECT
t1."Идентификатор сделки"
,MAX(
CASE WHEN t1."Идентификатор стадии" LIKE '%WON%' THEN 'Успех'
WHEN t1."Идентификатор стадии" LIKE '%LOSE%' THEN 'Провал' ELSE 'В работе'
END
) AS "Статус-тип1"
FROM public."B24 История статусов сделок" t1
JOIN
(SELECT
"Идентификатор сделки"
MAX("Дата и время попадания на стадию") AS "Дата и время попадания на стадию"
FROM public."B24 История статусов сделок"
GROUP BY "Идентификатор сделки") t2
ON t2."Идентификатор сделки" = t1."Идентификатор сделки"
AND t2."Дата и время попадания на стадию" = t1."Дата и время попадания на стадию"
GROUP BY t1."Идентификатор сделки"

PS. Извините, не самое удобное форматирование для SQL, но оно позволит вам скопировать запрос…

Итак, шаг 1: Подзапросы

1. Основной подзапрос (t2):

SELECT
"Идентификатор сделки"
MAX("Дата и время попадания на стадию") AS "Дата и время попадания на стадию"
FROM public."B24 История статусов сделок"
GROUP BY "Идентификатор сделки

Этот подзапрос находит для каждой сделки последнюю дату и время, когда она была переведена на какую-то стадию. Это делается через агрегацию MAX() по полю «Дата и время попадания на стадию» с группировкой по «Идентификатору сделки».

2. Внешний запрос (t1):

Основной запрос соединяет результат подзапроса t2 с исходной таблицей «B24 История статусов сделок» по полям «Идентификатор сделки» и «Дата и время попадания на стадию». Таким образом, он получает данные о последней стадии для каждой сделки.

Шаг 2: Определение статуса сделки

Для определения статуса используется конструкция CASE, которая проверяет значение поля «Идентификатор стадии»:

CASE WHEN t1."Идентификатор стадии" LIKE '%WON%' THEN 'Успех'
WHEN t1."Идентификатор стадии" LIKE '%LOSE%' THEN 'Провал' ELSE 'В работе'
END

Итоговый запрос возвращает два столбца:

  • «Идентификатор сделки»
  • Статус сделки («Статус-тип1») на основании последней стадии.

Таким образом, этот запрос позволяет получить список всех сделок вместе со статусом на текущий момент времени.

Надеюсь, этот разбор поможет вам или подтолкнет к более глубокому изучению SQL.

Сейчас отчет развернут на демо БД, но он и называется шаблоном, потому что его можно развернуть на других аналогичных выгрузках. Для этого вам понадобится выгрузка из Битрикс24, которую можно получить бесплатно, используя триал mybi connect.

После этого напишите в мой Telegram (@Inna_V_Starchenko) сообщение с текстом «Шаблон mybi», и я свяжусь с вами, чтобы передать и помочь настроить шаблон на ваших данных Битрикс24. Пока мы не добавляли этот шаблон в маркетплейс Datalens и процедуру нового подключения необходимо производить вручную.

Если вам потребуется решение более сложных задач, мы также можем предложить создать отчеты, полностью адаптированные под ваши индивидуальные потребности и специфику работы в Битрикс24.

Будем рады быть полезными для Вас!

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка / 5. Количество оценок:

Оценок пока нет. Поставьте оценку первым.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *