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

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Интеграция веб-форм 1С-Битрикс с CRM Битрикс24
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1175
  • 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С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Интеграция веб-форм 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' => '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.

Файловые поля формы

Если форма содержит поле загрузки файла (техзадание, бриф), файл нужно передать в Битрикс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 ч