Crm configs import lead php ошибка неподходящая версия модуля crm

Статья посвящена интеграции форм на сайте с Битрикс 24. Она описывает стандартную интеграцию с помощью встроенных возможностей 1С-Битрикс и CRM Битрикс 24.

Данная статья посвящена интеграции форм на сайте с CRM Битрикс 24. Она описывает стандартную интеграцию с помощью встроенных возможностей 1С-Битрикс: Управление сайтом и CRM Битрикс 24. Также в ней указаны некоторые проблемы, которые могут возникнуть при интеграции форм на сайте с CRM, которые не освещены в основной статье учебного курса: «Администратор сервиса Битрикс 24». Если на вашем сайте установлена другая система управления, отличная от 1С-Битрикс, или формы, которые вы планируете интегрировать с Битрикс 24 выполнены в обход модуля «Веб-формы», то данная статья не поможет решить ваш вопрос в полной мере.

Основные настройки необходимы для интеграции форм с Битрикс 24

Первое, что требуется сделать — это зайти в настройки модуля «Веб-формы» и во вкладке «Связь с CRM» добавить привязку к вашему порталу (рис.1).

Важно: для осуществления интеграции требуется версия 1С-Битрикс 11.5 и выше.

Рис.1
интеграция форм

Если при добавлении вашего портала возникает следующая ошибка: «Неподходящая версия модуля CRM». То это может происходить по следующим причинам:

  • Версия модуля «CRM» в вашем Битрикс 24 ниже версии 11.5 или версия вашей системы управления 1С-Битрикс ниже версии 11.5 (1С-Битрикс проверяет http заголовок X-CRM-Version, который должен отправлять портал Битрикс 24, чтобы тот не был меньше 11.5.0)
  • Ваш сайт и ваш портал Битрикс 24 работают не по https протоколу. (Это не является 100% информацией, но в своей практике я столкнулся с проблемой при интеграции форм, пока не перевел работу сайта и портала на защищенный https протокол)
  • Проблемы в работе сокетов на сайте. Необходимо проверить, что функция fsockopen работает корректно и может отправлять запросы на ваш портал. (Если есть проблемы с сокетами в 1С-Битрикс, то как и в моем случае может появиться данная ошибка)

После успешного добавления вашего портала необходимо настроить те поля формы, которые будут отправляться в Битрикс 24. Для этого переходим в раздел: сервисы > веб-формы > настройка форм. Затем выбираем нашу форму и во вкладке CRM (рис.2) выбираем способ отсылки данных формы и соответствие полей формы на сайте полям в Битрикс 24.

Рис.2
pic

  • При ручной отправке данных формы, информация будет отправлена в CRM после того, как менеджер или администратор сайта вручную отправят результат формы в CRM (рис.3)
  • При автоматической отправке, информация будет отправляться сразу после, того как пользователь успешно заполнит форму.

Примечание: если при автоматической отправке формы по каким-либо причинам данные формы не были отправлены, потребуется сделать повторную отправку результата формы вручную.

Рис.3
pic

Также следует отметить, что на момент написания данной статьи по умолчанию Битрикс не поддерживает отправку полей формы типа файл.

Интеграция данных формы в лиды или сделки

Описанный выше метод интеграции форм позволяет создавать как лиды, так и сделки на базе тех данных, которые будут отправляться в Битрикс 24. По умолчанию на основе отправленной информации создаются именно лиды, если выбран режим работы: «Классическая CRM». Если же режим работы указан как «Простая CRM», то после создания лида автоматически создастся сделка по данным отправленным из формы на сайте. Поэтому данный метод подходит для создания как лидов, так и сделок.

Результаты интеграции

Индикатор успешной отправки результатов формы отображается в столбце Отправлено в CRM (рис.4).

Рис.4
pic

В CRM результаты интеграции будут выглядеть следующим образом (рис.5)

Рис.5
pic

Интеграция Битрикс24 с сайтом через PHP

13 сентября 2019 1С-Битрикс Битрикс24

Возникла задача интеграции лендинга с CRM Битрикс24. Лендинг самый обычный на HTML. Необходимо было создавать лиды из отправляемых с сайта форм обратной связи.

В формах была отправка не только данных о пользователе — имя, телефон и e-mail, но и передача нескольких нестандартных значений — название выбранного товара и пользовательский текст.

Нужно учитывать, что для создания лида в Битрикс24 поле Заголовок и Имя обязательно. Остальные поля заполняются по необходимости. Поле телефон и e-mail стандартные, а название товара и текст было решено передавать в пользовательский комментарий к лиду.

Содержание

  • 1 PHP скрипт для создания лида в CRM Битрикс24
  • 2 Стандартные имена ключей для полей Битрикс24
  • 3 Передача значения в пользовательское поле Битрикс24 из PHP скрипта
  • 4 Как узнать ID пользовательского поля?

PHP скрипт для создания лида в CRM Битрикс24

В CRM 1C-Битрикс формы, созданные через модуль форм подключаются проще простого, достаточно включить это в настройках. Но и тут на деле все оказалось довольно просто. У Битрикс существует REST API, с помощью которого можно передавать лиды через PHP скрипт. И использовать популярную CRM для любого сайта.

<?php
define('CRM_HOST', 'login.bitrix24.ru'); // Указываем Ваш домен в CRM 
define('CRM_PORT', '443'); // Порт сервера CRM. Установлен по умолчанию, не меняем
define('CRM_PATH', '/crm/configs/import/lead.php'); 

define('CRM_LOGIN', 'login@it-blog.ru'); // Логин пользователя Вашей CRM 
define('CRM_PASSWORD', 'pass'); // Пароль пользователя Вашей CRM 

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    $name = $_POST['name'];// Получаем данные из поля Имя
    $phone = $_POST['phone']; // Получаем данные из поля Телефон
    $usermail = $_POST['email']; // Получаем данные из поля E-mail
    $product = $_POST['product']; // Получаем данные из скрытого поля названия товара
    if(!empty($_POST['comment'])) {
        $comment = $_POST['comment']; // Если есть комментарий, то получаем поле Комментарий
    }
 
   $postData = array(
      'TITLE' => 'Заявка с сайта', // Заголовок для лида
      'NAME' => $name, // Имя
      'PHONE_WORK' => $phone, // Телефон
      'EMAIL_WORK' => $usermail, // E-mail
      'COMMENTS' => $product.' '.$comment // Пользовательский комментарий
   );

   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.0rn";
      $str .= "Host: ".CRM_HOST."rn";
      $str .= "Content-Type: application/x-www-form-urlencodedrn";
      $str .= "Content-Length: ".strlen($strPostData)."rn";
      $str .= "Connection: closernrn";

      $str .= $strPostData;

      fwrite($fp, $str);

      $result = '';
      while (!feof($fp))
      {
         $result .= fgets($fp, 128);
      }
      fclose($fp);

      $response = explode("rnrn", $result);

      $output = '<pre>'.print_r($response[1], 1).'</pre>';
   }
   else
   {
      echo 'Connection Failed! '.$errstr.' ('.$errno.')';
   }
}

