# Умова

Ділить сценарій на дві гілки. Якщо умови виконано, контакт іде виходом «Так», якщо ні — виходом «Ні».

![Панель налаштувань блоку «Умова»](https://support.watbot.org/_media/uk/01-chatbots/03-blocks/02-logic/_images/condition.webp?v=1791781231)

## Налаштування

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

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

Повідомлення контакту — це текст, після якого бот дійшов до блоку.

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

**Змінні.** У полі «Змінна» пишеться ім'я змінної — без `$` і фігурних дужок. Поле підказує змінні, які вже є в боті. У полі «Вираз» можна написати значення або автопідстановку — див. [Автопідстановки](https://support.watbot.org/uk/chatbots/templates). Знаки `>`, `<`, `>=`, `<=` порівнюють значення як числа; текст замість числа вважається нулем. Якщо змінної в контакту немає, умову не виконано — з будь-яким знаком, зокрема `!=`.

**Підписка на канал.** Щоб канал або група з'явилися у списку, підключіть бота до месенджера й додайте його в цей канал або групу. У Telegram бот має бути там адміністратором.

## Виходи

- «Так» — умови виконано.
- «Ні» — умови не виконано.

Виходу «Продовжити» в блоку немає.

## Особливості

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

> [!WARNING]
> Не залишайте в блоці умову, у якої у списку стоїть «Оберіть умову». Така умова вважається невиконаною, і контакт може піти в «Ні».

Приклад: після оплати контакту ставиться тег «клієнт». Блок «Умова» з перевіркою «Контакт містить теги» відправляє клієнтів у гілку із закритими матеріалами, а решту — у гілку з пропозицією купити.
