wpforms.ru wordpress WPForms.ru

Подключение и интеграция с Битрикс24 через webhook

Интеграция WPForms с Битрикс24 через webhook позволяет автоматически передавать данные из форм на ваш сайт WordPress напрямую в CRM-систему, что значительно упрощает обработку заявок и ускоряет работу с клиентами. В этой статье подробно рассмотрим, как настроить такую связку, а также приведем примеры кода и полезные советы по решению типичных задач.

Что такое webhook и зачем он нужен для интеграции WPForms с Битрикс24

Webhook — это механизм, который позволяет автоматически отправлять данные с одного сервиса на другой при определенных событиях. В случае WPForms webhook срабатывает при отправке формы, и данные автоматически передаются на заранее заданный URL, которым в нашем случае будет адрес API Битрикс24.

Использование webhook вместо ручного экспорта или плагинов с ограниченным функционалом обеспечивает гибкость и надежность интеграции, а также позволяет добавлять кастомную обработку данных.

Преимущества webhook для интеграции:

  • Мгновенная передача данных в CRM;
  • Отсутствие задержек и необходимости ручных действий;
  • Возможность кастомной обработки и фильтрации данных перед отправкой;
  • Легкость масштабирования и поддержки.

Подготовка к интеграции: настройка webhook в Битрикс24

Для начала работы необходимо получить URL webhook в Битрикс24. Для этого:

  1. Зайдите в ваш аккаунт Битрикс24 с правами администратора.
  2. Перейдите в раздел «Приложения» или «Интеграции».
  3. Создайте входящий webhook с правами на добавление лидов или нужных сущностей.
  4. Скопируйте сгенерированный URL, который будет выглядеть примерно так: https://yourdomain.bitrix24.ru/rest/1/xxxxxxxxxx/crm.lead.add.json

Этот URL вы будете использовать для передачи данных из WPForms.

Настройка WPForms: добавление отправки данных на webhook Битрикс24

WPForms не имеет встроенного функционала для отправки данных на произвольные webhook, но это можно реализовать с помощью хука wpforms_process_complete — он вызывается после успешной отправки формы.

Ниже пример кода для functions.php вашей темы или в виде отдельного плагина, который отправляет данные формы в Битрикс24:

add_action('wpforms_process_complete', 'wpforms_wpformsru_send_to_bitrix24', 10, 4);
function wpforms_wpformsru_send_to_bitrix24($fields, $entry, $form_data, $entry_id) {
    $url = 'https://yourdomain.bitrix24.ru/rest/1/xxxxxxxxxx/crm.lead.add.json';

    // Формируем массив с данными для лида
    $postData = [
        'fields' => [
            'TITLE' => 'Заявка с сайта',
            'NAME' => isset($fields[1]['value']) ? $fields[1]['value'] : '', // Имя
            'PHONE' => [['VALUE' => isset($fields[2]['value']) ? $fields[2]['value'] : '', 'VALUE_TYPE' => 'WORK']],
            'EMAIL' => [['VALUE' => isset($fields[3]['value']) ? $fields[3]['value'] : '', 'VALUE_TYPE' => 'WORK']],
            'COMMENTS' => isset($fields[4]['value']) ? $fields[4]['value'] : '',
        ],
        'params' => ['REGISTER_SONET_EVENT' => 'Y']
    ];

    $args = [
        'body' => json_encode($postData),
        'headers' => ['Content-Type' => 'application/json'],
        'method' => 'POST',
        'timeout' => 15
    ];

    $response = wp_remote_post($url, $args);

    if (is_wp_error($response)) {
        error_log('Ошибка отправки данных в Битрикс24: ' . $response->get_error_message());
    } else {
        $code = wp_remote_retrieve_response_code($response);
        if ($code != 200) {
            error_log('Битрикс24 вернул код ошибки: ' . $code);
        }
    }
}

Обратите внимание, что в массиве $fields ключи (1, 2, 3, 4) — это ID полей вашей формы WPForms. Их нужно заменить на реальные ID из вашей формы. Чтобы узнать ID поля, откройте редактор формы и наведите курсор на поле — в URL или настройках отобразится ID.

Обработка ошибок и логирование

В коде предусмотрен простой лог ошибок через error_log, что полезно для отладки. При необходимости можно расширить обработку, например, отправлять уведомления администратору.

Расширение функционала: условная отправка данных в Битрикс24

В некоторых случаях нужно отправлять данные только если выполнены определённые условия, например, выбран определённый вариант в форме. Это легко реализуется, добавив проверку внутри функции:

if (isset($fields[5]['value']) && $fields[5]['value'] === 'Интересует услуга A') {
    // Отправляем данные в Битрикс24
}

Таким образом, можно настроить интеграцию под любые бизнес-процессы, исключив лишние заявки из CRM.

Поддержка и альтернативы: плагины для интеграции WPForms с Битрикс24

Если вы хотите более простой способ без программирования, существуют готовые плагины для интеграции WPForms и Битрикс24, например:

  • WPForms Bitrix24 Integration — простой и удобный плагин для передачи данных из форм в CRM;
  • Другие решения на WPSHOP.ru с поддержкой кастомных webhook;

Однако использование собственного кода даёт больше контроля и гибкости для нестандартных задач.

Советы по отладке и безопасности при интеграции WPForms и Битрикс24

Чтобы интеграция работала стабильно и была защищена, обратите внимание на следующие моменты:

  • Проверяйте корректность URL webhook и права доступа в Битрикс24.
  • Логируйте ошибки и исключения, чтобы быстро реагировать на сбои.
  • Защищайте функцию отправки от повторных вызовов или спама, используя nonce или дополнительные проверки.
  • Регулярно обновляйте WordPress, WPForms и связанный код.

Такие меры помогут избежать потери данных и сбоев в работе CRM.

Пример улучшенной проверки данных формы перед отправкой:

if (empty($fields[1]['value']) || empty($fields[2]['value'])) {
    return; // Прекращаем выполнение, если обязательные поля пусты
}

Используйте это как дополнительный фильтр для повышения надежности.

×
День SEO
Время сделать подарок своему WordPress!
-20% на премиум

шаблоны и плагины

Порадуй свой сайт ⋙