# Сделки в CRM-системе

Сделки в CRM отображаются в виде карточек с информацией о клиенте, названии сделки, описании и сумме.

<div data-with-frame="true"><figure><img src="/files/52681756cf50a1be6c79679bf2e68db434a1a5a2" alt="" width="563"><figcaption></figcaption></figure></div>

При необходимости можно добавить и другие поля (см. рис. 8–12).

## Кнопка «Создать сделку»

<div data-with-frame="true"><figure><img src="/files/18900e27aa6b8af3e24bfae62b05460aec623de0" alt="" width="563"><figcaption></figcaption></figure></div>

Текст **Создать сделку** окно позволяет быстро создать и сохранить новую сделку.

<div data-with-frame="true"><figure><img src="/files/4c1e45aae82de73a4c463b1be9ffb53dcd67841c" alt="" width="563"><figcaption></figcaption></figure></div>

Заполните форму, чтобы создать клиента. Если клиент уже существует, MaviBot предложит выбрать его из базы данных.

<div data-with-frame="true"><figure><img src="/files/25e81764b5a89f57b38b53f0045fce653b4484d6" alt="" width="563"><figcaption></figcaption></figure></div>

1. Если клиент не найден, подключите к проекту бот WhatsApp или email.
2. Отправьте клиенту сообщение через подключенный канал — это автоматически создаст его профиль.
3. Выберите этап воронки, на котором должна быть размещена сделка.

<div data-with-frame="true"><figure><img src="/files/983e70b48899c9257ae92253eab78631c50918e9" alt="" width="563"><figcaption></figcaption></figure></div>

Переменные сделки также можно добавить в модальном окне:

<div data-with-frame="true"><figure><img src="/files/87b92858982683cc681e68972c259a2af6fd7a6f" alt="" width="563"><figcaption></figcaption></figure></div>

Далее нажмите **«Создать»** чтобы добавить сделку в систему.

## Кнопка «Добавить быстро»

Эта кнопка также может помочь вручную добавить нового клиента в CRM.

<div data-with-frame="true"><figure><img src="/files/dd5f05792843c9ce6b5c4e6a932e7236c4ad0b61" alt="" width="308"><figcaption></figcaption></figure></div>

Нажмите кнопку, чтобы открыть окно, в котором можно ввести данные клиента.

<div data-with-frame="true"><figure><img src="/files/9134a7a1c871a881f4d041d5940067773031c48a" alt="" width="308"><figcaption></figcaption></figure></div>

Рис. 26 Окно быстрого создания сделки (Примечание: все данные вымышлены; любое совпадение является чистой случайностью.)

Таким образом, сделка будет создана на **«Заинтересован»** этапе.

{% hint style="success" %}
Готово!&#x20;

Теперь вы знаете, как создавать сделки.
{% endhint %}

## Как создать сделку из чат-бота

Пример сценария чат-бота для создания сделки через функцию

Обзор процесса:

1. Создайте блок Start

<div data-with-frame="true"><figure><img src="/files/9df586577755e73aac38876eeb40dceface242a6" alt=""><figcaption></figcaption></figure></div>

2. Создайте два блока-кнопки.

<div data-with-frame="true"><figure><img src="/files/af1b8ccbf09f3e23b1adf390c158aede95f0e956" alt=""><figcaption></figcaption></figure></div>

3. Перейдите в настройки соединения, включите опцию «Пользователь вводит данные» и укажите название поля, которое введет пользователь.

<div data-with-frame="true"><figure><img src="/files/28281faae2b2668515243fe74e134e98beb54000" alt=""><figcaption></figcaption></figure></div>

4. Затем добавьте вопрос «Как вас зовут?» в белом блоке. Создайте под ним новый блок и включите **"Пользователь вводит данные"** в настройках его стрелки.

<div data-with-frame="true"><figure><img src="/files/071018816b6d51d577d0116811b014983ebebbe7" alt=""><figcaption></figcaption></figure></div>

Настройка «Пользователь вводит данные» с переменной `name` включена в каждом соединении, ведущем к блоку «Введите ваш номер телефона».

5. Теперь создайте два блока — «Chat» и «Fallback» — из блока «Введите ваш номер телефона».

