Інтеграція веб-форм 1С-Бітрікс з CRM Бітрікс24
Ми часто бачимо одну й ту саму біль: на сайті налаштована зручна форма зворотного зв'язку, але менеджери працюють в Бітрікс24, а заявки приходять на пошту. Дані губляться, воронка продажів не будується, аналітика відсутня. Наприклад, співробітник заповнює форму, а менеджер дізнається про нього через годину — лід застарів. Без автоматичної передачі лідів кожен дзвінок або заявка — ручна робота, а конкуренти вже в CRM. Оцінки показують: втрати заявок можуть сягати 30%. Наша компанія наша команда спеціалізується на інтеграціях 1С-Бітрікс та Бітрікс24 вже понад 5 років, виконала 100+ проектів.
Стандартний модуль веб-форм 1С-Бітрікс (bitrix:main.feedback, bitrix:form.result.new) зберігає результати в таблиці b_form_result і відправляє сповіщення на пошту. Без інтеграції з CRM дані залишаються в базі сайту — менеджери не бачать їх в Бітрікс24, історія комунікацій не будується. Згідно з офіційною документацією 1С-Бітрікс, подія OnAfterResultAdd модуля form дозволяє перехопити дані результату до відправки сповіщення.
Чому нативні веб-форми кращі за CRM-форми?
CRM-форми Бітрікс24 простіші в налаштуванні, але їх розміщення на сторонньому домені (b24-cdn.bitrix24.by) негативно впливає на SEO та швидкість завантаження. Крім того, ви не можете кастомізувати зовнішній вигляд під дизайн сайту без iframe-обгортки. Нативна веб-форма залишається на вашому домені, передає всі UTM-мітки та cookie, а стилі повністю контролюються шаблоном сайту. За нашим досвідом, конверсія таких форм вища на 20–30%, тобто нативні форми конвертують у 1.3 рази краще, ніж CRM-форми.
Як налаштувати інтеграцію: 6 кроків
- Аудит поточних форм і CRM — визначаємо, які форми відправляють дані, і які поля потрібні в CRM.
-
Створення обробника — підписуємося на подію
OnAfterResultAddвinit.php. - Мапінг полів — налаштовуємо відповідність полів форми та полів ліда в конфігураційному масиві.
- Створення користувацьких полів — через REST API
crm.userfield.addдля нестандартних даних. - Дедуплікація — перевіряємо існуючих лідів за email/телефоном перед створенням.
- Тестування та деплой — перевіряємо передачу, файли та бізнес-процеси.
Обробник результату веб-форми
Бітрікс надає подію OnAfterResultAdd модуля form. Підписуємося в init.php:
AddEventHandler('form', 'OnAfterResultAdd', function($formId, $resultId, $fields) { // Тільки для потрібних форм $targetForms = [3, 7, 12]; // ID форм: заявка, консультація, партнерство if (!in_array($formId, $targetForms)) return; $answers = CFormResult::GetDataByID($resultId, [], $arrResult); $mapped = mapFormAnswers($formId, $answers); $b24 = new B24Sender(getenv('B24_WEBHOOK_URL')); $b24->sendLead($mapped); }); Мапінг полів форми в поля ліда
Поля веб-форми зберігаються в b_form_field, відповіді — в b_form_result_answer. Зв'язок через FIELD_ID. Мапінг налаштовується в конфізі:
$formMapping = [ 3 => [ // форма «Заявка на дзвінок» 'q_name' => 'NAME', 'q_phone' => 'PHONE', 'q_comment' => 'COMMENTS', 'utm_source'=> 'UTM_SOURCE', ], 7 => [ // форма «Партнерство» 'q_company' => 'COMPANY_TITLE', 'q_contact' => 'NAME', 'q_email' => 'EMAIL', 'q_direction' => 'COMMENTS', ], ]; Кейс з нашої практики: багатокрокова форма заявки
З нашої практики — наш клієнт, сайт IT-інтегратора, форма заявки на проєкт: 4 кроки (тип проєкту, бюджет, терміни, контакти). Стандартний модуль веб-форм зберігає всі відповіді в b_form_result_answer. Задача: створити кваліфікований лід в Бітрікс24 із заповненими полями та правильною воронкою.
Рішення: кроки 1–3 зберігаються в сесію, на кроці 4 відправляється повна форма. В обробнику OnAfterResultAdd збираємо всі поля, створюємо лід з нестандартними полями CRM:
$leadFields = [ 'TITLE' => 'Проєкт: ' . $answers['project_type'], 'OPPORTUNITY' => $answers['budget_from'], // бюджет — в суму ліда 'CURRENCY_ID' => 'RUB', 'UF_CRM_PROJECT_TYPE' => $answers['project_type'], 'UF_CRM_DEADLINE_WEEKS' => $answers['deadline'], // UF_CRM_* — користувацькі поля ліда в Б24 ]; Користувацькі поля (UF_CRM_*) попередньо створюємо в Бітрікс24 через crm.userfield.add. Після створення ліда — автоматично запускаємо бізнес-процес в Б24 через bizproc.workflow.start. Це гарантує, що жодна заявка не загубиться. Інтеграція через REST API працює в 10 разів швидше, ніж ручне перенесення даних.
Як передати файли з форми в CRM?
Якщо форма містить поле завантаження файлу (техзавдання, бриф), файл потрібно передати в Бітрікс24. REST API crm.lead.add не підтримує бінарне завантаження напряму — використовуємо disk.folder.uploadfile для завантаження в «Диск» Бітрікс24, потім прикріплюємо до ліда через crm.activity.add з типом DOCUMENT. Файл з'являється в картці ліда, менеджер одразу бачить вкладення.
Дедуплікація лідів
Одна й та сама компанія нерідко заповнює форму декілька разів. Перевіряємо за email та телефоном перед створенням:
$existing = $b24->call('crm.duplicate.findByComm', [ 'type' => 'EMAIL', 'values' => [$email], 'entity_type' => 'LEAD', ]); if (!empty($existing['result']['LEAD'])) { // Додаємо активність до існуючого ліда, не створюємо новий $b24->call('crm.activity.add', [...]]); } Що входить в роботу
| Етап | Тривалість | Результат |
|---|---|---|
| Аудит поточних веб-форм та CRM | 1–2 год | Схема полів, список форм, вимоги |
| Налаштування обробника та мапінг | 3–5 год | Робочий обробник для 1 форми |
| Створення користувацьких полів в CRM | 2–4 год | Поля для нестандартних даних |
| Дедуплікація та логіка повторних звернень | 4–6 год | Захист від дублювання лідів |
| Передача файлів з форм | 4–6 год | Файли прикріплюються до ліда |
| Запуск бізнес-процесів за лідом | 3–5 год | Автоматична обробка заявок |
| Документація та навчання | 1–2 год | Інструкція для адміністратора |
Приклад налаштування користувацьких полів
Припустимо, потрібно передати тип проєкту та бажані терміни. Через REST API створюємо поля `UF_CRM_PROJECT_TYPE` (список) та `UF_CRM_DEADLINE_WEEKS` (число). В обробнику мапінг на ці поля.Всі роботи виконуються з гарантією — ми відповідаємо за стабільність інтеграції та безперебійну передачу даних. Окупність інтеграції — від 2 до 4 місяців залежно від навантаження. Економія часу менеджерів — до 2 годин щоденно, що при середній зарплаті $15/год дає економію до $900 на місяць. Вартість базової інтеграції — від $500. Якщо у вас залишилися питання, зв'яжіться з нами — оцінимо проєкт за 1 день і запропонуємо оптимальне рішення. Замовте інтеграцію з гарантією якості. Ми — наша команда, з досвідом роботи понад 5 років та 100+ успішних інтеграцій.







