Links
Comment on page

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

Кастомизация полей сущности (лида/контакта) доступна начиная с версии 2.15.0 (в предыдущих версиях была кастомизация только для лидов).
По умолчанию мы передаем в CRM стандартную информацию о звонке:
  • номер телефона клиента;
  • номер ответившего –> определяет того, кто станет ответственным за дело/звонок;
  • направление звонка (входящий/исходящий) – подпадает в название дела;
  • источник звонка.
Но возникают ситуации, когда требуется подкорректировать эти данные. Например, можно:
  • добавить комментарий в лид/контакт;
  • указать в поле "дополнительно об источнике", на какой транк поступил звонок.
По завершению звонка есть возможность изменить/обновить поля в сущности CRM.
Это возможно сделать один раз и только для вновь созданных лидов/контактов.

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

В веб-интерфейсе настройки модуля (http://<Asterisk IP>:8077/config):
  1. 1.
    Установите галочку "Включить кастомизацию".
  2. 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.