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

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

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

* номер телефона клиента;
* номер ответившего –> определяет того, кто станет ответственным за дело/звонок;
* направление звонка (входящий/исходящий) – подпадает в название дела;
* источник звонка.

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

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

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

{% hint style="warning" %}
Для версий начиная с 3.10.0 модуль запускает эту кастомизацию на каждый звонок.
{% endhint %}

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

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

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

![](https://349598197-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M-rywOcELBwBcmtSBHS%2Fuploads%2Fgit-blob-a84e058832f86fbca59d049c240d370c36d513e9%2Fimage.png?alt=media)

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

{% hint style="info" %}
Кастомизация настраивается в файле **/opt/itgrix\_bx/customizer/actions/customize\_entity.php.**

Для версий ДО 3.4.0 этот файл находится в каталоге **/opt/itgrix\_bx/custom/**
{% endhint %}

Параметры сущности, которые можно изменять, [описаны в статье](https://docs.itgrix.ru/custom_bx/..#2-customize_entity).

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

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

#### С версии 3.10.0

<pre class="language-php" data-overflow="wrap"><code class="lang-php">// Для версий начиная с 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 = 'Исходящий ';
<strong>    $number = isset($params['call_full']['channel']['to']['custom'])
</strong>        ? $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,
);
</code></pre>

```php
// Нужно вернуть массив [обновляемое_поле = значение]

$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**](https://dev.1c-bitrix.ru/rest_help/crm/leads/crm_lead_fields.php)**.**\
Описание полей **контакта** в [**API Битрикс24**](https://dev.1c-bitrix.ru/rest_help/crm/contacts/crm_contact_fields.php)**.**
