'
Данная интеграция работает в связке сайт на Bitrix и CRM Bitrix24.
Стандартный функционал Битрикс позволяет добавлять элементы из модуля веб форм. Но что нам делать, если надо передать элемент из модуля инфоблоков.
Для этого нам приходит на помощь вебхуки и rest api bitrix24.
Наш метод позволит учитывать источники для модуля сквозной аналитики.
Начнем с того, что в портале Bitrix24 надо создать ВХОДЯЩИЙ вебхук.
Задайте вебхуку следующие поля:
После добавления вебхука вы увидите следующую запись:
Вам нужно взять из него URL для вызова REST.
Чтобы не потерять откуда пришел наш клиент, запишем его данные в сессию. Для этого в файле init.php размещаем следующий код:
if (isset($_REQUEST['utm_source']) && !empty($_REQUEST['utm_source'])) {
$_SESSION['utm_source'] = strip_tags($_REQUEST['utm_source']);
}
Теперь при заполнении формы на нашем сайте utm метка не потеряется. И в наш портал bitrix24 передастся источник прихода клиента.
Перейдите в файле init.php (как правило /bitrix/php_interface/init.php или /local/php_interface/init.php). В него необходимо добавить следующий код:
AddEventHandler('iblock', 'OnAfterIBlockElementAdd', 'OnAfterIBlockElementAddHandler');
function OnAfterIBlockElementAddHandler(&$arFields)
{
if($arFields["ID"]>0)
{
//формируем массив для передачи в bitrix24
//данные берем из элемента добавленного инфоблока
$queryData = http_build_query(array(
'fields' => array(
"TITLE" => 'Лид с сайта '.SITE_SERVER_NAME.' из формы "Обратная связь".',
"SOURCE_ID" => WEB,
"UTM_SOURCE" => $_SESSION['utm_source'],
"NAME" => $arFields["PROPERTY_VALUES"]["FIO"],
"EMAIL" => [["VALUE" => $arFields["PROPERTY_VALUES"]["EMAIL"], "VALUE_TYPE" => "WORK"]],
"PHONE" => [["VALUE" => $arFields["PROPERTY_VALUES"]["PHONE"], "VALUE_TYPE" => "WORK"]],
"COMMENTS" => "Лид создан автоматически с сайта ".SITE_SERVER_NAME,
),
'params' => array("REGISTER_SONET_EVENT" => "Y"),
));
//обращаемся к Битрикс24 при помощи функции curl_exec
//метод crm.lead.add.json добавляет лид
$rest = 'crm.lead.add.json';
//url берется из созданного вебхука, удалив в нем окончание prifile/
//и добавив метод $rest на добавление лида
$queryUrl = 'https://{название портала bitrix24}.bitrix24.ru/rest/1/{ключ вебхука}/'.$rest;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $queryUrl,
CURLOPT_POSTFIELDS => $queryData,
));
$result = curl_exec($curl);
curl_close($curl);
$result = json_decode($result, 1);
if (array_key_exists('error', $result))
{
echo "Ошибка при сохранении лида: ".$result['error_description']."
";
}
else
{
return $result['result'];
}
}
}
Обратим внимание на важное поле для Сквозной аналитики "UTM_SOURCE", в котором должна находиться utm метка откуда перешел клиент (например Яндекс.Директ, Google AdSense, Facebook, Vk, рекламный баннер в городе и тд.). Если оно будет заполнено в соответствии с настройками сквозной аналитики в bitrix24, то данные лиды будут правильно отображаться в отчете Сквозной аналитики.
Зайдем на наш сайт и заполняем форму обратной связи и жмем кнопку отправить.
Сработает наше событие на добавление элемента, которое отправить массив в bitrix24 на добавление лида.
Переходим в наш bitrix24 в раздел CRM Лиды и наслаждаемся полученным результатом!