?>

Поле название товара передается через скрытый input в форме

<input type="hidden" value="Название товара" />

И при отправке в CRM к нему добавляется комментарий, если он заполнен.

Нужен ремонт форсунок краснодар? Качественный и надежный сервис окажет услуги по диагностике и ремонту дизельных форсунок.

С помощью этого нехитрого скрипта вы можете передавать любые значения из форм в поля лида.

Стандартные имена ключей для полей Битрикс24

Здесь приведены только основные поля, которые могут понадобиться для большинства сайтов. Полный список полей можно узнать из документации к Битрикс24.

TITLE — название лида
NAME — имя
LAST_NAME — фамилия
SECOND_NAME — отчество
PHONE_WORK — рабочий телефон
PHONE_MOBILE — мобильный телефон
PHONE_HOME — домашний телефон
EMAIL_WORK — рабочий e-mail
EMAIL_HOME — личный e-mail
ADDRESS — адрес
COMMENTS — комментарий
COMPANY_TITLE — название компании
WEB_HOME — личная страница
WEB_WORK — корпоративный сайт
IM_OTHER — другой контакт

Передача значения в пользовательское поле Битрикс24 из PHP скрипта

Для начала необходимо создать пользовательское поле в самой CRM:

  • Зайти в раздел CRM → Настройки → Настройки форм и отчетов → Пользовательские поля → Лид и Добавить поле
  • Указать название поля
  • Установить галочку «Показывать в списке»
  • Выбрать тип поля, например «Строка»
  • Сохранить

Далее в массиве $postData добавить новое значение 'UF_CRM_XXXXXXXXXX' => $customField,
где XXXXXXXXXX — это ID пользовательского поля

$postData = array(
      'TITLE' => 'Заявка с сайта', // Заголовок для лида
      'NAME' => $name, // Имя
      'PHONE_WORK' => $phone, // Телефон
      'EMAIL_WORK' => $usermail, // E-mail
      'COMMENTS' => $product.' '.$comment, // Пользовательский комментарий
      'UF_CRM_XXXXXXXXXX' => $customField, // Пользовательское поле
   );

Как узнать ID пользовательского поля?

Чтобы узнать ID пользовательского поля, нужно:

  • Зайти в раздел CRM → Настройки → Настройки форм и отчетов → Пользовательские поля → Лид и Список поле
  • В списке найти нужное поле и перейти в него

В адресной строке, вы увидите значение UF_CRM_XXXXXXXXXX https://login.bitrix24.ru/crm/configs/fields/CRM_LEAD/edit/UF_CRM_XXXXXXXXXX/ , где UF_CRM_XXXXXXXXXX — это и есть ID

Узнать как открыть фирму в Германии на https://offshorensk.ru/

 

Пользователь 1288159

Заглянувший

Сообщений: 32
Баллов: 2
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 17.04.2019

Как итог перейти без последствий не возможно, ломается файл .left.menu_ext.php и index.php из-за чего соответственно полностью становится не рабочий сайт магазина…… + в папке текущего сайта создаются еще пару папок. Напрашивается вопрос, А НАФИГА ТРОАГАТЬ ТЕКУЩИЙ САЙТ? НАФИГА В ЕГО ПАПКУ ЧТО-ТО ПИСАТЬ?

Простите но это ПРОВАЛ! Все заверения то что вы ГОД разрабатывали и тестили что-то там, в голове не укладываются, после 8-ми попыток, что-то натянуть из этого ни одна не увенчалась успехом, внятной инструкции найти не удалось. По поводу куда размешять Б24 на поддомен или в папку тоже как-то все очень скудно.

Делали просто — развернули сайт на чистый на шаблоне altop.enext и попытались его обновить на коробку корп.
Благо мы не идиоты на рабочем проекте в такие игры играть, уже давно знаем что такое битрикс и что обычно раза с 100500 заводится. Обещаниям верить точно нельзя))) Особенно если несколько раз на презентации говорят НИЧЕГО не должно сломаться, то блин обязательно в этом месте сломается!!!!

 

Пользователь 291336

Эксперт

Сообщений: 1497
Баллов: 244
Авторитет:

31

Рейтинг пользователя:

4

Регистрация: 08.11.2014

не поделитесь где можно скачать новый продукт?

на сайте чтото не видно ссылок и в установщике тоже нельзя выбрать — а в презентации обещали выложить

 

Пользователь 272462

Постоянный посетитель

Сообщений: 268
Баллов: 25
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 24.07.2014

 

Администратор

Сообщений: 22
Баллов: 2
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 29.01.2019

loki-sim, да, такая ошибка наблюдается, исправляем. Связано с одним из обновлений модуля intranet. Исправим в ближайшее время.

Подробнее про мастер вы можете узнать в

документации

 

Пользователь 1288159

Заглянувший

Сообщений: 32
Баллов: 2
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 17.04.2019

Роман Нейман, Добрый день.
Увы но там в документации есть только внешний вид этого мастера, каких-то особенностей и нюансов нет. Про то куда и как его ставить на поддомен инфы нет тоже, просто общая ссылка на доку по мультидоменной установке.

И еще ошибка одна при установке

Роман Семёнов,
можно попробовать и с демо ключами, по идее должно сработать. Просто возьмите Б24 коробку корп.

 

Администратор

Сообщений: 22
Баллов: 2
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 29.01.2019

loki-sim, попробуйте деинсталировать модуль timeman с удалением таблиц и повторно установить его и повторить текущий шаг мастера.

Это ошибка тоже в процессе исправления.

 

Пользователь 1288159

Заглянувший

Сообщений: 32
Баллов: 2
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 17.04.2019

Роман Нейман, как долго ждать исправления? я так понимаю это сейчас в приоритете, ибо из-за этих ошибок невозможно поставить ваш новый продукт.
Просто не хочется каждый день ночью пробовать и пытаться) Где можно будет подчерпнуть информацию о том что это все поправлено?

 

Пользователь 159878

Посетитель

Сообщений: 49
Баллов: 7
Авторитет:

6

Рейтинг пользователя:

0

Регистрация: 22.01.2013

