CRM система bitrix24 для landing page

crm для лендинг пейджВсем — привет! Пару недель назад, поступил заказ на создание landing page, и одним из пунктов ТЗ был: «связь с CRM системой битрикс24». А так как я стараюсь не делать лендинги на cms(ках), то задача казалась очень не простой, так как ни о каких готовых плагинах, виджетах и модулях речи и быть не могло. Все, как говорится: «Ручками»!!!

Для того, чтобы не дублировать контент, описывая что такое CRM, каким функционалом они обладают, предлагаю посмотреть этот 3х минутный отзыв, по которому вы сможете оценить часть возможностей CRM системы битрикс24:

Я думаю, что и многим из вас этот функционал может стать необходим. Ведь использование CRM системы — это один из самых наглядных и удобных инструментов для автоматизации и анализа вашего бизнеса, а точнее многих его аспектов. Кроме того, это далеко не полный перечень возможностей, и мы говорим, пока, только о бесплатной версии.

Если вы еще не определились с тем, на каком сервисе остановиться, то рекомендую ознакомиться с лучшими CRM-системами по мнению читателей этого блога.

В чем заключается связь landing page и CRM системы bitrix24

Речь пойдет об автоматическом добавлении лидов в сервис, на основе данных, полученных из контактной формы вашей посадочной страницы.

А уже потом, вы сможете вести клиента к покупке, помечая при этом на каком этапе находитесь, какие будут ваши следующие действия, раздавать указания сотрудникам, вешать deadline, назначать ответственных и т.д. Кроме того, можете хранить историю переписки, телефонных разговоров, и в визуально удобном формате, отслеживать воронку продаж на каждом ее этапе.

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

Вы сможете наглядно проследить на каком этапе у вас срываются сделки, а какие слова, предложения или другие действия приводят к успеху. За время использования CRM системы у вас соберется немало информации для анализа и ее использование несомненно повысят продажи в целом.

Если кто-то еще сомневается или какие-то моменты непонятны, посмотрите этот ролик:

И это все равно еще не полный функционал. Для того, чтобы более детально ознакомиться с CRMкой, переходите на официальный сайт и почитайте: www.bitrix24.ru. Конечно же вам нужно завести аккаунт, поэтому предлагаю лайкнуть статью, чтобы не потерять и зарегистрироваться в системе, не спеша познакомиться с интерфейсом, а потом вернуться к этой статье и продолжить настройку.

Автоматическое добавление лидов в bitrix24 из формы обратной связи

Теперь можно переходить к реализации функционала по автоматическому добавлению лидов в crm систему, а заодно, отправим эти же данные и к вам на почту.

В этой статье мы ограничимся полями, которые есть в системе по умолчанию, а в следующий раз мы с вами создадим свое собственное поле (система позволяет это, что дает возможность адаптировать ее под любой вид бизнеса ), например добавление файла и тоже загрузим его непосредственно в систему.

Не переживайте, 80% людей будет достаточно и тех полей, которые предлагает система по умолчанию. Смотрите сами (или пролистайте быстро, эта таблица вам пригодится позже):


Параметры по умолчанию, которые можно передать в crm систему для формирования лида

Параметр Тип Описание
LOGIN* String Логин
PASSWORD* String Пароль
TITLE* String Название
COMPANY_TITLE String Название компании
NAME String Имя
LAST_NAME String Фамилия
SECOND_NAME String Отчество
POST String Должность
ADDRESS String Адрес
COMMENTS String Комментарий
SOURCE_DESCRIPTION String Дополнительно о статусе
STATUS_DESCRIPTION String Дополнительно об источнике
OPPORTINUTY Double Возможная сумма сделки
CURRENCY_ID String Валюта
PRODUCT_ID String Продукт
SOURCE_ID String Источник
STATUS_ID String Статус
ASSIGNED_BY_ID Int Ответственный
PHONE_WORK String Рабочий телефон
PHONE_MOBILE String Мобильный телефон
PHONE_FAX String Номер факса
PHONE_HOME String Домашний телефон
PHONE_PAGER String Номер пейджера
PHONE_OTHER String Другой телефон
WEB_WORK String Корпоративный сайт
WEB_HOME String Личная страница
WEB_FACEBOOK String Страница Facebook
WEB_LIVEJOURNAL String Страница LiveJournal
WEB_TWITTER String Микроблог Twitter
WEB_OTHER String Другой сайт
EMAIL_WORK String  Рабочий e-mail
EMAIL_HOME String  Частный e-mail
 EMAIL_OTHER String  Другой e-mail
