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
Тема пуша
Сообщение пуша