Создавать лид для каждого входящего звонка

По умолчанию модуль только регистрирует звонок, а Битрикс24 сам по номеру телефона ищет лид/контакт, в который нужно записать этот звонок. Новый лид/контакт по умолчанию создается только в случае, если номер телефона не известен.

Чтобы создавать новый лид при каждом входящем звонке, нужно сделать запрос на создание лида через кастомизацию.

Запросы REST API Битрикс24 из кастомизации поддерживаются начиная с версии 3.4.0.

Функция для создания лида (Bitrix::createLead) поддерживается начиная с версии 3.4.2.

Подробности в статье Запросы в Битрикс из кастомизации.

1. Включить кастомизацию параметров регистрации разговора

В веб-интерфейсе настройки модуля в разделе Настройки -> Модуль нужно поставить галочки "Включить кастомизацию:" и "параметров регистрации разговора":

При использовании запросов в Битрикс24 из кастомизаций нужно устанавливать достаточный Таймаут скрипта кастомизации (в случае одного запроса нужно установить хотя бы 2 секунды).

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

2. Добавить код в файл кастомизации

Кастомизация параметров регистрации разговора настраивается в файле /opt/itgrix_bx/customizer/actions/process_registration_params.php.

Пример:

$phone = $params['PHONE_NUMBER'];

if ($params['TYPE'] === 2) { // входящий
    $this->logInfo("Create lead for incoming call");

    // Поля в документации:
    // https://dev.1c-bitrix.ru/rest_help/crm/leads/crm_lead_add.php
    $leadResult = Bitrix::createLead(
        array(
            'TITLE' => sprintf("%s - Входящий звонок", $phone),
            'PHONE' => array(array('VALUE' => $phone, 'VALUE_TYPE' => 'WORK')),
            'ASSIGNED_BY_ID' => $params['USER_ID'],
            'STATUS_ID' => 'NEW',
            'OPENED' => 'Y',
        ),
        array(
            // Произвести регистрацию события добавления лида в живой ленте.
            // Дополнительно будет отправлено уведомление ответственному за лид.
            'REGISTER_SONET_EVENT' => 'Y',
        ));

    if ($leadResult === false) {
        return array(
            'state' => 'error',
            'data'  => 'failed to create lead',
        );
    }

    $leadId = $leadResult['result'];

    $this->logInfo("Register call for lead ID $leadId");

    $params['CRM_CREATE'] = 0;
    $params['CRM_ENTITY_TYPE'] = 'LEAD';
    $params['CRM_ENTITY_ID'] = $leadId;
}

Last updated