M_SKYPE String  Контакт Skype
 IM_ICQ String  Контакт ICQ
 IM_MSN String  Контакт MSN/Live!
 IM_JABBER String  Контакт Jabber
 IM_OTHER String  Другой контакт

Думаю, что более чем достаточно (если кто-то не понял, то это те данные, которые можно передать в CRM систему из формы обратной связи). Но если кому-то этого мало, то в следующий раз мы разберем как добавить свои собственные поля и передать их в систему. Давайте наконец перейдем к коду…

Создадим поля для получения контактных данных пользователя:

<form id="application" action="application1.php" method=post enctype="multipart/form-data">
  <input  name="DATA[NAME]"  id="applicationName" maxlength="20" placeholder="Введите ваше имя" required="">
  <input  name="DATA[PHONE_WORK]"  type="tel" id="applicationTelephone" maxlength="20" placeholder="Введите ваш телефон" required="">
  <input  name="DATA[EMAIL_WORK]"  type="email" id="applicationEmail" maxlength="30" placeholder="Введите ваш E-mail*" required />
  <p>Прикрепить регистрационные документы</p>
  <input id="send" name="upl" type="file"/>
  <textarea  name="DATA[COMMENTS]" id="mess" rows="10" cols="45"> </textarea>
  <input class="applicationButton" type="submit" value="ОТПРАВИТЬ" name="submit"/>
</form>

Возможно, кто-то из вас узнал знакомую структуру, но здесь следует обратить внимание на атрибуты name. Как вы могли заметить именно здесь указываются параметры из таблицы. То есть если вам необходимо получить имя пользователя, то находим соответствующую строку в таблице и подставляем нужный параметр. DATA[]  — необходимо для того, чтобы объединить полученные данные в строку, пробежавшись по всем полям содержащим DATA.

в общем в этой части все без сюрпризов. Переходим к обработчику…

Так как одной из возможностей данной формы — является передача файла, то я частично воспользуюсь кодом из этой статьи. Первым делом давайте отправим наши данные на почту:


<?php
function show_form()
{
?>

<?
}
function complete_mail() {

$leadData = $_POST['DATA'];

// Получаем данные из форм и сохраняем в массив
$postData = array(
  'Имя:' => $leadData['NAME'],
  'Телефон' => $leadData['PHONE_WORK'],
  'Почта:' => $leadData['EMAIL_WORK'],
  'Комментарий:' => $leadData['COMMENTS'],
);
$strPostData = '';
foreach ($postData as $key => $value)
$strPostData .= ($strPostData == '' ? '' : ' ').$key.' '.($value)."<br>";
$str .= "<p><strong>Заявка:</strong> <br/> ".($strPostData)."</p>\r\n";

   require 'class.phpmailer.php'; //Дополнительный скрипт для отправки файла, можете не открывать, просто положите рядом с index.html и этим файлом.

 $mail = new PHPMailer();
 $mail->From = 'mail@test.ru'; // от кого (Электронный адрес)
 $mail->FromName = 'smartlanding'; // от кого Имя
 $mail->AddAddress('smart-landing@yandex.ru', 'Имя'); // кому - Ваша почта, Имя
 $mail->IsHTML(true); // формат письма HTML
 $mail->Subject = "Заявка с сайта"; // тема письма
// если есть файл, то прикрепляем его к письму
 if(isset($_FILES['upl'])) {
 if($_FILES['upl']['error'] == 0){
 $mail->AddAttachment($_FILES['upl']['tmp_name'], $_FILES['upl']['name']);
 }
 }
$mail->Body = $str;
// отправляем наше письмо
if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
}
if (!empty($_POST['submit'])) complete_mail();
else show_form();
?>

C первой частью справились, теперь отправим данные в CRM систему.

<?

define('CRM_HOST', 'smartlanding.bitrix24.ru'); // Домен срм системы
define('CRM_PORT', '443'); // порт
define('CRM_PATH', '/crm/configs/import/lead.php');
define('CRM_LOGIN', 'samrt-landing@yandex.ru'); // логин
define('CRM_PASSWORD', 'zxcIoe5fdr'); // пароль

/********************************************************************************************/

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
 $leadData = $_POST['DATA'];

 $metka = "Заявка с сайта"; // Название лида, обязательное условие
 // получаем данные из полей и задаем название лида
 $postData = array(
 'TITLE' => $metka,
 'NAME' => $leadData['NAME'],
 'PHONE_WORK' =>$leadData['PHONE_WORK'],
 'COMMENTS' => $leadData['COMMENTS'],
 'EMAIL_WORK' => $leadData['EMAIL_WORK'],
 );

 // авторизация, проверка логина и пароля
 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.')';
 }
}
else
{
 $output = '';
}

