Contact Form 7 — один из самых популярных плагинов для создания форм обратной связи в WordPress. Но часто возникает задача не просто получать сообщения на почту, а автоматически отправлять данные формы в CRM систему для удобного управления лидами и клиентами. В этом руководстве мы подробно рассмотрим, как реализовать интеграцию Contact Form 7 с CRM через Webhook и PHP, включая примеры кода и полезные рекомендации.
Почему важна интеграция Contact Form 7 с CRM
Автоматическая отправка данных из формы в CRM позволяет:
- Уменьшить количество ручной работы по переносу контактов;
- Скорее реагировать на заявки и повышать конверсию;
- Автоматизировать процессы продаж и маркетинга;
- Собрать подробную статистику и аналитику по лидам.
Сам Contact Form 7 не имеет встроенного функционала для работы с CRM, но его гибкость и наличие хуков позволяют легко расширять возможности.
Обзор способов интеграции Contact Form 7 с CRM
Основные варианты интеграции:
- Использование Webhook — отправка POST-запроса с данными формы;
- Прямое взаимодействие через API CRM с помощью PHP;
- Применение сторонних плагинов-интеграторов;
- Использование сервисов автоматизации типа Zapier, Integromat.
В этой статье сосредоточимся на первом и втором способах с примерами кода для WordPress.
Настройка отправки данных Contact Form 7 через Webhook
Contact Form 7 поддерживает возможность выполнения кастомных действий после успешной отправки формы с помощью хука wpcf7_mail_sent. Это идеальное место для отправки данных в CRM.
Пример функции отправки данных через wp_remote_post
Добавим в файл functions.php вашей темы следующий код:
function contactform7ru_send_to_crm($contact_form) {
$submission = WPCF7_Submission::get_instance();
if (!$submission) {
return;
}
$posted_data = $submission->get_posted_data();
// Пример данных для CRM
$crm_data = array(
'name' => isset($posted_data['your-name']) ? sanitize_text_field($posted_data['your-name']) : '',
'email' => isset($posted_data['your-email']) ? sanitize_email($posted_data['your-email']) : '',
'phone' => isset($posted_data['your-phone']) ? sanitize_text_field($posted_data['your-phone']) : '',
'message' => isset($posted_data['your-message']) ? sanitize_textarea_field($posted_data['your-message']) : '',
);
$response = wp_remote_post('https://example-crm.ru/api/leads', array(
'method' => 'POST',
'headers' => array('Content-Type' => 'application/json'),
'body' => json_encode($crm_data),
'timeout' => 15,
));
if (is_wp_error($response)) {
error_log('ContactForm7RU: Ошибка отправки в CRM - ' . $response->get_error_message());
} else {
error_log('ContactForm7RU: Данные успешно отправлены в CRM');
}
}
add_action('wpcf7_mail_sent', 'contactform7ru_send_to_crm');
Этот код берет данные из формы, формирует массив для CRM и отправляет JSON-запрос методом POST на API вашей CRM. В примере URL https://example-crm.ru/api/leads замените на адрес своего API.
Обработка ошибок и логирование
Очень важно обработать возможные ошибки при отправке. В коде выше мы используем is_wp_error для проверки и выводим ошибки в лог WordPress через error_log. Для продакшена лучше реализовать хранение ошибок в отдельном файле или в админке сайта.
Отладка и тестирование
Для теста интеграции:
- Настройте форму с необходимыми полями (имя, email, телефон и сообщение);
- Проверьте корректность URL и API ключей в коде;
- Отправьте тестовую заявку и проверьте логи WordPress;
- Убедитесь, что данные появились в CRM.
Использование плагинов для интеграции Contact Form 7 с CRM
Если вам не хочется писать код, можно воспользоваться готовыми решениями. Вот несколько популярных плагинов:
- Contact Form 7 - Zoho CRM Integration — отправка заявок в Zoho;
- Contact Form 7 Salesforce Integration — для Salesforce;
- FluentCRM — расширенная CRM с интеграцией форм;
- WP Fusion — интеграция с множеством CRM систем.
Но учтите, что у бесплатных версий часто ограниченный функционал, и для сложных задач лучше писать кастомные решения.
Расширение функционала: отправка файлов и кастомные поля
Иногда нужно отправлять в CRM не только текст, но и загруженные пользователем файлы или динамические поля. Для этого:
- Используйте
WPCF7_Submission::uploaded_files()для доступа к файлам; - Добавьте обработку файлов, например, загрузку на сервер CRM или передачу URL;
- Расширьте массив
$crm_dataнужными полями; - Обязательно обработайте безопасность — проверяйте и фильтруйте данные.
Пример получения загруженных файлов
function contactform7ru_send_files_example($contact_form) {
$submission = WPCF7_Submission::get_instance();
if (!$submission) {
return;
}
$uploaded_files = $submission->uploaded_files();
foreach ($uploaded_files as $name => $path) {
// Например, загрузить файл на CRM или получить URL
// Здесь можно реализовать код для отправки файлов
}
}
add_action('wpcf7_mail_sent', 'contactform7ru_send_files_example');
Практические советы для надежной работы интеграции
- Используйте асинхронную отправку, чтобы не замедлять пользователю ответ формы;
- Добавьте повторные попытки отправки при ошибках;
- Используйте безопасные методы хранения ключей API — не в открытом коде;
- Тестируйте интеграцию на staging-сервере перед запуском;
- Документируйте все изменения и сохраняйте резервные копии.
Заключение
Интеграция Contact Form 7 с CRM системой значительно упрощает работу с клиентами и автоматизирует бизнес-процессы. Используя хуки плагина и стандартные функции WordPress, вы можете построить собственный надежный механизм передачи данных. Если нужна помощь с доработкой, рекомендуем ознакомиться с профессиональными плагинами на WPShop.ru.