<div data-with-frame="true"><figure><img src="/files/418fffd28a3a1210ef5988142a1005720f8aa4e8" alt=""><figcaption></figcaption></figure></div>

1. Выберите **«RegEx math»** тип в настройках соединения.
2. Включите настройку «Пользователь вводит данные».
3. Введите имя переменной: `phone`.

<div data-with-frame="true"><figure><img src="/files/c8d964ce72c5c2e0ae1cea55b6bb68a4e2059c7c" alt=""><figcaption></figcaption></figure></div>

Теперь в блоке Fallback напишите сообщение: **«Это неверно! Попробуйте еще раз.»**

Эта конфигурация будет работать следующим образом: если клиент введет неверный номер телефона, он получит сообщение из блока Fallback. Сообщение Fallback будет отправляться до тех пор, пока клиент не введет правильный номер телефона.

6. Затем спросите у клиента его бюджет и сразу создайте под ним новый блок.

<div data-with-frame="true"><figure><img src="/files/4a98213beb4b58c53a45763477b622d78a0b24cc" alt=""><figcaption></figcaption></figure></div>

7. Включите **"Пользователь вводит данные"** настройку в соединении и введите имя переменной: `budget`.

<div data-with-frame="true"><figure><img src="/files/0248783c34ecdaea3d573ca85c9654bd58cd33f3" alt=""><figcaption></figcaption></figure></div>

Активируйте **"Пользователь вводит данные"** чекбокс на соединении и укажите телефонную переменную client\_name.

8. Вы можете либо изменить тип последнего блока на «Leads», либо использовать `create_order` .

   Вот вариант с красным блоком «Leads».

<div data-with-frame="true"><figure><img src="/files/6707603de1fc4ef5bbde9d64a2fea9df3e636d0c" alt=""><figcaption></figcaption></figure></div>

Пример.

<div data-with-frame="true"><figure><img src="/files/84bc5316958787c9f57b0e85cdde62a254569782" alt=""><figcaption></figcaption></figure></div>

Функция create\_order(name, budget, description, client\_name, phone, email, state\_id) используется для создания сделки из чат-бота в CRM.

<details>

<summary>Параметры</summary>

Текущая активная сделка в воронке вместе с переменными будет доступна только в функциях управления сделками и CRM.

<table><thead><tr><th width="303.3046875">Параметры</th><th>Значение</th></tr></thead><tbody><tr><td><strong>name</strong></td><td><p>Название сделки.</p><p>Необязательный параметр, если не передан, будет применен к текущей активной сделке клиента</p></td></tr><tr><td><strong>budget</strong></td><td>Стоимость сделки (число). Необязательный параметр: если не передан, будет применен к текущей активной сделке клиента. Если вы передадите нечисловое значение в <strong>budget</strong> параметр, функция вернет ответ: <strong>'budget must be a number'</strong></td></tr><tr><td><strong>description</strong> </td><td>Описание сделки. Необязательный параметр;</td></tr><tr><td><strong>client_name</strong></td><td>(необязательный параметр) строка, имя нового клиента</td></tr><tr><td><strong>phone</strong></td><td>(необязательный параметр) строка, номер телефона нового клиента</td></tr><tr><td><strong>email</strong></td><td>(необязательный параметр) строка, email нового клиента</td></tr><tr><td><strong>state_id</strong> </td><td>число позволяет указать состояние, в котором будет находиться сделка после создания (необязательный параметр)</td></tr></tbody></table>

{% hint style="info" %}
Чтобы создать клиента, необходимо указать переменную телефона или email. Если указан телефон и в проекте нет клиента с таким телефоном, будет создан новый.

Если переменная email указана без переменной телефона и в проекте нет клиента с этим адресом, будет создан новый.
{% endhint %}

</details>

В сценарии мы собрали следующие данные по этапам:

* Name — название сделки (в примере: I need a website и I need a landing);
* Budget — стоимость сделки, которую объявили в блоках после того, как клиент выбрал тип сайта;
* Phone — номер телефона клиента
* Client\_name — имя клиента