А у меня при при обновлении платформы выдает ошибку: Ошибка в updater’e 14.5.7 модуля crm: [1061] Duplicate key name ‘IX_LEAD_5’ [1061] Duplicate key name ‘IX_CONTACT_BDAY’. Установка обновлений модуля crm прервана. [CL04] Ошибка обновления модулей.

Не знаете как исправить?

 

Евгений Жуков

Администратор

Сообщений: 9035
Баллов: 1747
Авторитет:

8

Рейтинг пользователя:

39

Регистрация: 05.08.2005

Epic fail — сказать «это так просто» и не суметь сделать

#9

0

13.11.2019 15:43:57

Цитата
Евгений Вальтер написал:
Не знаете как исправить?

Обратиться в техподдержку.

Не надо сверлить зубы через задний проход дрелью от Сваровски

 

Пользователь 159878

Посетитель

Сообщений: 49
Баллов: 7
Авторитет:

6

Рейтинг пользователя:

0

Регистрация: 22.01.2013

#10

0

13.11.2019 15:47:52

Цитата
Евгений Жуков написал:

Цитата
Евгений Вальтер  написал:
Не знаете как исправить?

Обратиться в техподдержку.

Первым делом так поступил …Молчат(

 

Евгений Жуков

Администратор

Сообщений: 9035
Баллов: 1747
Авторитет:

8

Рейтинг пользователя:

39

Регистрация: 05.08.2005

Epic fail — сказать «это так просто» и не суметь сделать

#11

0

13.11.2019 15:48:51

Цитата
Евгений Вальтер написал:
Первым делом так поступил …Молчат(

Номер обращения?

Не надо сверлить зубы через задний проход дрелью от Сваровски

 

Пользователь 159878

Посетитель

Сообщений: 49
Баллов: 7
Авторитет:

6

Рейтинг пользователя:

0

Регистрация: 22.01.2013

#12

0

13.11.2019 15:59:48

Цитата
Евгений Жуков написал:

Цитата
Евгений Вальтер  написал:
Первым делом так поступил …Молчат(

Номер обращения?

Писал в чат, там номер тикета не дают

 

Пользователь 159878

Посетитель

Сообщений: 49
Баллов: 7
Авторитет:

6

Рейтинг пользователя:

0

Регистрация: 22.01.2013

#13

0

13.11.2019 16:01:21

Цитата
Евгений Жуков написал:

Цитата
Евгений Вальтер  написал:
Первым делом так поступил …Молчат(

Номер обращения?

Вот скрин, последний был Давид Давтян и перенаправил к другому специалисту  

Прикрепленные файлы

joxi_screenshot_1573650028947.png (69.8 КБ)

 

Администратор

Сообщений: 22
Баллов: 2
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 29.01.2019

#14

0

13.11.2019 17:09:38

loki-sim, обновления поправили. Вам нужно заново запустить мастер и загрузить новые модули. Загрузка модулей пройдёт быстрее, мы подняли минимальные версии модулей с которых начинается загрузка обновлений.

Евгений Вальтер, для модуля crm также поднята минимальная версия, теперь этой ошибки у вас быть не должно.

 

Пользователь 159878

Посетитель

Сообщений: 49
Баллов: 7
Авторитет:

6

Рейтинг пользователя:

0

Регистрация: 22.01.2013

#15

0

13.11.2019 17:47:06

Цитата
Роман Нейман написал:
loki-sim , обновления поправили. Вам нужно заново запустить мастер и загрузить новые модули. Загрузка модулей пройдёт быстрее, мы подняли минимальные версии модулей с которых начинается загрузка обновлений.

Евгений Вальтер , для модуля crm также поднята минимальная версия, теперь этой ошибки у вас быть не должно.

Скажите сейчас можно уже делать переход на новую редакцию или там еще остались проблемы?  

 

Пользователь 159878

Посетитель

Сообщений: 49
Баллов: 7
Авторитет:

6

Рейтинг пользователя:

0

Регистрация: 22.01.2013

#16

0

13.11.2019 18:52:55

Цитата
Роман Нейман написал:
loki-sim , обновления поправили. Вам нужно заново запустить мастер и загрузить новые модули. Загрузка модулей пройдёт быстрее, мы подняли минимальные версии модулей с которых начинается загрузка обновлений.

Евгений Вальтер , для модуля crm также поднята минимальная версия, теперь этой ошибки у вас быть не должно.

Теперь не может установить модуль календаря

При установке модуля «Календарь событий» произошла ошибка
Ошибка добавления UF_WEBDAV_CAL_EVENT для объекта CALENDAR_EVENT.

Прикрепленные файлы

joxi_screenshot_1573660301494.png (63.9 КБ)

 

Администратор

Сообщений: 22
Баллов: 2
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 29.01.2019

#17

0

13.11.2019 19:08:47

Евгений Вальтер, повторяется ли ошибка при установке модуля из раздела «Модули» /bitrix/admin/module_admin.php?lang=ru ?

 

Пользователь 159878

Посетитель

Сообщений: 49
Баллов: 7
Авторитет:

6

Рейтинг пользователя:

0

Регистрация: 22.01.2013

#18

0

13.11.2019 19:20:23

 

Пользователь 159878

Посетитель

Сообщений: 49
Баллов: 7
Авторитет:

6

Рейтинг пользователя:

0

Регистрация: 22.01.2013

#19

0

13.11.2019 19:21:22

Цитата
Роман Нейман написал:
/bitrix/admin/module_admin.php?lang=ru ?

Вот скрин

Прикрепленные файлы

joxi_screenshot_1573662063668.png (243.97 КБ)

 

Пользователь 159878

Посетитель

Сообщений: 49
Баллов: 7
Авторитет:

6

Рейтинг пользователя:

0

Регистрация: 22.01.2013

#20

0

13.11.2019 19:22:53

Цитата
Роман Нейман написал:
Евгений Вальтер , повторяется ли ошибка при установке модуля из раздела «Модули» /bitrix/admin/module_admin.php?lang=ru ?

При этом я так понимаю сам модуль установился (скриншот)

Прикрепленные файлы

joxi_screenshot_1573662138779.png (278.51 КБ)

 

Пользователь 159878

Посетитель

Сообщений: 49
Баллов: 7
Авторитет:

6

Рейтинг пользователя:

0

Регистрация: 22.01.2013

#21

0

13.11.2019 19:24:59

Вернее не установился, в списке модулей он не установлен, но файлы есть. Это же модуль битрикса24 я так понимаю у нас их не должно было быть.    

 

Пользователь 1288159

Заглянувший

Сообщений: 32
Баллов: 2
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 17.04.2019

#22

0

14.11.2019 00:00:29

Эх…. сажусь теперь и я пробовать, еще раз на тестовой среде накатить эту обнову…. Но ощущение что не получится, а как красиво все всегда на презентации и хочется так же. клац одну кнопочку и все ЗаШиБиСь

Цитата
Роман Нейман написал:
мы подняли минимальные версии модулей с которых начинается загрузка обновлений.

Ура это случилось теперь не нужно выкачивать модули с 7-ой версии, и 10 лет не прошло)

В корне в папку services добавляется папка openlines…

Вы скажите кому руки оторвать нужно) Мы тут все с форума приедем и сделаем. Вторую ночь никто обновиться на «Чудо» продукт никак не может.

Оставлю это тут для раздумий…..







И после долгих попыток как вишенка на торте.!

Одним словом ЗАЕ….Ь

Может пора отозвать продукт пока люди себе сайты не поломали??? Пусть Рыжиков примет наконец волевое решение и скажет Блин ДА ложанулись в этот раз по крупному, нужен еще месяц на тесты и доделки! Ну сырой он, в общем я для себя принял решение, что вернусь к этому вопросу не раньше декабря месяца.
Вроде не дурак но 5 часов убиты уже в пустую и хоть какой-то результат был бы…

После еще пары часов я всетаки это поставил, но поверьте без бубна и бутылки водки точно не обойтись.

И вот так висит уже полчаса примерно.

Осталось понять почему виснет процесс, где лог смотреть? или в какой скрипт смотреть?

 

Роман Нейман

Администратор

Сообщений: 22
Баллов: 2
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 29.01.2019

#23

0

14.11.2019 09:29:57

Цитата
Евгений Вальтер написал:
Вернее не установился, в списке модулей он не установлен, но файлы есть. Это же модуль битрикса24 я так понимаю у нас их не должно было быть.    

Сам модуль не установлен, пока что загрузились обновления модуля. Это модуль корпоративного портала, он есть в новой редакции.

loki-sim, я рад, что у вас получилось выполнить мастер. Обработка заказов выполняется на агентах, напишите нам, в техническую поддержку посмотрим, почему у вас «завис» процесс обработки заказов.

 

Пользователь 159878

Посетитель

Сообщений: 49
Баллов: 7
Авторитет:

6

Рейтинг пользователя:

0

Регистрация: 22.01.2013

#24

0

14.11.2019 10:29:03

Цитата
Роман Нейман написал:

Цитата
Евгений Вальтер  написал:
Вернее не установился, в списке модулей он не установлен, но файлы есть. Это же модуль битрикса24 я так понимаю у нас их не должно было быть.    

Сам модуль не установлен, пока что загрузились обновления модуля. Это модуль корпоративного портала, он есть в новой редакции.

loki-sim , я рад, что у вас получилось выполнить мастер. Обработка заказов выполняется на агентах, напишите нам, в техническую поддержку посмотрим, почему у вас «завис» процесс обработки заказов.

Я написал вам в личку

 

Пользователь 1288159

Заглянувший

Сообщений: 32
Баллов: 2
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 17.04.2019

#25

0

14.11.2019 10:56:55

Цитата
Роман Нейман написал:
Обработка заказов выполняется на агентах, напишите нам, в техническую поддержку посмотрим

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

З.Ы. Нашел пустые заказы где нет отгрузок и обязательных полей для заказа, удалил, возможно поможет. А разработчикам доработать нужно уведомление на каком заказе повисло чтобы понять какой из них проблемный и каждый раз в код не лезть.

<? $MESSFORM_ADD«] = «Добавить«; $MESSFORM_TILL«] = «по«; $MESSFORM_F_ID«] = «ID:«; $MESSFORM_TITLE«] = «Заголовок«; $MESSFORM_YES«] = «Да«; $MESSFORM_NO«] = «Нет«; $MESSFORM_EXISTEN«] = «есть«; $MESSFORM_NOT_EXISTEN«] = «нет«; $MESSFORM_ALL«] = «(все)«; $MESSFORM_ACTION«] = «Действие«; $MESSFORM_F_SET_FILTER«] = «Установить«; $MESSFORM_F_DEL_FILTER«] = «Сбросить«; $MESSFORM_TOTAL«] = «Всего:«; $MESSFORM_SAVE«] = «Сохранить«; $MESSFORM_RESET«] = «Сбросить«; $MESSFORM_ACTIVE«] = «Акт.«; $MESSFORM_DELETE«] = «Удалить«; $MESSFORM_DELETE_L«] = «удалить«; $MESSFORM_ERROR«] = «Ошибка! «; $MESSFORM_ERROR_SAVE«] = «Ошибка записи в базу данных«; $MESSFORM_APPLY«] = «Применить«; $MESSFORM_TEXT«] = «Текст«; $MESSFORM_EDIT«] = «Изменить«; $MESSFORM_TEXT_FIELD«] = «текстовое поле«; $MESSFORM_EXACT_MATCH«] = «Искать точное совпадение при фильтрации«; $MESSFORM_NUMERIC_INTERVAL«] = «числовой интервал«; $MESSFORM_DROPDOWN_LIST«] = «выпадающий список«; $MESSFORM_DATE_INTERVAL«] = «интервал дат«; $MESSFORM_EXIST_FLAG«] = «флаг существования«; $MESSFORM_FIELD_TEXT«] = «текст«; $MESSFORM_FIELD_INTEGER«] = «число«; $MESSFORM_FIELD_DATE«] = «дата«; $MESSFORM_ENLARGE«] = «увеличить«; $MESSFORM_ACCESS_DENIED_FOR_FORM«] = «У вас недостаточно прав для просмотра формы.«; $MESSFORM_ACCESS_DENIED_FOR_FORM_RESULTS«] = «У вас недостаточно прав для просмотра данного результата.«; $MESSFORM_ACCESS_DENIED_FOR_FORM_RESULTS_EDITING«] = «У вас недостаточно прав для редактирования данного результата.«; $MESSFORM_ACCESS_DENIED_FOR_FORM_WRITE«] = «У вас недостаточно прав для заполнения формы.«; $MESSFORM_INCORRECT_DATE_FORMAT«] = «Неверный формат даты для поля «#FIELD_NAME#«.«; $MESSFORM_INCORRECT_FILE_TYPE«] = «Неверный тип файла для поля «#FIELD_NAME#« (файл необходимо выбрать заново).«; $MESSFORM_EMPTY_REQUIRED_FIELDS«] = «Не заполнены следующие обязательные поля:«; $MESSFORM_INCORRECT_FORM_ID«] = «Неверный ID формы.«; $MESSFORM_REQUIRED_FIELDS«] = «обязательные поля«; $MESSFORM_CLOSE«] = «Закрыть«; $MESSFORM_RESULTS_ALT«] = «Список результатов заполнения формы«; $MESSFORM_RESULTS«] = «Результаты«; $MESSFORM_QUESTIONS«] = «Вопросы«; $MESSFORM_QUESTIONS_ALT«] = «Список вопросов формы«; $MESSFORM_FIELDS_ALT«] = «Список дополнительных полей формы«; $MESSFORM_FIELDS«] = «Поля«; $MESSFORM_ADD_FIELD«] = «Добавить дополнительное поле«; $MESSFORM_ADD_QUESTION«] = «Добавить вопрос«; $MESSFORM_GENERATE_TEMPLATE«] = «Создать почтовый шаблон«; $MESSFORM_GENERATE_TEMPLATE_ALT«] = «Генерировать почтовый шаблон«; $MESSFORM_CREATE_S«] = «создать«; $MESSFORM_CREATE«] = «Создать«; $MESSFORM_DEFAULT«] = «по умолчанию«; $MESSFORM_DENIED«] = «доступ закрыт«; $MESSFORM_FILL«] = «заполнение формы«; $MESSFORM_FILL_EDIT«] = «работа со своим результатом в соответствии с его статусом«; $MESSFORM_VIEW«] = «работа со всеми результатами в соответствии с их статусами«; $MESSFORM_VIEW_PARAMS«] = «просмотр параметров формы«; $MESSFORM_WRITE«] = «полный доступ«; $MESSFORM_STATUSES_ALT«] = «Статусы результатов формы«; $MESSFORM_STATUSES«] = «Статусы«; $MESSFORM_ADD_STATUS«] = «Добавить статус результата«; $MESSFORM_STATUS_NOT_DEFINED«] = «Не определен статус для нового результата.«; $MESSFORM_NOT_ENOUGH_PERMISSION_FOR_STATUS«] = «Не хватает прав для установки статуса # #ID# новому результату.«; $MESSFORM_NOT_REGISTERED«] = «не зарегистрирован«; $MESSFORM_RESTRICT_USER_ERROR«] = «Превышено максимальное количество результатов«; $MESSFORM_RESTRICT_TIME_ERROR«] = «Прошло недостаточно времени с момента предыдущей отправки результата. Попробуйте чуть позже.«; $MESSFORM_EXCEL«] = «Просмотр данных в формате Excel«; $MESSFORM_MODULE_TITLE«] = «Модуль «Веб-формы«»; $MESSFORM_FILTER_ON«] = «[ фильтр включен ]«; $MESSFORM_FILTER_OFF«] = «[ фильтр выключен ]«; $MESSFORM_PUBLIC_ICON_SETTINGS«] = «Настройки веб-формы«; $MESSFORM_PUBLIC_ICON_HANDLER«] = «Редактировать текущий файл«; $MESSFORM_PUBLIC_ICON_TEMPLATE«] = «Редактировать шаблон показа веб-формы«; $MESSFORM_ADD_RESULT«] = «Добавить результат«; $MESSFORM_TYPE_FIELD«] = «поле«; $MESSFORM_TYPE_QUESTION«] = «вопросе«; $MESSFORM_TYPE_FORM«] = «форме«; $MESSFORM_PROP«] = «Свойства«; $MESSFORM_DESC«] = «Описание«; $MESSFORM_TPL«] = «Дополнительно«; $MESSFORM_EVENTS«] = «Статистика«; $MESSFORM_ACCESS«] = «Доступ«; $MESSFORM_PROP_TITLE«] = «Настройка параметров«; $MESSFORM_DESC_TITLE«] = «Описание формы«; $MESSFORM_TPL_TITLE«] = «Дополнительные настройки«; $MESSFORM_EVENTS_TITLE«] = «Идентификаторы события«; $MESSFORM_GROUP_EDIT«] = «Изменить параметры группы«; $MESSFORM_NEW«] = «Создать«; $MESSFORM_LIST«] = «Список«; $MESSFORM_CP«] = «Копировать«; $MESSFORM_CLEAR«] = «Очистить«; $MESSFORM_EDIT_FORM«] = «Изменить параметры формы«; $MESSFORM_ACTIVATE_L«] = «активировать«; $MESSFORM_DEACTIVATE_L«] = «деактивировать«; $MESSFORM_VISUAL_EDIT«] = «Визуальный редактор«; $MESSFORM_VISUAL_EDIT_ALT«] = «Визуальный редактор«; $MESSFORM_CAPTCHA_TABLE_TITLE«] = «Защита от автоматического заполнения«; $MESSFORM_CAPTCHA_FIELD_TITLE«] = «Введите символы с картинки«; $MESSFORM_WRONG_CAPTCHA«] = «Неверно введены символы с картинки«; $MESSFORM_PUBLIC_ICON_EDIT_TPL«] = «Редактировать шаблон формы«; $MESSFORM_PUBLIC_ICON_EDIT_DEFAULT_TPL«] = «Редактировать шаблон по умолчанию«; $MESSFORM_DOWNLOAD_FILE«] = «Скачать файл«; $MESSFORM_DOWNLOAD«] = «скачать«; $MESSFORM_MENU_EDIT«] = «Параметры формы«; $MESSFORM_MENU_EDIT_TITLE«] = «Редактировать параметры формы ‘#NAME#’«; $MESSFORM_MENU_RESULTS«] = «Результаты«; $MESSFORM_MENU_RESULTS_TITLE«] = «Список результатов формы ‘#NAME#’«; $MESSFORM_MENU_QUESTIONS«] = «Вопросы«; $MESSFORM_MENU_QUESTIONS_TITLE«] = «Список вопросов формы ‘#NAME#’«; $MESSFORM_MENU_FIELDS«] = «Поля«; $MESSFORM_MENU_FIELDS_TITLE«] = «Список полей формы ‘#NAME#’«; $MESSFORM_MENU_STATUSES«] = «Статусы«; $MESSFORM_MENU_STATUSES_TITLE«] = «Список статусов формы ‘#NAME#’«; $MESSFORM_NOT_AUTHORIZED«] = «не авторизован«; $MESSFORM_CRM_VERSION_FAILURE«] = «Неподходящая версия модуля CRM«; ?>


