Перейти к основному содержимому

Как создать переменную

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

Где создаются переменные

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

Путь:

  1. Откройте сценарий из цепочки.
  2. Создайте или откройте сценарий действий.
  3. Добавьте действие → выберите тип «Операции с данными (Переменные, Списки)».
  4. Добавьте операцию → выберите тип «Переменная».

Выбор действия «Операции с данными»

Скриншот 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.

Полный список — в разделе Шаблоны замен и Системные переменные.

Частые ошибки

  • Обращение к переменной до присвоения — вернёт пустую строку. Сначала присвойте значение, потом подставляйте.
  • Регистр имени не совпадает в присвоении и подстановке — переменная не найдётся.

Что дальше