Оглавлениение
Многие владельцы сайтов на CMS WordPress уже задумывались как же связать сайт с CRM системой Битрикс 24? Чтобы ответить на данный вопрос, давайте рассмотрим интеграцию Contact Form 7 и Bitrix24.
Прежде всего рекомендую ознакомится со статьей «Битрикс24 лиды с сайта — автоматическое создание лидов» и затем продолжить изучение данной инструкции.
Как связать Contact Form 7 и Bitrix24?
И так, давайте более детально рассмотрим автоматическую передачу заявок в CRM Битрикс24 для одной из популярных CMS систем WordPress, а также не менее популярного для неё плагина для создания, получения и обработки лидов с сайта — Contact Form 7. Для этого на понадобится:
- Хук для перехвата введенных данных из Contact Form 7.
- Выбор подходящего способа передачи в Битрикс 24
- С помощью упрощенного Rest API
- PHP скрипт для интеграции при помощи упрощенного Rest API
- Объединение хука и PHP скрипта.
- При помощи входящего вебхука
- PHP скрипт для интеграции при входящего вебхука
- Объединение хука и PHP скрипта.
- С помощью упрощенного Rest API
- Внесение полученного кода в Вашу тему в файл
functions.php
Хук для перехвата введенных данных из Contact Form 7
Что такое хук? Хук — это технология перехвата вызова функций в сторонних процессах. Соответственно, так как Contact Form 7 — это сторонний плагин, то нам необходим хук для получения обрабатываемых там данных.
В нашем случаи хук для перехвата данных из Contact Form 7 в CMS WordPress будет выглядеть следующим образом:
add_action( 'wpcf7_mail_sent', 'your_wpcf7_mail_sent_function' ); function your_wpcf7_mail_sent_function( $contact_form ) { $title = $contact_form->title; $posted_data = $contact_form->posted_data; //Вместо "Контактная форма 1" необходимо указать название Вашей контактной формы if ('Контактная форма 1' == $title ) { $submission = WPCF7_Submission::get_instance(); $posted_data = $submission->get_posted_data(); //далее мы перехватывает введенные данные в Contact Form 7 //перехватываем поле [your-name] $firstName = $posted_data['your-name']; //перехватываем поле [your-message] $message = $posted_data['your-message']; //в данном примере рассмотрены два поля. Как перехватывать остальные поля //читайте ниже. }
В данном хуке приведены примеры по перехвату только двух полей: Имени и Сообщения.
Если Вам необходимо передавать больше полей или какие-либо отдельно созданные поля, то возникает вопрос где брать название $posted_data
?
Для того, чтобы найти названия для $posted_data
, Вам необходимо перейти в плагин Contact Form 7 — Контактные формы — «Интересующая контактная форма» — Шаблон/Письмо, где можно найти информацию о том, какие поля используются в Вашей форме.

Название $posted_data для хука Contact Form 7
Выбор подходящего способа передачи в Битрикс 24
В данной статье рассматривается два способа интеграции CF7 и Битрикс24:
- с помощью упрощенного Rest API;
- при помощи входящего вебхука в Битрикс24.
Из данных двух способов, я бы рекомендовал использовать интеграцию при помощи входящего вебхука в Битрикс24, так как данный способ более безопасный и более функциональный, чем интеграция при помощи упрощенного Rest API.
С помощью упрощенного Rest API
PHP скрипт упрощенного Rest API для отправки данных в Bitrix24
Где взять данный скрипт и как его настроить, вы можете узнать здесь «Автоматическое создание лидов в Битрикс24 через упрощенный Rest API».
Прежде чем указывать ваш логин и пароль в PHP скрипте, ознакомитесь, пожалуйста, с разделом «Логин и пароль пользователя Вашей CRM».
Объединение хука и PHP скрипта
Рассмотрев PHP скрипт упрощенного Rest API для отправки данных в Bitrix24 и Хук для перехвата введенных данных из Contact Form 7 теперь можно перейти к объединению данных двух функций. При этом необходимо будет учесть последовательность функций в коде, которая будет иметь следующий вид:
- вызов функции для перехвата данных;
- подключение к серверу CRM;
- авторизация в CRM;
- перехват данных из Contact Form 7;
- формирование параметров для создания лида в переменной
$postData = array
из Contact Form 7; - передача данных из Contact Form 7 в Bitrix24.
Таким образом мы получим код следующего вида:
// Вызываем функцию для перехвата данных add_action( 'wpcf7_mail_sent', 'your_wpcf7_mail_sent_function' ); function your_wpcf7_mail_sent_function( $contact_form ) { // Подключаемся к серверу CRM define('CRM_HOST', '[ваше_название].bitrix24.ru'); // Ваш домен CRM системы define('CRM_PORT', '443'); // Порт сервера CRM. Установлен по умолчанию define('CRM_PATH', '/crm/configs/import/lead.php'); // Путь к компоненту lead.rest // Авторизуемся в CRM под необходимым пользователем: // 1. Указываем логин пользователя Вашей CRM по управлению лидами define('CRM_LOGIN', 'login'); // 2. Указываем пароль пользователя Вашей CRM по управлению лидами define('CRM_PASSWORD', 'password'); // Перехватываем данные из Contact Form 7 $title = $contact_form->title; $posted_data = $contact_form->posted_data; // Вместо "Контактная форма 1" необходимо указать название вашей контактной формы if ('Контактная форма 1' == $title ) { $submission = WPCF7_Submission::get_instance(); $posted_data = $submission->get_posted_data(); // Далее перехватываем введенные данные в полях Contact Form 7: // 1. Перехватываем поле [your-name] $firstName = $posted_data['your-name']; // 2. Перехватываем поле [your-message] $message = $posted_data['your-message']; // Формируем параметры для создания лида в переменной $postData = array $postData = array( // Устанавливаем название для заголовка лида 'TITLE' => 'Название лида с сайта', 'NAME' => $firstName, 'COMMENTS' => $message, ); // Передаем данные из Contact Form 7 в Bitrix24 if (defined('CRM_AUTH')) { $postData['AUTH'] = CRM_AUTH; } else { $postData['LOGIN'] = CRM_LOGIN; $postData['PASSWORD'] = CRM_PASSWORD; } $fp = fsockopen("ssl://".CRM_HOST, CRM_PORT, $errno, $errstr, 30); if ($fp) { $strPostData = ''; foreach ($postData as $key => $value) $strPostData .= ($strPostData == '' ? '' : '&').$key.'='.urlencode($value); $str = "POST ".CRM_PATH." HTTP/1.0\r\n"; $str .= "Host: ".CRM_HOST."\r\n"; $str .= "Content-Type: application/x-www-form-urlencoded\r\n"; $str .= "Content-Length: ".strlen($strPostData)."\r\n"; $str .= "Connection: close\r\n\r\n"; $str .= $strPostData; fwrite($fp, $str); $result = ''; while (!feof($fp)) { $result .= fgets($fp, 128); } fclose($fp); $response = explode("\r\n\r\n", $result); $output = '<pre>'.print_r($response[1], 1).'</pre>'; } else { echo 'Connection Failed! '.$errstr.' ('.$errno.')'; } } }
При помощи входящего вебхука
PHP скрипт входящего вебхука для отправки данных в Bitrix24
PHP скрипт входящего вебхука и принцип его работы был рассмотрен ранее в статье «Автоматическое создание лидов в Битрикс24 при помощи входящего вебхука».
Для того чтобы активировать работу данного скрипта, необходимо создать вебхук в самом Битрикс24 и получить
[идентификатор_пользователя]
и[код_вебхука]
. Как это сделать можно узнать здесь: «Как создать входящий вубхук».Объединение хука и PHP скрипта
Рассмотрев PHP скрипт входящего вебхука для отправки данных в Bitrix24, хук для перехвата введенных данных из Contact Form 7, активировав входящий вебхук и получив
[идентификатор_пользователя]
и[код_вебхука]
, можно перейти к объединению данных двух функций. При этом необходимо будет учесть последовательность функций в коде, которая будет иметь следующий вид:- вызов функции для перехвата данных;
- перехват данных из Contact Form 7;
- формирование URL в переменной
$queryUrl
; - формирование параметров для создания лида в переменной
$queryData
; - обращение к Битрикс24 при помощи функции
curl_exec
;
Таким образом мы получим код следующего вида:
// Вызываем функцию для перехвата данных add_action( 'wpcf7_mail_sent', 'your_wpcf7_mail_sent_function' ); function your_wpcf7_mail_sent_function( $contact_form ) { // Перехватываем данные из Contact Form 7 $title = $contact_form->title; $posted_data = $contact_form->posted_data; //Вместо "Контактная форма 1" необходимо указать название вашей контактной формы if ('Контактная форма 1' == $title ) { $submission = WPCF7_Submission::get_instance(); $posted_data = $submission->get_posted_data(); // Далее перехватываем введенные данные в полях Contact Form 7: // 1. Перехватываем поле [your-name] $firstName = $posted_data['your-name']; // 2. Перехватываем поле [your-message] $message = $posted_data['your-message']; // Формируем URL в переменной $queryUrl для отправки сообщений в лиды Битрикс24, где // указываем [ваше_название], [идентификатор_пользователя] и [код_вебхука] $queryUrl = 'https://[ваше_название].bitrix24.ru/rest/[идентификатор_пользователя]/[код_вебхука]/crm.lead.add.json'; // Формируем параметры для создания лида в переменной $queryData $queryData = http_build_query(array( 'fields' => array( // Устанавливаем название для заголовка лида 'TITLE' => 'Название лида с сайта', 'NAME' => $firstName, 'COMMENTS' => $message, ), 'params' => array("REGISTER_SONET_EVENT" => "Y") )); // Обращаемся к Битрикс24 при помощи функции curl_exec $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_POST => 1, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => $queryUrl, CURLOPT_POSTFIELDS => $queryData, )); $result = curl_exec($curl); curl_close($curl); $result = json_decode($result, 1); if (array_key_exists('error', $result)) echo "Ошибка при сохранении лида: ".$result['error_description']."<br/>"; } }
Особенности для передачи номера телефона, email или мессенджера
При интеграции CF и Битрикс 24 с помощью входящего вебхука, необходимо учесть особенности передачи номера телефона, email или мессенджера. Что это за особенности, и как все-таки передавать данные параметры можно узнать в разделе «Учесть особенность для передачи номера телефона, email, мессенджера».
Внесение полученного кода в Вашу тему в файл functions.php
Теперь остается внести любой полученный код из перечисленных вариантов интеграции в functions.php
Вашей текущей темы на WordPress.
Для этого необходимо перейти в Внешний вид → Редактор → Функции темы.
Открыв файл functions.php
необходимо вставить полученный код в самом низу документа.
Вот и все. Интеграция Contact Form 7 и Bitrix24 завершена.
Основные ошибки интеграции
смотрите статью «Основные ошибки при интеграции Битрикс24 и сайта».
P.S
Если у Вас интернет-магазин на основе плагина Woocommerce, то рекомендую ознакомиться со статьей по интеграции Woocommerce и Bitrix24.
Владимир, спасибо большое за статью.
Но к сожалению у меня во время настройки интеграции возник ряд небольших трудностей.
Был бы благодарен в помощи.
1. Во время перехода по ссылке
****.bitrix24.ua/crm/configs/import/lead.php
выбивает ошибку{'error':'400','error_message':'Ошибка запроса'}
Добрый день, Артур
переход по прямой ссылки подразумевает под собой авторизацию под Вашей учетной записью и передачи полей с их значением с помощью
get
параметров. При попытки перехода по прямой ссылки без этих get параметров вы получите в любом случаи{'error':'400','error_message':'Ошибка запроса'}
.Для того, чтобы авторизация произошла именно под Вашей учетной записью необходимо добавить в
get
LOGIN и PASSWORD. Это можно сделать следующим образом:*****.bitrix24.ru/crm/configs/import/lead.php?LOGIN=*****&PASSWORD=******
, где
*****.bitrix24.ru
— домен в Вашей Б24;LOGIN
— логин от Вашей учетной записи;PASSWORD
— пароль от Вашей учетной записи.В этом случаи Вы авторизуетесь, но REST API выдаст ошибку:
'error':'400','error_message':'Не введено значение обязательного поля \"Название лида\"'
Для окончательного добавления лида по прямой ссылки, Вам необходимо передать всего одно обязательное значение для поля Заголовок. Это можно сделать передав значение TITLE с помощью
get
параметра:*****.bitrix24.ru/crm/configs/import/lead.php?LOGIN=*****&PASSWORD=******&TITLE=title_name_of_your_lead
, где
title_name_of_your_lead
— Ваше название лида.Вы можете передавать любые
get
параметры из Таблица параметров из соответствующих справочников Bitrix24Важно! Регистр
get
параметров должен быть верхним.Добрый день, Владимир! А про интеграцию WooCommerce c Bitrix24 не напишите пожалуйста? Был бы очень благодарен. Инфы в интернете вообще нет (
Добрый день, Никита
Написал 🙂 https://gettotop.ru/crm/integraciya-woocommerce-i-bitrix24/
Я надеюсь на то, что Вы будите делиться ей в сети интернет 😉
Хорошая статья, а как сделать что бы из нескольких форм передавалось?
Добрый день, Олег
для этого можно использовать обычную конструкцию
if..elseif
:Владимир, почему-то неудаётся добавить код в функции темы.
Пишет: Что-то пошло не так. Внесённые изменения могли не сохраниться. Пожалуйста, попробуйте ещё раз. Также есть вероятность, что вам придётся вручную исправить и загрузить файл через FTP
Пробовал через FTP
Сайт слетает.
Подскажите что делаю не так.
Плагины пробовал отключать, чтобы не было никакого резонанса.
Тема — Astra
Добрый день, Артур
У Вас ошибка в синтаксисе. Где-то отсутствует кавычка, или запятая, или точка с запятой, или что-то в этом духе.
Проверьте внимательно код и обратите внимание на 173 строку. Скорее всего там ошибка.
я конечно не гуру и не чего не берусь утверждать, но мне кажется что else (‘Контактная форма 2’ == $title ) { заместо { должно быть ; , в противном случае интерпретатор выдаст ошибку. Тойсть должно получится else (‘Контактная форма 2’ == $title ) ;
//остальной код
}
Олег, правильный вариант ниже
Есть возможность увидеть полный код? Я где-то накосячил и не могу найти где. Пожалуйста.
Добрый день, Алексей
вот пример для реализации отправки лидов для двух форм
Добрый! Спасибо большое за статью! Все работает!
Спасибо за статью, но…не работает. Как можно найти ошибку? Вроде все сделал как сказано.
А в самой битрикс никаких действий не нужно делать, лиды должны сразу во вкладке CRM отображаться?
Добрый день, Алексей
в самом битрикс 24 никаких действий производить не нужно, лиды там появляются автоматически без предварительных настроек.
К сожалению, мне сложно диагностировать вашу настройку без визуального ознакомления.
Вот перечень распространенных ошибок:
Владимир, буду очень благодарен, если взглянете одним глазком на код [ссылка заблокирована по решению администрации сайта]
Что может быть не так?
На первый взгляд все выглядит корректно.
Проверьте, пожалуйста, не сильно ли Вы ограничили пользователя в правах, которого указали в логине и пароле.
Я вообще администратор)
Алексей у меня тоже не работает код для двух форм, у Вас получилось настроить?
Добрый день, все работает, а как передать ютм-метки, по каким параметрам, поскажите пожалуйста)
Добрый день, Андрей
Шорткоды плагина Dynamic Text Extension:
[dynamichidden dynamicname «CF7_GET key=’get_name'»]
[dynamichidden dynamicname «CF7_POST key=’foo'»]
[dynamichidden dynamicname «CF7_bloginfo show=’url'»]
[dynamichidden dynamicname «CF7_get_post_var key=’title'»]
[dynamichidden dynamicname «CF7_get_post_var key=’slug'»]
[dynamichidden dynamicname «CF7_URL»]
[dynamichidden dynamicname «CF7_get_custom_field key=’name_field'»]
[dynamichidden dynamicname «CF7_get_current_user»]
[dynamichidden dynamicname «CF7_referrer»]
Добрый день, благодарю за статью. Подскажите как передать UTM Метки в нужные поля UTM Sourse, UTM Medium, UTM Campain, UTM Term
Добрый день, Андрей
Добрый день.
Значения введенных переменных (телефон и т.п.) передаются, но значения utm меток — нет.
У меня тоже ничего не передаёт ни через рест апи ни через хук
Добрый день, Александр
смотрите статью «Основные ошибки при интеграции»
Статья просто топовая. Мне очень понравилась. Пока правда не делал. Планирую вот заняться вечерком. Но на первый взгляд написано максимально грамотно. Как все сделаю, еще раз отпишусь. Спасибо.
Владимир,а как UTM метки добавить и передать?
Добрый день, Иван
на данный вопрос уже давал ответ. Смотрите, пожалуйста, здесь.
Спасибо большое за код 🙂
Не подскажете? Как сделать передачу значения
value
выбранногоcheckbox
?Добрый вечер
Огромное спасибо за статью!
Подскажите, есть ли возможность кроме обычных полей передавать файлы?
Красиво разжовал. У меня вопрос, откуда такие умные люди берутся?
Здравствуйте!
Большое спасибо за инструкцию, всё работает. Себе ещё добавил назначение ответственного.
Не подскажите, как назначать ответственного поочереди на 2-х менеджеров, например.
Привет! Спасибо за статью! У себя я добавил
"ASSIGNED_BY_ID" => 17
, чтобы ставить ответственного менеджера.17
— это номер пользователя в CRM который будет ответственным за созданный лид.Не хочу сделать ещё лучше. Если знаете, как сделать чтобы лид назначался рандомно двум/трём менеджерам? Или по очереди?
Добрый день, Константин
да, Вы добавили верный параметр для назначения ответственного —
ASSIGNED_BY_ID
Но для того, чтобы сделать рандомное назначение ответственного, вижу три варианта:
К примеру,
Таким образом, будет подставляться случайной ID из указанных для ответственных
Великолепно! Этот вариант мне подходит. Спасибо.
Не хватило знаний для того чтобы вставить в код
functions.php
.Можете показать пример кода полностью для вставки?
Столкнулся с такой же проблемой. Удалось ли вам ее решить?
Если у меня есть поле добавить файл.
Как мне передать файл в пользовательское поле битрикс24 с сf7 ?
Добрый день,
данный пример реализован с помощью POST запроса, где не хватает Curl, т.е связь в одностороннем порядке, необходимо реализовывать полную интеграцию с помощью api Битрикс24.
UPD
Добавил вариант интеграции при помощи входящего вебхука. С помощью данной интеграции можно передать файл.
Добрый день Владимир, тестирую вот этот кусок кода для двух форм.
Копирую точно с сайта, логин и пароль Админа битрикс24, тайтлы к формам указал те которые в коде.
Лиды не получаем (((
WP ругается:
Ваши изменения в коде PHP были отменены из за ошибки на строке 78 файла
wp-content/themes/emmet-lite/functions.php
. Исправьте и попробуйте пересохранить.syntax error, unexpected ';', expecting ',' or ')'
Вот эта строчка: $output = print_r($response[1];
Благодарю за ответ!!!
Добрый день, Алексей
тайтлы к формам необходимо указывать те, которые у Вас прописаны в административной части сайта.
И у Вас ошибка в коде. Строчка должна быть следующего вида:
Владимиру огромное спасибо! Наконец то все замоторилось))))
И все же код который приведен выше где на две формы вызывал ошибку. В нем в строке
$output = print_r($response[1];
} else {
не было закрывающей скобки и кавычек. Если б не комментарий выше, так бы и не разобрался.
Правильный код этой строчки приведен выше, с ним работает. Только копируйте внимательно. При копировании из комментария в буфере будет вот что
$output = ‘
‘.print_r($response[1], 1).’
1
‘.print_r($response[1], 1).’
‘;
хотя и так уже работало.
Подправьте руками самостоятельно чтобы получилось правильно как в примере комментом выше
Еще раз спасибо за вашу статью!
Добрый день, Ярослав
да, вы верно разобрались.
К сожалению, комментарии не поддерживают полноценную вставку кода и могут обрезать его часть.
Я рад, что у вас все получилось!
Спасибо за материал! НО, не происходит абсолютно никаких действий при отправке данных через форму (на почту все доходит), но в CRM не создается лид. В
functions.php
вставил код. Если переходить по прямой ссылке с GET-параметрами, то все формируется.Да не за что. Главное, чтобы вы разобрались и у вас все заработало.
Добрый день, что-то не работает, помогите, пожалуйста
Добрый день,
так как комментарии не поддерживают полноценную вставку кода мне сложно судить о его корректности.
Держите ссылку с адаптированным для вас кодом: gettotop.ru/share/muraha.txt. Не забудьте указать логин и пароль. Должно все работать.
Здесь вы можете ознакомится с перечнем основных ошибок при интеграции.
Спасибо за быстрый ответ! Но все равно не хочет схватывать данные, все перепрвоерил и данные создатея канала ввел. Не хочет передавать значения 🙁
1. Вставьте ссылку в адресную строку браузера:
*****.bitrix24.ru/crm/configs/import/lead.php?LOGIN=*****&PASSWORD=******&TITLE=test
Вместо звездочек укажите значения, где:
*****.bitrix24.ru
— домен в Вашей Б24;LOGIN
— логин от Вашей учетной записи;PASSWORD
— пароль от Вашей учетной записи.Если в CRM системе будет создан лид с названием «test», значит можно исключить проблему связанные с ошибкой в логине и пароле или правами пользователя.
2. Если проверка п.1 успешна, убедитесь что используете последнею версию CF7 и в названии формы, которую подставляете в скрипт.
3. Если используете плагины сохранения обращений из форм CF7 в БД, отключите их и протестируйте интеграцию.
Дело в том, что данные плагины могут менять hook’и CF7.
4. Если все это не помогло, то можете написать мне через форму обратной связи.
Посмотрим как решить ваши проблему.
Не работает, логин и пароль верный, как понять почему где ошибку может быть?
Здесь вы можете ознакомится с перечнем основных ошибок при интеграции.
Спасибо за разъяснения.
Подключился через вебхуки.
Имя, фамилию, отчество, комментарий передаёт прекрасно, а как только дело доходит до телефона и почты, так пусто.
Пришлите, пожалуйста, полный код обернутый в тег
pre
и принт скрин формы CF7Добрый день,
да, проблема действительно была. Способ ее решения вы можете найти в данном комментарии — ссылка.
Добрый день! Спасибо за статью!
Есть такой вопрос. То есть лид постоянно будет создаваться новый?
Добрый день!
да, с каждым новым обращением будет создаваться новый лид
Телефон и емайл не передается. Но имя и все такое передается успешно
Пришлите, пожалуйста, полный код обернутый в тег
pre
и принт скрин формы CF7Добрый день,
да, проблема действительно была. Способ ее решения вы можете найти в данном комментарии — ссылка.
У меня та же проблема
Скриншот: [ссылка заблокирована по решению администрации сайта]
Виталий, добрый день
спасибо большое за предоставленный код интеграции и скрин формы. Это помогло решить задачу.
Да, проблема действительно имеет место быть. Дело в том, что при выборе интеграции с помощью входящего вебхука (в отличии от упрощенного Rest API), такие параметры как телефон, электронный адрес и мессенджеры имеют множественные значения и другие поля по умолчанию: PHONE, EMAIL, IM. Поэтому для передачи данных значений необходимо передавать их в массиве. Пример,
, где
nX
— это одно значение (телефона или электронной почты), которое всегда начинается с 0.Даже если вы передаете всего лишь 1 номер телефона или адрес электронной почты, необходимо указывать его в массиве
n0
Поэтому ваш код будет иметь следующий вид:
Пожалуйста, отпишите после корректирвоки.
Вы очень подробно разобрали этот вопрос, теперь мне все понятно. Еще раз спасибо за это! Не подскажете, можно ли сделать автоматическое уведомление при создании нового лида? Как, например, если бы лид создавался через стандартную crm форму bitrix24
Речь про какие уведомления?
Звуковое уведомление в браузере и push в мобильном приложении. Это возможно сделать?
К сожалению, нет. Такое оповещение включить нельзя. Но можно настроить уведомление в telegram.
Может быть проблема не в коде, а в настройках bitrix24, может в правах доступа веб хука указать не только «CRM»?
Или проблема связана с темой? У меня тема Astra.
Странно, что все данные отравляются, а контакты нет.
Как в итоге исправить эту проблему?
Да, все получилось. Спасибо большое!
Владимир, почему-то не получается привязать несколько форм, при помощи веб хука.
Ошибка:
Ваши изменения в коде PHP были отменены из за ошибки на строке 204 (строка где написано
elseif
) файлаwp-content/themes/astra/functions.php
. Исправьте и попробуйте пересохранить.Код:
Помогите, пожалуйста!
Добрый день, Виталий
вы пропустили
:
в строчкахif(****) {
иelseif(****) {
Владимир, доброго времени суток! Настроил интеграцию, чтобы автоматически создавались сделки, а не лиды. Все работает, сделки создаются, контакт к сделке прикрепляется, одним словом все ок.
Но со стороны CF7 теперь возникла проблема: при нажатии на кнопку «отправить», возле формы появляется иконка крутящихся стрелочек, а уведомления, что форма отправлена нет.
То есть получается, что в глазах посетителя сайта отправка формы идет вечно и форма не работает. Но письмо на e-mail с введенными данными приходит и сделка в Битрикс24 тоже создается с нужными данными.
Пока что настроил на создание сделок только одну форму, остальные работают нормально.
Вот фрагмент кода в functions.php для этой формы:
[код заблокирован по решению администрации сайта]
Кеш удалял, пробовал на разных устройствах.
Добрый день, Виталий
код, конечно, у вас получился интересный =) и нагроможденный.
Не вижу причин создавать сразу все: и лид, и контакт, и сделку. Тем более, что из лида конвертируется контакт или сделка средствами Битрикс24.
А зависание CF7, скорее всего, происходит из-за того, что вы сначала создаете контакт в Б24, потом ожидаете его ID в ответе от CRM, чтобы создать сделку и привязать ее к нему.
Спасибо за статью! А как передать источник, что это лид с формы на сайте?
Не за что!
Для того, чтобы сообщить Битрикс24, что это лид с сайта используйте параметр
SOURCE_ID
со значениемWEB
. Пример,Почему то не предается поле «телефон», не могу понять почему, можете подсказать?
Добрый день,
да, конечно. Обратите, пожалуйста, внимание на комментарий.
В нем вы найдете ответ как решить проблему.
Спасибо огромное, работает
Добрый вечер, помогите пожалуйста, сделал через веб хуки, но при отправки формы в WP вылезает сообщение «Ошибка при сохранении лида: Method not found!» и соответственно лид не создается.
Владимир, подскажите, как передать поля адреса из woocomerce в строку адреса лида? Переменные не передает никакие значения, там скорее всего также нужно в массиве настройки передавать или я ошибаюсь?
Добрый день, Дмитрий
для передачи адреса в поля лидов Б24, смотрите таблицу параметров для лидов.
На примере интеграции woocomerce и Б24, часть кода для отправки данных в Б24 будет следующий:
Не работает так, пробовал, поле адреса остается пустым, пробовал создавать еще собственное поле с адресом, тоже не работает. В чем проблема не понятно. Есть какие нибудь другие способы сделать? только через вебхуки?
Если не раскладывать код, то в поле «Комментарий» у вас есть «Информация по доставке»?
Владимир я заметил что у меня поле «коментарий» вообще пропало, и его нет в списке стандартных полей! Как возможно восстановить данное поле? Раньше было данное поле, но я не помню точно, все ли данные оно передавало.
Добрый день.
2 лида почему-то падает в CRM. В чем может быть проблема?
Добрый день.
1. Подскажите пожалуйста, в чем может быть причина, что при повторной отправке лида с одинаковым Email и уже существующим Контактом с таким Email, лид автоматически не определяется как повторный и поле контакт не заполняется, но данные о имени и фамилии и email заполняются (и с него можно создать новый контакт). Заполнение необходимо выполнить вручную.
2. И еще вопрос про уведомления при создании лида (вы уже выше описывали что это не возможно) а может быть это возможно выполнить через бизнес-процесс.
Добрый день, Владислав
Ответ по второму вопросу: да, это возможно как через бизнес-процес, так и через роботов.
Ответ по первому вопросу: в настройка необходимо активировать контроль повторных лидов.
Спасибо мужик, спас!! Подключил уже херову тучу сайтов с contact form7 через rest api. А тут наткнулся на один, который зависал на выполнении этих функций, при выполнении скрипта feedback. И хер знает что с ним делать. Я не на столько силён, чтобы лезть в js-кишки прописанных библиотек.До пяти утра вот сидел, пробовал что-то поменять. Но помог только вариант отправки форм в лиды через вэб-хук! Респектуха-уважуха))
Статья супер. Спасибо огромное! Все настроил с помощью вебхука — работает.
А есть ли возможность заполнять «товар» в поле лида битрикса? Я не интернет-магазин, но товары использую, чтобы разделять услуги в лидах.
Добрый день, Артем
спасибо за вашу оценку и отзыв.
Для того, чтобы привязать товар к лиду необходимо:
$result = json_decode($result, 1);
получаемID
созданного лида следующим образом$leadID = $result["result"];
;$leadID = $result["result"];
необходимо к нему привязать товарную позицию с помощью следующего кодаТаким образом мы получим код следующего вида:
Здравствуйте все делаю согласно инструкции не создается лид, уже голову сломала.
Добрый день, Маргарита
упростите ваш код до одной формы. Если передача лидов заработает, то значит ошибка в конструкции для нескольких форм.
Спасибо огромное, статья очень полезная, но возникла проблема при использовании способа с вебхуком поля почему-то не заполняются, через RestAPI все работает кроме UTM меток.
Вот код:
Аналогичная проблема. По три раза код перепроверил. Даже в письме не приходит разобранный utm и url
Добрый день,
через RestAPI невозможно передать UTM значения. Они передаются только при помощи интеграции с входящим вебхуком.
Добрый день, Роман
у вас не заполняются все поля или какие-то отдельные? Кстати, реализация для передачи телефона и email у вас неверная. Как передавать для них значения смотрите здесь
Попробуйте, для начала упростить вашу конструкцию для одной формы. Если все заработает, то ошибка в конструкции для остальных форм.
Обращаю ваше внимание, что через RestAPI невозможно передать UTM значения. Они передаются только при помощи интеграции с входящим вебхуком.
А как поле с чекбоксом передавать?
Добрый день, Роман
чекбокс перехватывается и передается точно также как и другие поля в CF7, т.е вам необходимо в
$posted_data
указать название вашего чекбокса['your-checkbox-name']
а если радио?
аналогично
Если вариантов выбора больше одного, то вам необходимо преобразовать полученные значения в строку. В противном случаи значения не будут переданы.
Я извиняюсь, но, что значит преобразовать полученные значения в строку?
Применить функцию
implode()
. Данная функция объединяет элементы массива в строку. Пример,Спасибо, все получилось.
Вот еще одна интересная задача utm метки передаются когда переходят по ссылке, но при переходе на другую страницу не передаются соответственно. Вопрос ко всем участникам этой темы как заставить сохранять куки и передавать метки?
Добрый день, Роман
Это не совсем задача. Для начала вам необходимо понять как работают UTM метки.
Есть два способа:
Добрейший день, голову поломал, почему то поля phone, email заполняются а остальные «ШИШ», подскажите в чем может быть проблема.
Добрый день, Александр
это точно для CF7? Похоже, что нет =)
Конечно нет, просто где нашел схожую статью там и написал:-D
Просто проблема плёвая, а найти не мог, всё решено, СПАСИБО:D
Для однополчан по схожим вопросам поясню, ПРОВЕРЯЙТЕ КОДИРОВКИ НА САЙТЕ И БИТРИКС24
Может кому помогу.