Многие владельцы сайтов на CMS WordPress уже задумывались как же связать сайт с CRM системой Битрикс 24? Чтобы ответить на данный вопрос, давайте рассмотрим интеграцию Contact Form 7 и Bitrix24.
Прежде всего рекомендую ознакомится со статьей «Битрикс24 лиды с сайта — автоматическое создание лидов» и затем продолжить изучение данной инструкции.

И так, давайте более детально рассмотрим автоматическую передачу заявок в CRM Битрикс24 для одной из популярных CMS систем WordPress, а также не менее популярного для неё плагина для создания, получения и обработки лидов с сайта — Contact Form 7. Для этого на понадобится:

  • Хук для перехвата введенных данных из Contact Form 7.
  • Выбор подходящего способа передачи в Битрикс 24
    • С помощью упрощенного Rest API
      • PHP скрипт для интеграции при помощи упрощенного Rest API
      • Объединение хука и PHP скрипта.
    • При помощи входящего вебхука
      • PHP скрипт для интеграции при входящего вебхука
      • Объединение хука и PHP скрипта.
  • Внесение полученного кода в Вашу тему в файл 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 — Контактные формы — «Интересующая контактная форма» — Шаблон/Письмо, где можно найти информацию о том, какие поля используются в Вашей форме.

Хук для Contact Form 7

