Smartlanding

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

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

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

Я думаю, что и многим из вас этот функционал может стать необходим. Ведь использование 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 комментария

  • Дмитрий

    Connection Failed! (0)
    Спасибо, Ваша заявка принята.
    _________________
    Вот такую штуку получаю. ПРи этом на двух разных облаках. Раньше работало, заново решил просто по гайду с нуля пройти, воспроизвожу — опять ошибка. Не в курсе? Может что-то с сервисом?

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

    ПОчинилось спустя 3-е суток. переписал скрипт с нуля в 3-й раз — помогло! Спасибо за табличку сверху и по-русски адекватно написанному гайду! :)) )
    Ну да ладно. А нет гайдов таких же по бизнес процессам или как каталог импортировать товарный в облако!!! Помогите плиз. Пишите в hangouts it.dima.lovemusic@gmail.com буду рад сотрудничать.

    Ответить
  • dimadv7

    Нет, пока не в курсе, не сталкивался еще, просто это нужно было клиенту вместе с landing page, поэтому разбирался в срочно порядке и попутно в блог писал))

    Ответить
  • Влад

    Отличный сайт, много полезной и интересной информации, а можно исходник — что то у самого не работает, Заранее спасибо)

    Ответить
  • dimadv7

    Спасибо. Так в конце же статьи есть исходник.

    Ответить
  • Влад

    ссылка битая)) страница не найдена)

    Ответить
  • dimadv7

    Спасибо, поправил. Залил не архивом, а просто папку скопировал, поэтому так было)

    Ответить
  • Влад

    Тебе спасибо.

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

    Всю отправку можно упаковать в одну строку

     $sURI = 'https://koop.bitrix24.ru/crm/configs/import/lead.php?LOGIN=suvorov@gmail.com&PASSWORD=asdzxc&TITLE='.$_POST['formName'].'&NAME='.$_POST['formName'].'&PHONE_WORK='.$_POST['formTel']  ;
     file_get_contents($sURI);

    наверное не по правильному зато работет

    Ответить
  • dimadv7

    Да реализаций масса, просто мне же нужно было более наглядно подать материал. Если твой код работает, то почему нет? в своих проектах, кода не надо ничего никому объяснять, отлично подойдет))) И меньше весить будет))

    Ответить
  • stan

    А если, предположим, Игорь с номером +ххххххх оставит заявку, распакуется в битрикс, сделка завершится, но спустя месяц этот же Игорь с этим же номером оставит заявку на товар снова, то в системе создастся новый лид или по-умному прикрепится к старому Игорю с уведомлением о новом заказе для Игоря?

    Сорри, если запутал

    Ответить
  • dimadv7

    WP портит код, вставь его между [ html ][ /html ] — без пробелов и отправь еще раз!

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

    Спасибо за статью, но лучше расскажите как это сделать в Adobe Muse
    т.е. чисто привязать и настроить скрипт crm

    Ответить
  • dimadv7

    Точно также, как написано в статье. В чем проблема? Почему это лучше? Статей по adobe muse вообще не планируется…

    Ответить
  • Alex

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

    Ответить
  • dimadv7

    Привет, давай на «Ты». Смотри, первое, это нужно тестировать на реальном и виртуальном сервере, второе, хостинг должен быть платным и с поддержкой php. Не на тестовом периоде. Если все это сделано, то проверь путь к обработчику формы (указывается в атрибуте action=»» у формы), если и там порядок, то проверь везде ли указал свою почту. Если осталась моя, в файле application.php, то замени на свою. Ну и конечно перепроверь логин и пароль от crm, который там указываешь.

    Ответить
  • Alex

    Это тестируется на реальном рабочем сайте, в crm форму отправляет, а на почту нет. Все пути проверял, перепроверял, почту естественно свою указал, может как то реализовать можно отправку почты через всроеную функцию отправки почты wordpress?

    Ответить
  • dimadv7

    Да не. Должно работать. присылай мне на почту форму и файл с обработчиком. Я посмотрю. smart-landing@yandex.ru

    Ответить
  • Alex

    Так я Ваши исходники брал,залил их на сайт, только поменял логин пароль и данные почты. Главно в срм все ок отправляет, а на почту почему то не хочет.

    Ответить
  • Alex

    Сделал, отправка на почту с помощью всего лишь такой функции
    $send = mail ($address,$sub,$str,»Content-type:text/plain; charset = UTF-8\r\nFrom:$email»);
    Никаких дополнительных скриптов отправки почты не использовал, в вордпресс есть встроеный

    Ответить
  • dimadv7

    Договорились же на «Ты») Ну смотри, можно и так. В твоем случае с wp, так даже правильнее. У меня на сайтах, где я использовал такой функционал — работало все. Вот и думал проверить. Ну самое главное — разобрался ))

    Ответить
  • Константин

    Спасибо милый человек =))
    Все заработало как по маслу)
    вот тебе немного в карму +++++++++++++

    Ответить
  • dimadv7

    Ах-ха. Привет, спасибо))

    Ответить
  • Aleksey

    А в каком месте нужно ее прописать?

    Ответить
  • dimadv7

    Кого, ее?

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

    Использую «Клиентскую базу» системы CRM. Работа упростилась в разы. К преимуществам относятся: ведение документооборота и клиентской базы, работа с Word, Excel, наличие уровней доступа клиентов и сотрудников, составление планов и задач и многое другое. Обновленная версия не имеет сбоев и ошибок.

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

    1. На почту ничего не приходит. В Битрикс сыпется все нормально. Как дописать и что в файлах что бы на мейл отправляло инфу?

    2. Я в Битриксе создал произвольное поле и сделал его обязательным — Текужее время. Когда ставлю галочку — Обязательное поле — заказ не приходит в ЦРМ. Когда галочку убираю — заказ приходит но автоматов время и минуты не проставляет. Как быть?

    Ответить
  • dimadv7

    Я не разбирался с произвольными полями, для мейла нужно по-другому формировать тело письма. Нужно, чтобы было указано, от кого письмо:
    Как пример:

    <?php
    if($_POST)
        {
        $to = "почта@mail.ru"; //куда отправлять письмо
        $from = 'почта@mail.ru'; // от кого
        $subject = "Проверка почты"; //тема
        $message = 'Имя: '.$_POST['name'].'; Телефон: '.$_POST['telephone'].';';
        $headers = "Content-type: text/html; charset=UTF-8 \r\n";
        $headers .= "From: <почта@mail.ru>\r\n";
        $result = mail($to, $subject, $message, $headers);
     
        if ($result){
            echo "<p>Cообщение успешно отправленно. Пожалуйста, оставайтесь на связи</p>";
        }
        }
    ?>

    Сам на неделе только обнаружил, что на mail.ru не доходят.

    Ответить
  • IART

    Приветствую, не получается прикрепить PRODUCT_ID.
    Собстна дописал скрытое поле:

    <input  name="DATA[PRODUCT_ID]"  type="hidden" value="11" />

    добавил в массив 'PRODUCT_ID' => $leadData['PRODUCT_ID'],
    и тишина, товар существует в ЦРМ с ИД 11, но совсем не хочет лепить его к лиду(

    Ответить
  • Геннадий

    А что делать, если у меня в поле <input уже есть name='name' ?
    В битрикс отправляет но на почту не приходит заявка …

    Ответить
  • dimadv7

    Должно работать, что-то не так делаешь. Обычно у всех на оборот

    Ответить
  • Владимир

    Здравствуйте! Как в битрикс указать свои поля, например у меня в поле . Как сделать что бы в лид добавлялось значение из поля BUD1 ?

    Ответить
  • dimadv7

    Я еще не разбирался. Но знаю, что нужно по id обращаться (id поля в битриксе)

    Ответить
  • Владимир

    То есть только по тем id что предусмотрены в таблице выше? к примеру у себя в форме отправки данный в битриксе указывать существующие id типа Параметр Тип Описание
    LOGIN* String Логин
    PASSWORD* String Пароль
    TITLE* String Название
    COMPANY_TITLE String Название компании
    NAME String Имя

    Ответить
  • dimadv7

    Нет, при создании нового поля в битриксе, каждому из них присваивается свой id. После создания нового поля, этот id можно вытащить из адресной строки, выглядеть будет, примерно, так: «UF_CRM_1424673225» Вот к нему и нужно обращаться в обработчике формы. Подробнее рассказать не могу, так как сам еще не разбирался. Это то, что удалось «Нарыть» на форуме битрикса. Предварительно, думаю, это как раз тот параметр, который нужно передавать, на подобии как из таблицы мы берем, только вместо «NAME» писать «UF_CRM_1424673225», но могу ошибаться. Если разберетесь раньше, напишите мне пожалуйста.

    Ответить
  • Narnikgamarnik

    Здравствуйте.
    Скрипт отправляет письмо на CRM, но на почту нет,
    Не могу понять в чём дело.

    Ответить
  • shampoosik.ru

    Потенциальная сделка. Также создается в системе на основе лида или вручную с использованием конкретного контакта или компании.
    И поздравляю Вас с наступающим Новым Годом +)

    Ответить
  • Иван

    Добрый день!
    скопировал архив с исходником внес данные.
    на почту не приходит. но это не на до
    в CRM тоже не поступает.
    но в битриксе видать логинится нормально.

    может путь не верный? define('CRM_PATH', '/crm/configs/import/lead.php');

    Ответить
  • Иван

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

    Ответить
  • Иван

    касяк был в написании мыла. без .ru не приходило в битрикс

    Ответить
  • Иван

    спасибо за труд :)

    Ответить
  • Иван

    все вроде бы классно.
    а как товар к лиду прикреплять?
    PRODUCT_ID что то не работает :(

    Ответить
  • dimadv7

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

    Ответить
  • Алексей

    Спасибо большое! Выручило.

    Ответить
  • dimadv7

    Здорово :)

    Ответить
  • Mark

    Привет! Спасибо за твой кейс!
    Запустил твои исходники, на почту все приходит, в битрикс — нет.
    Домен, логин и пароль от битрикса указал свои.
    Подскажи пожалуйста, в чем может быть проблема?

    Ответить
  • dimadv7

    Привет, скорее всего ты адрес битрикса с https указал, попробуй удалить и оставить только домен, например smartlanding.bitrix24.ru

    Ответить
  • rshatskiy

    Привет, DIMADV7! А можно сделать так, чтобы после отправки не переадресовывало на страницу благодарности, а всплывающим окошком благодарило?

    Ответить
  • dimadv7

    Да, на блоге есть статья об этом. Только там в модальном окне, ну его можно и не подключать

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

    Добрый день! Скажите, если на лендинге несколько форм, в некоторых поля одинаковые, а в некоторых отличаются, как сделать чтобы все отправляли данные в Битрикс? В коде формы очень много id и каждый раз нужно присваивать новые?

    Ответить

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

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