Інтеграція веб-форм 1С-Бітрікс з CRM Бітрікс24

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Інтеграція веб-форм 1С-Бітрікс з CRM Бітрікс24
Середня
~1-2 тижні
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Інтеграція веб-форм 1С-Бітрікс з CRM Бітрікс24

Модуль веб-форм 1С-Бітрікс (bitrix:main.feedback, bitrix:form.result.new) зберігає результати в таблиці b_form_result і надсилає сповіщення на пошту. Без інтеграції з CRM дані залишаються в базі сайту — менеджери не бачать їх у Бітрікс24, історія комунікацій не будується.

Два підходи до інтеграції

Підхід 1. Модуль CRM-форм Бітрікс24 — хмарний інструмент, розміщує форму на піддомені Бітрікс24. Дані одразу потрапляють до CRM. Мінус: форма на сторонньому домені, SEO не допомагає, стилі не збігаються з сайтом.

Підхід 2. Нативні веб-форми + обробник — форма на сайті, при відправці результат записується до b_form_result і одночасно йде до Бітрікс24 через REST API. Це правильний підхід для production.

Обробник результату веб-форми

Бітрікс надає подію 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' => 'UAH',
    '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.

Файлові поля форми

Якщо форма містить поле завантаження файлу (технічне завдання, бриф), файл потрібно передати до Бітрікс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', [...]);
}
Завдання Трудовитрати
Налаштування обробника для 1 форми 3–5 год
Мепінг полів + користувацькі поля Б24 2–4 год
Дедублікація та логіка повторних звернень 4–6 год
Передача файлів із форм 4–6 год
Запуск бізнес-процесів по ліду 3–5 год