Название $posted_data для хука Contact Form 7

Выбор подходящего способа передачи в Битрикс 24

В данной статье рассматривается два способа интеграции CF7 и Битрикс24:

  1. с помощью упрощенного Rest API;
  2. при помощи входящего вебхука в Битрикс24.

Из данных двух способов, я бы рекомендовал использовать интеграцию при помощи входящего вебхука в Битрикс24, так как данный способ более безопасный и более функциональный, чем интеграция при помощи упрощенного Rest API.

  1. С помощью упрощенного Rest API

    PHP скрипт упрощенного Rest API для отправки данных в Bitrix24

    Где взять данный скрипт и как его настроить, вы можете узнать здесь «Автоматическое создание лидов в Битрикс24 через упрощенный Rest API».

    Прежде чем указывать ваш логин и пароль в PHP скрипте, ознакомитесь, пожалуйста, с разделом «Логин и пароль пользователя Вашей CRM».

    Объединение хука и PHP скрипта

    Рассмотрев PHP скрипт упрощенного Rest API для отправки данных в Bitrix24 и Хук для перехвата введенных данных из Contact Form 7 теперь можно перейти к объединению данных двух функций. При этом необходимо будет учесть последовательность функций в коде, которая будет иметь следующий вид:

    1. вызов функции для перехвата данных;
    2. подключение к серверу CRM;
    3. авторизация в CRM;
    4. перехват данных из Contact Form 7;
    5. формирование параметров для создания лида в переменной $postData = array из Contact Form 7;
    6. передача данных из 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.0rn";
              $str .= "Host: ".CRM_HOST."rn";
              $str .= "Content-Type: application/x-www-form-urlencodedrn";
              $str .= "Content-Length: ".strlen($strPostData)."rn";
              $str .= "Connection: closernrn";
    
              $str .= $strPostData;
    
              fwrite($fp, $str);
    
              $result = '';
              while (!feof($fp))
              {
                 $result .= fgets($fp, 128);
              }
              fclose($fp);
    
              $response = explode("rnrn", $result);
    
              $output = '<pre>'.print_r($response[1], 1).'</pre>';
           } else {
              echo 'Connection Failed! '.$errstr.' ('.$errno.')';
           }
        }
    
    }
  2. При помощи входящего вебхука

    PHP скрипт входящего вебхука для отправки данных в Bitrix24

    PHP скрипт входящего вебхука и принцип его работы был рассмотрен ранее в статье «Автоматическое создание лидов в Битрикс24 при помощи входящего вебхука».

    Для того чтобы активировать работу данного скрипта, необходимо создать вебхук в самом Битрикс24 и получить [идентификатор_пользователя] и [код_вебхука]. Как это сделать можно узнать здесь: «Как создать входящий вубхук».

    Объединение хука и PHP скрипта

    Рассмотрев PHP скрипт входящего вебхука для отправки данных в Bitrix24, хук для перехвата введенных данных из Contact Form 7, активировав входящий вебхук и получив [идентификатор_пользователя] и [код_вебхука], можно перейти к объединению данных двух функций. При этом необходимо будет учесть последовательность функций в коде, которая будет иметь следующий вид:

    1. вызов функции для перехвата данных;
    2. перехват данных из Contact Form 7;
    3. формирование URL в переменной $queryUrl;
    4. формирование параметров для создания лида в переменной $queryData;
    5. обращение к Битрикс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.

