Как бот выбирает ответ
Бот не ищет ответ по всей схеме. Он помнит, на каком блоке остановился каждый человек, и разбирает новое сообщение по выходам именно этого блока. Если понимать этот порядок, легко объяснить, почему бот ответил так, а не иначе.
Текущий блок
У каждого контакта есть текущий блок — тот, на котором бот остановился и ждёт ответа. Обычно это сообщение с кнопками или вопрос.
Блоки, которые ответа не ждут, бот проходит сразу по выходу «Продолжить»: добавил тег, записал переменную, проверил условие — и пошёл дальше, пока не дойдёт до блока, где нужен ответ человека.
Когда человек нажимает кнопку или пишет сообщение, бот смотрит на выходы текущего блока, выбирает один из них и переходит по стрелке к следующему блоку. Теперь текущий — он.
Совет
Текущий блок видно при проверке: в окне «Проверка бота» включите «Переменные и теги» — в строке «Блок» показан блок, на котором вы сейчас стоите. Подробнее — на странице Проверка бота.
С чего начинается разговор
Бот начинает сценарий с начала — со стартового блока, — когда:
- человек пишет боту впервые;
- человек запускает бота заново;
- человек переходит по дополнительной ссылке — тогда разговор начинается со сценария, выбранного для ссылки.
Запустить бота заново человек может сам:
- в Telegram — командой
/start; - в MAX — командой
/start; - во ВКонтакте — сообщением
000; - в Viber — сообщением
000.
Какой сценарий откроется при запуске, бот решает так:
- Если у контакта есть тег, для которого назначен альтернативный главный сценарий, — этот сценарий.
- Иначе — сценарий, назначенный главным.
- Если главным ничего не назначали — «Главный сценарий».
Как назначить главный и альтернативный сценарий — на странице Сценарии.
Как бот разбирает сообщение
Человек стоит на блоке с кнопками и что-то отвечает. Бот проверяет по порядку:
- Служебные слова. «стоп», «stop» и «/stop» отписывают человека от рассылок — см. ниже.
- Нажатая кнопка. Человек нажал кнопку блока — бот идёт по её выходу.
- Номер кнопки. Если в блоке включён «Ответ цифрами» и человек прислал число, бот берёт кнопку с таким номером.
- Текст кнопки. Человек написал название кнопки сам — бот идёт по её выходу. Текст должен совпасть с названием целиком; большие и маленькие буквы не различаются.
- «Любая другая фраза». Ничего не совпало, или человек прислал файл вместо текста, — бот идёт по выходу «Любая другая фраза».
- Повтор вопроса. Если выход «Любая другая фраза» ни с чем не соединён, бот отправит сообщение блока ещё раз. Человек остаётся на том же блоке.
Повтор управляется переключателем «Повторный вопрос» в настройках блока: если его выключить, на непонятный ответ бот промолчит. Переключатели «Ответ цифрами» и «Повторный вопрос» и проверка ответа («Валидация») описаны на странице Сообщения и кнопки.


Пример
Цветочный магазин «Ромашка». Человек стоит на блоке с вопросом «Что вас интересует?» и кнопками «Каталог» и «Доставка».
| Человек отвечает | Что делает бот |
|---|---|
| Нажимает «Доставка» | Идёт по выходу «Доставка» |
| Пишет «доставка» | Идёт по выходу «Доставка»: текст совпал с названием кнопки |
| Пишет «2» | Идёт по выходу «Доставка»: это вторая кнопка, а «Ответ цифрами» включён |
| Пишет «Сколько стоит доставка?» | Идёт по выходу «Любая другая фраза». Если он не соединён — повторяет вопрос |
| Пишет «стоп» | Отписывает человека от рассылок |


Команды, которые работают везде
Чтобы фразы вроде «Меню» или «Оператор» работали из любого места бота, их не нужно добавлять в каждый блок. Для этого есть блок «Глобальное меню»: его пункты бот проверяет, когда ответ не совпал ни с одной кнопкой текущего блока — до перехода по «Любой другой фразе».
У глобального меню есть и свой выход «Любая другая фраза». Он срабатывает, когда такой же выход текущего блока ни с чем не соединён, — получается общий ответ «я вас не понял» для всего бота.
Слова «стоп»
Слова «стоп», «stop» и «/stop» бот проверяет раньше кнопок блока. Если человек напишет «стоп», бот отпишет его от рассылок, даже когда в блоке есть кнопка с таким названием. Что происходит дальше и как человеку подписаться снова — на странице Получатели и фильтры.
Внимание
Не называйте кнопки словами «Стоп» и «Stop»: если человек наберёт название такой кнопки текстом, бот примет его за отписку от рассылок.
Когда бот не отвечает
- У владельца проекта нет подписки Pro. Бот не ведёт людей по сценарию. Подробнее — на странице Что доступно без Pro.
- Бот выключен. Проверьте переключатель «Включить бота»: «Настройки» → «Основное».
- Бот используется только для переписки. В разделе «Настройки» → «Дополнительно» включён переключатель «Отключить бота, использовать сервис только для переписки с клиентами».
- Бот остановлен для этого человека. Оператор взял диалог на себя или контакт заблокирован — см. раздел Сообщения.
- Ответ не подошёл ни к одному выходу. «Любая другая фраза» ни с чем не соединена, а «Повторный вопрос» в блоке выключен.
Когда бот выключен, работает только для переписки или остановлен для человека, сообщения этого человека всё равно сохраняются в переписке — оператор может ответить на них сам.
Если бот отвечает не тем, чем вы ожидали, откройте блок и посмотрите «Лог выполнения»: в нём видно, какое сообщение пришло и чем закончилось выполнение блока.