Общие

Как создать веб-хук для добавления лида

Прежде всего, в рамках Битрикс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);

 </code> </pre>

 Таким образом можно передать в b24 параметры UTM-меток. Для нужной формы отследить событие OnAfterResultAdd.<b>

 **<code><?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