Интеграция формы обратной связи с Битрикс24

(function () {
    $(document).ready(function () {
        $(".form-modal").submit(function () {
            var formID = $(this).attr('id');
            var formNm = $('#' + formID);
            $.ajax({
                type: "POST",
                url: '/wp-content/themes/shablon/mail.php',
                data: formNm.serialize(),
                success: function (data) {
                    $('.modal-smg_boby').removeClass('modal-active');
                    $('.modal-smg-thanks').addClass('modal-active');
                },
                error: function (jqXHR, text, error) {
                    $(formNm).html(error);
                }
            });
            $.ajax({
                type: "POST",
                url: '/wp-content/themes/shablon/send-bitrix.php',
                data: formNm.serialize(),
                success: function (data) {
                },
                error: function (jqXHR, text, error) {
                    $(formNm).html('error');
                }
            });
            return false;
        });
    });
})();

send-bitrix.php

<?php 
  // формируем URL, на который будем отправлять запрос в битрикс24
	$queryURL = "https://ipkotov.bitrix24.ru/rest/1/g8pltmlc5av37j6v/crm.lead.add.json";	

  //собираем данные из формы
  $sPhone = htmlspecialchars($_POST["PHONE"]);
  $sName = htmlspecialchars($_POST["NAME"]);
  $sLastName = htmlspecialchars($_POST["LAST_NAME"]);
  $arPhone = (!empty($sPhone)) ? array(array('VALUE' => $sPhone, 'VALUE_TYPE' => 'MOBILE')) : array();
	
	// формируем параметры для создания лида	
	$queryData = http_build_query(array(
		"fields" => array(
            "TITLE" => "Заявка с сайта - Возникли вопросы",
			"NAME" => $sName,	// имя
			"PHONE" => $arPhone, // телефон
		),
		'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']);
	}
?>

Где взять ссылку

  1. Войдите в свой аккаунт Bitrix24.
  2. Перейдите в раздел «Настройки» или «Настройки приложений» (в зависимости от версии Bitrix24).
  3. Найдите и выберите раздел «Веб-хуки».
  4. Нажмите на кнопку «Добавить веб-хук».
  5. Задайте имя для веб-хука (например, «Мой веб-хук») и выберите необходимые права доступа.
  6. Сохраните веб-хук.
  7. После сохранения вы получите URL-адрес, который будет похож на следующий: https://your_domain.bitrix24.ru/rest/1/your_webhook_code/crm.lead.add.json.

Вместо your_domain будет указан ваш домен Bitrix24, а вместо your_webhook_code будет уникальный код вашего веб-хука.

Замените ссылку в вашем коде на полученную ссылку REST API, и вы сможете отправлять заявки в ваш экземпляр Bitrix24.

Если вдруг создается заявка, но в ней не создается лид, то нужно добавить сначала лида в битрикс, потом добавить заявку и связать лида с заявкой

<?php
// Формируем URL, на который будем отправлять запрос в Bitrix24
$queryURL = "https://jobazavr.bitrix24.ru/rest/1/ftwg7avg7yg9a5bv/crm.deal.add.json";

// Собираем данные из формы
$sPhone = htmlspecialchars($_POST["phone"]);
$sName = htmlspecialchars($_POST["name"]);
$arPhone = (!empty($sPhone)) ? array(array('VALUE' => $sPhone, 'VALUE_TYPE' => 'MOBILE')) : array();

// Формируем параметры для создания лида
$queryData = http_build_query(array(
    "fields" => array(
        "TITLE" => "Заявка с сайта Jobazavr",
        "NAME" => $sName, // имя
        "PHONE" => $arPhone, // телефон
        "SOURCE_ID" => "WEB", // Источник заявки
    ),
    'params' => array("REGISTER_SONET_EVENT" => "Y") // Произвести регистрацию события добавления лида в живой ленте. Дополнительно будет отправлено уведомление ответственному за лид.
));

// Отправляем запрос на создание сделки (лида)
$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, true);

// Проверяем наличие ошибок при создании сделки (лида)
if (array_key_exists('error', $result)) {
    die("Ошибка при сохранении лида: " . $result['error_description']);
}

// Получаем идентификатор созданной сделки
$dealId = $result['result'];

// Формируем URL и данные для создания контакта
$queryURL = "https://jobazavr.bitrix24.ru/rest/1/ftwg7avg7yg9a5bv/crm.contact.add.json";
$queryData = http_build_query(array(
    "fields" => array(
        "NAME" => $sName, // имя контакта
        "PHONE" => $arPhone, // телефон контакта
        "ASSIGNED_BY_ID" => 11, // идентификатор ответственного сотрудника
        "SOURCE_ID" => "WEB", // Источник заявки
    ),
));

// Отправляем запрос на создание контакта
$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, true);

// Проверяем наличие ошибок при создании контакта
if (array_key_exists('error', $result)) {
    die("Ошибка при сохранении контакта: " . $result['error_description']);
}

// Получаем идентификатор созданного контакта
$contactId = $result['result'];

// Формируем URL и данные для обновления сделки, добавляя связь с контактом
$queryURL = "https://jobazavr.bitrix24.ru/rest/1/ftwg7avg7yg9a5bv/crm.deal.update.json";
$queryData = http_build_query(array(
    "id" => $dealId, // идентификатор сделки
    "fields" => array(
        "CONTACT_ID" => $contactId, // идентификатор контакта
    ),
));

// Отправляем запрос на обновление сделки
$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, true);

// Проверяем наличие ошибок при обновлении сделки
if (array_key_exists('error', $result)) {
    die("Ошибка при обновлении сделки: " . $result['error_description']);
}

// Все операции успешно выполнены
echo "Заявка успешно сохранена в Bitrix24";
?>
Контакты

Работаем: с ПН по ПТ, с 08:00 до 17:00 (МСК)
Отдыхаем: в СБ и ВС, чтобы быть в тонусе
и реализовывать самые сложные идеи