Оглавлениение
Многие владельцы сайтов на 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 — Контактные формы — «Интересующая контактная форма» — Шаблон/Письмо, где можно найти информацию о том, какие поля используются в Вашей форме.
Выбор подходящего способа передачи в Битрикс 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 To the Top
Добрый день, Артур
переход по прямой ссылки подразумевает под собой авторизацию под Вашей учетной записью и передачи полей с их значением с помощью
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 не напишите пожалуйста? Был бы очень благодарен. Инфы в интернете вообще нет (
Владимир из Get To the Top
Добрый день, Никита
Написал 🙂 https://gettotop.ru/crm/integraciya-woocommerce-i-bitrix24/
Я надеюсь на то, что Вы будите делиться ей в сети интернет 😉
Сергей
Добрый день
Спасибо отлично написано.
Подскажите можно ли передать в Битрикс прикрепленный к форме файл?
и как это реализовать?
Знаю что нужен base64 но там вроде нужна ссылка для скачивания файла. или я что то не понимаю.
Владимир из Get To Top
Добрый день, Сергей
да, передать в Б24 прикрепленный файл, конечно можно.
ВЫ все правильно сказали, передачу файлу нужно организовывать с помощью base64. Так, к примеру, для передачи файла, который прикрепили в форме CF7 передачу можно организвать следующим образом:
$url = $uploaded_files['ваше-название-поле-cf7'];
$data = file_get_contents($url);
$base64 = base64_encode($data);
$name = urldecode(basename($url));
Oleg
Хорошая статья, а как сделать что бы из нескольких форм передавалось?
Владимир из Get To the Top
Добрый день, Олег
для этого можно использовать обычную конструкцию
if..elseif
:Артур
Владимир, почему-то неудаётся добавить код в функции темы.
Пишет: Что-то пошло не так. Внесённые изменения могли не сохраниться. Пожалуйста, попробуйте ещё раз. Также есть вероятность, что вам придётся вручную исправить и загрузить файл через FTP
Пробовал через FTP
Сайт слетает.
Подскажите что делаю не так.
Плагины пробовал отключать, чтобы не было никакого резонанса.
Тема — Astra
Владимир из Get To the Top
Добрый день, Артур
У Вас ошибка в синтаксисе. Где-то отсутствует кавычка, или запятая, или точка с запятой, или что-то в этом духе.
Проверьте внимательно код и обратите внимание на 173 строку. Скорее всего там ошибка.
oleg
я конечно не гуру и не чего не берусь утверждать, но мне кажется что else (‘Контактная форма 2’ == $title ) { заместо { должно быть ; , в противном случае интерпретатор выдаст ошибку. Тойсть должно получится else (‘Контактная форма 2’ == $title ) ;
//остальной код
}
Владимир из Get To the Top
Олег, правильный вариант ниже
Алексей
Есть возможность увидеть полный код? Я где-то накосячил и не могу найти где. Пожалуйста.
Владимир из Get To the Top
Добрый день, Алексей
вот пример для реализации отправки лидов для двух форм
Иван
Добрый! Спасибо большое за статью! Все работает!
Алексей
Спасибо за статью, но…не работает. Как можно найти ошибку? Вроде все сделал как сказано.
А в самой битрикс никаких действий не нужно делать, лиды должны сразу во вкладке CRM отображаться?
Владимир из Get To the Top
Добрый день, Алексей
в самом битрикс 24 никаких действий производить не нужно, лиды там появляются автоматически без предварительных настроек.
К сожалению, мне сложно диагностировать вашу настройку без визуального ознакомления.
Вот перечень распространенных ошибок:
Алексей
Владимир, буду очень благодарен, если взглянете одним глазком на код [ссылка заблокирована по решению администрации сайта]
Что может быть не так?
Владимир из Get To the Top
На первый взгляд все выглядит корректно.
Проверьте, пожалуйста, не сильно ли Вы ограничили пользователя в правах, которого указали в логине и пароле.
Алексей
Я вообще администратор)
Ярослав
Алексей у меня тоже не работает код для двух форм, у Вас получилось настроить?
Андрей
Добрый день, все работает, а как передать ютм-метки, по каким параметрам, поскажите пожалуйста)
Владимир из Get To the Top
Добрый день, Андрей
Шорткоды плагина 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
Владимир из Get To the Top
Добрый день, Андрей
Владимир из Get To the Top
Добрый день.
Значения введенных переменных (телефон и т.п.) передаются, но значения utm меток — нет.
Александр
У меня тоже ничего не передаёт ни через рест апи ни через хук
Владимир из Get To the Top
Добрый день, Александр
смотрите статью «Основные ошибки при интеграции»
Сергей
Статья просто топовая. Мне очень понравилась. Пока правда не делал. Планирую вот заняться вечерком. Но на первый взгляд написано максимально грамотно. Как все сделаю, еще раз отпишусь. Спасибо.
Иван
Владимир,а как UTM метки добавить и передать?
Владимир из Get To the Top
Добрый день, Иван
на данный вопрос уже давал ответ. Смотрите, пожалуйста, здесь.
Полина
Спасибо большое за код 🙂
Не подскажете? Как сделать передачу значения
value
выбранногоcheckbox
?Ренат
Добрый вечер
Огромное спасибо за статью!
Подскажите, есть ли возможность кроме обычных полей передавать файлы?
Алекс
Красиво разжовал. У меня вопрос, откуда такие умные люди берутся?
Константин
Здравствуйте!
Большое спасибо за инструкцию, всё работает. Себе ещё добавил назначение ответственного.
Не подскажите, как назначать ответственного поочереди на 2-х менеджеров, например.
Константин
Привет! Спасибо за статью! У себя я добавил
"ASSIGNED_BY_ID" => 17
, чтобы ставить ответственного менеджера.17
— это номер пользователя в CRM который будет ответственным за созданный лид.Не хочу сделать ещё лучше. Если знаете, как сделать чтобы лид назначался рандомно двум/трём менеджерам? Или по очереди?
Владимир из Get To the Top
Добрый день, Константин
да, Вы добавили верный параметр для назначения ответственного —
ASSIGNED_BY_ID
Но для того, чтобы сделать рандомное назначение ответственного, вижу три варианта:
К примеру,
Таким образом, будет подставляться случайной ID из указанных для ответственных
Константин
Великолепно! Этот вариант мне подходит. Спасибо.
Константин
Не хватило знаний для того чтобы вставить в код
functions.php
.Можете показать пример кода полностью для вставки?
Андрей
Столкнулся с такой же проблемой. Удалось ли вам ее решить?
derdof
Если у меня есть поле добавить файл.
Как мне передать файл в пользовательское поле битрикс24 с сf7 ?
Владимир из Get To the Top
Добрый день,
данный пример реализован с помощью 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];
Благодарю за ответ!!!
Владимир из Get To the Top
Добрый день, Алексей
тайтлы к формам необходимо указывать те, которые у Вас прописаны в административной части сайта.
И у Вас ошибка в коде. Строчка должна быть следующего вида:
Ярослав
Владимиру огромное спасибо! Наконец то все замоторилось))))
И все же код который приведен выше где на две формы вызывал ошибку. В нем в строке
$output = print_r($response[1];
} else {
не было закрывающей скобки и кавычек. Если б не комментарий выше, так бы и не разобрался.
Правильный код этой строчки приведен выше, с ним работает. Только копируйте внимательно. При копировании из комментария в буфере будет вот что
$output = ‘
‘.print_r($response[1], 1).’
1
‘.print_r($response[1], 1).’
‘;
хотя и так уже работало.
Подправьте руками самостоятельно чтобы получилось правильно как в примере комментом выше
Еще раз спасибо за вашу статью!
Владимир из Get To the Top
Добрый день, Ярослав
да, вы верно разобрались.
К сожалению, комментарии не поддерживают полноценную вставку кода и могут обрезать его часть.
Я рад, что у вас все получилось!
Павел
Спасибо за материал! НО, не происходит абсолютно никаких действий при отправке данных через форму (на почту все доходит), но в CRM не создается лид. В
functions.php
вставил код. Если переходить по прямой ссылке с GET-параметрами, то все формируется.Владимир из Get To the Top
Да не за что. Главное, чтобы вы разобрались и у вас все заработало.
Andrey
Добрый день, что-то не работает, помогите, пожалуйста
Владимир из Get To the Top
Добрый день,
так как комментарии не поддерживают полноценную вставку кода мне сложно судить о его корректности.
Держите ссылку с адаптированным для вас кодом: gettotop.ru/share/muraha.txt. Не забудьте указать логин и пароль. Должно все работать.
Здесь вы можете ознакомится с перечнем основных ошибок при интеграции.
Andrey
Спасибо за быстрый ответ! Но все равно не хочет схватывать данные, все перепрвоерил и данные создатея канала ввел. Не хочет передавать значения 🙁
Владимир из Get To the Top
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. Если все это не помогло, то можете написать мне через форму обратной связи.
Посмотрим как решить ваши проблему.
Николай
Не работает, логин и пароль верный, как понять почему где ошибку может быть?
Владимир из Get To the Top
Здесь вы можете ознакомится с перечнем основных ошибок при интеграции.
Игнат
Спасибо за разъяснения.
Подключился через вебхуки.
Имя, фамилию, отчество, комментарий передаёт прекрасно, а как только дело доходит до телефона и почты, так пусто.
Владимир из Get To the Top
Пришлите, пожалуйста, полный код обернутый в тег
pre
и принт скрин формы CF7Владимир из Get To the Top
Добрый день,
да, проблема действительно была. Способ ее решения вы можете найти в данном комментарии — ссылка.
Сайтозависим
Добрый день! Спасибо за статью!
Есть такой вопрос. То есть лид постоянно будет создаваться новый?
Владимир из Get To the Top
Добрый день!
да, с каждым новым обращением будет создаваться новый лид
Сайтозависим
Телефон и емайл не передается. Но имя и все такое передается успешно
Владимир из Get To the Top
Пришлите, пожалуйста, полный код обернутый в тег
pre
и принт скрин формы CF7Владимир из Get To the Top
Добрый день,
да, проблема действительно была. Способ ее решения вы можете найти в данном комментарии — ссылка.
Виталий
У меня та же проблема
Скриншот: [ссылка заблокирована по решению администрации сайта]
Владимир из Get To the Top
Виталий, добрый день
спасибо большое за предоставленный код интеграции и скрин формы. Это помогло решить задачу.
Да, проблема действительно имеет место быть. Дело в том, что при выборе интеграции с помощью входящего вебхука (в отличии от упрощенного Rest API), такие параметры как телефон, электронный адрес и мессенджеры имеют множественные значения и другие поля по умолчанию: PHONE, EMAIL, IM. Поэтому для передачи данных значений необходимо передавать их в массиве. Пример,
, где
nX
— это одно значение (телефона или электронной почты), которое всегда начинается с 0.Даже если вы передаете всего лишь 1 номер телефона или адрес электронной почты, необходимо указывать его в массиве
n0
Поэтому ваш код будет иметь следующий вид:
Пожалуйста, отпишите после корректирвоки.
Виталий
Вы очень подробно разобрали этот вопрос, теперь мне все понятно. Еще раз спасибо за это! Не подскажете, можно ли сделать автоматическое уведомление при создании нового лида? Как, например, если бы лид создавался через стандартную crm форму bitrix24
Владимир из Get To the Top
Речь про какие уведомления?
Виталий
Звуковое уведомление в браузере и push в мобильном приложении. Это возможно сделать?
Владимир из Get To the Top
К сожалению, нет. Такое оповещение включить нельзя. Но можно настроить уведомление в telegram.
Виталий
Может быть проблема не в коде, а в настройках bitrix24, может в правах доступа веб хука указать не только «CRM»?
Или проблема связана с темой? У меня тема Astra.
Странно, что все данные отравляются, а контакты нет.
Как в итоге исправить эту проблему?
Виталий
Да, все получилось. Спасибо большое!
Виталий
Владимир, почему-то не получается привязать несколько форм, при помощи веб хука.
Ошибка:
Ваши изменения в коде PHP были отменены из за ошибки на строке 204 (строка где написано
elseif
) файлаwp-content/themes/astra/functions.php
. Исправьте и попробуйте пересохранить.Код:
Помогите, пожалуйста!
Владимир из Get To the Top
Добрый день, Виталий
вы пропустили
:
в строчкахif(****) {
иelseif(****) {
Виталий
Владимир, доброго времени суток! Настроил интеграцию, чтобы автоматически создавались сделки, а не лиды. Все работает, сделки создаются, контакт к сделке прикрепляется, одним словом все ок.
Но со стороны CF7 теперь возникла проблема: при нажатии на кнопку «отправить», возле формы появляется иконка крутящихся стрелочек, а уведомления, что форма отправлена нет.
То есть получается, что в глазах посетителя сайта отправка формы идет вечно и форма не работает. Но письмо на e-mail с введенными данными приходит и сделка в Битрикс24 тоже создается с нужными данными.
Пока что настроил на создание сделок только одну форму, остальные работают нормально.
Вот фрагмент кода в functions.php для этой формы:
[код заблокирован по решению администрации сайта]
Кеш удалял, пробовал на разных устройствах.
Владимир из Get To the Top
Добрый день, Виталий
код, конечно, у вас получился интересный =) и нагроможденный.
Не вижу причин создавать сразу все: и лид, и контакт, и сделку. Тем более, что из лида конвертируется контакт или сделка средствами Битрикс24.
А зависание CF7, скорее всего, происходит из-за того, что вы сначала создаете контакт в Б24, потом ожидаете его ID в ответе от CRM, чтобы создать сделку и привязать ее к нему.
Василий
Спасибо за статью! А как передать источник, что это лид с формы на сайте?
Владимир из Get To the Top
Не за что!
Для того, чтобы сообщить Битрикс24, что это лид с сайта используйте параметр
SOURCE_ID
со значениемWEB
. Пример,Павел
Почему то не предается поле «телефон», не могу понять почему, можете подсказать?
Владимир из Get To the Top
Добрый день,
да, конечно. Обратите, пожалуйста, внимание на комментарий.
В нем вы найдете ответ как решить проблему.
Павел
Спасибо огромное, работает
Станислав
Добрый вечер, помогите пожалуйста, сделал через веб хуки, но при отправки формы в WP вылезает сообщение «Ошибка при сохранении лида: Method not found!» и соответственно лид не создается.
Дмитрий
Владимир, подскажите, как передать поля адреса из woocomerce в строку адреса лида? Переменные не передает никакие значения, там скорее всего также нужно в массиве настройки передавать или я ошибаюсь?
Владимир из Get To the Top
Добрый день, Дмитрий
для передачи адреса в поля лидов Б24, смотрите таблицу параметров для лидов.
На примере интеграции woocomerce и Б24, часть кода для отправки данных в Б24 будет следующий:
Дмитрий
Не работает так, пробовал, поле адреса остается пустым, пробовал создавать еще собственное поле с адресом, тоже не работает. В чем проблема не понятно. Есть какие нибудь другие способы сделать? только через вебхуки?
Владимир из Get To the Top
Если не раскладывать код, то в поле «Комментарий» у вас есть «Информация по доставке»?
Дмитрий
Владимир я заметил что у меня поле «коментарий» вообще пропало, и его нет в списке стандартных полей! Как возможно восстановить данное поле? Раньше было данное поле, но я не помню точно, все ли данные оно передавало.
Антон
Добрый день.
2 лида почему-то падает в CRM. В чем может быть проблема?
Владислав
Добрый день.
1. Подскажите пожалуйста, в чем может быть причина, что при повторной отправке лида с одинаковым Email и уже существующим Контактом с таким Email, лид автоматически не определяется как повторный и поле контакт не заполняется, но данные о имени и фамилии и email заполняются (и с него можно создать новый контакт). Заполнение необходимо выполнить вручную.
2. И еще вопрос про уведомления при создании лида (вы уже выше описывали что это не возможно) а может быть это возможно выполнить через бизнес-процесс.
Владимир из Get To the Top
Добрый день, Владислав
Ответ по второму вопросу: да, это возможно как через бизнес-процес, так и через роботов.
Ответ по первому вопросу: в настройка необходимо активировать контроль повторных лидов.
Иван
Спасибо мужик, спас!! Подключил уже херову тучу сайтов с contact form7 через rest api. А тут наткнулся на один, который зависал на выполнении этих функций, при выполнении скрипта feedback. И хер знает что с ним делать. Я не на столько силён, чтобы лезть в js-кишки прописанных библиотек.До пяти утра вот сидел, пробовал что-то поменять. Но помог только вариант отправки форм в лиды через вэб-хук! Респектуха-уважуха))
Артем
Статья супер. Спасибо огромное! Все настроил с помощью вебхука — работает.
А есть ли возможность заполнять «товар» в поле лида битрикса? Я не интернет-магазин, но товары использую, чтобы разделять услуги в лидах.
Владимир из Get To the Top
Добрый день, Артем
спасибо за вашу оценку и отзыв.
Для того, чтобы привязать товар к лиду необходимо:
$result = json_decode($result, 1);
получаемID
созданного лида следующим образом$leadID = $result["result"];
;$leadID = $result["result"];
необходимо к нему привязать товарную позицию с помощью следующего кодаТаким образом мы получим код следующего вида:
Маргарита
Здравствуйте все делаю согласно инструкции не создается лид, уже голову сломала.
Владимир из Get To the Top
Добрый день, Маргарита
упростите ваш код до одной формы. Если передача лидов заработает, то значит ошибка в конструкции для нескольких форм.
Роман
Спасибо огромное, статья очень полезная, но возникла проблема при использовании способа с вебхуком поля почему-то не заполняются, через RestAPI все работает кроме UTM меток.
Вот код:
Rastey
Аналогичная проблема. По три раза код перепроверил. Даже в письме не приходит разобранный utm и url
Владимир из Get To the Top
Добрый день,
через RestAPI невозможно передать UTM значения. Они передаются только при помощи интеграции с входящим вебхуком.
Владимир из Get To the Top
Добрый день, Роман
у вас не заполняются все поля или какие-то отдельные? Кстати, реализация для передачи телефона и email у вас неверная. Как передавать для них значения смотрите здесь
Попробуйте, для начала упростить вашу конструкцию для одной формы. Если все заработает, то ошибка в конструкции для остальных форм.
Обращаю ваше внимание, что через RestAPI невозможно передать UTM значения. Они передаются только при помощи интеграции с входящим вебхуком.
Роман
А как поле с чекбоксом передавать?
Владимир из Get To the Top
Добрый день, Роман
чекбокс перехватывается и передается точно также как и другие поля в CF7, т.е вам необходимо в
$posted_data
указать название вашего чекбокса['your-checkbox-name']
Роман
а если радио?
Владимир из Get To the Top
аналогично
Владимир из Get To the Top
Если вариантов выбора больше одного, то вам необходимо преобразовать полученные значения в строку. В противном случаи значения не будут переданы.
Роман
Я извиняюсь, но, что значит преобразовать полученные значения в строку?
Владимир из Get To the Top
Применить функцию
implode()
. Данная функция объединяет элементы массива в строку. Пример,Роман
Спасибо, все получилось.
Вот еще одна интересная задача utm метки передаются когда переходят по ссылке, но при переходе на другую страницу не передаются соответственно. Вопрос ко всем участникам этой темы как заставить сохранять куки и передавать метки?
Владимир из Get To the Top
Добрый день, Роман
Это не совсем задача. Для начала вам необходимо понять как работают UTM метки.
Есть два способа:
Александр
Добрейший день, голову поломал, почему то поля phone, email заполняются а остальные «ШИШ», подскажите в чем может быть проблема.
Владимир из Get To the Top
Добрый день, Александр
это точно для CF7? Похоже, что нет =)
Александр
Конечно нет, просто где нашел схожую статью там и написал:-D
Просто проблема плёвая, а найти не мог, всё решено, СПАСИБО:D
Для однополчан по схожим вопросам поясню, ПРОВЕРЯЙТЕ КОДИРОВКИ НА САЙТЕ И БИТРИКС24
Может кому помогу.
Дмитрий
Добрый день. Подскажите, пожалуйста, по теме.
Через ВебХуки передаю данные из Contact Form 7 и отправляю в Bitrix24 на создание лидов. Все поля успешно передаются и лиды создаются, но никак не могу заставить дойти переданные файлы в битрикс.
я понял, что выхватывать файл нужно через:
$url = $uploaded_files[‘file-850’];
$data = file_get_contents($url);
$base64 = base64_encode($data);
$name = urldecode(basename($url));
А битрикс должен распознать и правильно сложить файл в лид через:
‘UF_CRM_1654693520475’ => [‘fileData’ => [$name, $base64]],
‘UF_CRM_1654693520475 — идентификатор кастомного поля для файлов из B24, а [‘file-850’] — поле для файла из CF7
После «=>» пробовал разные комбинации. но не получилось.
______
Но что-то файл ни в какую не складывается, хоть и остальные поля лида создаются. Сталкивался кто-нибудь с таким и решил проблему?