Прежде всего, в рамках Битрикс24 нужно создать вебхук, в который мы будем отправлять данные с сайта. В Битрикс24 в левом меню переходим в раздел Приложения, идем на вкладку Вебхуки, жмем кнопку Добавить вебхук, в подменю выбираем Входящий вебхук.**
Открылась форма добавления вебхука. В поле Название вводим произвольное название, например Получение лидов с сайта. Поле Описание заполняем по своему желанию. В списке Права доступа отмечаем чекбокс CRM.
В генераторе запросов будет представлен образец URL, который нужно использовать при отправке данных из сторонней системы в Битрикс24
**Внимание!Данный код является конфиденциальной информацией. Его необходимо держать в секрете. Секретные коды чужих вебхуков недоступны даже администратору. Если администратор отредактирует чужой вебхук, то секретный код будет сброшен, и владельцем этого вебхука станет администратор.
URL состоит из:
-
doc-test-b24.bitrix24.ru - адрес вашего Битрикс24
-
/rest - указание на то, что работа ведётся через rest с вебхуками
-
/1 - идентификатор пользователя, создавшего вебхук
-
/173glortu42lvpju - секретный код
-
/crm.contact.get - вызываемый метод REST API . В данном случае - метод, возвращающий контакт по идентификатору
-
.json- необязательный параметр (“транспорт”). При создании новых вебхуков можно не указывать (по умолчанию будет использоваться**.json**). В конструкторе готовых решений**.json** подставляется явно
-
?ID=42- параметры, необходимые для конкретного метода. В данном случае - идентификатор. Параметры указываются после вопросительного знака и разделяются символом**&**
Дальше необходимо немного PHP кода на сайте.
В первую очередь, надо убедиться что на сервере подключена библиотека curl.
При отправке формы добавляем код:
$b24Url = "https://adresportala.bitrix24.ru"; // укажите URL своего Битрикс24
$b24UserID = "***"; // ID пользователя, от имени которого будем добавлять лид
$b24WebHook = "*****"; // код вебхука
// формируем URL, на который будем отправлять запрос
$queryURL = "$b24Url/rest/$b24UserID/$b24WebHook/crm.lead.add.json";
// формируем параметры для создания лида
$queryData = http_build_query(array(
"fields" => array(
"TITLE" => "заказ №". $arEventFields['ORDER_ID'], // название лида
"NAME" => $arEventFields['ORDER_USER'], // имя
"PHONE" => [["VALUE" => $arEventFields['PHONE'],"VALUE_TYPE" => "WORK"]],
"EMAIL" => [["VALUE" => $arEventFields['EMAIL'],"VALUE_TYPE" => "WORK"]],
"ASSIGNED_BY_ID" => $b24UserID, // пользователь ответственный за лид
"UF_CRM_123456789" => $arEventFields['CITY'], // свойство типа строка
"OPPORTUNITY" => $arEventFields['PRICE'], //цена
"CURRENCY_ID" => 'RUB', //валюта
"COMMENTS" => $arEventFields['ORDER_LIST'],
),
'params' => array("REGISTER_SONET_EVENT" => "Y") // Y = произвести регистрацию события добавления лида в живой ленте. Дополнительно будет отправлено уведомление ответственному за лид.
));
// отправляем запрос в Б24 и обрабатываем ответ
$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);
Таким образом можно передать в b24 параметры UTM-меток. Для нужной формы отследить событие OnAfterResultAdd.**
**<?php
// получаем текущий урл и упаковываем параметры в массив
$url = basename($_SERVER['REQUEST_URI']);
$url_components = parse_url($url);
parse_str($url_components['query'], $params);
$b24Url = "https://***.bitrix24.ru"; // укажите URL своего Битрикс24
$b24UserID = "***"; // ID пользователя, от имени которого будем добавлять лид
$b24WebHook = "***"; // код вебхука, который мы только что получили
// формируем URL, на который будем отправлять запрос
$queryURL = "$b24Url/rest/$b24UserID/$b24WebHook/crm.lead.add.json";
// формируем параметры для создания лида
$queryData = http_build_query(array(
"fields" => array(
"TITLE" => "Лид с нашего сайта", // название лида
"NAME" => "Меган Фокс", // имя ;)
"PHONE" => array( // телефон в Битрикс24 = массив, поэтому даже если передаем 1 номер, то передаем его в таком формате
"n0" => array(
"VALUE" => "+7 (123) 456-78-99", // ненастоящий номер Меган Фокс
"VALUE_TYPE" => "MOBILE", // тип номера = мобильный
),
),
"UF_CRM_1575410143732" => true, // первое пользовательское свойство: передадим "Да"
"UF_CRM_1575410440471" => "Перезвони :*", // второе пользовательское свойство, передаем этот текст
"UTM_SOURCE"=>$params["utm_source"],
"UTM_MEDIUM"=>$params["utm_medium"],
"UTM_CAMPAIGN"=>$params["utm_campaign"],
),
'params' => array("REGISTER_SONET_EVENT" => "Y") // Y = произвести регистрацию события добавления лида в живой ленте. Дополнительно будет отправлено уведомление ответственному за лид.
));
// отправляем запрос в Б24 и обрабатываем ответ
$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))
{
die("Ошибка при сохранении лида: ".$result['error_description']);
}
echo "Лид добавлен, отличная работа :)";
?>
Источник: https://sinyavsky.com/sozdaem-lid-bitrix24-cherez-api/
Учебный курс: https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=99&LESSON_ID=8581
Ищете надежного партнера по веб-разработке и автоматизации? Мы помогаем бизнесу расти с помощью современных технологий, автоматизации процессов и экспертного SEO. Свяжитесь с нами, чтобы обсудить вашу задачу.