Лиды с форм на сайте в Битрикс24

19.04.2020

Как добавлять в Bitrix24 лиды с сайта? Данным вопросом начинают задаваться многие, так как с каждым днем CRM Битрикс24 набирает популярность среди вебмастеров и владельцев сайтов. И у многих встает вопрос, как же организовать автоматическое создание лидов с сайта в CRM Битрикс24, если Вы не используете одноименную CMS.
Для этого давайте рассмотрим два способа:

  1. Bitrix24 лиды с сайта через упрощенный Rest API
  2. Вебхуки Bitrix24 — передача лидов с сайта — Рекомендую

См. также публикацию на тему:

Bitrix24 лиды с сайта через упрощенный Rest API

Данный способ, команда Битрикс24, разработала специально для всех сторонних источников, не входящие в продукты Битрикс. Заключается он в том, что по адресу [ваше_название].bitrix24.ua/crm/configs/import/lead.php находится специальный компонент lead.rest, который позволяет обрабатывать и добавлять в Bitrix24 лиды с сайта из других источников.

Для того, чтобы организовать автоматическое создание лидов в Битрикс24 Вам необходимо:

  1. Логин и пароль пользователя Вашей CRM
    Важно! Данный пользователь должен быть с ограниченными правами.
  2. PHP скрипт для отправки данных.
  3. Таблица параметров из соответствующих справочников Bitrix24.
  4. И умение перехватывать данные из форм.

Логин и пароль пользователя Вашей CRM

Так как логин и пароль пользователя из-под которого будут создаваться лиды указываются в скрипте, то для безопасности рекомендуется использовать отдельного пользователя с правами только на добавление лида и без доступа куда-либо еще. Данная мера необходима для безопасности Ваших данных, на тот случай, если каким-то образом PHP скрипт для отправки данных в Битрикс 24 окажется у злоумышленников.

PHP скрипт для отправки данных

В Bitrix24 лиды с сайта можно передавать PHP скриптом, который приведен ниже. При этом для автоматического создания лидов, необходимо передать 3 обязательных параметра:

  • LOGIN* — логин пользователя Вашей CRM по управлению лидами.
  • PASSWORD* — пароль пользователя Вашей CRM по управлению лидами.
  • TITLE* — заголовок для лида.

все остальные параметры являются не обязательными и не подлежат обязательной передаче. Однако советую Вам передавать как можно больше данных в лиде: email, телефон, комментарий, utm метки и многое другое (см. все параметры для формирования лидов).

define('CRM_HOST', '[ваше_название].bitrix24.ru'); // Ваш домен CRM системы
define('CRM_PORT', '443'); // Порт сервера CRM. Установлен по умолчанию
define('CRM_PATH', '/crm/configs/import/lead.php'); // Путь к компоненту lead.rest
define('CRM_LOGIN', 'login'); // Логин пользователя Вашей CRM по управлению лидами
define('CRM_PASSWORD', 'password'); // Пароль пользователя Вашей CRM по управлению лидами
   $postData = array(
      'TITLE' => '' // Установить значение
   );
   if (defined('CRM_AUTH'))
   {
      $postData['AUTH'] = CRM_AUTH;
   }
   else
   {
      $postData['LOGIN'] = CRM_LOGIN;
      $postData['PASSWORD'] = CRM_PASSWORD;
   }
   $fp = fsockopen("ssl://".CRM_HOST, CRM_PORT, $errno, $errstr, 30);
   if ($fp)
   {
      $strPostData = '';
      foreach ($postData as $key => $value)
         $strPostData .= ($strPostData == '' ? '' : '&').$key.'='.urlencode($value);
      $str = "POST ".CRM_PATH." HTTP/1.0\r\n";
      $str .= "Host: ".CRM_HOST."\r\n";
      $str .= "Content-Type: application/x-www-form-urlencoded\r\n";
      $str .= "Content-Length: ".strlen($strPostData)."\r\n";
      $str .= "Connection: close\r\n\r\n";
      $str .= $strPostData;
      fwrite($fp, $str);
      $result = '';
      while (!feof($fp))
      {
         $result .= fgets($fp, 128);
      }
      fclose($fp);
      $response = explode("\r\n\r\n", $result);
      $output = '<pre>'.print_r($response[1], 1).'</pre>';
   }
   else
   {
      echo 'Connection Failed! '.$errstr.' ('.$errno.')';
   }

