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

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

***

* [Контакты](#kontakty)
  * [Новый контакт](#novyi-kontakt)
  * [Поиск контакта](#poisk-kontakta)
  * [Изменение контакта](#izmenenie-kontakta)
* [Продукты](#produkty)
  * [Поиск продукта](#poisk-produkta)
* [Сделки](#sdelki)
  * [Новая сделка](#novaya-sdelka)
  * [Список сделок](#spisok-sdelok)
  * [Поиск сделки](#poisk-sdelki)
  * [Изменение сделки](#izmeneniya-sdelki)
  * [Этапы сделок](#etapy-sdelok)
  * [Статусы сделок](#statusy-sdelok)
  * [Причины поражения](#prichiny-porazheniya)
  * [Создание комментария](#sozdanie-kommentariya)
* [Задачи](#zadachi)
  * [Новая задача](#novaya-zadacha)
  * [Поиск задачи](#poisk-zadachi)
  * [Изменение задачи](#izmenenie-zadachi)

***

## Контакты

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

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

Создать контакт в S2.

```
{% s2.create_contact <поля контакта> need_save=<True/False> as contact %}
```

* `need_save` *(bool)* <mark style="color:red;">\*</mark> – Сохранить ID контакта в атрибутах (по умолчанию `False`)

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

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

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

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

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

```
{% s2.get_contact_by_uid uid=<id контакта> need_save=<True/False> %}
```

* `uid` *(int)* <mark style="color:red;">\*</mark> – Идентификатор контакта
* `need_save` *(bool)* <mark style="color:red;">\*</mark> – Сохранить ID контакта в атрибутах (по умолчанию `False`)

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

```
{% s2.get_contact_by_phone_number phone_number=<телефон> need_save=<True/False> %}
```

* `phone_number` *(str)* <mark style="color:red;">\*</mark> – Номер телефона
* `need_save` *(bool)* <mark style="color:red;">\*</mark> – Сохранить ID контакта в атрибутах (по умолчанию `False`)

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

```
{% s2.get_contact_by_email email=<почта> need_save=<True/False> %}
```

* `email` *(str)* <mark style="color:red;">\*</mark> – Адрес электронной почты
* `need_save` *(bool)* <mark style="color:red;">\*</mark> – Сохранить ID контакта в атрибутах (по умолчанию `False`)

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

Редактировать информацию о контакте в S2 по его id, телефону или почте.

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

```
{% s2.edit_contact_by_uid uid=<id контакта> <поля контакта> need_save=<True/False> as contact %}
```

* `uid` *(int)* <mark style="color:red;">\*</mark> – Идентификатор контакта
* `need_save` *(bool)* <mark style="color:red;">\*</mark> – Сохранить ID контакта в атрибутах (по умолчанию `False`)

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

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

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

```
{% s2.edit_contact_by_phone_number phone_number=<телефон> <поля контакта> need_save=<True/False> as contact %}
```

* `phone_number` *(str)* <mark style="color:red;">\*</mark> – Номер телефона
* `need_save` *(bool)* <mark style="color:red;">\*</mark> – Сохранить ID контакта в атрибутах (по умолчанию `False`)

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

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

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

```
{% s2.edit_contact_by_email email=<почта> <поля контакта> need_save=<True/False> as contact %}
```

* `email` *(str)* <mark style="color:red;">\*</mark> – Адрес электронной почты
* `need_save` *(bool)* <mark style="color:red;">\*</mark> – Сохранить ID контакта в атрибутах (по умолчанию `False`)

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

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

## Продукты

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

### Поиск продукта

Получить информацию о продукте в S2.

```
{% s2.get_product name=<название продукта> %}
```

* `name` *(str)* <mark style="color:red;">\*</mark> – Название продукта

## Сделки

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

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

Создать сделку в S2.

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

* `contact_id` *(int)* <mark style="color:red;">\*</mark> – Идентификатор контакта
* `include_utm` *(bool)* <mark style="color:red;">\*</mark> – Добавить UTM-метки (по умолчанить `False`)

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

* `name` *(str)* <mark style="color:red;">\*</mark> – Название сделки
* `product_id` *(int)* – Идентификатор пользователя
* `category_id` *(int)* – Идентификатор воронки
* `user_id` *(int)* – Идентификатор пользователя
* `stage_id` *(int)* – Идентификатор шага (этапа)
* `status_id` *(int)* – Идентификатор статуса
* `note` *(str)* – Заметка
* `custom_fields` *(dict)* – Дополнительные поля

### Список сделок

Получить список сделок, связанных с контактом в S2.

```
{% s2.get_deals contact_id=<id контакта> <параметры> as deals %}
```

* `contact_id` *(int)* <mark style="color:red;">\*</mark> – Идентификатор контакта

Дополнительные параметры:

* `exclude_status_id` *(set\[int] или list\[int])* – Список статусов, которые нужно исключить

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

Получить информацию о сделке в S2.

```
{% s2.get_deal uid=<id сделки> as deal %}
```

* `uid` *(int)* <mark style="color:red;">\*</mark> – Идентификатор сделки

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

Редактировать информацию о сделке в S2.

```
{% s2.edit_deal deal_id=<id сделки> <поля сделки> include_utm=False as deal %}
```

* `deal_id` *(int)* <mark style="color:red;">\*</mark> – Идентификатор сделки
* `include_utm` *(bool)* <mark style="color:red;">\*</mark> – Добавить UTM-метки (по умолчанить `False`)

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

* `user_id` *(int)* – Идентификатор пользова
* `stage_id` *(int)* – Идентифакатор шага (этапа)
* `status_id` *(int)* – Идентификатор статуса
* `loss_id` *(int)* – Идентификатор причины поражения
* `note` *(str)* – Заметка
* `custom_fields` *(dict)* – Дополнительные поля

### Этапы сделок

Получить список всех этопов для сделок в S2.

```
{% s2.get_deal_stages as deal_stages %}
```

### Статусы сделок

Получить список всех статусов для сделок в S2.

```
{% s2.get_deal_statuses as deal_statuses %}
```

### Причины поражения

Получить список всех причин поражения в S2.

```
{% s2.get_deal_losses as deal_loses %}
```

### Создание комментария

Добавить комментарий к сделке.

```
{% s2.create_comment deal_id=<id сделки> text=<комментарий> %}
```

* `deal_id` *(int)* <mark style="color:red;">\*</mark> – Идентификатор сделки
* `text` *(str)* <mark style="color:red;">\*</mark> – Текст комментария

## Задачи

Процедуры для работы с задачами в S2.

### Новая задача

Создать задачу в S2.

```
{% s2.create_task <id> <поля задачи> as task %}
```

* `name` *(str)* <mark style="color:red;">\*</mark> – Название задачи
* `description` *(str)* <mark style="color:red;">\*</mark> – Описание задачи
* `duration` *(int)* <mark style="color:red;">\*</mark> – Длительность
* `deal_id` *(int)* <mark style="color:red;">\*</mark> – Идентификатор сделки
* `contact_id` *(int)* <mark style="color:red;">\*</mark> – Идентификатор контакта
* `used_id` *(int)* <mark style="color:red;">\*</mark> – Идентификатор пользователя

Дополнительные поля:

* `type_id` *(int)* – Идентификатор типа
* `custom_fields` *(dict)* – Дополниетельные поля

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

* Укажите что-то одно: `deal_id`, `contact_id` или `user_id`

### Поиск задачи

Получить информацию о задаче в S2.

```
{% s2.get_task uid=<id задачи> as task %}
```

* `uid` *(int)* <mark style="color:red;">\*</mark> – Идентификатор задачи

### Изменение задачи

Редактировать информацию о задачи в S2.

```
{% s2.edit_task uid=<id задачи> <поля задачи> as task %}
```

* `uid` *(int)* <mark style="color:red;">\*</mark> – Идентификатор задачи

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

* `name` *(str)* – Название задачи
* `description` *(str)* – Описание задачи
* `duration` *(int)* – Длительность
* `deal_id` *(int)* – Идентификатор сделки
* `contact_id` *(int)* – Идентификатор контакта
* `used_id` *(int)* – Идентификатор пользователя
