loader
Заказать услуги

PHP класс для автоматического создания лидов в Битрикс24

Создание лида в Битрикс24 осуществляется через входящий веб хук, который предварительно содается в панели CRM

Сам класс для работы с Битрикс24

<?php
class Bitrix24{ private $userId; private $webhook; public function __construct($userId, $webhook){ $this->userId = (int)$userId; $this->webhook = $webhook; } public function getRestUrl($action){ return "домен_битрикс24/rest/{$this->userId}/{$this->webhook}/{$action}"; } public function getLeadFields(){ return $this->send('crm.lead.fields.json'); } public function createLead($fields, $assignedById = null, $sonet = true){ $normalizedFields = []; foreach ($fields as $key => $value){ if (preg_match('/^(?<name>EMAIL|PHONE|IM|WEB)_(?<type>.*)$/', strtoupper($key), $m)){ $normalizedFields[$m['name']]['n' . count($normalizedFields[$m['name']] ?? [])] = ['VALUE' => ($m['name'] == 'PHONE')? ('+' . preg_replace(['/[^0-9]+/', '/^8/'], ['', '7'], $value)): trim($value),'VALUE_TYPE' => $m['type']]; } else { $normalizedFields[$key] = trim($value); } } $normalizedFields['STATUS_ID'] = $normalizedFields['STATUS_ID'] ?? 'NEW'; $normalizedFields['SOURCE_ID'] = $normalizedFields['SOURCE_ID'] ?? 'WEB'; if ($assignedById){ $normalizedFields['ASSIGNED_BY_ID'] = $assignedById; } return $this->send('crm.lead.add.json', ['fields' => $normalizedFields,'params' => $sonet ? ['REGISTER_SONET_EVENT' => 'Y'] : []]); } public function send($action, $data = []){ $ch = curl_init($this->getRestUrl($action)); curl_setopt_array($ch, [CURLOPT_POST => 1,CURLOPT_RETURNTRANSFER => 1,CURLOPT_SSL_VERIFYPEER => 0,CURLOPT_HEADER => 0,CURLOPT_POSTFIELDS => http_build_query($data),]); if (!$result = curl_exec($ch)) { trigger_error(curl_error($ch)); } elseif (!$result = json_decode($result, true)) { trigger_error(json_last_error()); } elseif (array_key_exists('error', $result)) { trigger_error($result['error_description']); } return $result; }
}

Его вызов:

$bx24 = new Bitrix24('id_пользоваля', 'хешвебхука');
$bx24->createLead([ 'TITLE' => 'Новый лид с сайта', 'NAME' => $_POST['Имя'], 'EMAIL_WORK' => $_POST['Почта'], 'PHONE_WORK' => $_POST['Номер_телефона']], 123);
0 Комментариев
Что-бы оставить свой комментарий Вы должны авторизоваться на сайте
x
Тема пуша
Сообщение пуша
Наверх
Отправить заявку
Нажимая на кнопку, вы даете согласие на обработку своих персональных данных