Обновление полей сущности

Кастомизация полей сущности (лида/контакта) доступна начиная с версии 2.15.0 (в предыдущих версиях была кастомизация только для лидов).

По умолчанию мы передаем в CRM стандартную информацию о звонке:

  • номер телефона клиента;

  • номер ответившего –> определяет того, кто станет ответственным за дело/звонок;

  • направление звонка (входящий/исходящий) – подпадает в название дела;

  • источник звонка.

Но возникают ситуации, когда требуется подкорректировать эти данные. Например, можно:

  • добавить комментарий в лид/контакт;

  • указать в поле "дополнительно об источнике", на какой транк поступил звонок.

По завершению звонка есть возможность изменить/обновить поля в сущности CRM.

Это возможно сделать один раз и только для вновь созданных лидов/контактов.

Как реализовать

В веб-интерфейсе настройки модуля (http://<Asterisk IP>:8077/config):

  1. Установите галочку "Включить кастомизацию".

  2. Установите галочку на пункте "полей сущности".

2. Отредактируйте файл кастомизации.

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

Для версий ДО 3.4.0 этот файл находится в каталоге /opt/itgrix_bx/custom/

Параметры сущности, которые можно изменять, описаны в статье.

Пример кастомизации:

Пишем в название номер клиента, направление звонка (исходящий/входящий), если он пропущен – дополнительно напишем это. И в поле "Дополнительно об источнике" укажем транк, на который звонили.

С версии 3.10.0

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

// Нужно вернуть массив [обновляемое_поле = значение]
$newFields = array();

if ($params['call_full']['entity']['is_new']) {

// Пример: изменяем имя лида
$type = 'Входящий ';
$number = isset($params['call_full']['channel']['from']['custom'])
    ? $params['call_full']['channel']['from']['custom']
    : $params['call_full']['channel']['from']['original'];
$trunk = isset($params['call_full']['channel']['trunk']['custom'])
    ? $params['call_full']['channel']['trunk']['custom']
    : $params['call_full']['channel']['trunk']['original'];

// 2 - incoming, 3 - outgoing
if ($params['call_full']['channel']['type'] == 'outgoing') {
    $type = 'Исходящий ';
    $number = isset($params['call_full']['channel']['to']['custom'])
        ? $params['call_full']['channel']['to']['custom']
        : $params['call_full']['channel']['to']['original'];
}

if (! $params['call_full']['channel']['was_answered']) { // пропущенный звонок
    $type .= 'пропущенный ';
}

$newFields = array(
    'NAME' => $number . ' - ' . $type . 'звонок', //изменяем название
    'SOURCE_DESCRIPTION' => $trunk, //изменяем поле Дополнительно об источнике
);

} else {
$this->logDebug(sprintf(
"Entity is not new (type: '%s', ID: '%s'), do nothing",
$params['call_full']['entity']['type'], $params['call_full']['entity']['id']));
}

return array(
    'state' => 'success',
    'data'  => $newFields,
);
// Нужно вернуть массив [обновляемое_поле = значение]

$newFields = array();

// Пример: изменяем имя лида
$type = 'Входящий ';
$number = $params['call']['from'];
$trunk = $params['call']['trunk'];

// 2 - incoming, 3 - outgoing
if ($params['call_full']['channel']['type'] == 'outgoing') {
    $type = 'Исходящий ';
    $number = isset($params['call_full']['channel']['to']['custom'])
       ? $params['call_full']['channel']['to']['custom']
       : $params['call_full']['channel']['to']['original'];
}

if (! $params['call_full']['channel']['was_answered']) { // пропущенный звонок
    $type .= 'пропущенный ';
}

$newFields = array(
    'NAME' => $number . ' - ' . $type . 'звонок', //изменяем название
    'SOURCE_DESCRIPTION' => $trunk, //изменяем поле Дополнительно об источнике
);

return array(
    'state' => 'success',
    'data'  => $newFields,
);

Описание полей лида в API Битрикс24. Описание полей контакта в API Битрикс24.

Last updated