Обучаю битриксу программистов, интеграторов

Интеграция облачного Битрикс24 с Roistat

Передача номера визита Roistat в Битрикс Формах
Есть документация от Ройстат https://help.roistat.com/integrations/CRM_i_CMS/Bitriks24/Formy_Bitriks24._Vidzhet_na_sait/
Форма открывается по клику на кнопку, Битрикс пишет, что вставлять надо код перед КАЖДОЙ кнопкой, мне было лень искать гору кнопочек, тем более есть шанс пропустить
Сделала в подвале невидимую кнопку #callbackhunterNew, перед ней скрипт Битриксовский, остальные кнопки при клике вызывают клик данной кнопки, и, о чудо, открывается форма.
<a href="#"  id="callbackhunterNew" style="display:none">Заказать обратный звонок</a>
<script>
 jQuery("a[href^='https://nikaverro.bitrix24.ru/pub/form'], a[href='#callbackhunter']").click(function(e) {        
        e.preventDefault();
        document.getElementById('callbackhunterNew').click();        
    });
    jQuery("#callbackhunterNew").click(function(e) {
         e.preventDefault();
    })
</script>

Передача номера визита Roistat при звонке
Ройстат умеет по звонку через коллтрекинг создавать Лиды, но нам это не надо, потому что телефония Битрикс создает Лиды с нам нужной логикой.
Поэтому в сценарии коллтрегина "создавать сделку CRM" отключили.
Сделали в ройстате вебхук на сайт адрес_сайта/webhook.php?action=lead&type=call (не битрикс) при окончании звонка,
Webhook-уведомление от Roistat https://help.roistat.com/features/Calltracking/Rasshirennye_nastroiki_scenarija/Webhook-uvedomlenie/
Как создать лид написано тут как создать лид rest api + вебхук
а там скрипт форматирует все как надо и отправляет вебхук в Битрикс24 на обновление Лида со всякими УТМ-метками и прочей информацией из ройстата
$action = isset($_GET['action']) ? $_GET['action'] : null;
$type = isset($_GET['type']) ? $_GET['type'] : null;
$data = json_decode(trim(file_get_contents('php://input')), true);

if ($type == "call" && !empty($data)) {   
      //функция, которая делает запросы в Б24    
      function CurlBitrix24($method, $arData=array()){
      $queryUrl = "https://b24.alpha-soft.ru/rest/[ид пользователя]/[код вебхука]/".$method;   
      $curl = curl_init();
      curl_setopt_array($curl, array(
         CURLOPT_URL => $queryUrl,
         CURLOPT_SSL_VERIFYPEER => 0,
         CURLOPT_POST => 1,
         CURLOPT_HEADER => 0,
         CURLOPT_RETURNTRANSFER => 1,      
      ));
      if(!empty($arData)){
         curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($arData));
      }
      $result = curl_exec($curl);         
      curl_close($curl);
      return json_decode($result,true);
   }
   
   if(!empty($data['id']) && !empty($data['caller'])){
                //получаем лид 
       $arFilter = array(
         "!STATUS_ID"=>"CONVERTED",
         "TITLE"=>$data['caller']." - Входящий звонок", //телефония генерирует лиды с таким названием
         ">=DATE_CREATE"=> date("Y-m-d 00:00:00"),//чтоб не старые лиды         
       );
       $result = CurlBitrix24('crm.lead.list', array(
          "order" => array("ID"=>"DESC"),
                    "filter" => $arFilter,
                    "select" => array("ID","DATE_CREATE","UF_CRM_1616400954")
            ));
                //error_log( print_r($result, TRUE),3,"log.txt" );
                
              
            if(isset($result["result"][0]["ID"])){
                //если лид найден, то его апдейтим 
            $lead['COMMENTS'] = "Страница захвата: " . $data['landing_page'] ."<br>";   
           $lead['COMMENTS'] .= "Город: " . $data['city'] ."<br>";   
           $lead['UF_CRM_1616400954'] = $data['visit_id'];//свойство roistat в Б24 у лидов
           $lead['UTM_CAMPAIGN'] = $data["utm_campaign"];
           $lead['UTM_SOURCE'] = $data["utm_source"];
           $lead['UTM_CONTENT'] = $data["utm_content"];
           $lead['UTM_MEDIUM'] = $data["utm_medium"];
           $lead['UTM_SOURCE'] = $data["utm_source"];
           $lead['UTM_TERM'] = $data["utm_term"];
           $lead['WEB'] = $data["marker"];

           
             $result = CurlBitrix24('crm.lead.update', array(
          "id" => $result["result"][0]["ID"],
               "fields" => $lead,
               "params" => []
           ));

            }      
   }   

}
Если блог был полезным, можете угостить меня "чашечкой кофе" :)

Сбер по номеру телефона +7 (953) 585-13-09 Вероника.
Спасибо!