Как отредактировать код для корректной отправки данных сайта в битрикс 24?
Здравствуйте, нужна помощь, создает лид по клику, но не отправляются данные с названием и метками
jQuery(document).ready(function($) { // Отслеживание кликов по телефонной ссылке $('a[href^="tel:"]').click(function() { var utmParams = getUTMParams(); // Функция для получения utm-меток sendLeadToBitrix(utmParams); // Функция для отправки данных в Битрикс24 }); // Отслеживание кликов по ссылке WhatsApp $('a[href^="https://wa.me/-------"]').click(function() { var utmParams = getUTMParams(); // Функция для получения utm-меток sendLeadToBitrix(utmParams); // Функция для отправки данных в Битрикс24 }); // Функция для получения utm-меток из URL function getUTMParams() { var urlParams = new URLSearchParams(window.location.search); var utmParams = {}; if (urlParams.has('utm_source')) { utmParams.source = urlParams.get('utm_source'); } if (urlParams.has('utm_medium')) { utmParams.medium = urlParams.get('utm_medium'); } if (urlParams.has('utm_campaign')) { utmParams.campaign = urlParams.get('utm_campaign'); } // Дополнительные utm-метки, если нужно return utmParams; } // Функция для отправки данных в Битрикс24 function sendLeadToBitrix(utmParams) { var apiUrl = 'https://------.bitrix24.ru/rest/--------/-----------/crm.lead.add.json'; // Замените на фактический URL и REST API-эндпоинт var fields = { title: 'Новый лид 777', source_id: utmParams.source, medium_id: utmParams.medium, campaign_id: utmParams.campaign, // Дополнительные поля лидов, если нужно }; // Отправка запроса на создание лида в Битрикс24 $.ajax({ url: apiUrl, method: 'POST', data: fields, params: 'REGISTER_SONET_EVENT', success: function(response) { console.log('Lead created successfully'); }, error: function(error) { console.error('Error creating lead:', error); } }); } }); |
jQuery(document).ready(function($) { // Отслеживание кликов по телефонной ссылке $('a[href^="tel:"]').click(function() { var utmParams = getUTMParams(); // Функция для получения utm-меток sendLeadToBitrix(utmParams); // Функция для отправки данных в Битрикс24 }); // Отслеживание кликов по ссылке WhatsApp $('a[href^="https://wa.me/-------"]').click(function() { var utmParams = getUTMParams(); // Функция для получения utm-меток sendLeadToBitrix(utmParams); // Функция для отправки данных в Битрикс24 }); // Функция для получения utm-меток из URL function getUTMParams() { var urlParams = new URLSearchParams(window.location.search); var utmParams = {}; if (urlParams.has('utm_source')) { utmParams.source = urlParams.get('utm_source'); } if (urlParams.has('utm_medium')) { utmParams.medium = urlParams.get('utm_medium'); } if (urlParams.has('utm_campaign')) { utmParams.campaign = urlParams.get('utm_campaign'); } // Дополнительные utm-метки, если нужно return utmParams; } // Функция для отправки данных в Битрикс24 function sendLeadToBitrix(utmParams) { var apiUrl = 'https://------.bitrix24.ru/rest/--------/-----------/crm.lead.add.json'; // Замените на фактический URL и REST API-эндпоинт var fields = { title: 'Новый лид 777', source_id: utmParams.source, medium_id: utmParams.medium, campaign_id: utmParams.campaign, // Дополнительные поля лидов, если нужно }; // Отправка запроса на создание лида в Битрикс24 $.ajax({ url: apiUrl, method: 'POST', data: fields, params: 'REGISTER_SONET_EVENT', success: function(response) { console.log('Lead created successfully'); }, error: function(error) { console.error('Error creating lead:', error); } }); } });
Дополнительно:
Попробуйте var utmparams = {} вынести из функции
Андрей Николаев @gromdron Куратор тега Битрикс24 Работаю с Bitrix24 Вы неправильно используете параметры ajax метода - все что вы отправляете через ajax должно быть в `data` ключе.
Т.е. ваш код должен быть таким:
$.ajax({ url: apiUrl, method: 'POST', data: { fields: fields params: { REGISTER_SONET_EVENT: "Y", } }, success: function(response) { console.log('Lead created successfully'); }, error: function(error) { console.error('Error creating lead:', error); } }); |
$.ajax({ url: apiUrl, method: 'POST', data: { fields: fields params: { REGISTER_SONET_EVENT: "Y", } }, success: function(response) { console.log('Lead created successfully'); }, error: function(error) { console.error('Error creating lead:', error); } });
Ну и соотстветно:
1. Ключи в fields лучше передавать как в Битрикс24 - в верхнем регистре
2. Смотрите корректные названия для UTM меток в документации
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

В вашем примере данные не доходят до Битрикс24 не из-за jQuery как такового, а из-за структуры запроса и названий полей. В REST-методе crm.lead.add основные данные лида должны передаваться внутри объекта fields, а служебный параметр REGISTER_SONET_EVENT должен идти внутри params. Кроме того, поля вроде title, source_id, medium_id и campaign_id в таком виде Битрикс не воспринимает как стандартные поля лида. Для заголовка нужен TITLE, для источника обычно SOURCE_ID, а UTM-метки передаются в отдельные поля UTM_SOURCE, UTM_MEDIUM, UTM_CAMPAIGN, UTM_CONTENT и UTM_TERM.
Минимально исправленный вариант для прямой отправки из браузера может выглядеть так:
jQuery(function ($) { $('a[href^=tel], a[href^="https://wa.me/"]').on('click', function (event) { event.preventDefault(); const link = this.href; const utm = getUTMParams(); sendLeadToBitrix(utm).always(function () { window.location.href = link; }); }); function getUTMParams() { const params = new URLSearchParams(window.location.search); return { UTM_SOURCE: params.get('utm_source') || '', UTM_MEDIUM: params.get('utm_medium') || '', UTM_CAMPAIGN: params.get('utm_campaign') || '', UTM_CONTENT: params.get('utm_content') || '', UTM_TERM: params.get('utm_term') || '' }; } function sendLeadToBitrix(utm) { return $.ajax({ url: 'https://example.bitrix24.ru/rest/1/webhook/crm.lead.add.json', method: 'POST', dataType: 'json', data: { fields: { TITLE: 'Клик по телефону или WhatsApp', SOURCE_ID: 'WEB', UTM_SOURCE: utm.UTM_SOURCE, UTM_MEDIUM: utm.UTM_MEDIUM, UTM_CAMPAIGN: utm.UTM_CAMPAIGN, UTM_CONTENT: utm.UTM_CONTENT, UTM_TERM: utm.UTM_TERM }, params: { REGISTER_SONET_EVENT: 'Y' } } }); } });jQuery(function ($) { $('a[href^=tel], a[href^="https://wa.me/"]').on('click', function (event) { event.preventDefault(); const link = this.href; const utm = getUTMParams(); sendLeadToBitrix(utm).always(function () { window.location.href = link; }); }); function getUTMParams() { const params = new URLSearchParams(window.location.search); return { UTM_SOURCE: params.get('utm_source') || '', UTM_MEDIUM: params.get('utm_medium') || '', UTM_CAMPAIGN: params.get('utm_campaign') || '', UTM_CONTENT: params.get('utm_content') || '', UTM_TERM: params.get('utm_term') || '' }; } function sendLeadToBitrix(utm) { return $.ajax({ url: 'https://example.bitrix24.ru/rest/1/webhook/crm.lead.add.json', method: 'POST', dataType: 'json', data: { fields: { TITLE: 'Клик по телефону или WhatsApp', SOURCE_ID: 'WEB', UTM_SOURCE: utm.UTM_SOURCE, UTM_MEDIUM: utm.UTM_MEDIUM, UTM_CAMPAIGN: utm.UTM_CAMPAIGN, UTM_CONTENT: utm.UTM_CONTENT, UTM_TERM: utm.UTM_TERM }, params: { REGISTER_SONET_EVENT: 'Y' } } }); } });
Важный момент: при клике по tel-ссылке или WhatsApp браузер почти сразу уходит по ссылке, поэтому обычный ajax-запрос может не успеть завершиться. Поэтому в примере сначала отменяется стандартный переход, затем отправляется лид, и только после завершения запроса пользователь переводится по исходной ссылке. Если отправка должна быть максимально надежной, лучше не вызывать вебхук Битрикс24 прямо из публичного JavaScript. Вебхук будет виден в коде страницы, его смогут скопировать и использовать для мусорных лидов.
Более правильная схема для сайта на WordPress: JavaScript отправляет событие на свой ajax-endpoint или REST endpoint сайта, а уже PHP на сервере отправляет данные в Битрикс24. Так вебхук не светится на фронтенде, можно добавить проверку nonce, антиспам и нормальное логирование ответа CRM. Для диагностики обязательно смотрите вкладку Network в браузере и тело ответа Битрикс24. Если поле названо неверно или метод получил не ту структуру, в ответе обычно есть error и error_description. Именно этот ответ важнее, чем console.log об успешном создании лида.