Цепочка диалога

В этом обзоре мы познакомимся с понятием "цепочки" и создадим небольшой тест

Создание цепочки

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

Перейдите в раздел "цепочки" в левом меню приложения:

Раздел "цепочки"

Нажмите кнопку "добавить цепочку".

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

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

Первым шагом в блоке мы добавили шаг с отправкой сообщения «это первый блок теста». Не забывайте периодически сохранять блок и цепочку) Давайте проверим, что получилось.

Отлично, бот реагирует на нашу цепочку. Кстати, по умолчанию цепочка создается с галочкой «Цепочка активна только для админов». Это удобно, чтобы отладить работу цепочки, а потом снять галочку и сделать ее доступной всем пользователям.

Разветвление логики

Каждый блок (в том числе начальный блок цепочки) состоит из групп шагов, которые включают в себя сами шаги (например, "отправить сообщение", "ждать ответа пользователя" и т.д.).

Давайте спросим у пользователя, в каком году была основана Москва. Для этого мы добавим шаг "отправить сообщение" с текстом вопроса:

Обратите внимание, что после текста вопроса мы должны добавить шаг "Ждать сообщение". Это нужно для того, чтобы бот остановился и ждал ответа от пользователя. Если мы этого не сделаем, то бот выйдет из цепочки, так как других шагов в ней нет.

Проверим, как работает наш тест.

Шаг «Ждать сообщения» останавливает бота и заставляет его ждать сообщения пользователя.

Отлично! Теперь нам нужно проверить, правильно ли пользователь ответил на наш вопрос. Если да, то перенаправим его на следующий вопрос. А если ошибся, то сообщим ему об этом и завершим тест.

Чтобы добавить условие на ответ пользователя, нам нужно добавить новую группу шагов.

Группа шагов — это последовательность шагов, которая может иметь свое собственное условие в рамках блока. Если условие группы шагов выполняется, то бот будет проходить по шагам группы. Если условие не выполняется — группа пропускается.

Нажмите кнопку "добавить группу шагов", тогда будет создана новая группа. В ней нажмите на кнопку "добавить условие", в котором можно проверить, что сообщение подписчика равно 1147. Если условие выполняется, значит подписчик ответил на наш вопрос верно. Подробнее про условия можно прочитать тут.

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

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

Шаг «переход» позволяет боту перейти на следующий элемент логики. Можно перейти на другой блок, группу шагов или конкретный шаг.

Осталось добавить сообщение об ошибке, если пользователь написал сообщение отличное от «1147». Условие группы шагов №1 не выполнится и бот пропустит ее и пойдет дальше. Создадим новую группу шагов и добавим туда шаг с отправкой сообщения о неудаче. Условие здесь не нужно, так как если бы пользователь ответил верно, он бы перешел на блок «Тест. Завершение».

Отлично, наш первый вопрос работает! Теперь мы можем перейти к настройке блока «Тест. Завершение». Для этого нажмите «редактировать блок» в шаге переход. Откроется экран редактирования блока "Тест. Завершение". Это второй блок нашей цепочки, второй логический кусочек. В этом блоке мы можем задать новую часть сценария. Для простоты давайте выведем пользователю какое-нибудь сообщение об успешном завершении теста!

Теперь ваш бот может не просто отвечать на команды, но и переходить на разные ветки диалога в зависимости от сообщений пользователя!

Если у вас возникли какие-то трудности при настройке бота — включите Режим отладки в Настройках приложения, тогда бот при общении с админом будет комментировать ход своих действий.

Вот как можно представить полученную цепочку в виде блок-схемы:

Перед созданием сценария мы рекомендуем продумать логику и нарисовать похожую блок схему, например, в бесплатном сервисе draw.io