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

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

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

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

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

Пример выше показывает, что бот автоматически перемещает клиента по воронке и отправляет финальное сообщение, даже если он не нажал кнопку.
Теперь с помощью второй стрелки с установленным таймером клиент будет перемещаться дальше по воронке через определенный промежуток времени.
Как переместить клиента из последнего блока в другой блок?
На блок-схеме (Рис. 4) видно, что предпоследний блок определяет, в какой блок попадет ваш клиент, в зависимости от нажатой им кнопки в блоке с двумя ветвями:

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

В этом случае проблему можно решить двумя способами:
- Использование блока «Не состояние» — эта функция удерживает клиента в блоке с выбором кнопок, не перемещая его в следующие блоки.
- Использование кнопок обратного вызова — эта функция перемещает клиента в следующие блоки, но при этом позволяет изменить свой выбор, если результат его не устраивает.
Блок «Не состояние»
Блок «Не состояние» — это серый блок. В отличие от блока «Состояние диалога», у него нет условий, и клиенты не могут быть перемещены в него напрямую.
В нашем сценарии блок «Не состояние» идеально подходит, потому что пользователь не покинет предпоследний блок и сможет нажать другую кнопку, если его не устраивает первый выбор.
Чтобы настроить это, перейдите в конструктор воронки и выберите тип блока «Не состояние» (не путайте с «Не состояние с условием»).

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

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

Кнопки обратного вызова
Если вам все же нужно, чтобы клиент продвигался дальше по воронке и переходил в другие блоки, поможет функциональность кнопок обратного вызова.
Для этого удалите стрелки, ведущие к конечным блокам на блок-схеме, и установите для этих блоков тип «Проверка первичного условия»:

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

Откроется окно настроек кнопки «Да!». Здесь сделайте следующее:
- Выберите тип кнопки «Кнопка обратного вызова»
- В тексте ответного сообщения введите слова или фразы, необходимые для поля условия в блоке «Проверка первичного условия».

Аналогично настройте вторую кнопку (в нашем сценарии это кнопка «Нет»).
Используйте разные тексты/фразы для полей «текст ответного сообщения» в настройках кнопок в рамках одного проекта, чтобы избежать ошибок чат-бота.
Затем перейдите в настройки блоков Проверка первичного условия, где необходимо ввести слова, которые вы ввели в поле «текст ответного сообщения», используя тип совпадения «Точное совпадение»:

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


