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

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

***

* [Чат с оператором](#chat-s-operatorom)
* [Контакты](#kontakty)
  * [Новый контакт](#sozdanie-kontakta)
  * [Список контактов](#spisok-kontaktov)
  * [Поиск контакта](#poisk-kontakta)
  * [Изменение контакта](#izmenenie-kontakta)
  * [Список доп. полей](#spisok-dop.-polei)
  * [Задача для контакта](#zadacha-dlya-kontakta)
* [Сделки](#sdelki)
  * [Новая сделка](#sozdanie-sdelki)
  * [Список сделок](#spisok-sdelok)
  * [Поиск сделки](#poisk-sdelki)
  * [Изменение сделки](#izmenenie-sdelki)
  * [Список доп. полей](#spisok-dop.-polei-1)
  * [Значение доп. поля](#znachenie-dop.-polei)
  * [Заметка для сделки](#zametka-dlya-sdelki)
  * [Задача для сделки](#zadacha-dlya-sdelki)

***

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

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

```
{% amo.enable text=<Тест сообщения> <параметры> %}
```

* `text` *(str)* <mark style="color:red;">\*</mark> – Текст сообщения

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

* `team` *(str)* – Название команды операторов в Fasttrack
* `operator_email` *(str)* – Почта оператора в Fasttrack

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

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

## Контакты

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

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

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

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

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

Поля для заполнения:&#x20;

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

### Список контактов

Получить список контактов из AmoCRM.

```
{% amo.get_contacts_by_phone_number phone_number=<телефон> need_save=True as contacts %}
```

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

```
{% amo.edit_contact_by_phone_number phone_number=<телефон> 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)* – Дополнительные поля

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

```
{% amo.edit_contact_by_email email=<почта> 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)* – Дополнительные поля

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

Получить список дополнительных (кастомных) полей контакта в AmoCRM.

```
{% amo.get_contact_custom_fields limit=100 as custom_fields %}
```

* `limit` *(int)* <mark style="color:red;">\*</mark> – Ограничение на кол-во полей в ответе (по умолчанию 100)

### Задача для контакта

Создать задачу, связанную с контактом в AmoCRM.

```
{% amo.create_task contact_id=<id контакта> text=<задача> due_at=<дедлайн> as task %}
```

* `contact_id` *(int)* <mark style="color:red;">\*</mark> – Идентификатор контакта
* `text` *(str)* <mark style="color:red;">\*</mark> – Содержание задачи
* `due_at` *(datetime)* <mark style="color:red;">\*</mark> – Срок выполнения

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

* `responsible_id` *(int)* – Идентификатор ответственного

## Сделки

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

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

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

```
{% amo.create_deal <параметры> is_unsorted=False as deals %}
```

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

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

* `name` *(str)* – Название
* `title` *(str)* – Заголовок
* `status_id` *(int)* – Идентификатор статуса
* `pipeline_id` *(int)* – Идентификатор шага (этапа)
* `responsible_id` *(int)* – Идентификатор ответственного
* `contact_id` *(int)* – Идентификатор контакта
* `custom_fields` *(dict)* – Дополнительные поля
* `tags` *(list\[int])* – Список тегов

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

* Чтобы создать сделку в "Неразобранном", в процедуре не должно быть параметров `status_id` и `responsible_id`, убедитесь, что вы их не используете.

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

Получить список сделок из AmoCRM.

```
{% amo.get_deals query=<value> <параметры> limit=100 as deals %}
```

* `query` *(str)* <mark style="color:red;">\*</mark> – Параметры запроса
* `limit` *(int)* <mark style="color:red;">\*</mark> – Ограничение на кол-во сделок в ответе (по умолчанию 100, не больше 250)

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

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

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

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

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

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

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

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

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

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

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

* `name` *(str)* – Название сделки
* `status_id` *(int)* – Идентификатор статуса
* `pipeline_id` *(int)* – Идентификатор шага (этапа)
* `custom_fields` *(dict)* – Дополнительные поля
* `tags` *(list\[int])* – Список тегов

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

Получить список дополнительных (кастомных) полей для сделки в AmoCRM.

```
{% amo.get_deal_custom_fields limit=100 as custom_fields %}
```

* `limit` *(int)* <mark style="color:red;">\*</mark> – Ограничение на кол-во полей в ответе (по умолчанию 100)

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

### Значение доп. поля

Фильтр, чтобы получить значение дополнительного (кастомного) поля для сделки в AmoCRM.

{% hint style="info" %}
Информация в этом блоке обновляется.
{% endhint %}

### Заметка для сделки

Создать заметку, связанную со сделкой в AmoCRM.

```
{% amo.create_note deal_id=<id сделки> text=<текст заметки> <параметры> as note %}
```

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

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

* `owner_id` *(int)* – Идентификатор создателя заметки

### Задача для сделки

Создать задачу, связанную со сделкой в AmoCRM.

```
{% amo.create_task deal_id=<id сделки> text=<текст задачи> due_at=<дедлайн> as task %}
```

* `deal_id` *(int)* <mark style="color:red;">\*</mark> – Идентификатор сделки
* `text` *(str)* <mark style="color:red;">\*</mark> – Содержание задачи
* `due_at` *(datetime)* <mark style="color:red;">\*</mark> – Срок выполнения

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

* `responsible_id` *(int)* – Идентификатор ответственного