Понравилась статья? Поделись ей =)

Подписаться на email рассылку

Хотите быть в курсе новых инструкций и кейсов для вашей работы?

Подпишись на полезную рассылку об интернет-маркетинге

Нужно передать данные формы сайта в лиды Crm Bitrix24. Форма отправляется методом POST. Язык сайта:PHP.

Состав формы:

Поле Переменная
Имя $_POST[“NAME_CALLBACK”]
Телефон $_POST[“PHONE_CALLBACK”]
Электронная почта $_POST[“EMAIL_CALLBACK”]
Метка UTM_SOURCE $_POST[“UTM_CALLBACK”]

Передачу будем организовывать через функцию php curl_exec()- выполнение запроса cURL .

Вариант 1

Сперва  сделал через crm/configs/import/lead.php

$url =‘https://[ИМЯ].bitrix24.ru/crm/configs/import/lead.php?

LOGIN=[логин]&PASSWORD=[пароль]&TITLE=’.str_replace(»

«,«»,$_POST[«NAME_CALLBACK»]).‘&PHONE_WORK=’.str_replace(»

«,«»,$_POST[«PHONE_CALLBACK»]).‘&UTM_SOURCE=’.str_replace(»

«,«»,$_POST[«UTM_CALLBACK»]).‘&EMAIL_WORK=’.str_replace(»

«,«»,$_POST[«EMAIL_CALLBACK»]).‘&ASSIGNED_BY_ID=15&SOURCE_ID=WEB’;

$ch = curl_init();

curl_setopt($ch,CURLOPT_URL,$url);

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

$result = curl_exec($ch);

curl_close($ch);

Разберем запрос:

[ИМЯ].bitrix24.ru – Имя СРМ Битрикс 24

[логин]– логин пользователя в CRM

[пароль]– пароль пользователя в CRM

TITLE– Название лида (обязательное)

PHONE_WORK– Рабочий телефон лида

EMAIL_WORK– Рабочая почта лида

ASSIGNED_BY_ID – ид отвественного

SOURCE_ID= Источник лида, здесь SOURCE_ID=WEB – веб сайт

UTM_SOURCE – метка UTM_source