?>
<!-- То, что будет показываться на странице благодарности -->
<div id="thanks">
 <h1>Спасибо, Ваша заявка принята.</h1>
 <p class="Pthanks">Наш менеджер свяжется с Вами в течение 15 минут</p>
 <p>Если ваша заявка поступила после 21:00, мы обязательно свяжемся с Вами<br/> на следующий день после 10:00.</p><a href="http://sitename.ru">Вернуться на сайт</a>
</div>

Давайте подробнее остановимся на конкретных полях:

define('CRM_HOST', 'smartlanding.bitrix24.ru'); // Домен срм системы
define('CRM_PORT', '443'); // порт
define('CRM_PATH', '/crm/configs/import/lead.php');
define('CRM_LOGIN', 'samrt-landing@yandex.ru'); // логин
define('CRM_PASSWORD', 'zxcIoe5fdr'); // пароль

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

$metka = "Заявка с сайта";
$postData = array(
 'TITLE' => $metka,
 'NAME' => $leadData['NAME'],
 'PHONE_WORK' =>$leadData['PHONE_WORK'],
 'COMMENTS' => $leadData['COMMENTS'],
 'EMAIL_WORK' => $leadData['EMAIL_WORK'],
 );

При автоматическом создании лида, необходимо передать 1 обязательный параметр — это название лида ('TITLE'). Так как такого поля нет, его можно приравнять к имени лида, или как я, передавать в нем метку о том, откуда именно поступила заявка (по какой кнопке нажали). В остальном, здесь все точно так же, как и при отправке на почту.

Также, не забудьте поменять адрес страницы, на которую должен перейти пользователь на странице благодарности.

Больше никаких параметров менять не нужно, все будет работать. Как обычно, выкладываю свой исходник, для того, чтобы более наглядно было разбираться в коде). А на сегодня — все. Пока!

Скачать исходник

