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

Глобальные переменные

Глобальные переменные позволяют устанавливать константы, которые могут быть вызваны в сниппетах или использоваться напрямую в сценариях, обеспечивая гибкость и удобство управления данными.

  1. Нажмите на пиктограмму личного кабинета.
  2. Выберите пункт меню Переменные.

Особенности переменных

  • Константы доступны во всём проекте. Это означает, что они могут быть использованы в любом сценарии или сниппете.
  • Позволяют хранить данные общего назначения. Например, настройки, статусы, параметры авторизации или флаги состояния.
  • Имеют фиксированные типы. Переменные могут быть строковыми, числовыми, булевыми (логическими).
  • Значение переменной скрыто в ЛК от всех ролей кроме Администратора, если установлена приватность.
осторожно

Переменные не могут быть перезаписаны из сниппетов.

Пример использования

Рассмотрим наглядный пример работы с глобальными константами. Допустим, нам нужно проверить возраст клиента, чтобы определить, является ли он совершеннолетним. Например, клиент пишет в чате: "Мне 15 лет".

Для этого записываем константу age = 18 числового типа, которая будет обозначать возраст совершеннолетия.

Далее создаем сниппет с логикой, которая:

  1. Извлекает возраст из сообщения клиента.
  2. Проверяет возраст относительно установленного порога: если возраст больше, меньше или равен значению age = 18.
  3. Использует полученное значение для дальнейшей обработки, например: отправляет сообщение и записывает данные в контекст для использования в сценарии.
age-check.js
async function snippet(core = new Core(), context = new Context()) {
// Получаем входящее сообщение
const incomingMessage = context.current.params.text;

// Парсим возраст (ищем числа в сообщении)
const ageMatch = incomingMessage.match(/\b\d+\b/);

if (ageMatch) {
const age = parseInt(ageMatch[0], 10); // Преобразуем строку в число

// Получаем значение глобальной переменной context.age
const globalAge = context.age;

// Проверяем, есть ли клиенту 18 лет
if (age >= globalAge) {
// core.sendText(`Клиент совершеннолетний: ${age} лет.`);
context.set('age', age); // Сохраняем возраст в контекст
} else {
// core.sendText(`Клиент несовершеннолетний: ${age} лет.`);
context.set('age', age); // Сохраняем возраст в контекст
}
} else {
// Если возраст не найден в сообщении
core.sendText('Пожалуйста, укажите ваш возраст.');
}
}

Такой сниппет можно использовать в активном сценарии, в котором будет добавлено условие, переключающее сценарий на нужную ветку — в примере, на "ветку для несовершеннолетних". Например, если клиент указал, что ему меньше 18 лет, можно отправить сообщение: “К сожалению, этот раздел вам недоступен.

Так же переменные можно использовать без сниппетов через реакцию Условие. Для этого достаточно заполнить правило обработки параметра: указать название глобальной константы, способ обработки и тип переменной. Ветка сценария изменится в зависимости от значения константы.