Пошаговая инструкция по подключению скрипта определения номера к популярным CRM. Настройка вебхуков и автоматическое создание сделки[1]
Почему интеграция с CRM критична для эффективности
Скрипт определения номера посетителя сайта превращает анонимный трафик в измеримый лид, но без передачи данных в систему управления клиентскими отношениями (CRM) этот потенциал остаётся неиспользованным. Интеграция позволяет:
- Автоматически создавать сделки или контакты в момент определения номера, исключая ручной ввод и задержки.
- Синхронно обогащать карточку клиента UTM‑метками, источником трафика и поведенческими сигналами, что повышает персонализацию обзвона.
- Собирать чистые данные для аналитики – процент определений, долю дозвонов, ROI и другие KPI обзвона без двойного ввода.
Таким образом, интеграция определителя номера с CRM становится фундаментом для построения закрытого цикла маркетинг‑продаж[1-1].
Общий алгоритм: как работает webhook от ЯЛидер! к CRM
- Сбор данных – JavaScript‑скрипт на сайте собирает номер телефона и дополнительные параметры (UTM, источник, время визита).
- Отправка вебхука – при успешном определении скрипт выполняет POST‑запрос на URL вебхука, указанный в личном кабинете ЯЛидер!. Тело запроса содержит JSON‑структуру, например:
{
"phone": "+7 900 123-45-67",
"utm_source": "yandex",
"utm_medium": "cpc",
"utm_campaign": "lead_gen",
"visitor_id": "a1b2c3d4",
"timestamp": "2026-09-16T12:34:56Z"
}
- Обработка вебхука в CRM – система принимает запрос, извлекает поля и создаёт/обновляет запись согласно заранее настроенному маппингу полей.
- Автоматическое создание сделки – при наличии номера и минимального набора данных (например, источник) CRM генерирует новую сделку или задачу для менеджера.
- Обратная связь – CRM может вернуть статус (успех/ошибка) в виде ответа вебхука, что позволяет скрипту показывать уведомление администратору о результате интеграции.
Этот алгоритм одинаков для Bitrix24, HubSpot и Salesforce; различаются только способы настройки вебхука, формат аутентификации и структура полей[2][3].
Практика: пошаговые инструкции для Bitrix24, HubSpot, Salesforce
1. Bitrix24 интеграция
- Получение вебхука
- В Bitrix24 перейдите в CRM → Настройки → Вебхуки.
- Нажмите «Добавить вебхук», выберите тип «Входящий вебхук».
- Скопируйте сгенерированный URL – он будет использоваться как endpoint в ЯЛидер!.
- Настройка аутентификации
Bitrix24 использует параметрauthв query‑строке URL (например,https://yourdomain.bitrix24.ru/rest/1/abcdef123456/incoming/). Никаких дополнительных заголовков не требуется. - Маппинг полей
Пример структуры входящего JSON и соответствующих полей CRM:
| JSON‑поле | Поле Bitrix24 (CRM) | Тип данных |
|---|---|---|
| phone | PHONE_WORK (тип «Телефон») | строка |
| utm_source | UTM_SOURCE (пользовательское) | строка |
| utm_medium | UTM_MEDIUM | строка |
| utm_campaign | UTM_CAMPAIGN | строка |
| visitor_id | UF_VISITOR_ID (пользовательское) | строка |
| timestamp | DATE_CREATE (автоматически) | дата/время |
- Тестовый запрос
Отправьте POST‑запрос через curl или Postman:
curl -X POST "https://yourdomain.bitrix24.ru/rest/1/abcdef123456/incoming/" \
-H "Content-Type: application/json" \
-d '{"fields":{"TITLE":"Лид с сайта","PHONE_WORK":[{"VALUE":"+7 900 123-45-67","VALUE_TYPE":"WORK"}],"UTM_SOURCE":"yandex","UTM_MEDIUM":"cpc","UTM_CAMPAIGN":"lead_gen","UF_VISITOR_ID":"a1b2c3d4"}}'
- Автоматическое создание сделки
В Bitrix24 можно настроить робота, который при появлении новой лид‑карточки с заполненным телефоном сразу создаёт сделку в этапе «Новый лид».
Инструкция по размещению кода перед закрывающим тегом
</body>для Bitrix24 доступна в официальной документации[2-1].
2. HubSpot webhook
- Создание вебхука
- В HubSpot зайдите в Автоматизация → Вебхуки.
- Нажмите «Создать вебхук», выберите «Отправка данных» и укажите URL, предоставленный ЯЛидер! (обратный вебхук не нужен – мы принимаем данные).
- Скопируйте секретный токен (если требуется проверка подписи).
- Аутентификация
HubSpot поддерживает Basic Auth или Bearer Token. В настройках вебхука укажите заголовокAuthorization: Bearer <YOUR_TOKEN>. - Маппинг полей
Пример соответствия JSON‑поля HubSpot‑свойствам:
| JSON‑поле | Свойство HubSpot (объект Contact) | Тип |
|---|---|---|
| phone | phone | строка |
| utm_source | utm_source (пользовательское) | строка |
| utm_medium | utm_medium | строка |
| utm_campaign | utm_campaign | строка |
| visitor_id | visitor_id (пользовательское) | строка |
| timestamp | createdate (автоматически) | дата/время |
- Тестовый запрос
curl -X POST "https://api.hubapi.com/contacts/v1/contact/createOrUpdate/email/test@example.com?hapikey=YOUR_HUBSPOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"properties":[{"property":"phone","value":"+7 900 123-45-67"},{"property":"utm_source","value":"yandex"},{"property":"utm_medium","value":"cpc"},{"property":"utm_campaign","value":"lead_gen"},{"property":"visitor_id","value":"a1b2c3d4"}]}'
- Автоматическое создание сделки
В HubSpot можно настроить workflow, который при создании контакта с заполненным полемphoneавтоматически создаёт сделку (deal) и связывает её с контактом.
3. Salesforce lead
- Настройка входящего вебхука
- В Salesforce Setup перейдите в Интеграция → Входящие вебхуки.
- Сгенерируйте Apex‑класс, который будет принимать POST‑запрос (пример ниже).
- Разверните класс и получите endpoint URL.
- Пример Apex‑класса
@RestResource(urlMapping='/PhoneLead/*')
global with sharing class PhoneLeadWebhook {
@HttpPost
global static void doPost() {
RestRequest req = RestContext.request;
String body = req.requestBody.toString();
Map<String,Object> json = (Map<String,Object>) JSON.deserializeUntyped(body);
Lead newLead = new Lead();
newLead.Phone = (String)json.get('phone');
newLead.UTM_Source__c = (String)json.get('utm_source');
newLead.UTM_Medium__c = (String)json.get('utm_medium');
newLead.UTM_Campaign__c = (String)json.get('utm_campaign');
newLead.Visitor_Id__c = (String)json.get('visitor_id');
newLead.Status = 'New';
insert newLead;
}
}
- Аутентификация
Salesforce требует OAuth 2.0 токен доступа. При настройке вебхука в ЯЛидер! добавьте заголовокAuthorization: Bearer <ACCESS_TOKEN>. - Маппинг полей
ПолеPhone– стандартное, остальные – пользовательские поля (UTM_Source__c,UTM_Medium__c,UTM_Campaign__c,Visitor_Id__c). - Тестовый запрос
curl -X POST "https://yourInstance.salesforce.com/services/apexrest/PhoneLead/" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"phone":"+7 900 123-45-67","utm_source":"yandex","utm_medium":"cpc","utm_campaign":"lead_gen","visitor_id":"a1b2c3d4"}'
- Автоматическое создание сделки
После вставки лида можно запустить процесс (Process Builder или Flow), который при появлении нового лида с заполненным телефоном создаёт связанную возможность (Opportunity) и задачу для менеджера продаж.
JS‑код: готовый фрагмент для отправки номера и данных в CRM (пример для fetch)
// Функция вызывается после успешного определения номера
function sendToCrm(phone, utmData) {
const payload = {
phone: phone,
utm_source: utmData.utm_source || '',
utm_medium: utmData.utm_medium || '',
utm_campaign: utmData.utm_campaign || '',
visitor_id: utmData.visitor_id || '',
timestamp: new Date().toISOString()
};
// URL вебхука – замените на ваш endpoint
const webhookUrl = 'https://your-crm.example.com/webhook/phone-lead';
fetch(webhookUrl, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
// При необходимости добавьте авторизацию:
// 'Authorization': 'Bearer YOUR_TOKEN'
},
body: JSON.stringify(payload),
mode: 'cors'
})
.then(response => {
if (!response.ok) throw new Error(`HTTP ${response.status}`);
return response.json();
})
.then(data => console.log('CRM ответ:', data))
.catch(err => console.error('Ошибка отправки в CRM:', err));
}
Примечание: Для Bitrix24 достаточно передать только URL без дополнительных заголовков; для HubSpot и Salesforce добавьте соответствующий заголовок авторизации.
Типичные ошибки и как их избежать
| Ошибка | Причина | Как исправить |
|---|---|---|
| 401 Unauthorized | Неправильный или отсутствующий токен/API‑ключ | Проверьте, что заголовок Authorization содержит актуальный токен; обновите токен в настройках ЯЛидер!. |
| 400 Bad Request | Неверный формат JSON или отсутствие обязательных полей | Убедитесь, что тело запроса – валидный JSON и содержит хотя бы поле phone. Используйте JSON‑валидатор перед отправкой. |
| Поле не сохраняется | Несоответствие имени поля в CRM и маппинга | Сверьте имена пользовательских полей (например, UTM_Source__c в Salesforce) с теми, что указаны в payload. |
| Дублирование лидов | Вебхук отправляется при каждом событии (например, при каждом пейджвью) | Добавьте дедупликацию на стороне CRM (уникальный индекс по visitor_id + timestamp) либо включите флаг «отправлять только при первом определении» в настройках ЯЛидер!. |
| Блокировка CORS | Запрос отправляется напрямую с браузера на CRM без прокси | Настройте вебхук на серверной стороне (например, через облачную функцию или собственный эндпоинт), который будет принимать запрос от скрипта и пересылать его в CRM. |
Своевременная проверка логов вебхука (в Bitrix24 – журнал вебхуков, в HubSpot – история запросов, в Salesforce – отладка Apex) позволяет быстро локализовать проблему.

Заключение
Интеграция определителя номера посетителя сайта с CRM‑системами Bitrix24, HubSpot и Salesforce превращает сырые данные о звонках в управляемый поток лидов, обеспечивая автоматическое создание сделок, обогащение карточек клиентов маркетинговыми метриками и построение прозрачной аналитики эффективности обзвона. Следуя представленным пошаговым инструкциям, используя готовый JS‑фрагмент и избегая типичных ошибок, вы сможете реализовать надёжную CRM‑синхронизацию за считанные минуты, а результат – рост конверсии и ROI – будет заметен уже в первый месяц использования[1-2].