Переменные личного кабинета

Раздел Переменные личного кабинета (ЛК) позволяет устанавливать глобальные константы, которые могут быть вызваны в сниппетах или использоваться напрямую в сценариях, обеспечивая гибкость и удобство управления данными.

  1. Нажмите на пиктограмму личного кабинета.

  2. Выберите пункт меню Переменные.

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

  • Константы доступны во всём проекте. Это означает, что они могут быть использованы в любом сценарии или сниппете.

  • Позволяют хранить данные общего назначения. Например, настройки, статусы, параметры авторизации или флаги состояния.

  • Имеют фиксированные типы. Переменные могут быть строковыми, числовыми, булевыми (логическими).

Как использовать Переменные ЛК

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

Для этого в Переменные личного кабинета (ЛК) записываем постоянную константу age = 18, которая обозначает минимальный возраст совершеннолетия.

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

  1. Извлекает возраст из сообщения клиента.

  2. Проверяет возраст клиента относительно установленного порога: если возраст больше, меньше или равен значению age = 18.

  3. Использует полученное значение для дальнейшей обработки, например: отправляет сообщение клиенту (при необходимости), записывает данные в контекст для использования в сценарии.

Пример кода для сниппета с комментариями:

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 лет, можно отправить сообщение: “К сожалению, этот раздел вам недоступен.

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

Last updated