Интеграция WPForms с Битрикс24 через webhook позволяет автоматически передавать данные из форм на ваш сайт WordPress напрямую в CRM-систему, что значительно упрощает обработку заявок и ускоряет работу с клиентами. В этой статье подробно рассмотрим, как настроить такую связку, а также приведем примеры кода и полезные советы по решению типичных задач.
Что такое webhook и зачем он нужен для интеграции WPForms с Битрикс24
Webhook — это механизм, который позволяет автоматически отправлять данные с одного сервиса на другой при определенных событиях. В случае WPForms webhook срабатывает при отправке формы, и данные автоматически передаются на заранее заданный URL, которым в нашем случае будет адрес API Битрикс24.
Использование webhook вместо ручного экспорта или плагинов с ограниченным функционалом обеспечивает гибкость и надежность интеграции, а также позволяет добавлять кастомную обработку данных.
Преимущества webhook для интеграции:
- Мгновенная передача данных в CRM;
- Отсутствие задержек и необходимости ручных действий;
- Возможность кастомной обработки и фильтрации данных перед отправкой;
- Легкость масштабирования и поддержки.
Подготовка к интеграции: настройка webhook в Битрикс24
Для начала работы необходимо получить URL webhook в Битрикс24. Для этого:
- Зайдите в ваш аккаунт Битрикс24 с правами администратора.
- Перейдите в раздел «Приложения» или «Интеграции».
- Создайте входящий webhook с правами на добавление лидов или нужных сущностей.
- Скопируйте сгенерированный 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; // Прекращаем выполнение, если обязательные поля пусты
}Используйте это как дополнительный фильтр для повышения надежности.