Если вам нужно создать сделку в определенном состоянии транзакции, передайте параметр state\_id.

{% hint style="info" %}
Важно!&#x20;

Если вы не передаете какие-либо параметры, вместо параметра передайте none (как на рис. 36, где вместо параметра email указано none).
{% endhint %}

Где найти id состояния (параметр state\_id)

<div data-with-frame="true"><figure><img src="/files/aec435de633e265637b352e18eeb909d759650b2" alt="" width="316"><figcaption></figcaption></figure></div>

ID этапа:

<div data-with-frame="true"><figure><img src="/files/aa3806f645e0b5e5632e38b663c76b49235e9fab" alt="" width="375"><figcaption></figcaption></figure></div>

## Другие настройки

Строка поиска — это поиск сделки по имени клиента.

<div data-with-frame="true"><figure><img src="/files/f9bbe197a6e535f6b61a38179bd2eed0572a7c4d" alt="" width="375"><figcaption></figcaption></figure></div>

Фильтр: позволяет фильтровать сделки по различным параметрам. Также можно сохранить созданный фильтр, если вы используете его часто.

<div data-with-frame="true"><figure><img src="/files/74ec9fbfedbe26ec5f9d6589e9818f011450c719" alt=""><figcaption></figcaption></figure></div>

## Как запустить бота, когда сделка переходит на новый этап воронки

Чтобы запустить бота при изменении этапа сделки в воронке CRM:

1. Перейдите в настройки проекта.
2. Откройте **«Callbacks»** .

<div data-with-frame="true"><figure><img src="/files/cbcc555bb7e35495901dea9fc42b6d024092d480" alt=""><figcaption></figcaption></figure></div>

Нажмите на **«Настройки callback при переходе этапа CRM»**:

<div data-with-frame="true"><figure><img src="/files/283df2085b923d86182470f4000505ab1879d30d" alt=""><figcaption></figcaption></figure></div>

После этого вы увидите модальное окно со всеми воронками в проекте. Вы можете выбрать либо всю воронку, либо конкретный этап.

<div data-with-frame="true"><figure><img src="/files/f0e0da7484bfcdaf0462be76421418e6e48cf9a4" alt="" width="563"><figcaption></figcaption></figure></div>

Затем сохраните настройки.&#x20;

Теперь, когда состояние сделки изменяется — автоматически или вручную, — откуда угодно на сайте генерируется уведомление, которое можно использовать для запуска ответа бота.

{% hint style="info" %}
Уведомление выглядит так: **crm\_state\_changed Название воронки:Название этапа**
{% endhint %}

Переменная callback\_query\_id также появится в карточке клиента, где хранится идентификатор сделки, для которой было отправлено уведомление.

<div data-with-frame="true"><figure><img src="/files/9ab4e050abc50f420c2cf5c9e16a9aaeee19a3f7" alt="" width="563"><figcaption></figcaption></figure></div>

Чтобы запустить бота в ответ на это событие, введите текст callback в поле триггера соединения или блока, основанного на триггере (например, блока Start или Trigger).

<div data-with-frame="true"><figure><img src="/files/c3daa0abc0a2a5cb574dcbfb141af18f4d8c4b38" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="info" %}
Если вы хотите оставить клиента в основном сценарии чат-бота, используйте блок «Chat». Перейти в этот блок нельзя, поэтому после реакции на callback клиент остается в основной воронке и при этом получает сообщение.

Если вам нужно продолжить воронку после изменения состояния, используйте блок «Start». Клиент будет перенаправлен в блок «Start» в ответ на callback, что позволит продолжить воронку оттуда.
{% endhint %}

### Как переместить сделку

Чтобы переместить сделку на любой этап воронки, просто нажмите на нее левой кнопкой мыши и перетащите на нужный этап.

<div data-with-frame="true"><figure><img src="/files/27fbdec6c801a121e29d7399a134aacd8c795026" alt="" width="563"><figcaption></figcaption></figure></div>

Когда сделка перемещается в **«Failed»** или **«Archived»,** появляется модальное окно с просьбой указать причину. Это действие создает соответствующую переменную сделки: `failed_reason` или `archived_reason`.

