# Условие

Делит сценарий на две ветки. Если условия выполнены, контакт идёт по выходу «Да», если нет — по выходу «Нет».

![Панель настроек блока «Условие»](https://support.watbot.ru/_media/ru/01-chatbots/03-blocks/02-logic/_images/condition.webp?v=1791781230)

## Настройки

- **«Условие»** — что проверять. Виды условий — в таблице ниже.
- **«Добавить условие»** — добавляет ещё одну проверку. В одном блоке может быть до 10 условий.
- **Способ объединения** — список появляется над условиями, когда их больше одного:
  - «Выполняются все условия одновременно» — контакт пойдёт в «Да», только если выполнено каждое условие;
  - «Выполняется хотя бы одно из условий» — достаточно любого одного.

| Условие | Когда выполнено |
|---|---|
| «Контакт содержит теги» | У контакта есть все перечисленные теги. |
| «Контакт не содержит теги» | У контакта нет ни одного из перечисленных тегов. |
| «Сообщение содержит текст» | В сообщении контакта встречается указанный текст. Регистр букв не важен. |
| «Сообщение совпадает с текстом» | Сообщение контакта целиком совпадает с указанным текстом. Регистр букв не важен. |
| «Сообщение совпадает с установленным числом» | Сообщение контакта сравнивается с числом. Сообщение без числа считается нулём. |
| «Текущая дата совпадает с установленной датой» | Текущий момент сравнивается с выбранными датой и временем. |
| «Текущее время совпадает с установленным временем» | Текущее время суток сравнивается с выбранным, с точностью до минуты. |
| «Текущий день недели совпадает с установленными днями» | Сегодня — один из отмеченных дней недели. |
| «Переменная совпадает с установленным выражением» | Значение переменной контакта сравнивается с полем «Выражение». |
| «Переменная не пустая» | У контакта есть такая переменная, и в ней что-то записано. |
| «Переменная существует» | У контакта есть такая переменная, даже пустая. |
| «Глобальная переменная совпадает с установленным выражением» | Значение глобальной переменной бота сравнивается с полем «Выражение». |
| «Контакт подписан на Телеграм канал/группу» | Контакт из Telegram состоит в выбранном канале или группе. |
| «Контакт подписан на канал/группу MAX» | Контакт из MAX состоит в выбранном канале или группе. |
| «Контакт имеет установленное количество рефералов» | Число рефералов контакта сравнивается с полем «Количество рефералов». Считаются рефералы всех уровней. В поле «Рефералы содержат теги» можно указать до трёх тегов — тогда считаются только рефералы со всеми этими тегами. |
| «Контакт содержится в таблице Excel» | Телефон контакта есть в первом столбце таблицы Excel. Таблица загружается по ссылке (HTTP) или с FTP-сервера при каждой проверке. |

Сообщение контакта — это текст, после которого бот дошёл до блока.

В условиях с числом, датой, временем, переменной и рефералами слева от значения выбирается знак сравнения: `=`, `>`, `<`, `>=`, `<=`, `!=` (не равно).

**Переменные.** В поле «Переменная» пишется имя переменной — без `$` и фигурных скобок. Поле подсказывает переменные, которые уже есть в боте. В поле «Выражение» можно написать значение или автоподстановку — см. [Автоподстановки](https://support.watbot.ru/chatbots/templates). Знаки `>`, `<`, `>=`, `<=` сравнивают значения как числа; текст вместо числа считается нулём. Если переменной у контакта нет, условие не выполнено — с любым знаком, включая `!=`.

**Подписка на канал.** Чтобы канал или группа появились в списке, подключите бота к мессенджеру и добавьте его в этот канал или группу. В Telegram бот должен быть там администратором.

## Выходы

- «Да» — условия выполнены.
- «Нет» — условия не выполнены.

Выхода «Продолжить» у блока нет.

## Особенности

- Условий по данным контакта — телефону, почте, имени — нет. Проверять можно теги, переменные, сообщение, дату и время, подписку и рефералов.
- Знак `=` у даты означает «сегодня тот же день»: время в поле не учитывается, день считается по часовому поясу бота. Знак `!=` — любой другой день. Остальные знаки сравнивают с указанным моментом: «уже наступило» или «ещё не наступило».
- День недели определяется по часовому поясу бота.
- Пустой список тегов и пустой текст в «Сообщение содержит текст» считаются выполненным условием. Заполняйте значение у каждого условия.

> [!WARNING]
> Не оставляйте в блоке условие, у которого в списке стоит «Выберите условие». Такое условие считается невыполненным, и контакт может уйти в «Нет».

Пример: после оплаты контакту ставится тег «клиент». Блок «Условие» с проверкой «Контакт содержит теги» отправляет клиентов в ветку с закрытыми материалами, а остальных — в ветку с предложением купить.
