# Изменение номера клиента перед отправкой в CRM

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

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

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

{% hint style="info" %}
Начиная с версии [itgrix\_bx 3.0.0](https://docs.itgrix.ru/custom_common/pages/-M0SZwZn5pERjpAzqeP-#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 %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.itgrix.ru/custom_common/client-phone-number.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
