> For the complete documentation index, see [llms.txt](https://docs.fstrk.io/knowledge_base/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fstrk.io/knowledge_base/intagrations/retailcrm/methods.md).

# RetailCRM: Процедуры

## RetailCRM: Процедуры для настройки сценариев

***

* [Чат с оператором](#chat-s-operatorom)
* [Контакты](#rabota-s-kontaktami)
  * [Новый контакт](#sozdat-kontakt)
  * [Поиск контакта](#naiti-kontakt)
  * [Изменение контакта](#redaktirvoat-kontakt)
* [Сделки](#rabota-so-sdelkami)
  * [Новая сделка](#sozdat-sdelku)
  * [Поиск сделки](#naiti-sdelku)
  * [Изменение сделки](#redaktirovat-sdelku)

***

## Чат с оператором

Начать чат с оператором через RetailCRM.

```
{% retail.enable text=<Тест сообщения> %}
```

Параметры процедуры:

* `text` *(string)* <mark style="color:red;">\*</mark> – Текст сообщения
* `team` *(string)* – Название команды операторов в Fasttrack
* `operator_email` *(string)* – Почта оператора в Fasttrack

\[ ⚠️ ] Ограничения:

* Нельзя одновременно указывать `team` и `operator_email`

\[ ✏️ ] Заметки:

* Если указать только `text`, то чат-сессия будет открыта с командой по умолчанию

## Контакты

Процедуры для работы с контактами в RetailCRM.

### Новый контакт

Процедура для создания нового контакта в RetailCRM:

```
{% retail.create_contact phone_number=<телефон> <поля контакта> as contact %}
```

* `phone_number` *(string)* <mark style="color:red;">\*</mark> – Номер телефона

Поля для заполнения:

* `email` *(string)* – Арес электронной почты
* `first_name` *(string)* – Имя
* `last_name` *(string)* – Фамилия
* `custom_fields` *(object)* – Дополнительные поля

Методы для процедуры:

* `contact.id_done` – метод для проверки результата создания контакта. Возвращает `true`, если контакт успешно создан, и `false`, если произошла ошибка.

Примеры:

<details>

<summary>Пример 1: Создать контакт в RetailCRM (только телефон)</summary>

{% code overflow="wrap" %}

```
{# Создать контакт в RetailCRM #}
{% retail.create_contact phone_number="+79001234567" as contact %}
```

{% endcode %}

</details>

<details>

<summary>Пример 2: Создать контакт в RetailCRM (имя, телефон, почта)</summary>

{% code overflow="wrap" %}

```
{# Создать контакт в RetailCRM #}
{% retail.create_contact name="Олег" phone_number="+79991234567" email="name@example.com" as contact %}
```

{% endcode %}

</details>

<details>

<summary>Пример 3: Создать контакт в RetailCRM (имя, телефон, доп. поля)</summary>

{% code overflow="wrap" %}

```
{# Создать список доп. полей #}
{% createobj custom_fields %}
  {
    "field_1": "Значение 1",
    "field_1": "Значение 2"
  }
{% endcreateobj %}

{# Создать контакт в RetailCRM #}
{% retail.create_contact name="Олег" phone_number="+79991234567" custom_fields=custom_fields as contact %}
```

{% endcode %}

</details>

<details>

<summary>Пример 4: Проверка результата с помощью метода <code>is_done</code></summary>

{% code overflow="wrap" %}

```
{# Создать контакт в RetailCRM #}
{% retail.create_contact name="Олег" phone_number="+79991234567" as contact %}

{# Проверка результата #}
{% if contact.is_done %}
  {% send_text "Контакт создан." %}
{% else %}
  {% send_text "Что-то пошло не так..." %}
{% endif %}
```

{% endcode %}

</details>

### Поиск контакта

Ниже приведен список процедур для поиска информации о контакте в RetailCRM по одному из параметров: `Идентификатор`, `Телефон` или `Почта`.

#### Найти контакт по ID

```
{% retail.get_contact_by_uid uid=<ID контакта> as contact %}
```

* `uid` *(integer)* <mark style="color:red;">\*</mark> – ID контакта в RetailCRM

#### Найти контакт по номеру телефона

```
{% retail.get_contact_by_phone_number phone_number=<Телефон> as contact %}
```

* `phone_number` *(string)* <mark style="color:red;">\*</mark> – Номер телефона

#### Найти контакт по адресу эл. почты

```
{% retail.get_contact_by_email email=<Почта> as contact %}
```

* `email` *(string)* <mark style="color:red;">\*</mark> – Арес электронной почты

### Изменение контакта

Изменить информацию о контакте в RetailCRM по его id, телефону или почте.

#### Редактировать контакт по ID

```
{% retail.edit_contact_by_uid uid=<ID контакта> <поля контакта> as contact %}
```

* `uid` *(integer)* <mark style="color:red;">\*</mark> – ID сделки в RetailCRM

Поля для редактирования:

* `phone_number` *(string)* – Номер телефона
* `email` *(string)* – Арес электронной почты
* `first_name` *(string)* – Имя
* `last_name` *(string)* – Фамилия
* `custom_fields` *(object)* – Дополнительные поля

#### Редактировать контакт по номеру телефона

```
{% retail.edit_contact_by_phone_number phone_number=<Телефон> <поля контакта> as contact %}
```

* `phone_number` *(string)* <mark style="color:red;">\*</mark> – Номер телефона

Поля для редактирования:

* `email` *(string)* – Арес электронной почты
* `first_name` *(string)* – Имя
* `last_name` *(string)* – Фамилия
* `custom_fields` *(object)* – Дополнительные поля

#### Редактировать контакт по адресу эл. почты

```
{% retail.edit_contact_by_email email=<Почта> <поля контакта> as contact %}
```

* `email` *(string)* <mark style="color:red;">\*</mark> – Арес электронной почты

Поля для редактирования:

* `phone_number` *(string)* – Номер телефона
* `first_name` *(string)* – Имя
* `last_name` *(string)* – Фамилия
* `custom_fields` *(object)* – Дополнительные поля

## Сделки

Процедуры для работы со сделками в RetailCRM.

### Новая сделка

Процедура создания сделки для контакта в RetailCRM.

```
{% retail.create_deal contact_id=<ID контакта> <поля сделки> as deal %}
```

* `contact_id` *(integer)* <mark style="color:red;">\*</mark> – ID контакта в RetailCRM

Поля для редактирования:

* `number` *(string)* – Номер сделки
* `custom_fields` *(object)*– Дополнительные поля

### Поиск сделки

Процедура получения информации о сделке в RetailCRM по ее идентификатору:

```
{% retail.get_deal uid=<ID сделки> as contact %}
```

`uid` *(integer)* <mark style="color:red;">\*</mark> – ID сделки в RetailCRM

### Изменение сделки

Процедура изменения информации о сделке в RetailCRM по ее идентификатору:

```
{% retail.edit_deal uid=<ID сделки> <поля сделки> as deal %}
```

* `uid` *(integer)* <mark style="color:red;">\*</mark> – ID сделки в RetailCRM

Поля для редактирования:

* `contact_id` *(integer)* – ID контакта в RetailCRM
* `custom_fields` *(object)* – Дополнительные поля