84 комментария

  • Юрий

    Или будет достаточно заменить id на class

    Ответить
  • dimadv7

    Вот тут на классах сделал, да и проще немного реализация:

    Ответить
  • Юрий

    Спасибо за ответ, а самой форме обязательно присваивать id или тоже можно класс?

    Ответить
  • dimadv7

    Можно класс)

    Ответить
  • Марк

    Спасибо, за труды!
    Я в php вообще не силен. Но эту штуку хочу сделать. Для начала решил опробовать вот прям ваш исходник только со своими данными, но после отправки формы, выдает ошибку
    «Страница markeley.ho.ua не работает
    Сайт markeley.ho.ua пока не может обработать этот запрос.
    HTTP ERROR 500»
    Хостинг хоть и бесплатный (тестовый мой), но с поддержкой php, и с него приходили письма с форм заявок.

    Ответить
  • Марк

    Разобрался. Спасибо.

    Ответить
  • dimadv7

    Еще статья есть о том, как свои поля сделать, тут проще способ немного :https://smartlanding.biz/kak-dobavit-svoi-polya-dlya-formirovaniya-lidov-v-crm-bitrix24.html

    Ответить
  • Марк

    Как раз с помощью той статьи и разобрался.
    Спасибо.

    Ответить
  • Артем

    Добрый день! Подскажите пожалуйста, как мне интегрировать битрикс с сайтом, созданным на webflow? Там немного иная структура. Т.е. изначально отвязываю формы от вф, ( __http://alitasa.ru/blog/webflow-forms/ ). А как потом интегрировать с битрикс?

    Ответить
  • Евгения

    А что вы уже сделали? Статья же описывает, как связать форму с битрикс. И исходник есть…

    Ответить
  • Артем

    Все получилось, удалил вообще обработчик из webflow. Евгения, а вы не подскажете, как можно передать в crm название формы с сайта, если их несколько? Например если заказали консультацию — менеджер уже знал об этом.

    Ответить
  • dimadv7

    Я подскажу. Создаете скрытое поле, то есть с type=»hidden», в значение value — пишите название формы. А потом по схеме: https://smartlanding.biz/kak-dobavit-svoi-polya-dlya-formirovaniya-lidov-v-crm-bitrix24.html

    Или, создаем скрытое поле, кнопке отправить заполняем title (с названием формы) и вешаем событие на клик. А затем при клике заполняем соответствующее скрытое поле информацией взятой из title.

    Ответить
  • John_Silver

    Привет!
    Возникла такая проблема: если в форму обратной связи на сайте ввести e-mail по маске «imya@domen.ru», то все работает ок, данные передаются в CRM, лид создается, поля заполняются.
    Но если в поле с почтой указать что-то не по маске, например, «imya@domen», то в CRM вообще ничего не приходит: ни e-mail, ни данные из других полей (имя, телефон).
    Как это исправить? Получается, что Битрикс не только не дает мыло не по маске добавит, а вообще всю заявку игнорит, в которой и другие данные есть, кроме мыла.

    Ответить
  • dimadv7

    Я не в курсе даже. Возможно делать валидацию у себя. Ну я же никак не повлияю на политику битрикса, если они не принимают лид без правильно заполненной почты. Попробуй в поддержку написать, может они подскажут. Отпиши тогда сюда пожалуйста, если решишь вопрос.

    Ответить
  • John_Silver

    Да я понимаю, что ты не повлияешь на политику битрикса) просто думал, может, уже есть решение.
    А так, я к таким же выводам пока пришел: либо валидацию на сайте делать, которая будет сообщение об ошибке или просто очищать поле с мылом и отправлять заявку без мыла, либо мыло с сайта добавлять в самостоятельно созданное поле, в котором валидации со стороны Битрикса не будет.
    Ну и в Битрикс написал, посмотрим, что ответят. В прошлый раз они ошибку по заявке за неделю исправили.
    Если будут новости, отпишу)

    Ответить
  • John_Silver

    Ответ службы поддержки:

    <img src="http://imgdepo.com/id/i9870385" border="0">
    Ответить
  • Егор

    Привет! Столкнулся тоже с такой проблемой, то что из исходных кодов твоих не уходят па почту письма, а лиды норм. Форма сделана вообще на отдельной странице. Почему так может быть?

    Ответить
  • dimadv7

    Не mail.ru же почтовый сервис? И хостер позволяет отсылать сообщения на почту, не привязанною к домену?

    Ответить
  • Егор

    Приходят но с задержкой почему-то.

    Ответить
  • Егор

    И доходит лишь часть, это на стороне сервера уже что-то?

    Ответить
  • dimadv7

    Скорее всего, я не в курсе почему так может быть, попробуйте к хостеру обратиться. Может подскажет в чем дело.

    Ответить
  • Дмитрий

    перепутали местами SOURCE_DESCRIPTION и STATUS_DESCRIPTION

    Ответить
  • Денис

    dimadv7 привет скачал твои исходники, прописал свои данные и все равно не работает

    Ответить
  • Денис

    dimadv7 все заработало спасибо за статью

    Ответить
  • Евгений

    Денис, в чем была проблема? Потому что у меня не работает, когда корректирую под свои данные.

    Ответить
  • Artem

    dimadv7 не работает , выдает следующие строки
    Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://coremergy.bitrix24.ru:443 (Unable to find the socket transport «ssl» — did you forget to enable it when you configured PHP?) in Z:\home\BITRIX\www\application1.php on line 90
    Connection Failed! Unable to find the socket transport «ssl» — did you forget to enable it when you configured PHP? (81466896)

    Ответить
  • Андрей

    Привет, ты так и не разобрался с этой проблемой? Тоже ни в какую не хочет товар прикрепляться

    Ответить
  • Сергей

    Дмитрий, здравствуйте. Вы еще отвечаете на вопросы по теме передачи данных в Битрикс24?

    Ответить
  • dimadv7

    Здравствуйте, если в курсе чем помочь, конечно.

    Ответить
  • Сергей

    Меня зовут Сергей. Проблема встала при отправке форм со страницы ЛК на Битрикс24 (т.н. стол Оператора). В формах, приходящих в Лиды не отображаются Имя, телефон и т.д. клиента). Т.е. форма не подхватывает эти данные. Как мы не бились — не можем это сделать. Не хватает компетенции.
    Вашу форму поставил. Настроил все. НО. 1. Дает ошибку в этой строке $str .= «Заявка: «.($strPostData).»\r\n»;
    2. В Лидах нет названия формы, а только #71 и т.д. и нет ни имени ни фамилии. Только номер телефона и мейл. И то, те, которые я вбиваю в форму.
    Почему так?

    Ответить
  • Сергей

    А в личку можно Вам написать?
    Может договоримся о помощи.

    Ответить
  • dimadv7

    Да я не в курсе как там работать с битрикс24, если не работает то, что в статье, то вряд ли смогу помочь. Я не разбирался подробно, а просто была задача отправить данные из формы, и я разобрался как это сделать. А подробнее не вникал. Вам лучше обратиться к какому-нибудь разработчику ,который занимается этим профессионально и сертифицирован битриксом.

    Ответить
  • Сергей

    Ладно. Спасибо

    Ответить
  • Андрей

    Добрый день, подскажите. У нас есть форма, но при ее отправки, если есть лид (дубликат) нужно чтобы выдавало ошибку, такой лид есть.

    Ответить

Добавить комментарий

 

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