Настройка автоматического импорта лидов из Яндекс.Директ в Битрикс24

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка автоматического импорта лидов из Яндекс.Директ в Битрикс24
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1173
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    745
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка автоматического импорта лидов из Яндекс.Директ в Битрикс24

Заявки из лид-форм Яндекс.Директа оседают в личном кабинете Директа или в Яндекс.Метрике — и там остаются. Пока менеджер не зайдёт вручную и не перенесёт данные в CRM, лид «висит» без обработки. Потери очевидны: скорость реакции падает, часть заявок теряется при ручном переносе. Автоматический импорт устраняет человека из этой цепочки.

Механизм интеграции

Яндекс.Директ предоставляет два способа получать лиды: Leads API для лид-форм Директа и вебхук при настройке лид-формы. Для Битрикс24 используем вебхук — Яндекс отправляет POST-запрос на указанный URL сразу при заполнении формы.

Шаг 1. В личном кабинете Директа (Инструменты → Лид-формы) в настройках формы указывается URL вебхука:

https://ваш-сервер.ru/webhook/yandex-direct-leads

Шаг 2. Обработчик вебхука создаёт лид в Битрикс24 через REST API:

// webhook/yandex-direct-leads.php
$rawBody = file_get_contents('php://input');
$data    = json_decode($rawBody, true);

// Верификация подписи (HMAC-SHA256)
$signature = hash_hmac('sha256', $rawBody, YANDEX_WEBHOOK_SECRET);
if ($signature !== $_SERVER['HTTP_X_YANDEX_SIGN'] ?? '') {
    http_response_code(403);
    exit;
}

// Маппинг полей формы Директа в поля лида Битрикс24
$leadData = [
    'TITLE'      => 'Лид из Яндекс.Директ: ' . ($data['campaign_name'] ?? ''),
    'NAME'       => $data['answers']['name']  ?? '',
    'PHONE'      => [['VALUE' => $data['answers']['phone'] ?? '', 'VALUE_TYPE' => 'WORK']],
    'EMAIL'      => [['VALUE' => $data['answers']['email'] ?? '', 'VALUE_TYPE' => 'WORK']],
    'SOURCE_ID'  => 'ADVERTISEMENT',
    'SOURCE_DESCRIPTION' => 'Яндекс.Директ',
    // UTM-метки из параметров формы
    'UF_CRM_UTM_SOURCE'   => $data['utm_source']   ?? 'yandex',
    'UF_CRM_UTM_MEDIUM'   => $data['utm_medium']   ?? 'cpc',
    'UF_CRM_UTM_CAMPAIGN' => $data['utm_campaign'] ?? $data['campaign_id'] ?? '',
    'UF_CRM_UTM_TERM'     => $data['utm_term']     ?? '',
    'UF_CRM_AD_ID'        => $data['ad_id']        ?? '',
    'UF_CRM_CAMPAIGN_ID'  => $data['campaign_id']  ?? '',
];

// Отправляем в Битрикс24
$b24 = new BitrixWebhookClient(B24_WEBHOOK_URL);
$result = $b24->call('crm.lead.add', ['FIELDS' => $leadData, 'PARAMS' => ['REGISTER_SONET_EVENT' => 'Y']]);

Альтернатива: Leads API Директа

Если лид-форма не поддерживает вебхук (старые формы) — используем polling через Яндекс.Директ API:

// Cron каждые 5 минут: проверяем новые лиды
public function importNewLeads(): void
{
    $token = YANDEX_OAUTH_TOKEN;
    $lastImportTime = $this->getLastImportTime(); // из Redis/файла

    $response = $this->yandexApiRequest('GetLeads', [
        'SelectionCriteria' => [
            'DateTimeRange' => [
                'From' => $lastImportTime->format('Y-m-d\TH:i:sP'),
                'To'   => (new DateTime())->format('Y-m-d\TH:i:sP'),
            ],
        ],
    ]);

    foreach ($response['Leads'] as $lead) {
        if (!$this->isAlreadyImported($lead['LeadId'])) {
            $this->createLeadInBitrix24($lead);
            $this->markAsImported($lead['LeadId']);
        }
    }

    $this->saveLastImportTime(new DateTime());
}

Идемпотентность критична — один и тот же лид не должен попасть в CRM дважды. Хранение уже импортированных ID в таблице или Redis.

Распределение лидов

После создания лида — автоматическое назначение ответственного через правила Битрикс24 (роботы и триггеры воронки) или через REST при создании:

'ASSIGNED_BY_ID' => $this->getResponsibleManager($data['campaign_id']),

Маппинг кампании Директа на менеджера хранится в конфигурационном файле или в пользовательских настройках в Битрикс24.

Дедупликация

Если пользователь заполнил форму дважды — лид создастся дважды. Базовая дедупликация: перед созданием лида проверяем наличие лида с тем же номером телефона за последние 24 часа:

$existing = $b24->call('crm.lead.list', [
    'filter' => ['PHONE' => $phone, '>=DATE_CREATE' => date('Y-m-d', strtotime('-1 day'))],
    'select' => ['ID'],
]);

if (!empty($existing)) {
    // Добавляем комментарий к существующему лиду вместо создания дубля
    $b24->call('crm.timeline.comment.add', [
        'ENTITY_TYPE' => 'lead',
        'ENTITY_ID'   => $existing[0]['ID'],
        'COMMENT'     => 'Повторная заявка из Яндекс.Директ: ' . $data['campaign_name'],
    ]);
    return;
}

Состав работ

  • Настройка вебхука в кабинете Директа или Leads API (OAuth, polling)
  • Разработка обработчика: верификация, маппинг полей, создание лида в Б24
  • Сохранение UTM-меток и параметров кампании в пользовательских полях
  • Дедупликация по телефону/email
  • Автораспределение ответственных
  • Тестирование на реальных формах, логирование ошибок

Сроки: 3–5 дней при готовой инфраструктуре. 1–2 недели с учётом настройки пользовательских полей Б24 и правил распределения.