# retailCRM

## Описание

Данная инструкция поможет вам настроить отправку клиентов из [retailCRM](https://retailcrm.ru) в InSkill с выдачей доступа в личный кабинет.&#x20;

Отправка данных может происходить при определенных условиях: смена статуса заказа, изменение статуса оплаты и др.

### Как это работает

Интеграция работает на основе следующих функций:

* **Триггеры** retailCRM ([подробнее в документации](https://help.retailcrm.ru/Users/Triggers))
* **API** InSkill ([документация по API](https://docs.inskill.ru/api/))

#### Схема работы

1. При смене статуса заказа (или другом условии) происходит срабатывание триггера.
2. Триггер отправляет HTTP-запрос в сторону API InSkill.
3. Запрос содержит контактные данные клиента (email, телефон, ФИО). Также в запросе может быть указан ID продукта, который нужно выдать клиенту.
4. Происходит выдача доступа клиенту (генерация пароля и отправка приветственного письма на email клиента).

### Что нужно для настройки

* У вас должен быть доступ в retailCRM (в раздел "Администрирование -> Коммуникации").
* У вас должен быть API-ключ InSkill ([как получить ключ](https://docs.inskill.ru/api#dostup-k-api)).
* Вы должны знать адрес своего проекта в InSkill, например: `https://onegym.inskill.ru`

## Настройка

### Создание триггера

**1.** Зайдите в свой аккаунт retailCRM.

**2.** Перейдите в раздел "Администрирование - Коммуникации - Триггеры":

![Раздел "Триггеры"](/files/-Lirzpj-IlY6_CClgysI)

**3.** Нажмите "Добавить +" для создания нового триггера:&#x20;

![](/files/-Lis-j7L5lUSYrf-MEbN)

**4.** Укажите название триггера, например "Выдача доступа в InSkill".

**5.** Выберите из списка подходящее событие, при котором будет срабатывать триггер:

![Обязательно заполните название и выберите событие](/files/-Lis03eEuxJ078RxGT1o)

**6.** Настройте фильтр (при необходимости). Фильтр нужен, если вы хотите применить триггер только к некоторым объектам.&#x20;

Например, если триггер должен срабатывать только для заказов суммой больше 1 000 рублей, тогда фильтр будет выглядеть так:

```
order.getSumm() > 1000
```

Подробности ищите в [синтаксисе](https://help.retailcrm.ru/Developers/ExpressionLanguage) и [справочнике объектов](https://help.retailcrm.ru/Developers/ObjectsReference).

**7.** Настройте условие применения триггера. Это поле необходимо заполнить,  чтобы триггер срабатывал только для при определенных событиях: например, изменение статуса - переход в статус "Выполнен" (complete):

```
changeSet.hasChangedField("status") and 
changeSet.getNewValue("status").getCode() == "complete"
```

Примеры некоторых выражений можно посмотреть [здесь](https://help.retailcrm.ru/Developers/TriggerRules?from=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%B8.%D0%9F%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%B0%D0%9F%D0%BE%D0%B4%D0%B3%D0%BE%D1%82%D0%BE%D0%B2%D0%BA%D0%B8%D0%A2%D1%80%D0%B8%D0%B3%D0%B3%D0%B5%D1%80%D0%BE%D0%B2).

**8.** Добавьте действие "Выполнить HTTP-запрос":&#x20;

![](/files/-Lis4QLjNqOznjMKT9au)

**9.** Заполните поле "Адрес" следующим образом:

```
https://ХХХХХХ.inskill.ru/api/v3/students
```

где **ХХХХХХ** - поддомен вашего проекта.

{% hint style="warning" %}
Внимательно проверьте адрес: он должен указывать на поддомен вашего проекта.

Пример адреса для проекта "**onegym**":

**<https://onegym.inskill.ru/api/v3/students>**
{% endhint %}

**10.** Укажите HTTP-заголовки для авторизации запросов.&#x20;

Нажмите "Добавить заголовок",  заполните поля:

* В поле "Заголовок" введите: `Authorization`
* В поле "Значение" введите: `Bearer {token}`, где `{token}` - ваш [ключ от API InSkill](https://docs.inskill.ru/integrations/retailcrm/#chto-nuzhno-dlya-nastroiki).\
  **Обратите внимание:** после слова `Bearer` обязательно должен быть пробел.

![Вот что должно получиться ](/files/-Lis6EPIHX3XAtTl-2tG)

**11.** Выберите HTTP метод отправки запросов: **POST**.

**12.** Выберите  способ передачи параметров запроса.&#x20;

В поле "Передавать параметры" выберите: **В строке запроса**.

**13.** Добавьте параметры запроса.

Список доступных параметров:

| Параметр    | Обязательный | Описание                                                                                                                                        |
| ----------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| **email**   | **Да**       | Электронная почта клиента, на которую будет выдан доступ.                                                                                       |
| **product** | Нет          | ID продукта из личного кабинета InSkill, который будет присвоен клиенту.                                                                        |
| **force**   | Нет          | Определяет, присваивать ли продукт, если клиент уже есть в InSkill. Если force НЕ указан или равен **0**, то продукт НЕ будет добавлен клиенту. |
| **name**    | Нет          | ФИО клиента.                                                                                                                                    |
| **phone**   | Нет          | Телефон клиента.                                                                                                                                |

Подробнее о доступных параметрах - см. [документацию по API InSkill](https://docs.inskill.ru/api/students#create).

В поле "Значение" вы можете использовать шаблоны из [справочника объектов retailCRM](https://help.retailcrm.ru/Developers/ObjectsReference).

Пример заполнения:

![Пример заполнения параметров запроса](/files/-Lis9ZT78G6idV6oKSPp)

**14.** Сохраните триггер.

### Проверка триггера

Чтобы проверить работу триггера, вы должны смоделировать событие, которое приводит к запуску триггера.&#x20;

Например, если условие применения вашего триггера - это смена статуса заказа на "Выполнен" то вы можете создать тестовый заказ, указав свой email в качестве почты клиента и вручную перевести этот заказ в статус "Выполнено". При этом, должен сработать триггер и в личном кабинете InSkill будет добавлен новый клиент.

## Решение проблем

### Журнал

Чтобы посмотреть результаты работы вашего триггера, воспользуйтесь разделом "Настройки -> Журнал" в панели retailCRM.

Если в журнале есть записи о срабатывании вашего триггера, но клиент не был добавлен в личный кабинет InSkill - напишите нам на <support@inskill.ru> и приложение ошибку из журнала триггеров.


---

# 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.inskill.ru/nastroiki-proekta/integrations/retailcrm.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.
