> For the complete documentation index, see [llms.txt](https://itgro-aly.gitbook.io/test-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://itgro-aly.gitbook.io/test-docs/custom_common/client-phone-number.md).

# client phone number

При необходимости вы можете изменять номер телефона, полученный из АТС перед отправкой данных в CRM.

Это будет полезным, если вы хотите:

* Автоматически добавлять код города к коротким номерам, набранным сотрудникам;
* Заменять 7 на 8 в начале номера, если входящие звонки у вас фиксируются с 7;
* Добавлять 8 в начале номера, если входящие звонки приходят без 8;
* ...

{% hint style="info" %}
Начиная с версии [itgrix\_bx 3.0.0](file:///1659967/changelog-bx.md#3.0.0) касмитозация номера разделена на две:\
\&#xNAN;*process\_user\_phone* – кастомизация внутреннего номера пользователя;\
\&#xNAN;*process\_client\_phone* – кастомизация номера клиента.
{% endhint %}

{% hint style="info" %}
Кастомизация настраивается в файле **process\_client\_phone.php,** он находится в каталоге:
{% endhint %}

|          itgrix\_bx (Битрикс24)         |           itgrix\_amo (amoCRM)           |
| :-------------------------------------: | :--------------------------------------: |
| **/opt/itgrix\_bx/customizer/actions/** | **/opt/itgrix\_amo/customizer/actions/** |

{% hint style="info" %}
Для более ранних версий:
{% endhint %}

| itgrix\_bx (Битрикс24) ДО версии 3.4.0 | itgrix\_amo (amoCRM) ДО версии 2.6.0 |
| :------------------------------------: | :----------------------------------: |
|       **/opt/itgrix\_bx/custom/**      |     **/opt/itgrix\_amo/custom/**     |

## Параметры

**Вход:**

```javascript
{
  "params": {
    "phone": “<номер>”
  }
}
```

**Вернуть:**

```javascript
{
  "data": {
    "phone": “<кастомизированный_номер>”
  },
  "state": "success"
}
```

## Пример обрезания номера и подстановки 8 в начале

В следующем примере для всех номеров, состоящих из 10 и более символов, в CRM попадет номер, в начале которого будет 8, а в конце – последние 10 цифр исходного номера телефона:

* 4991234567 заменится на 84991234567;
* 1234567 останется неизменным;
* 39974991234567 заменится на 84991234567;
* 74991234567 заменится на 84991234567;
* +74991234567 заменится на 84991234567.

```php
$phone = $params['phone'];

// Получаем последние 10 цифр номера
if(preg_match('/([0-9]{10})$/', $phone, $match)){
// если в номере нашлось 10 цифр в конце, то прибавляем в начало восьмерку
    $phone = '8' . $match[1];
}

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

{% hint style="info" %}
В отдельных случаях имеет значение не только кастомизация номера телефона, но и настройка префиксов номеров на странице настроек бизнес-логики в админке:

* при автораспределении, для поиска сущности номер сначала кастомизируется, а потом формируются варианты со всеми префиксами и без;
* ссылка на запись звонка в CRM формируется без префикса и номер не кастомизируется;
* при поиске записи в CDR номер не кастомизируется, используются варианты со всеми префиксами и без.
  {% endhint %}

{% hint style="success" %}
В версиях itgrix\_bx старше 2.14.3 этот код уже имеется в кастомизации – его достаточно только раскомментировать.
{% endhint %}
