Как создать переменную
Переменная — это именованное хранилище, в которое бот записывает данные клиента, ответы из блоков, значения из списков, результаты вычислений и ответы внешних сервисов. Один раз сохранив значение в переменную, вы можете подставить его в любое сообщение, кнопку, условие или передать в другой сервис.
Где создаются переменные
Переменные создаются в Сценарии действий, в действии «Операции с данными (Переменные, Списки)».
Путь:
- Откройте сценарий из цепочки.
- Создайте или откройте сценарий действий.
- Добавьте действие → выберите тип «Операции с данными (Переменные, Списки)».
- Добавьте операцию → выберите тип «Переменная».

Скриншот 1. Выбор типа действия «Операции с данными (Переменные, Списки)».

Скриншот 2. Добавление операции типа «Переменная».
Шаг 1. Задайте имя переменной
В поле «Имя переменной» введите название. Например: client_name, сумма_заказа, счётчик.
Правила имени:
- допускаются латиница, кириллица, цифры и знак подчёркивания
_; - без пробелов — используйте
_; - максимум 256 символов;
- регистр имеет значение:
Nameиname— разные переменные.

Скриншот 3. Ввод имени переменной.
Шаг 2. Выберите тип переменной
В конструкторе доступно три варианта хранения:
| Тип | Назначение |
|---|---|
| Переменная | Локальная переменная в рамках текущего диалога с клиентом. |
| Глобальная переменная | Общая переменная бота — одно значение для всех клиентов. |
| Список | Таблица с записями (поле/значение). |
Для создания обычной переменной выберите тип «Переменная».
Шаг 3. Присвойте значение
Нажмите «Присвоить» и в блоке «Присвоения» заполните:
- Куда присвоить — выберите «Переменная» (или «Глобальная переменная»).
- Имя переменной — повторите имя из шага 1 либо укажите новое.
- Значение — введите строку, число или используйте шаблон замен:
[Answer1],[Answer2]— ответы пользователя из конкретных блоков (или[Ответ1],[A1]);[Answer]— последний ответ подписчика;[Data1],[DataN]— данные, переданные в сценарий извне;[Name],[FullName],[ClientID],[Messenger],[BotID]— системные данные подписчика;[CurrentDate],[CurrentTime],[CurrentWeekDay]— текущие дата/время;#{другая_переменная}— значение другой переменной;#{массив|2},#{массив|last}— N-й или последний элемент массива;{{ #{count} + 1 }}— вычисление выражения.
Для удобной вставки шаблонов используйте «Помощник выражений» ниже поля значения.

Скриншот 4. Присвоение значения переменной.
Шаг 4. (опционально) Добавьте проверку
В блоке «Проверки» можно валидировать значение перед присвоением:
- Число — значение должно быть числом;
- Телефон — формат телефонного номера;
- Эл. почта — корректный e-mail;
- Регулярное выражение — собственный regex;
- Выражение — произвольное условие.
В присвоении можно отметить, выполнять ли его при успехе или неуспехе проверки — это даёт ветвление прямо внутри операции.

Скриншот 5. Проверка значения и ветвление по результату.
Шаг 5. Используйте переменную
После сохранения сценария к переменной можно обращаться в любом месте конструктора через синтаксис:
#{имя_переменной}
Примеры использования:
- В тексте сообщения:
Здравствуйте, #{client_name}!или с системным шаблоном:Привет, [Name]! - В кнопке или ссылке:
https://site.ru/order/#{order_id}?client=[ClientID] - В условии перехода между блоками:
#{count} > 5 - В выражении:
Итого: {{ #{price} * #{count} }} ₽ - В заголовках HTTP-запроса, теле платежа, в значениях полей списков и Google Таблиц.
Для удобной вставки в текстовое поле сценария действий используйте кнопку «Подстановки» — откроется панель с фильтром по существующим переменным.

Скриншот 6. Вставка переменной через панель подстановки.
Локальная и глобальная переменная — в чём разница
- Локальная живёт в рамках одного клиента и его диалога. У каждого клиента — своё значение.
- Глобальная — одно значение для всего бота. Подходит для счётчиков, общих настроек, флагов.
Глобальные переменные создаются заранее в настройках бота и выбираются из выпадающего списка в поле «Глобальная переменная».
Системные шаблоны и переменные
Бот предоставляет два вида автоматических подстановок:
Шаблоны замен (в квадратных скобках) — данные, которые Квесча подставляет на лету:
[ClientID]— ID подписчика;[Name],[FullName]— имя и полное имя;[Messenger]— telegram, max, vk, viber, lp;[BotID]— ID бота;[CurrentDate],[CurrentTime],[CurrentWeekDay],[CreationDate];[Random(1,100)],[Round(#{x},2)],[StrLen(#{s})],[SumInWords(1000,RUB,И)];[AddDate(...)],[DiffDates(...)],[WeekDay(...)].
Системные переменные (в #{...}) — заполняются ботом в определённых сценариях:
#{_request}— Содержит запрос от мессенджера, который был отправлен в конструктор;#{_botname}— Имя бота;#{_isstart}— Признак запуска сценария: 0 - нет, 1 - да;#{_ismedia}— Содержит 1, если подписчик отправил медиафайл (фото, видео, документ, голосовое, аудио), иначе 0.
Полный список — в разделе Шаблоны замен и Системные переменные.
Частые ошибки
- Обращение к переменной до присвоения — вернёт пустую строку. Сначала присвойте значение, потом подставляйте.
- Регистр имени не совпадает в присвоении и подстановке — переменная не найдётся.
Что дальше
- Передайте значение переменной в список для долговременного хранения.
- Используйте переменную в условиях переходов между блоками.
- Отправьте значение во внешний сервис через HTTP-запрос.