Указанная причина сохраняется в соответствующей переменной. Если сделка позже будет восстановлена, переменная `restored_from_failed` или `restored_from_archived` добавляется со значением `«true»`.

## Как запретить перемещение сделки на указанный этап

Если вам нужно ограничить этапы, на которые сделки можно перемещать вручную, настройте ограничение в настройках состояния.

Откройте воронку и перейдите в настройки этапа.

<div data-with-frame="true"><figure><img src="/files/aec435de633e265637b352e18eeb909d759650b2" alt="" width="316"><figcaption></figcaption></figure></div>

Используйте настройки этапа, чтобы ограничить перемещение сделок на определенные этапы. Выберите нужные этапы в списке (можно выбрать несколько) и сохраните изменения.

<div data-with-frame="true"><figure><img src="/files/7e2df7c35ece73711521b9ca74aa1903889b20ee" alt="" width="563"><figcaption></figcaption></figure></div>

После сохранения ограниченные этапы будут визуально выделены в MaviBot CRM. Они будут отображаться темнее, а перемещение сделок на них будет отключено. Если применены ограничения на перемещение этапов, эти этапы также будут скрыты в интерфейсе чата с клиентом.

## Реакция на удаление сделки в CRM

Когда сделка удаляется в CRM, бот получает callback с названием **`crm_lead_removed`** чтобы уведомить клиента.

<div data-with-frame="true"><figure><img src="/files/127dabfcdd3a25cc00698e7427b2e2a03b5b415f" alt="" width="465"><figcaption></figcaption></figure></div>

## Как переключать сделки

Когда действия выполняются со сделками непосредственно на странице CRM, срабатывают следующие callback:

* `change_responsible_order` — назначенный менеджер сделки изменен.
* `crm_state_changed` — сделка была перемещена на другой этап воронки.
* `crm_system_state_changed` — сделка была перемещена в **Lost**, **Won**, или **Archived**.
* `crm_lead_removed` — сделка была удалена.

Кроме того, в переменных клиента будет присутствовать `callback_order_id`, которая содержит ID конкретной сделки, затронутой действием в CRM.

При обработке одного из этих callback соответствующая сделка становится временно активной внутри блока обработки, что позволяет напрямую обращаться к ее переменным.

Как только сценарий переходит к следующему блоку, стандартная логика MaviBot возобновляется — любой последующий доступ к переменным сделки будет возвращать значения из последней активной сделки клиента.

### Как переключить сделку в боте на активное состояние

Текст `switch_order(order_id)` функция позволяет сделать конкретную сделку активной, чтобы получить доступ к ее переменным.

* `order_id` — необязательный параметр для ID конкретной сделки. Если не указан, активной становится последняя сделка клиента.
* Чтобы активировать определенную сделку, передайте ее ID в `switch_order(order_id)` .
* Если вы вызовете эту функцию внутри блока калькулятора и укажете целевой ID сделки, вы сможете обращаться к переменным этой сделки во всех последующих блоках.

<div data-with-frame="true"><figure><img src="/files/1f7912d24fbba90efe7422c7fcd8da398ae38e14" alt="" width="563"><figcaption></figcaption></figure></div>

Если `switch_order` функция вызывается с ID удаленной или несуществующей сделки, переключения не произойдет. В этом случае функция вернет ID сделки, которая в данный момент активна для клиента (или `None` если у клиента нет активной сделки).

Таким образом, вы можете проверить, успешно ли произошло переключение, сравнив `order_id` переданный функции со значением, которое она возвращает:

`switch_result = switch_order(order_id)`

`result = if(switch_result == order_id, value_if_true, value_if_false)`

<div data-with-frame="true"><figure><img src="/files/3e8a3a884350e51b703ee42ad61c5fc2fb5aa392" alt="" width="563"><figcaption></figcaption></figure></div>

Если в `switch_order()` функцию не передан аргумент, она активирует последнюю сделку клиента. Это позволяет восстановить или сбросить активную сделку — например, после выполнения операций с другой сделкой или когда не нужно сохранять временно активированной сделку, вызванную callback CRM.


---

# 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.mavibot.ai/doc/ru/crm/setting/deals.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.