К недостаткам этого варианта можно отнести небезопасность – в запросе передаются данные пользователя СРМ . У пользователя должны быть права только на добавление лида.

Также не предаются метки UTM, поэтому пришлось воспользоваться вебхуком.

Вариант 2 ВЕБХУК

В CRM Bitrix 24 выбираем Приложения, вкладка Вебхуки, добавить ВебХук – Входящий

Вводим название, описание и отмечаем галку CRM. После сохранения появится код вебхука и  пример URL, который нужно использовать при отправке данных в СРМ Битрикс24.

На основании полученного кода вебхука и примера формируем запрос к Битрикс24:

$Url = ‘https://[ИМЯ].bitrix24.ru/rest/[id пользователя]/[код вебхука]/crm.lead.add.json‘; 

При тестировании данного способа выявилось, что некоторые поля поменялись. PHONE_WORK и EMAIL_WORK теперь нужно передавать как маcсивы PHONE и EMAIl

В итоге код PHP по отправки лидов СРМ Битрикс 24 выглядит следующим образом:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

// определяем URL

$Url = ‘https://[ИМЯ].bitrix24.ru/rest/[id пользователя]/[код вебхука]/crm.lead.add.json’;

// описываем параметры  лида

$ParamLid = http_build_query(array(

  ‘fields’ => array(

    ‘TITLE’ => str_replace(» «,«»,$_POST[«NAME_CALLBACK»]), // НАЗВАНИЕ

    ‘NAME’ => str_replace(» «,«»,$_POST[«NAME_CALLBACK»]), // ИМЯ

‘PHONE’ => Array(

           «n0» => Array(

               «VALUE» => str_replace(» «,«»,$_POST[«PHONE_CALLBACK»]),

               «VALUE_TYPE» => «WORK»,

           )), // РАБОЧИЙ ТЕЛЕФОН в массиве

‘OPENED’ => ‘Y’, // Доступно для всех

‘SOURCE_ID’ => «WEB», //Источник вебсайт

‘SOURCE_DESCRIPTION’ => str_replace(» «,«»,$_POST[«UTM_CALLBACK»]), // доп описание источника

‘EMAIL’ => Array(

           «n0» => Array(

               «VALUE» => str_replace(» «,«»,$_POST[«EMAIL_CALLBACK»]),

               «VALUE_TYPE» => «WORK»,

           ),

       ), // Рабочая эл. почта

‘UTM_SOURCE’ =>  str_replace(» «,«»,$_POST[«UTM_CALLBACK»]), // UTM метка

‘ASSIGNED_BY_ID’ => 15, // Ид ответственного

  ),

  ‘params’ => array(«REGISTER_SONET_EVENT» => «Y»)

));

// обращаемся к сформированному URL при помощи функции curl_exec для создания лида

$ch = curl_init();

curl_setopt_array($ch, array(

  CURLOPT_SSL_VERIFYPEER => 0,

  CURLOPT_POST => 1,

  CURLOPT_HEADER => 0,

  CURLOPT_RETURNTRANSFER => 1,

  CURLOPT_URL => $Url,

  CURLOPT_POSTFIELDS => $ParamLid,

));

$result2 = curl_exec($ch);

curl_close($ch);

Как узнать ID пользователя в CRM Bitrix 24

Здесь ид пользователя нужен чтобы назначить ответственного при передаче данных формы в лид СРМ.

Переходим в Справочник “Сотрудники”, наводим мышкой на нужного сотрудника и переходим по ссылке Имя сотрудника:

В адресной строке браузера смотрим ИД выбранного пользователя:

Все параметры для передачи данных в лиды CRM

Поле Описание Тип
ADDRESS Адрес контакта string
ADDRESS_2 Вторая страница адреса string
ADDRESS_CITY Город string
ADDRESS_COUNTRY Страна string
ADDRESS_COUNTRY_CODE Код страны string
ADDRESS_POSTAL_CODE Почтовый индекс string
ADDRESS_PROVINCE Область string
ADDRESS_REGION Район string
ASSIGNED_BY_ID Связано с пользователем по ID user
BIRTHDATE Дата рождения date
COMMENTS Комментарии string
COMPANY_ID Привязка лида к компании crm_company
COMPANY_TITLE Название компании, привязанной к лиду crm_company
CONTACT_ID Привязка лида к контакту crm_contact
CREATED_BY_ID Кем создана user
DATE_CREATE Дата создания datetime
DATE_MODIFY Дата изменения datetime
EMAIL Адрес электронной почты crm_multifield
HAS_EMAIL Проверка заполненности поля электронной почты char
HAS_PHONE Проверка заполненности поля телефон char
HONORIFIC Вид обращения crm_status
ID Идентификатор контакта integer
IM Мессенджеры crm_multifield
IS_RETURN_CUSTOMER Признак повторного лида char
MODIFY_BY_ID Идентификатор автора последнего изменения user
NAME Имя string
OPENED Доступен для всех char
ORIGINATOR_ID Идентификатор источника данных string
ORIGIN_ID Идентификатор элемента в источнике данных string
ORIGIN_VERSION Оригинальная версия string
PHONE Телефон контакта crm_multifield
POST Должность string
SECOND_NAME Отчество string
SOURCE_DESCRIPTION Описание источника string
SOURCE_ID Идентификатор источника crm_status
STATUS_DESCRIPTION   string
STATUS_ID   string
STATUS_SEMANTIC_ID   string
TITLE Название лида string
UTM_CAMPAIGN Обозначение рекламной кампании string
UTM_CONTENT Содержание кампании string
UTM_MEDIUM Тип трафика string
UTM_SOURCE Рекламная система string
UTM_TERM Условие поиска кампании string
WEB URL ресурсов лида crm_multifield

Поделиться ссылкой:

Похожие записи

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
$to = ["..."];
$smtp_server = 'ssl://smtp.yandex.ru';
$smtp_port = 465;
$smtp_user = '...';
$smtp_pass = '...';
 
$bot_token = '...';
$chat_id = ...;
 
$bitrix24 = new Bitrix24Api();
 
