# Как бот выбирает ответ

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

## Текущий блок

У каждого контакта есть текущий блок — тот, на котором бот остановился и ждёт ответа. Обычно это сообщение с кнопками или вопрос.

Блоки, которые ответа не ждут, бот проходит сразу по выходу «Продолжить»: добавил тег, записал переменную, проверил условие — и пошёл дальше, пока не дойдёт до блока, где нужен ответ человека.

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

> [!TIP]
> Текущий блок видно при проверке: в окне «Проверка бота» включите «Переменные и теги» — в строке «Блок» показан блок, на котором вы сейчас стоите. Подробнее — на странице [Проверка бота](https://support.watbot.ru/chatbots/builder/preview).

## С чего начинается разговор

Бот начинает сценарий с начала — со стартового блока, — когда:

- человек пишет боту впервые;
- человек запускает бота заново;
- человек переходит по [дополнительной ссылке](https://support.watbot.ru/chatbots/links) — тогда разговор начинается со сценария, выбранного для ссылки.

Запустить бота заново человек может сам:

- в Telegram — командой `/start`;
- в MAX — командой `/start`;
- во ВКонтакте — сообщением `000`;
- в Viber — сообщением `000`.

Какой сценарий откроется при запуске, бот решает так:

1. Если у контакта есть тег, для которого назначен альтернативный главный сценарий, — этот сценарий.
2. Иначе — сценарий, назначенный главным.
3. Если главным ничего не назначали — «Главный сценарий».

Как назначить главный и альтернативный сценарий — на странице [Сценарии](https://support.watbot.ru/chatbots/builder/scenarios).

## Как бот разбирает сообщение

Человек стоит на блоке с кнопками и что-то отвечает. Бот проверяет по порядку:

1. **Служебные слова.** «стоп», «stop» и «/stop» отписывают человека от рассылок — см. ниже.
2. **Нажатая кнопка.** Человек нажал кнопку блока — бот идёт по её выходу.
3. **Номер кнопки.** Если в блоке включён «Ответ цифрами» и человек прислал число, бот берёт кнопку с таким номером.
4. **Текст кнопки.** Человек написал название кнопки сам — бот идёт по её выходу. Текст должен совпасть с названием целиком; большие и маленькие буквы не различаются.
5. **«Любая другая фраза».** Ничего не совпало, или человек прислал файл вместо текста, — бот идёт по выходу «Любая другая фраза».
6. **Повтор вопроса.** Если выход «Любая другая фраза» ни с чем не соединён, бот отправит сообщение блока ещё раз. Человек остаётся на том же блоке.

Повтор управляется переключателем «Повторный вопрос» в настройках блока: если его выключить, на непонятный ответ бот промолчит. Переключатели «Ответ цифрами» и «Повторный вопрос» и проверка ответа («Валидация») описаны на странице [Сообщения и кнопки](https://support.watbot.ru/chatbots/blocks/messages).

![Выходы блока: кнопки «Доставка» и «Каталог», «Любая другая фраза» и «Продолжить»](https://support.watbot.ru/_media/ru/01-chatbots/01-builder/_images/block-outputs.webp?v=1791781230)

### Пример

Цветочный магазин «Ромашка». Человек стоит на блоке с вопросом «Что вас интересует?» и кнопками «Каталог» и «Доставка».

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

![Окно «Проверка бота»: на «Сколько стоит доставка?» бот повторил вопрос, на «2» — ответил про доставку](https://support.watbot.ru/_media/ru/01-chatbots/01-builder/_images/replies-example.webp?v=1791781230)

## Команды, которые работают везде

Чтобы фразы вроде «Меню» или «Оператор» работали из любого места бота, их не нужно добавлять в каждый блок. Для этого есть блок [«Глобальное меню»](https://support.watbot.ru/chatbots/blocks/messages/global-menu): его пункты бот проверяет, когда ответ не совпал ни с одной кнопкой текущего блока — до перехода по «Любой другой фразе».

У глобального меню есть и свой выход «Любая другая фраза». Он срабатывает, когда такой же выход текущего блока ни с чем не соединён, — получается общий ответ «я вас не понял» для всего бота.

## Слова «стоп»

Слова «стоп», «stop» и «/stop» бот проверяет раньше кнопок блока. Если человек напишет «стоп», бот отпишет его от рассылок, даже когда в блоке есть кнопка с таким названием. Что происходит дальше и как человеку подписаться снова — на странице [Получатели и фильтры](https://support.watbot.ru/chatbots/mailings/audience).

> [!WARNING]
> Не называйте кнопки словами «Стоп» и «Stop»: если человек наберёт название такой кнопки текстом, бот примет его за отписку от рассылок.

## Когда бот не отвечает

- **У владельца проекта нет подписки Pro.** Бот не ведёт людей по сценарию. Подробнее — на странице [Что доступно без Pro](https://support.watbot.ru/billing/without-pro).
- **Бот выключен.** Проверьте переключатель «Включить бота»: «Настройки» → «Основное».
- **Бот используется только для переписки.** В разделе «Настройки» → «Дополнительно» включён переключатель «Отключить бота, использовать сервис только для переписки с клиентами».
- **Бот остановлен для этого человека.** Оператор взял диалог на себя или контакт заблокирован — см. раздел [Сообщения](https://support.watbot.ru/chatbots/messages).
- **Ответ не подошёл ни к одному выходу.** «Любая другая фраза» ни с чем не соединена, а «Повторный вопрос» в блоке выключен.

Когда бот выключен, работает только для переписки или остановлен для человека, сообщения этого человека всё равно сохраняются в переписке — оператор может ответить на них сам.

Если бот отвечает не тем, чем вы ожидали, откройте блок и посмотрите [«Лог выполнения»](https://support.watbot.ru/chatbots/blocks): в нём видно, какое сообщение пришло и чем закончилось выполнение блока.
