Как бизнесу с отделом продаж проанализировать работу при помощи BI-аналитики: кейс производственной компании SHEDLER и ЗЕКСЛЕР
Всем привет! Команда разработки ЗЕКСЛЕР делится кейсом на тему бизнес-аналитики. Разберём на примере реальную задачу производственной компании с отделом продаж, которая возникла в процессе ведения комплексного маркетинга. А пока подписывайтесь на наш Телеграм-канал, где кратко рассказываем о применяемых методах, инструментах, делимся полезными видео и прочими материалами.
Рабочие процессы настроены – пора переходить на новый уровень
С компанией SHEDLER работаем с 2023 года, с самого основания. Занимается производством модульных зданий и блок-контейнеров. Работаем комплексно: разработали сайт (кейс описывали здесь), осуществляем поддержку, даем контекстную рекламу (отдельно об этом писали здесь), SEO, контролируем отдел продаж, оптимизируем CRM Битрикс24 под бизнес клиента.
В процессе работы, когда все цепочки продаж были построены, лиды и сделки зафиксированы, интеграции и прочее настроены, решили проанализировать работу, улучшить процессы принятия решений и оптимизировать бизнес-операции.
Для этого потребовалось провести глубокий анализ данных о продажах, клиентах, маркетинговых кампаниях и других ключевых аспектах деятельности.
Внедрение BI-аналитики
Для улучшения работы, в первую очередь, необходимо получить полную картину о всех лидах и продажах, нагрузке на каждого менеджера, выручке и т.д. Собрать все данные решили при помощи внедрения системы BI-аналитики на базе интеграции Bitrix24 с Yandex DataLens. Это позволяет автоматизировать сбор и анализ данных, предоставляя наглядные отчёты и дашборды для мониторинга KPI и выявления тенденций.
Берем Bitrix24 REST API — набор инструментов и методов для взаимодействия с системой Bitrix24.
С помощью REST API можно автоматизировать такие задачи, как создание и управление лидами, проектами, контактами, сделками и другими объектами в Bitrix24. Это даёт возможность разработчикам расширять функциональность системы и адаптировать её под конкретные потребности бизнеса.
На практике часто приходится автоматизировать выполнение задач в CRM, и REST API помогает справиться с этим быстро и эффективно.
Еще один инструмент – Yandex DataLens, который позволяет анализировать информацию о продажах, клиентах, сделках и других аспектах бизнеса, используя мощные инструменты визуализации и анализа данных. В результате компания может получить более глубокое понимание бизнес-процессов, улучшить качество принятия решений и повысить эффективность работы.
Рассказываем, как получали данные по лидам и сделкам из Bitrix24 и обрабатывали их в системе BI-аналитики Yandex Datalens. Пример полученного дашборда с визуализацией всей информации:
Благодаря таким отчетам появляется возможность максимально быстро проанализировать информацию во временном промежутке или применить фильтры по категориям, менеджерам, источникам и т.д.
Сбор всех данных из Битрикс24
Для выборки данных изначально определили, какая информация из 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) и принимать обоснованные решения.
Такая сборка данных в удобном и актуальном дашборде позволяет в любой момент руководителю, РОПу или другому заинтересованному лицу увидеть статистику всей работы, продаж, нагрузки на менеджеров и эффективность менеджеров. Не нужно для этого делать дополнительные отчёты через битрикс и прочие сервисы, всё индивидуально настроено в дашборде с понятными графиками и фильтрами.
Чарты в данный момент постоянно дорабатываются. Проверяем гипотезы, учитываем пожелания клиента.