Всем привет! Команда разработки ЗЕКСЛЕР делится кейсом, в котором собирали всю информацию о заявках и продажах производственной компании и выводили ее в удобном понятном онлайн дашборде для руководителя, РОПов без погружения в CRM. Разберём с технической точки зрения реальную задачу производственника с отделом продаж, которая возникла в процессе ведения комплексного маркетинга. А пока подписывайтесь на наш Телеграм-канал, где кратко рассказываем о применяемых методах, инструментах, делимся полезными видео и прочими материалами.
С компанией SHEDLER работаем с 2023 года, с самого основания. Занимается производством модульных зданий и блок-контейнеров. Работаем комплексно: разработали сайт (кейс описывали здесь), осуществляем поддержку, даем контекстную рекламу (отдельно об этом писали здесь), SEO, контролируем отдел продаж, оптимизируем CRM Битрикс24 под бизнес клиента.
В процессе работы, когда все цепочки продаж были построены, лиды и сделки зафиксированы, интеграции и сервисы настроены, появилась задача регулярно отслеживать определенные показатели: оборот, выручка, конверсия, сделки в разрезе каждого менеджера и т.д. Конечно же, руководство получает отчеты о продажах, сделках, маркетинге и общей производительности менеджеров каждый месяц, но этого мало. Необходимо видеть статистику в любой момент, в удобном формате и желательно в режиме онлайн.
Функционал Битрикс24 располагает отчётами, но они крайне неудобные и для разных показателей нужно составлять отдельные отчеты. С визуализацией также есть некоторые неудобства. Да и у руководителя или собственника бизнеса нет времени и желания в этом разбираться, лезть внутрь и пытаться выяснить, а что же сейчас происходит с продажами. Кроме того, не все необходимые данные можно увидеть CRM. Могут заинтересовать показатели метрики, трафик и прочее, а это уже совсем другие источники. Гораздо проще, если есть одна ссылка, которая ведет на понятный Dashboard со всеми необходимыми показателями в режиме онлайн. Для этого нужно было воспользоваться внешними инструментами сбора требуемых данных в одном месте.
Так как над проектом работает большая команда, некоторым сотрудникам в любой момент может также понадобиться аналитика. Но не у всех есть доступ к CRM или права на просмотр сделок. А это еще одна причина выбора единого дашборда, который всегда под рукой и в котором можно оперативно получить информацию в удобном понятном виде.
Для решения этой задачи и реализации такого функционала потребовалось провести глубокий анализ данных о продажах, клиентах, маркетинговых кампаниях и других ключевых аспектах деятельности.
В первую очередь, необходимо получить полную картину о всех лидах и продажах, нагрузке на каждого менеджера, выручке и т.д. Собрать все данные решили при помощи внедрения системы BI-аналитики на базе интеграции Bitrix24 с Yandex DataLens. Это позволяет автоматизировать сбор и анализ данных, предоставляя наглядные отчёты и дашборды для мониторинга KPI и выявления тенденций.
Берем Bitrix24 REST API — набор инструментов и методов для взаимодействия с системой Bitrix24.
С помощью REST API можно автоматизировать такие задачи, как создание и управление лидами, проектами, контактами, сделками и другими объектами в Bitrix24. Это даёт возможность разработчикам расширять функциональность системы и адаптировать её под конкретные потребности бизнеса.
На практике часто приходится автоматизировать выполнение задач в CRM, и REST API помогает справиться с этим быстро и эффективно.
Еще один инструмент – Yandex DataLens, который позволяет анализировать информацию о продажах, клиентах, сделках и других аспектах бизнеса, используя мощные инструменты визуализации и анализа данных. В результате компания может получить более глубокое понимание бизнес-процессов, улучшить качество принятия решений и повысить эффективность работы.
Получили данные по лидам и сделкам из Bitrix24 и обработали их в системе BI-аналитики Yandex Datalens. Пример полученного дашборда с визуализацией всей информации:
Благодаря таким отчетам появляется возможность максимально быстро проанализировать информацию в режиме онлайн или применить фильтры по категориям, менеджерам, источникам и т.д.
Задача поставлена, аналитика проведена, инструменты выбраны. А теперь разработчик Зекслер делится тем, как происходила реализация внедрения дашборда с технической стороны.
Для выборки данных изначально определили, какая информация из Bitrix24 будет использоваться для анализа в Yandex DataLens (например, инфо о сделках, лидах, продажах и т. д.).
Настроили процесс загрузки данных из Bitrix24 в Yandex DataLens. В нашем случае выгрузка происходит в CSV-файл и в Googlе-таблицы. Из Google-таблиц данные забираются через встроенное в DataLens подключение к источнику данных.
Информация в таблицах и CSV-файлах автоматически актуализируется раз в сутки. Периодичность обновления данных может быть любым.
Для подключения к REST API, было создано локальное приложение, которое хранится у нас на сервере.
Для работы с Google таблицами на сервере, в папке с приложением установили PHP-библиотеку. Сами таблицы первоначально создаются через веб-интерфейс. Далее создается сервисный аккаунт Google. Этот аккаунт (e-mail) привязывается к созданной таблице с правами редактирования:
На стороне приложения подключаемся к Google Sheets:
require_once (__DIR__.'/google-api-php-client/vendor/autoload.php'); require_once (__DIR__.'/crest.php'); // Google Sheets $googleAccountKeyFilePath = __DIR__ . '/sheets-415519-####.json'; putenv( 'GOOGLE_APPLICATION_CREDENTIALS=' . $googleAccountKeyFilePath ); $client = new Google_Client(); $client->useApplicationDefaultCredentials(); $client->addScope( 'https://www.googleapis.com/auth/spreadsheets' ); $service = new Google_Service_Sheets( $client ); // leads sheet $spreadsheetId = '#####'; // deals sheet $spreadsheetId_deals = '####';
Используя API Bitrix24 получаем информацию по лидам и сделкам.
/* Формируем список значений пользовательских полей*/ $uf = CRest::call( 'crm.lead.fields', ); $uf_deals = CRest::call( 'crm.deal.fields', );
Ввиду того, что лидов и сделок много, код был оптимизирован для пакетной обработки данных (в нашем случае по 50 элементов за раз):
function getBatch($prevID){ $batch=[]; for($i=0; $i<50; $i++){ $batch['step_'.$i]=[ 'method'=>'crm.lead.list', 'params'=> [ 'order'=>[ 'ID'=>'ASC' ], 'filter'=>[ '>ID'=>$prevID, ], 'select'=>[ 'ID', 'DATE_CREATE', 'ASSIGNED_BY_ID', 'UF_CRM_1689860020704', // category 'UF_CRM_1691478421965', // region 'STATUS_ID', 'STATUS_SEMANTIC_ID', 'SOURCE_ID' ], 'start'=>-1, ], ]; $prevID = '$result[step_'.$i.'][49][ID]'; } return $batch; }
function downloadLead($managers, $categories, $regions){ $prevID=0; while(true){ $batch=getBatch($prevID); $result=CRest::callBatch($batch,1); if (!empty($result['result']['result'])){ foreach($result['result']['result'] as $list){ $last =end($list); if($last['ID']> $prevID){ $prevID = $last['ID']; save($list, $managers, $categories, $regions); } else{ break 2; } } } else{ break; } } }
Пример кода получения и сохранения лидов в файл и последующую отправку в Google таблицы:
if (file_exists(__DIR__.'/leads.csv')) { unlink(__DIR__.'/leads.csv'); } $fp_header = fopen(__DIR__.'/leads.csv', 'ab'); fputcsv($fp_header, ['ID', 'DATE', 'MANAGER_ID', 'STATUS_ID', 'STATUS_SEMANTIC_ID', 'SOURCE', 'CAREGORY_ID', 'REGION_ARRAY', 'MANAGER', 'CAREGORY', 'REGION', 'STATUS_NAME', 'STATUS', 'SOURCE_NAME']); fclose($fp_header); $result = downloadLead($managers, $categories, $regions); $response = $service->spreadsheets_values->clear($spreadsheetId, 'leads', new Google_Service_Sheets_ClearValuesRequest([])); $rows_leads = array_map('str_getcsv', file('leads.csv')); $values_leads = array(); foreach($rows_leads as $row) { $values_leads[] = $row; } $body = new Google_Service_Sheets_ValueRange( [ 'values' => $values_leads ] ); $options = array( 'valueInputOption' => 'RAW' ); $service->spreadsheets_values->update( $spreadsheetId, 'leads', $body, $options );
Полученная таблица с данными:
Следующим этапом была обработка данных в Yandex DataLens.
Создали дашборды на основе анализа данных, чтобы отслеживать ключевые показатели эффективности (KPI) и принимать обоснованные решения.
Такая сборка данных в удобном и актуальном дашборде позволяет в любой момент руководителю, РОПу или другому заинтересованному лицу увидеть статистику всей работы, продаж, нагрузки на менеджеров и эффективность менеджеров. Не нужно для этого делать дополнительные отчёты через битрикс и прочие сервисы, всё индивидуально настроено в дашборде с понятными графиками и фильтрами.
Чарты в данный момент постоянно дорабатываются. Проверяем гипотезы, учитываем пожелания клиента.
Расскажите о вашей задаче. Мы свяжемся, чтобы задать вопросы и обсудить, чем мы можем быть полезны :)
+7 (499) 110-92-21
director+7956@zexler.ru
Мы используем cookie-файлы и инструменты аналитики. Используя сайт или нажимая «Я согласен», вы принимаете условия обработки cookie и персональных данных в соответствии с Политикой конфиденциальности.
Я согласен