if(isset($_POST['form'])) {
 
    require_once '../vendor/autoload.php';
    
    $transport = (new Swift_SmtpTransport($smtp_server, $smtp_port))
      ->setUsername($smtp_user)
      ->setPassword($smtp_pass);
    $mailer = new Swift_Mailer($transport);
    
    $errors = [];
 
    if ($_POST['form'] == 'callback_top') {
 
        if(!isset($_POST['name']) || empty($_POST['name'])) {
            $errors[] = 'name';
        }
        
        if(!isset($_POST['phone']) || empty($_POST['phone'])) {
            $errors[] = 'phone';
        }
        
        if(count($errors) == 0) {
            
            $body = '';
            $body .= 'Имя: '.htmlspecialchars($_POST['name']);
            $body .= "rn";
            $body .= 'Телефон: '.htmlspecialchars($_POST['phone']);
            $body .= "rn";
            $body .= 'Услуга: '.htmlspecialchars($_POST['service_name']);
            $body .= "rn";
            $body .= 'Город: '.htmlspecialchars($_POST['service_city']);
            $body .= "rn";
            $body .= 'Referrer: '.htmlspecialchars($_SERVER['HTTP_REFERER']);
            $body .= "rn";
            $body .= 'IP: '.htmlspecialchars($_SERVER['REMOTE_ADDR']);
            
            $from = 'запрос звонка в шапке';
            telegram($from, $body);
            
            $message = (new Swift_Message('Письмо с сайта ('.$from.')'))
              ->setFrom([$smtp_user => 'Site Robot'])
              ->setTo($to)
              ->setBody($body);
 
        $result = $mailer->send($message);
        $bitrix24->callback($_POST['name'], $_POST['phone']);
        echo json_encode(['success' => 1]);
            
 
    }
 
    else {
 
        $response['errors'] = $errors;
        echo json_encode($response);
 
    }
}
 
 
 
class Bitrix24Api
{
    private $host = '...bitrix24.ru';
    private $port =  '443';
    private $path = '/crm/configs/import/lead.php';
    private $login = '...';
    private $password = '...';
 
    public function callback($name, $phone)
    {
        $postData = array(
            'TITLE' => 'Заказ звонка', // Заголовок для лида
            'NAME' => $name, // Имя
            'PHONE_WORK' => $phone, // Телефон
            'LOGIN' => $this->login,
            'PASSWORD' => $this->password
        );
 
        if (!$fp = fsockopen("ssl://".$this->host, $this->port, $errno, $errstr, 30)) {
            throw new Exception('Connection Failed! '.$errstr.' ('.$errno.')');
        }
 
        $strPostData = '';
        foreach ($postData as $key => $value) {
            $strPostData .= ($strPostData == '' ? '' : '&').$key.'='.urlencode($value);
        }
 
        $str = "POST ". $this->path." HTTP/1.0rn";
        $str .= "Host: ". $this->host ."rn";
        $str .= "Content-Type: application/x-www-form-urlencodedrn";
        $str .= "Content-Length: ".strlen($strPostData)."rn";
        $str .= "Connection: closernrn";
        $str .= $strPostData;
 
        fwrite($fp, $str);
 
        $result = '';
 
        while (!feof($fp)) {
            $result .= fgets($fp, 128);
        }
 
        fclose($fp);
    }
 
 
    public function callbackMiddle($name, $phone)
    {
        $postData = array(
            'TITLE' => 'Заказ звонка', // Заголовок для лида
            'NAME' => $name, // Имя
            'PHONE_WORK' => $phone, // Телефон
            'LOGIN' => $this->login,
            'PASSWORD' => $this->password
        );
 
        if (!$fp = fsockopen("ssl://".$this->host, $this->port, $errno, $errstr, 30)) {
            throw new Exception('Connection Failed! '.$errstr.' ('.$errno.')');
        }
 
        $strPostData = '';
        foreach ($postData as $key => $value) {
            $strPostData .= ($strPostData == '' ? '' : '&').$key.'='.urlencode($value);
        }
 
        $str = "POST ". $this->path." HTTP/1.0rn";
        $str .= "Host: ". $this->host ."rn";
        $str .= "Content-Type: application/x-www-form-urlencodedrn";
        $str .= "Content-Length: ".strlen($strPostData)."rn";
        $str .= "Connection: closernrn";
        $str .= $strPostData;
 
        fwrite($fp, $str);
 
        $result = '';
 
        while (!feof($fp)) {
            $result .= fgets($fp, 128);
        }
 
        fclose($fp);
    }
 
 
    public function callbackBottom($name, $phone)
    {
        $postData = array(
            'TITLE' => 'Заказ звонка', // Заголовок для лида
            'NAME' => $name, // Имя
            'PHONE_WORK' => $phone, // Телефон
            'LOGIN' => $this->login,
            'PASSWORD' => $this->password
        );
 
        if (!$fp = fsockopen("ssl://".$this->host, $this->port, $errno, $errstr, 30)) {
            throw new Exception('Connection Failed! '.$errstr.' ('.$errno.')');
        }
 
        $strPostData = '';
        foreach ($postData as $key => $value) {
            $strPostData .= ($strPostData == '' ? '' : '&').$key.'='.urlencode($value);
        }
 
        $str = "POST ". $this->path." HTTP/1.0rn";
        $str .= "Host: ". $this->host ."rn";
        $str .= "Content-Type: application/x-www-form-urlencodedrn";
        $str .= "Content-Length: ".strlen($strPostData)."rn";
        $str .= "Connection: closernrn";
        $str .= $strPostData;
 
        fwrite($fp, $str);
 
        $result = '';
 
        while (!feof($fp)) {
            $result .= fgets($fp, 128);
        }
 
        fclose($fp);
    }
 
 
    public function becomeMaster($name, $phone)
    {
        $postData = array(
            'TITLE' => 'Заказ звонка', // Заголовок для лида
            'NAME' => $name, // Имя
            'PHONE_WORK' => $phone, // Телефон
            'LOGIN' => $this->login,
            'PASSWORD' => $this->password
        );
 
        if (!$fp = fsockopen("ssl://".$this->host, $this->port, $errno, $errstr, 30)) {
            throw new Exception('Connection Failed! '.$errstr.' ('.$errno.')');
        }
 
        $strPostData = '';
        foreach ($postData as $key => $value) {
            $strPostData .= ($strPostData == '' ? '' : '&').$key.'='.urlencode($value);
        }
 
        $str = "POST ". $this->path." HTTP/1.0rn";
        $str .= "Host: ". $this->host ."rn";
        $str .= "Content-Type: application/x-www-form-urlencodedrn";
        $str .= "Content-Length: ".strlen($strPostData)."rn";
        $str .= "Connection: closernrn";
        $str .= $strPostData;
 
        fwrite($fp, $str);
 
        $result = '';
 
        while (!feof($fp)) {
            $result .= fgets($fp, 128);
        }
 
        fclose($fp);
    }
}

Понравилась статья? Поделить с друзьями:
  • Critical yum main error rpmdb open failed
  • Critical process died windows 10 как исправить через bios
  • Critical target error dev sda sector
  • Critical process died windows 10 как исправить при установке
  • Critical system failed windows 10 как исправить