# Перемещение клиента после неактивности

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

## Как автоматически перемещать клиента по воронке?

В качестве примера автоматического перемещения клиента по воронке мы используем простой сценарий чат-бота, который спрашивает пользователя, будет ли он присутствовать на мероприятии:

<figure><img src="/files/874ed6f5992edd7ed58772caf5f64ead8a1e6f57" alt="" width="223"><figcaption><p>Рис. 1</p></figcaption></figure>

На примере (рис. 1) видно, что клиент продвигается дальше по воронке только в том случае, если нажимает кнопку «Да!», отправленную предпоследним блоком. (В других случаях триггером для продолжения движения по воронке может быть практически что угодно — в зависимости от условий вашего сценария чат-бота.)

В этом примере (рис. 1) клиентка Настя решила не нажимать кнопку в чат-боте, поэтому разговор застрял в предпоследнем блоке воронки:

<figure><img src="/files/c5c3ff013dbec8c9a0ccc4f21b113a0c21ddc1b5" alt="" width="494"><figcaption><p>Рис. 2</p></figcaption></figure>

Чтобы решить эту проблему, нужно выполнить в вашей блок-схеме несколько простых шагов: чтобы продолжить диалог с клиентом или перевести его по воронке спустя определённое время (например, через *n* минут), проведите дополнительную стрелку от предпоследнего блока и задайте задержку по времени, после которой клиент автоматически перейдёт в следующий блок воронки.

<figure><img src="/files/42d43b62af462c3fd27c2f8032c598b6fb79fdc9" alt=""><figcaption><p>Создайте вторую стрелку, ведущую к блоку</p></figcaption></figure>

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

<figure><img src="/files/1010a3581bb6b357a94fd6e21e86c2e187d4e0bd" alt="" width="563"><figcaption><p>Рис. 3</p></figcaption></figure>

Обязательно активируйте переключатель **«Отменять, если блок покинут»** (рис. 3), чтобы сообщение не отправлялось повторно после истечения таймера, если клиент уже перешёл в следующий блок (например, нажав кнопку).

<figure><img src="/files/800a3c95156b3085da0f1002933904248e85fd86" alt="" width="563"><figcaption><p>Пример автоматического перехода</p></figcaption></figure>

Пример выше показывает, что бот автоматически переводит клиента по воронке и отправляет финальное сообщение — даже если он не нажал кнопку. <br>

Теперь с помощью второй стрелки с заданным таймером клиент будет переведён дальше по воронке спустя определённое время.

## Как перевести клиента из последнего блока в другой блок?

На блок-схеме (рис. 4) видно, что предпоследний блок определяет, в какой блок попадёт ваш клиент, в зависимости от кнопки, которую он нажмёт в блоке с двумя ветками:

<figure><img src="/files/ddca09827ae8ad6e81f269548a4b36254aa9b1de" alt="" width="563"><figcaption><p>Рис. 4. Простая блок-схема чат-бота</p></figcaption></figure>

Если клиент нажмёт одну из двух кнопок, он остановится в последнем блоке и, например, не сможет вернуться к предыдущему блоку и выбрать другой вариант при необходимости. Чат-бот просто не будет реагировать на нажатие другой кнопки, потому что пользователь уже перешёл в последний блок, который не позволяет дальнейшее движение по воронке (см. пример ниже).

<figure><img src="/files/4b97a5d80ccd111b6430f7ee67c84a3bf802a1f4" alt="" width="518"><figcaption><p>Клиент перешёл в последний блок, и бот не реагирует на повторные нажатия кнопок.</p></figcaption></figure>

В этом случае проблему можно решить двумя способами:

1. Используя **«Не состояние»** блок — эта функция удерживает клиента в блоке с вариантами кнопок, не переводя его в следующие блоки.
2. Используя **callback-кнопок** — эта функция переводит клиента в следующие блоки, но при этом позволяет ему изменить свой выбор, если его не устраивает результат.

### Блок «Не состояние»

Блок «Не состояние» — это серый блок. В отличие от блока «Состояние диалога», он не имеет условий, и перевести клиента в него напрямую нельзя.

В нашей воронке блок «Не состояние» идеально подходит, потому что пользователь не выйдет из предпоследнего блока и сможет нажать другую кнопку, если его не устроит первый выбор.

Чтобы настроить это, перейдите в конструктор воронки и выберите тип блока **«Не состояние»** (не путайте его с **«Не состояние с условием»**).

<figure><img src="/files/1d01f7633d617600b5a88be42972a9e9c2a70880" alt=""><figcaption><p>Рис. 5 Блок «Не состояние»</p></figcaption></figure>

Теперь наша блок-схема выглядит так:

<figure><img src="/files/d82851773570effaa320205979f6e3818d9bc583" alt="" width="563"><figcaption><p>Рис. 6</p></figcaption></figure>

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

<figure><img src="/files/f841a6c108972ed9e3e650927b66aae496a85518" alt="" width="518"><figcaption></figcaption></figure>

### Кнопки callback

Если вам действительно нужно, чтобы клиент продвинулся дальше по воронке и перешёл в другие блоки, поможет функциональность кнопок callback.

Для этого удалите стрелки, ведущие к финальным блокам в блок-схеме, и установите для этих блоков тип **«Проверка основного условия»**:

<figure><img src="/files/7f0a92ce76830d8a94749559ca11070d4fbec8aa" alt="" width="563"><figcaption><p>Рис. 7. Блок-схема с блоками «Проверка основного условия»</p></figcaption></figure>

Перейдём к настройкам кнопки внутри блока:

<figure><img src="/files/acf10f4cf5f6d76d59fffde18f0c9a40b21d3864" alt=""><figcaption><p>Рис. 8. </p></figcaption></figure>

Откроется окно настроек кнопки «Да!». Здесь выполните следующее:

* Выберите тип кнопки **«Кнопка callback»**
* В тексте сообщения-ответа введите слова или фразы, необходимые для поля условия в **«Проверка основного условия»** .

<figure><img src="/files/35578346d74aaf8bc46a51a7d1add5576277e3d6" alt="" width="563"><figcaption><p>Рис. 9. Изменение настроек кнопки</p></figcaption></figure>

Настройте вторую кнопку аналогичным образом (в нашей воронке это кнопка «Нет»).

{% hint style="warning" %}
Используйте разные тексты/фразы для **«текста сообщения-ответа»** полей в настройках кнопок в рамках одного проекта, чтобы избежать ошибок чат-бота.
{% endhint %}

Далее перейдите к настройкам **Проверка основного условия** блоков, где нужно ввести слова, которые вы указали в **«текста сообщения-ответа»** поле, используя тип совпадения **«Точное совпадение»**:

<figure><img src="/files/941ac7e1b17aec3eba0962b7c61950a25d05152e" alt="" width="563"><figcaption><p>Рис. 10. Настройки блока «Проверка основного условия»</p></figcaption></figure>

Аналогичным образом настройте второй блок для кнопки «Нет».

Таким образом, вы узнали, как автоматически перемещать клиента по воронке тремя разными способами.

## Видео-версия статьи

{% embed url="<https://youtu.be/vO5Q8aLKkrk>" %}


---

# 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/kak-sdelat.../peremeshenie-klienta-posle-neaktivnosti.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.
