Как создать нового лида в битрикс24 при нажатии по ссылке на сайте?
Здравствуйте, необходимо создавать пустой лид в битрикс 24 при нажатии на номера телефонов на сайте, и при нажатии на ссылку для перехода в чат WhatsApp.
Суть в том, что нужно фильтровать рекламные лиды от обычных, для этого я планирую сохранять utm метки при первом переходе на сайт из поиска. И при нажатии на телефон, WhatsApp, нужно чтобы приходил пустой лид с метками. А дальше менеджер сам удалит левый лид и пересоздаст реальный, и будет статистика кто и откуда пришел.
Возможно ли вообще обработать события нажатия по телефонной ссылке tel: и ссылке на внешний ресурс для перехода в WhatsApp и передать это битриксу для создания лида?
Дополнительно:
Семён Окулов @scoffs Frontend | C# | Student Возможно вам надо что-то типа этого
// Отслеживание кликов по телефонной ссылке $('a[href^="tel:"]').click(function() { var utmParams = getUTMParams(); // Функция для получения utm-меток sendLeadToBitrix(utmParams); // Функция для отправки данных в Битрикс24 }); // Отслеживание кликов по ссылке WhatsApp $('a[href^="https://api.whatsapp.com"]').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://your-bitrix24-url/rest/your-rest-api-endpoint'; // Замените на фактический URL и REST API-эндпоинт var leadData = { title: 'New Lead', source_id: utmParams.source, medium_id: utmParams.medium, campaign_id: utmParams.campaign, // Дополнительные поля лидов, если нужно }; // Отправка запроса на создание лида в Битрикс24 $.ajax({ url: apiUrl, method: 'POST', data: leadData, success: function(response) { console.log('Lead created successfully'); }, error: function(error) { console.error('Error creating lead:', error); } }); } |
// Отслеживание кликов по телефонной ссылке $('a[href^="tel:"]').click(function() { var utmParams = getUTMParams(); // Функция для получения utm-меток sendLeadToBitrix(utmParams); // Функция для отправки данных в Битрикс24 }); // Отслеживание кликов по ссылке WhatsApp $('a[href^="https://api.whatsapp.com"]').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://your-bitrix24-url/rest/your-rest-api-endpoint'; // Замените на фактический URL и REST API-эндпоинт var leadData = { title: 'New Lead', source_id: utmParams.source, medium_id: utmParams.medium, campaign_id: utmParams.campaign, // Дополнительные поля лидов, если нужно }; // Отправка запроса на создание лида в Битрикс24 $.ajax({ url: apiUrl, method: 'POST', data: leadData, success: function(response) { console.log('Lead created successfully'); }, error: function(error) { console.error('Error creating lead:', error); } }); }
Приведенный код использует jQuery для обработки событий кликов. Он отслеживает клики на ссылках с префиксом "tel:" и ссылках на WhatsApp и вызывает функцию sendLeadToBitrix(), которая отправляет данные в Битрикс24 с использованием REST API.
Не забудьте заменить 'https://your-bitrix24-url/rest/your-rest-api-endpoint' на фактический URL вашего Битрикс24 и REST API-эндпоинт.
Когда пользователь кликает на телефонную ссылку или ссылку WhatsApp, функция getUTMParams() извлекает utm-метки из текущего URL, а затем создает объект leadData, который содержит необходимую информацию для создания лида в Битрикс24. Затем данные отправляются в Битрикс24 с помощью AJAX-запроса.
Обратите внимание, что для использования данного кода вам потребуется подключить jQuery на вашем сайте, если он еще не подключен.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Да, клики по
tel:и ссылкам WhatsApp можно отследить и по ним создать лид в Битрикс24. Но REST-вебхук Битрикс24 нельзя безопасно вызывать прямо из браузера: URL вебхука окажется в исходном коде сайта, и любой сможет создавать мусорные лиды.Нормальная схема такая: JavaScript ловит клик, отправляет данные на ваш сервер, а сервер уже вызывает метод
crm.lead.addв Битрикс24. UTM-метки лучше сохранять при первом заходе в cookie илиlocalStorage, потому что к моменту клика по телефону в URL их может уже не быть.document.addEventListener('click', async (event) => { const link = event.target.closest('a[href^="tel:"], a[href*="whatsapp.com"], a[href*="wa.me"]'); if (!link) { return; } const params = new URLSearchParams(window.location.search); ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term'].forEach((key) => { if (params.has(key) && !localStorage.getItem(key)) { localStorage.setItem(key, params.get(key)); } }); navigator.sendBeacon('/wp-admin/admin-ajax.php', new URLSearchParams({ action: 'site_create_bitrix_lead', clicked_url: link.href, page_url: location.href, utm_source: localStorage.getItem('utm_source') || '', utm_medium: localStorage.getItem('utm_medium') || '', utm_campaign: localStorage.getItem('utm_campaign') || '' })); });document.addEventListener('click', async (event) => { const link = event.target.closest('a[href^="tel:"], a[href*="whatsapp.com"], a[href*="wa.me"]'); if (!link) { return; } const params = new URLSearchParams(window.location.search); ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term'].forEach((key) => { if (params.has(key) && !localStorage.getItem(key)) { localStorage.setItem(key, params.get(key)); } }); navigator.sendBeacon('/wp-admin/admin-ajax.php', new URLSearchParams({ action: 'site_create_bitrix_lead', clicked_url: link.href, page_url: location.href, utm_source: localStorage.getItem('utm_source') || '', utm_medium: localStorage.getItem('utm_medium') || '', utm_campaign: localStorage.getItem('utm_campaign') || '' })); });
На стороне WordPress обработчик должен проверить nonce или хотя бы ограничить набор принимаемых полей, затем отправить запрос в Битрикс24:
add_action('wp_ajax_nopriv_site_create_bitrix_lead', 'site_create_bitrix_lead'); add_action('wp_ajax_site_create_bitrix_lead', 'site_create_bitrix_lead'); function site_create_bitrix_lead() { $webhook = 'https://example.bitrix24.ru/rest/1/WEBHOOK/crm.lead.add.json'; $fields = [ 'TITLE' => 'Клик по телефону или WhatsApp', 'SOURCE_ID' => 'WEB', 'COMMENTS' => 'Страница: ' . esc_url_raw($_POST['page_url'] ?? '') . PHP_EOL . 'Клик: ' . esc_url_raw($_POST['clicked_url'] ?? ''), 'UTM_SOURCE' => sanitize_text_field($_POST['utm_source'] ?? ''), 'UTM_MEDIUM' => sanitize_text_field($_POST['utm_medium'] ?? ''), 'UTM_CAMPAIGN' => sanitize_text_field($_POST['utm_campaign'] ?? ''), ]; wp_remote_post($webhook, [ 'timeout' => 5, 'body' => ['fields' => $fields], ]); wp_die(); }
Если нужно не задерживать переход в WhatsApp, используйте
navigator.sendBeacon()или отправляйте запрос и через 100-300 мс продолжайте переход. И обязательно добавьте защиту от дублей: например, не создавать повторный лид чаще одного раза в несколько минут для одного браузера.