Кастомизация полей сущности (лида/контакта) доступна начиная с версии 2.15.0(в предыдущих версиях была кастомизация только для лидов).
По умолчанию мы передаем в CRM стандартную информацию о звонке:
номер телефона клиента;
номер ответившего –> определяет того, кто станет ответственным за дело/звонок;
направление звонка (входящий/исходящий) – подпадает в название дела;
источник звонка.
Но возникают ситуации, когда требуется подкорректировать эти данные. Например, можно:
добавить комментарий в лид/контакт;
указать в поле "дополнительно об источнике", на какой транк поступил звонок.
По завершению звонка есть возможность изменить/обновить поля в сущности CRM.
Для версий начиная с 3.10.0 модуль запускает эту кастомизацию на каждый звонок.
Как реализовать
В веб-интерфейсе настройки модуля (http://<Asterisk IP>:8077/config):
Установите галочку "Включить кастомизацию".
Установите галочку на пункте "полей сущности".
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,
);