Создаем сниппет с названием Bitrix24, в него вносим следующий код:
<?
// CRM server conection data
define('CRM_HOST', 'account.bitrix24.ru'); // your CRM domain name
define('CRM_PORT', '443'); // CRM server port
define('CRM_PATH', '/crm/configs/import/lead.php'); // CRM server REST service path
// CRM server authorization data
define('CRM_LOGIN', 'mail@mail.ru'); // login of a CRM user able to manage leads
define('CRM_PASSWORD', 'Your-Password'); // password of a CRM user
// OR you can send special authorization hash which is sent by server after first successful connection with login and password
//define('CRM_AUTH', 'e54ec19f0c5f092ea11145b80f465e1a'); // authorization hash
/********************************************************************************************/
// POST processing
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$leadData = $_POST;
// get lead data from the form
$postData = array(
'TITLE' => $leadData['title'],
'NAME' => $leadData['name'],
'EMAIL_HOME' => $leadData['email'],
'PHONE_WORK' => $leadData['phone'],
'COMMENTS' => $leadData['message'],
'SOURCE_ID' => 'WEB',
);
// append authorization data
if (defined('CRM_AUTH'))
{
$postData['AUTH'] = CRM_AUTH;
}
else
{
$postData['LOGIN'] = CRM_LOGIN;
$postData['PASSWORD'] = CRM_PASSWORD;
}
// open socket to CRM
$fp = fsockopen("ssl://".CRM_HOST, CRM_PORT, $errno, $errstr, 30);
if ($fp)
{
// prepare POST data
$strPostData = '';
foreach ($postData as $key => $value)
$strPostData .= ($strPostData == '' ? '' : '&').$key.'='.urlencode($value);
// prepare POST headers
$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;
// send POST to CRM
fwrite($fp, $str);
// get CRM headers
$result = '';
while (!feof($fp))
{
$result .= fgets($fp, 128);
}
fclose($fp);
// cut response headers
$response = explode("\r\n\r\n", $result);
$output = '<pre>'.print_r($response[1], 1).'</pre>';
}
else
{
echo 'Connection Failed! '.$errstr.' ('.$errno.')';
}
}
else
{
$output = '';
}
?>
В поля CRM_HOST, CRM_LOGIN и CRM_PASSWORD вносим соответственно адрес нашей Битрикс24, логин и пароль для аккаунта, от которого будут добавляться сделки.
И вызываем этот сниппет перед нужной нам формой:
[!Bitrix24!]
В форме, которую цепляем к Битрикс24 создаем следующую обязательную строку для названия, вида:
<input type="hidden" name="title" value="Заявка со страницы [*pagetitle*]">
Также можем занести в сниппет и другие поля, которые смотрим здесь: dev.1c-bitrix.ru/community/blogs/chaos/crm-sozdanie-lidov-iz-drugikh-servisov.php
Можно создать и в Битрикс24 пользовательские поля в разделе CRM — Настройки — Настройки форм и отчетов — Пользовательские поля — Лид. Поля создаются вида UF_CRM_XXXXXXXXXX, смотрим их названия и заносим их также в массив в сниппете.
Сохраняем, радуемся, проверяем и видим, что у нас теперь автоматически создаются сделки и контакты в Битрикс24.
Кому понравилась статья, ставьте лайк.
Олег 13.05.2019 09:04 #
Юрий 13.05.2019 13:07 #