Настройка автоматического импорта лидов из Facebook Ads в Битрикс24
Теряете лидов из Facebook Lead Ads? Ручной экспорт CSV — это задержка от 30 минут до суток. За это время конкуренты успевают перехватить клиента: шансы на дозвон падают в 10 раз уже через 5 минут после заполнения формы. Каждый потерянный лид — это упущенная выручка, которая может исчисляться тысячами рублей. Наша интеграция доставляет лид в CRM за 1–2 секунды. Вы получаете горячий контакт мгновенно, а не когда он остыл.
Автоматизация решает эту проблему целиком: исключает человеческий фактор, ошибки при копировании и пропущенные лиды. Мы — сертифицированные специалисты Битрикс с 10+ годами опыта и более 50 успешных интеграций. Ниже — как именно мы это делаем и на чём построен процесс.
Автоматизация импорта Сравнение ручного и автоматического импорта
| Критерий | Ручной CSV | Автоматический вебхук |
|---|---|---|
| Скорость доставки | от 30 минут до 1 дня | 1–2 секунды |
| Обработка ошибок | Вручную | Логирование и ретраи |
| Дедупликация | Отсутствует | По телефону/email |
| Затраты времени | 15 минут в день | 0 минут |
Автоматизация сокращает время обработки лида с 30 минут до 2 секунд. Это в 900 раз быстрее, чем ручной импорт. Дополнительный бонус — полная прозрачность: каждый лид отслеживается, ошибки фиксируются и алертятся.
Работа вебхука Facebook Lead Ads
Facebook передаёт Lead Gen Webhooks — push-уведомления о новых лидах. Задержка не более 1–2 секунд. Процесс состоит из трёх этапов: настройка вебхука, верификация и обработка.
Настройка вебхука:
- В Facebook Developers создать приложение, подключить
leads_retrievalиpages_manage_metadatapermissions. - В настройках вебхука указать URL и Verify Token.
- Подписаться на событие
leadgenдля нужной страницы.
Верификация вебхука Facebook (GET-запрос):
if ($_GET['hub_mode'] === 'subscribe' &&
$_GET['hub_verify_token'] === FB_VERIFY_TOKEN) {
echo $_GET['hub_challenge'];
exit;
}
Обработка входящего лида (POST-запрос):
$payload = json_decode(file_get_contents('php://input'), true);
$signature = 'sha256=' . hash_hmac('sha256',
file_get_contents('php://input'),
FB_APP_SECRET
);
if ($signature !== $_SERVER['HTTP_X_HUB_SIGNATURE_256']) {
http_response_code(403);
exit;
}
foreach ($payload['entry'] as $entry) {
foreach ($entry['changes'] as $change) {
if ($change['field'] === 'leadgen') {
$leadgenId = $change['value']['leadgen_id'];
$formId = $change['value']['form_id'];
$adId = $change['value']['ad_id'];
$campaignId = $change['value']['campaign_id'];
$leadData = $this->getLeadData($leadgenId);
$this->createBitrix24Lead($leadData, [
'ad_id' => $adId,
'campaign_id' => $campaignId,
'form_id' => $formId,
]);
}
}
}
http_response_code(200);
Получение данных лида через Graph API
Webhook передаёт только leadgen_id. Полные данные запрашиваем отдельно:
public function getLeadData(string $leadgenId): array
{
$response = $this->fbGraph->get(
"/{$leadgenId}?fields=field_data,created_time,ad_id,form_id",
$this->pageAccessToken
);
$lead = $response->getDecodedBody();
$fields = [];
foreach ($lead['field_data'] as $field) {
$fields[$field['name']] = $field['values'][0] ?? '';
}
return [
'name' => $fields['full_name'] ?? $fields['first_name'] . ' ' . $fields['last_name'],
'phone' => $fields['phone_number'] ?? $fields['phone'] ?? '',
'email' => $fields['email'] ?? '',
'custom' => $fields,
'created_at' => $lead['created_time'],
];
}
Имена полей в Facebook Lead Ads зависят от настройки формы — стандартные поля называются full_name, email, phone_number, кастомные — произвольно. Маппинг настраивается под каждую форму.
Создание лида в Битрикс24
public function createBitrix24Lead(array $leadData, array $fbMeta): void
{
$fields = [
'TITLE' => 'Facebook Lead Ads: ' . date('d.m.Y H:i'),
'NAME' => $leadData['name'],
'PHONE' => [['VALUE' => $leadData['phone'], 'VALUE_TYPE' => 'WORK']],
'EMAIL' => [['VALUE' => $leadData['email'], 'VALUE_TYPE' => 'WORK']],
'SOURCE_ID' => 'WEB',
'SOURCE_DESCRIPTION' => 'Facebook Lead Ads',
'UF_CRM_FB_AD_ID' => $fbMeta['ad_id'],
'UF_CRM_FB_CAMPAIGN_ID' => $fbMeta['campaign_id'],
'UF_CRM_FB_FORM_ID' => $fbMeta['form_id'],
'UF_CRM_FB_LEAD_TIME' => $leadData['created_at'],
];
if (!empty($leadData['custom'])) {
$customText = implode("\n", array_map(
fn($k, $v) => "{$k}: {$v}",
array_keys($leadData['custom']),
array_values($leadData['custom'])
));
$fields['COMMENTS'] = $customText;
}
$this->b24->call('crm.lead.add', [
'FIELDS' => $fields,
'PARAMS' => ['REGISTER_SONET_EVENT' => 'Y'],
]);
}
Надёжность доставки лидов
Вебхуки Facebook иногда не доставляются из-за сетевых проблем или сбоев платформы. Резервный механизм — polling каждые 30 минут через GET /{page_id}/leadgen_forms/{form_id}/leads?since={timestamp}. Все ошибки логируются, мы настраиваем алерты. Гарантируем, что ни один лид не будет потерян.
Ретрай-механизм работает следующим образом: при ошибке от Битрикс24 (5xx, таймаут) входящий запрос сохраняется во временную таблицу с отметкой «не обработан». Отдельный cron-агент каждые 10 минут перебирает необработанные записи и повторяет создание лида. Цикл не прекращается до успешного ответа или истечения суток — после чего ошибка фиксируется в лог-файле и уходит алерт на почту ответственного.
Логирование и мониторинг
Без мониторинга сбой может остаться незамеченным на несколько часов. Мы настраиваем:
- Запись каждого входящего вебхука в таблицу с полями: дата,
leadgen_id, статус (ок / ошибка), текст ответа Битрикс24. - Дашборд в Битрикс24: количество созданных лидов из Facebook за сутки / неделю в разрезе форм.
- Email-алерт при отсутствии лидов из Facebook в рабочее время дольше 2 часов.
Прозрачность позволяет быстро выявить причину спада — отключение вебхука на стороне Facebook, истечение токена страницы или проблему на сервере.
Дедупликация в импорте лидов
Без дедупликации один клиент может оставить несколько заявок, что засоряет CRM. Мы настраиваем поиск дублей по телефону или email. Если лид уже существует, новый не создаётся — только обновляется текущий. Это особенно важно при ретаргетинговых кампаниях, когда один пользователь видит рекламу несколько раз и заполняет форму повторно. Дополнительно: при повторном обращении в таймлайн существующего лида автоматически добавляется запись с названием кампании и датой — менеджер видит полную историю касаний без ручного поиска.
| Критерий | Без дедупликации | С дедупликацией |
|---|---|---|
| Дубли в CRM | 15% лидов | <0.5% |
| Время на ручную очистку | 2 часа в неделю | 0 минут |
| Точность аналитики | Низкая | Высокая |
Что входит в услугу
- Создание Facebook App и настройка прав
leads_retrieval. - Настройка вебхука Lead Ads для страниц.
- Разработка обработчика: верификация, Graph API, маппинг полей.
- Создание пользовательских полей в Битрикс24 для Facebook-атрибутов.
- Дедупликация по телефону/email.
- Резервный polling и логирование ошибок.
- Документация и обучение вашей команды.
Наши инженеры имеют сертификацию Битрикс и 10+ лет опыта в интеграциях. Мы гарантируем стабильную работу интеграции и предоставляем поддержку после запуска.
Сроки: от 1 до 2 недель (с учётом модерации Facebook App). Стоимость рассчитывается индивидуально. Типичная экономия составляет до 40 000 рублей в месяц за счёт сокращения ручного труда и повышения конверсии — лиды обрабатываются мгновенно, а не через час.
Подробнее о вебхуках — Facebook Lead Ads Webhooks.
Оценим ваш проект за 1 день. Свяжитесь с нами — получите консультацию и расчёт стоимости. Закажите настройку автоматического импорта лидов уже сегодня.







