Автоматизація отримання заявок з Facebook у CRM
Втрачаєте лідів з Facebook Lead Ads? Ручний експорт CSV — це затримка від 30 хвилин до доби. За цей час конкуренти встигають перехопити клієнта: шанси на дзвінок падають в 10 разів вже через 5 хвилин після заповнення форми. Кожен втрачений лід — це упущена виручка, яка може обчислюватися тисячами гривень. Наша інтеграція доставляє лід в CRM за 1–2 секунди. Ви отримуєте гарячий контакт миттєво, а не коли він охолонув.
Наш автоматичний імпорт лідів з Facebook Lead Ads працює в реальному часі. Використовується HMAC-верифікація кожного вхідного запиту для забезпечення безпеки. Автоматичний імпорт в 900 разів кращий за ручний за швидкістю обробки ліда. Автоматизація вирішує цю проблему повністю: виключає людський фактор, помилки при копіюванні та пропущені ліди. Ми — сертифіковані спеціалісти Бітрікс з 10+ роками досвіду, понад 50 успішних інтеграцій та працюємо на ринку з 2014 року. Нижче — як саме ми це робимо і на чому побудований процес.
Чому автоматизація краща? Порівняння з ручним способом
| Критерій | Ручний CSV | Автоматичний вебхук |
|---|---|---|
| Швидкість доставки | від 30 хвилин до 1 дня | 1–2 секунди |
| Обробка помилок | Вручну | Логування та ретраї |
| Дедуплікація | Відсутня | За телефоном/email |
| Витрати часу | 15 хвилин на день | 0 хвилин |
Автоматизація скорочує час обробки ліда з 30 хвилин до 2 секунд, що в 900 разів швидше за ручний імпорт. Додатковий бонус — повна прозорість: кожен лід відстежується, помилки фіксуються та сповіщуються. Наприклад, при 500 лідах на місяць економія ручної праці складає близько 25 000 грн.
Як налаштувати вебхук Facebook Lead Ads?
Facebook передає Lead Gen Webhooks — push-сповіщення про нові ліди через OAuth 2.0 токени. Затримка не більше 1–2 секунд. Процес складається з трьох етапів: налаштування вебхука, верифікація та обробка.
Кроки налаштування
Крок 1: Створення додатка та налаштування прав
- У Facebook Developers створити додаток, підключити
leads_retrievalтаpages_manage_metadatapermissions. - У налаштуваннях вебхука вказати URL та Verify Token.
- Підписатися на подію
leadgenдля потрібної сторінки.
Крок 2: Верифікація вебхука (GET-запит)
if ($_GET['hub_mode'] === 'subscribe' &&
$_GET['hub_verify_token'] === FB_VERIFY_TOKEN) {
echo $_GET['hub_challenge'];
exit;
}
Крок 3: Обробка вхідного ліда (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. Повні дані запитуємо окремо через REST API:
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 та логування помилок.
- Документація та навчання вашої команди.
Вартість інтеграції — від 15 000 грн за базове налаштування. Типова економія становить до 40 000 грн на місяць за рахунок скорочення ручної праці та підвищення конверсії на 20%. Терміни: від 1 до 2 тижнів (з урахуванням модерації Facebook App).
Детальніше про вебхуки — Facebook Lead Ads Webhooks.
Оцінимо ваш проект за 1 день. Зв'яжіться з нами — отримайте консультацію та розрахунок вартості.







