{"id":14293,"url":"\/distributions\/14293\/click?bit=1&hash=05c87a3ce0b7c4063dd46190317b7d4a16bc23b8ced3bfac605d44f253650a0f","hash":"05c87a3ce0b7c4063dd46190317b7d4a16bc23b8ced3bfac605d44f253650a0f","title":"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043d\u0435 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0432 \u043d\u0438 \u043a\u043e\u043f\u0435\u0439\u043a\u0438","buttonText":"","imageUuid":""}

Автоматическое создание лидов в Битрикс24 при помощи входящего вебхука

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

Так что такое вебхуки в Битрикс24?

WebHooks Bitrix24 — механизм, который позволяет вам использовать практически весь богатый функционал Rest API Битрикс24, но при минимальных знаниях и трудозатрат.

И так, для организации автоматической передачи лидов при помощи вебхуков необходимо:

1. Создать входящий вебхук

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

С 30.09.2020 Битрикс24 предложили готовые сценарии с примерами кода и предустановлеными параметрами на базе вебхуков.

Для этого следуем по инструкции:

  • Приложения → Разработчика → Готовые сценарии → Другое → Входящий вебхук.
  • Выбираем Метод - profile.

  • Вводим название для вебхука.
  • После чего нажимаем на кнопку сохранить.

Пример создания вебхука через сценарии

После сохранения появится код для авторизации вебхука и образец URL, который нужно использовать при отправке данных в Битрикс24.

Образец URL

, где

  • /rest/ — метод Rest API;
  • /1/ - идентификатор пользователя, пользуясь правами которого будет работать вебхук;
  • /m5iad0m3yd16dgrg/ - код вебхука;
  • /profile/ — метод REST, который вы хотите выполнить, обращаясь к вебхуку. При добавлении лида в CRM систему необходимо использовать метод crm.lead.add.json.

2. Написать код для перехвата и передачи данных

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

Для того чтобы создать лид в Битрикс 24 можно использовать готовый метод Bitrix24::createLead().

Пример создания лида

<?php $bx24 = new Bitrix24('ид_пользователя', 'хэш_вебхука'); $bx24->createLead([ 'NAME' => 'КОНТУР', 'EMAIL_WORK' => '[email protected]', 'EMAIL_HOME' => '[email protected]', 'PHONE_WORK' => '8 (383) 255-33-33' ], 123); ?>

Пример класса работы с Битрикс24

<?php class Bitrix24 { /** * Идентификатор пользователя вебхука * @var int */ private $userId; /** * Хэш вебхука * @var string */ private $webhook; /** * Конструктор класса * @param int $userId идентификатор пользоателя вебхука * @param string $webhook хэш вебхука */ public function __construct($userId, $webhook) { $this->userId = (int)$userId; $this->webhook = $webhook; } /** * Получение URL метода вебхука * @param string $action имя метода * @return string */ public function getRestUrl($action) { return "https://kontur.bitrix24.ru/rest/{$this->userId}/{$this->webhook}/{$action}"; } /** * Получение списка доступных полей * * @return [] */ public function getLeadFields() { return $this->send('crm.lead.fields.json'); } /** * Создание лида * * @param [] $fields Поля для создания лида вида [name=>value]. * @param int|null $assignedById Идентификатор отвественного пользователя. * По умолчанию (null) не назначен. * @param bool $sonet произвести регистрацию события добавления лида в живой ленте. * По умолчанию (true) - произвести регистрацию события. * @return [] результат добавления лида */ 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); } } // Если статус заявки не передан явно, устанавливаем его в значение "NEW" (новая) $normalizedFields['STATUS_ID'] = $normalizedFields['STATUS_ID'] ?? 'NEW'; // Если источник заявки не передан явно, устанавливаем его в значение "WEB" (веб-сайт) $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'] : [] ]); } /** * Отправка запроса * * @param string $action имя метода * @param [] $data дополнительные данные. По умолчанию [] (пустой массив). * @return [] в случае успеха, возвращает массив JSON декодированных данных. */ 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; } }

Для получения всех доступных полей для создания лида, можно использовать метод Bitrix24::getLeadFields().

Пример получения доступных полей для создания лида

<?php $bx24 = new Bitrix24('ид_пользователя', 'хэш_вебхука'); $bx24->getLeadFields(); ?>

После совершения всех этих действий, тестируйте.

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

0
1 комментарий
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
-2 комментариев
Раскрывать всегда