Переменные и условия
Переменная хранит то, что скрипт узнал о человеке. По ней блок «Условие» разводит диалог, а условный текст меняет кусок сообщения.
Завести переменную
- Настройки › Переменные › Создать.

- Задайте название, тип и значение по умолчанию.

- Текст
- Любая строка: ответ человека, город, имя.
- Число
- Сравнивается как число: больше, меньше.
- Да/Нет
- Флажок: «напомнили», «согласился».
Название начинается с буквы, дальше — буквы, цифры и _, и не повторяется внутри скрипта. Переменную можно завести и на ходу — кнопкой Создать переменную в блоках «Установить переменную» и «Условие».
Записать значение
Блок Установить переменную: выберите переменную и способ.
- Ввод
- Значение задаёте вы. Для текста — строка, в ней работают подстановки:
[message.incoming.last]запишет последний ответ человека. Для числа — число, для Да/Нет — переключатель. - ИИ Платно
- Опишите задачу — ИИ прочитает и ответит значением нужного типа. Не смог ответить по типу — переменная останется пустой.


Подставить переменную в текст
Переменная подставляется в сообщение, уведомление и задачу для ИИ как [variable.имя]. Наберите [variable. — редактор покажет, какие есть.

Так же подставляются переменные списка аудитории — заводить их в скрипте не нужно. Если имя есть и там и там, значение берётся первое непустое по порядку:
- записанное в этом диалоге блоком «Установить переменную»;
- значение у человека в списке аудитории;
- значение по умолчанию в скрипте;
- значение по умолчанию в списке аудитории.
Ничего не нашлось — подставится пустота. Переменной с таким именем нет нигде — [variable.имя] останется в тексте со скобками.
Подстановки внутри переменной
Значение переменной само может содержать подстановки — они раскроются при отправке. Например, в список аудитории загружено вступление Меня зовут [account.name]: каждый человек увидит имя того аккаунта, который ему пишет.
Текст, пришедший из Telegram, — сообщения человека, описание профиля и канала — так не раскрывается: скобки из него вырезаются. Переменная, которая через цепочку ссылается сама на себя, дальше не раскрывается.
Развести по условию
- Добавьте блок Условие и нажмите Добавить правило.
- Выберите, что сравнивать: переменную скрипта или данные диалога — имя человека, последний ответ, сколько часов тишины.

- Выберите сравнение и значение. Правил может быть несколько: Все — нужны все, Любое — хватит одного.

- Свяжите выходы: верхний, зелёный — если условие выполнено, нижний, красный — если нет.
Какие сравнения есть для текста, чисел и Да/Нет и какие данные диалога доступны — в справочнике.
Показать кусок текста по условию
Чтобы не плодить блоки ради одной фразы, условие пишут прямо в тексте:
[if user.name][user.name], добрый день![else]Добрый день![/if]
| Запись | Что значит |
|---|---|
[if user.name]…[/if] | Показать, если заполнено |
[if not user.name]…[/if] | Показать, если не заполнено |
[if variable.город = Москва]…[else]…[/if] | Показать одно или другое |
[if variable.точек > 1 and variable.город = Москва]…[/if] | Нужны оба условия; or — хватит одного |
В тексте работают и переменные скрипта, и переменные списка аудитории. Наберите [if — редактор подскажет переменные и сравнения, а закрывающий [/if] допишет сам. Вкладывать [if] друг в друга нельзя, смешивать and и or в одном теге — тоже.
Ошибку в тегах — нет пары, лишний [else], непонятное сравнение — редактор подчёркивает красным.
![Незакрытый тег [if] подчёркнут красным](/assets/img/docs/scripts/if-error.webp)
Пока ошибка есть, скрипт не будет готов к запуску: такой текст ушёл бы человеку как есть, со скобками.