И умение перехватывать данные из форм

В случаи успешной обработки формы, Вам необходимо перехватить и передать нужные Вам значения с помощью вышеприведенного php скрипт в $postData = array().

По умолчанию, обязательным параметром для заполнения является Title, значение которого будет названием для лида в Битрикс24. Все остальные параметры Вы можете передавать на свое усмотрение (см.таблицы с параметрами).

Данные параметры из «Таблица 1: Параметры для лидов», отвечают за передачу данных в стандартные поля Битрикс24. Если у Вас есть поля, которые Вы самостоятельно создали в Битрикс24, и Вам необходимо передавать для них значение с сайта вместе с лидами, то предлагаю Вам ознакомится с данной статьей.

Автоматическое создание лидов в Битрикс24 при помощи входящего вебхука

Комманда Битрикс 24 внедрила очень простой и функциональный способ интеграции с CRM системой. Если ранее интеграция с Битрикс 24 была не простой задачей, требующей отличной квалификации и знаний от вебмастеров и владельцев сайта, то теперь, с внедрением вебхуков, произвести интеграцию своего сайта с CRM системой может практически каждый желающий.

Так что такое вебхуки в Битрикс24? WebHooks Bitrix24 — механизм, который позволяет вам использовать практически весь богатый функционал Rest API Битрикс24, но при минимальных знаниях и трудозатрат.

На мой взгляд, это более безопасный способ передачи информации в CRM систему, чем при помощи упрощенного Rest API.

И так, для организации автоматической передачи лидов при помощи вебхуков необходимо:

  1. Создать входящий вебхук.
  2. Написать короткий код для перехвата и передачи данных.

Автоматическое создание лидов в Битрикс24 при помощи входящего вебхука

Комманда Битрикс 24 внедрила очень простой и функциональный способ интеграции с CRM системой. Если ранее интеграция с Битрикс 24 была не простой задачей, требующей отличной квалификации и знаний от вебмастеров и владельцев сайта, то теперь, с внедрением вебхуков, произвести интеграцию своего сайта с CRM системой может практически каждый желающий.

Так что такое вебхуки в Битрикс24? WebHooks Bitrix24 — механизм, который позволяет вам использовать практически весь богатый функционал Rest API Битрикс24, но при минимальных знаниях и трудозатрат.

На мой взгляд, это более безопасный способ передачи информации в CRM систему, чем при помощи упрощенного Rest API.

И так, для организации автоматической передачи лидов при помощи вебхуков необходимо:

  1. Создать входящий вебхук.
  2. Написать короткий код для перехвата и передачи данных.

Создать входящий вубхук

Для того, чтобы передать данные с вашей формы обратной связи в лиды Битрикс 24 необходимо создать входящий вебхук. Для этого следуем по инструкции:

  • Приложения → Вебхуки → Добавить вебхук.
  • Как создать входящий вубхук в bitrix24 Как создать входящий вубхук в bitrix24
  • При добавлении выбрать Входящий вебхук.
  • Ввести название для вебхука → При желании добавить его описание → При выборе права доступа указать CRM.

  • После чего нажимаем на кнопку сохранить.
  • После сохранения появится код для авторизации вебхука и образец URL, который нужно использовать при отправке данных в Битрикс24.

  • ,где
    • /rest/ — метод Rest API;
    • /1/ — идентификатор пользователя, пользуясь правами которого будет работать вебхук;
    • /2j2htb348j5y0hgi/ — код вебхука;
    • /profile/ — метод REST, который вы хотите выполнить, обращаясь к вебхуку. При добавлении лида в CRM систему необходимо использовать метод crm.lead.add.json.

Написать короткий код для перехвата и передачи данных

Для завершения организации передачи данных с формы сайта в лиды Битрикс24 при помощи вебхуков необходимо всего лишь написать коротенький код. При написание кода необходимо учесть всего 3 простых шага:

  1. сформировать URL в переменной $queryUrl
    https://[ваш_домен].bitrix24.ru/rest/[идентификатор_пользователя]/[код_вебхука]/crm.lead.add.json;
  2. сформировать параметры для создания лида в переменной $queryData;
  3. обратиться к Битрикс24 при помощи функции curl_exec.

Пример кода для интеграции Битрикс24 и сайта при помощи вебхуков

// формируем URL в переменной $queryUrl
$queryUrl = 'https://[ваше_название].bitrix24.ru/rest/[идентификатор_пользователя]/[код_вебхука]/crm.lead.add.json'; 
// формируем параметры для создания лида в переменной $queryData // Добавить лид → добавить сделку deal.add
$queryData = http_build_query(array(
  'fields' => array(
    'TITLE' => 'Название лида',
  ),
  'params' => array("REGISTER_SONET_EVENT" => "Y")
));
// обращаемся к Битрикс24 при помощи функции curl_exec
$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']."
"
;

Учесть особенность для передачи номера телефона, email, мессенджера

Обратите внимание При выборе интеграции с помощью входящего вебхука (в отличии от упрощенного Rest API), такие параметры как телефон, электронный адрес и мессенджеры имеют множественные значения и другие поля по умолчанию: PHONE, EMAIL, IM. Поэтому для передачи данных значений необходимо передавать их в массиве.

Как передать utm-метки в Битрикс 24

Итак, сначала нужно записать утм в массив $_cookie для того, что при переходе на другие страницы не потерялись значения, вот этот код отвечает за это:

if(isset($_GET["utm_source"])) setcookie("utm_source",$_GET["utm_source"],time()+3600*24*30,"/"); 
if(isset($_GET["utm_medium"])) setcookie("utm_medium",$_GET["utm_medium"],time()+3600*24*30,"/"); 
if(isset($_GET["utm_campaign"])) setcookie("utm_campaign",$_GET["utm_campaign"],time()+3600*24*30,"/"); 
if(isset($_GET["utm_content"])) setcookie("utm_content",$_GET["utm_content"],time()+3600*24*30,"/"); 
if(isset($_GET["utm_term"])) setcookie("utm_term",$_GET["utm_term"],time()+3600*24*30,"/");

Добавляйте его на каждую страницу↑.

Затем создаем в форме невидимые поля, cо значениями:

<input name="utm-source" type="hidden" value="<?=$_COOKIE['utm_source']?>">
<input name="utm-medium" type="hidden" value="<?=$_COOKIE['utm_medium']?>">
<input name="utm-compaign" type="hidden" value="<?=$_COOKIE['utm_compaign']?>">
<input name="utm-content" type="hidden" value="<?=$_COOKIE['utm_content']?>">
<input name="utm-term" type="hidden" value="<?=$_COOKIE['utm_term']?>">

А в обработчике уже принимаем данные, как и все остальные поля:

              'UTM_SOURCE' => $_POST['utm-source'],
              'UTM_MEDIUM' => $_POST['utm-medium'],
              'UTM_CAMPAIGN' => $_POST['utm-campaign'],
              'UTM_CONTENT' => $_POST['utm-content'],
              'UTM_TERM' => $_POST['utm-term'],

Результат:

Результат передачи utm меток с сайта в Битрикс24

4 комментария “Лиды с форм на сайте в Битрикс24

    • AllService_ak Автор записиОтвет

      Что именно не работает?

Добавить комментарий

Ваш адрес email не будет опубликован.

Оплата услуг