Документация Accelera

Операторы (Operators)

В данном разделе описаны настройки блоков сценария из раздела General:

Aggregation — Агрегация данных

Тип: Блок без состояния
Назначение: Накопление и расчет статистики по параметрам событий с возможностью сохранения в профиль

Как работает: При каждом событии система автоматически рассчитывает статистические показатели:

  • _min — минимальное значение
  • _max — максимальное значение
  • _sum — сумма всех значений
  • _count — количество событий

Настройка:

1. Aggregation name

Базовое имя для группы параметров агрегации.

Пример: payments

Система автоматически создаст параметры:

  • payments_sum
  • payments_count
  • payments_max
  • payments_min

💡 Совет: Используйте понятные имена, отражающие суть данных: transactions, orders, purchases.

2. Aggregation context parameter

Имя параметра из контекста события, который нужно агрегировать.

Требования:

  • Параметр должен быть числовым
  • Должен присутствовать в контексте входящего события

Пример: amount_rub, quantity, price

3. Dynamic profile (опционально)

Выберите динамический профиль, если хотите сохранять результаты агрегации между сессиями.

Преимущества сохранения в профиль:

  • Данные доступны во всех сценариях
  • Сохраняются между визитами клиента
  • Можно использовать для сегментации в кампаниях

Как использовать:

  1. Выберите профиль из списка (например, Client_payments_agg)
  2. Убедитесь, что в профиле созданы поля с именами агрегированных параметров:
    • payments_sum
    • payments_count
    • payments_max
    • payments_min

⚠️ Важно: Поля в профиле должны точно совпадать с именами, которые генерирует агрегация (с постфиксами _sum, _count, _max, _min).

4. Profile key (опционально)

Параметр для идентификации записи в профиле, если он отличается от ID сценария.

Формат: {{parameter_name}}

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

  • {{client_id}} — если в сценарии используется другой идентификатор
  • {{phone}} — для поиска по номеру телефона
  • {{email}} — для поиска по email

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

Aggregation name: payments
Context parameter: amount_rub
Dynamic profile: Client_payments_agg
Profile key: {{client_id}}

Результат:

В контексте сценария:

{
  "payments_min": 1000,
  "payments_max": 15000,   
  "payments_sum": 50000,   
  "payments_count": 7
}

В динамическом профиле (сохраняется постоянно):

{
  "client_id": "12345",
  "payments_min": 1000,   
  "payments_max": 15000,   
  "payments_sum": 50000,   
  "payments_count": 7
} 

Применение:

Без сохранения в профиль:

  • Временные расчеты в рамках одной сессии
  • Проверка условий "за последние N событий"
  • Одноразовые триггеры

С сохранением в профиль:

  • Накопление lifetime статистики клиента
  • Сегментация по поведению (например, "сумма покупок > 100000")
  • Персонализация на основе истории
  • Аналитика клиентской базы

⚠️ Важно:

  • Параметр для агрегации должен быть числовым типом
  • При использовании профиля убедитесь, что все поля созданы заранее

💡 Совет: Если агрегация используется для принятия решений в сценарии И для долгосрочной аналитики, укажите профиль — данные будут доступны в обоих местах.

Expressions — Вычисления

Тип: Блок без состояния
Назначение: Выполнение математических операций и работа со строками

Возможности:

  • Математические выражения с параметрами контекста
  • Работа со строками с применением функций шаблонизации
  • Создание множества вычисляемых параметров
  • Выбор типа результата (String, Number и т.д.)

Настройка:

  1. Нажмите + Expression для добавления нового вычисления
  2. Выберите тип результата (String, Number и др.)
  3. Введите выражение
  4. Укажите имя параметра для сохранения результата
  5. Добавьте дополнительные выражения при необходимости

Важные особенности:

⚠️ Математические операции:
Параметры контекста указываются БЕЗ фигурных скобок {{ }}

⚠️ Работа со строками:
Функции шаблонизации используются С фигурными скобками {{ }}

⚠️ Порядок выполнения:
Все выражения выполняются последовательно сверху вниз. Результаты предыдущих вычислений доступны в последующих.

Примеры:

💡 Совет: Используйте понятные имена параметров, чтобы не запутаться в сложных вычислениях.

Add to sliding window — Добавление в временное окно

Тип: Блок без состояния (stateless)
Назначение: Сохранение данных во временное хранилище для последующего анализа

Перед использованием блоков Add/Get from sliding window необходимо создать само окно на странице Sliding Windows.

Как работает

Блок берет данные из контекста текущего события и сохраняет их в указанное временное окно. Данные хранятся в течение TTL окна, после чего автоматически удаляются.

Настройка блока

Select sliding window

  • Выберите из выпадающего списка ранее созданное временное окно
  • Пример: Purchase

Profile key (optional)

  • Параметр контекста для идентификации записи
  • Формат: {{parameter_name}}
  • По умолчанию используется ID участника сценария
  • Примеры использования:
    • {{client_id}} — если используется другой идентификатор
    • {{phone}} — для группировки по номеру телефона
    • {{user_id}} — для пользовательского ID

Секция Key-Value (поля для сохранения)

Здесь настраиваются данные, которые будут сохранены в окне:

  • Key — имя поля (должно совпадать с Window keys, заданными при создании окна)
  • Value — значение для сохранения (поддерживается шаблонизация {{ }})

Пример настройки:

В этом примере:

  • Данные сохраняются в окно Purchase
  • Идентификация по параметру client_id из контекста
  • В поле Purchase записывается значение параметра amount

Когда использовать

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

⚠️ Важно:

  • Блок НЕ хранит состояние участника — он просто записывает данные и отпускает поток дальше
  • Максимальный TTL - 30 дней
  • Убедитесь, что имена полей в блоке совпадают с Window keys в настройках окна
  • Данные автоматически удаляются после истечения TTL

💡 Применение: Хранение истории транзакций, подсчет частоты действий, анализ поведения за период.

Get from sliding window — Получение из временного окна

Тип: Блок без состояния (stateless)
Назначение: Получение и агрегация данных из временного окна для анализа и принятия решений

Как работает

Блок извлекает данные из временного окна за указанный период и автоматически рассчитывает агрегированные показатели:

  • _sum — сумма всех значений
  • _count — количество записей
  • _min — минимальное значение
  • _max — максимальное значение

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

Настройка блока

Select sliding window

  • Выберите временное окно, из которого нужно получить данные
  • Пример: Purchase

3 day(s) (временной интервал)

  • Отображается период, за который будут извлечены данные
  • Соответствует настройке TTL окна
  • Автоматически подставляется при выборе окна
  • Пример: 3 day(s) = данные за последние 3 дня

Profile key (optional)

  • Параметр для идентификации записей
  • Формат: {{parameter_name}}
  • Должен совпадать с Profile key, использованным в Add to sliding window
  • Если не указан, используется ID участника сценария

Select window keys to use

  • Выберите поля, для которых нужно рассчитать агрегацию
  • Поля отображаются на синих кнопках
  • Пример: кнопка × Purchase означает, что выбрано поле Purchase
  • Для удаления поля нажмите × на кнопке
  • Можно выбрать несколько полей одновременно

Prefix (ex. from_window)

  • Префикс для имен параметров результата
  • Используется для формирования имен агрегированных параметров
  • Пример: при префиксе 3d_ будут созданы параметры:
    • 3d_Purchase_sum
    • 3d_Purchase_count
    • 3d_Purchase_max
    • 3d_Purchase_min

Context parameters will be created:

  • Система автоматически показывает список параметров, которые будут добавлены в контекст
  • Отображаются на синих кнопках под полем Prefix
  • Пример отображения:
    • 3d__Purchase_sum
    • 3d__Purchase_count
    • 3d__Purchase_max
    • 3d__Purchase_min

Select window keys to use (поле поиска)

  • Дополнительное поле для проверки содержимого временного окна по введенному идентификатору
  • Формат: "Enter any unique ID to search in sliding window"
  • Используется для фильтрации данных по конкретному идентификатору

A/B split — A/B тестирование

Тип: Блок с состоянием
Назначение: Случайное распределение участников на группы

Использование:

  1. Укажите процентное соотношение для каждой группы
  2. Соедините выходы с разными ветками сценария
  3. Анализируйте эффективность каждого варианта

Настройка блока:

На скриншоте примера разделения потока на 3 ветки: 30%, 30% и 40%

Audience / Profile — Проверка принадлежности к аудитории

Тип: Блок с состоянием
Назначение: Получение данных клиента из динамического профиля или и проверка его наличия

Как работает блок

  1. Система ищет участника в указанном динамическом профиле по ключу
  2. Если найден:
    • Все параметры профиля добавляются в контекст сценария
    • Участник переходит по синему выходу (верхний)
    • Данные профиля становятся доступны для использования в последующих блоках
  3. Если не найден:
    • Участник переходит по серому выходу (нижний)
    • Контекст не обогащается данными профиля

Визуальное представление на канвасе

Элементы блока на канвасе:

  • Иконка: 👥 (группа людей)
  • Название: настраиваемое (например, "Оферы клиента")
  • Кнопка: Configure — открывает настройки
  • Два выхода:
    • Верхний (синий) — данные найдены
    • Нижний (серый) — данные не найдены

Настройка блока

При нажатии на кнопку Configure открывается окно:

Заголовок: "Audience checkup configuration"

Параметр 1: The client will be verified for selected audience membership

Выпадающий список с выбором профиля или аудитории:

Доступные варианты:

  • Динамические профили (помечены как "dynamic profile")

Параметр 2: Profile key (optional)

Поле для указания ключа поиска из контекста события:

{{client_id}}

Как работает Profile key:

  • По умолчанию используется ID участника сценария
  • Если нужен альтернативный идентификатор, укажите его в фигурных скобках
  • Примеры:
    • {{client_id}} — поиск по ID клиента из контекста
    • {{email}} — поиск по email
    • {{phone}} — поиск по номеру телефона
    • {{user_id}} — поиск по пользовательскому ID

⚠️ Важно: Ключ должен присутствовать в контексте события и совпадать с одним из полей профиля (обычно это уникальный идентификатор).

Кнопки управления:

  • Close — закрыть без сохранения
  • Save and continue — сохранить настройки и закрыть окно

Console log action — Вывод в консоль

Тип: Блок без состояния
Назначение: Отладка и логирование

Использование: Выводит указанное сообщение в консоль сервера. Полезно для отладки сценариев.

Context table — Таблица условий

Тип: Блок с состоянием
Назначение: Маршрутизация участников по множественным условиям с проверкой точного совпадения параметров

Как работает:
Context Table проверяет значения параметров контекста по строкам таблицы и направляет участника по соответствующей ветке при полном совпадении всех указанных параметров.

Принцип работы:

  1. Система последовательно проверяет строки таблицы сверху вниз
  2. Для каждой строки сравниваются все столбцы (параметры)
  3. При полном совпадении всех значений участник переходит по соответствующему выходу
  4. Если ни одна строка не совпала — участник идет по выходу Default

⚠️ Важно: Проверяется точное совпадение значений. Интервалы, диапазоны и неточные совпадения не поддерживаются.

Настройка блока:

  1. Создание столбцов (параметров для проверки)

Столбец = параметр из контекста события, который будет проверяться.

Как добавить столбец:

  • Нажмите кнопку "+ Add column" (или аналогичную кнопку в интерфейсе)
  • Введите имя параметра контекста (например, region, product, amount)
  • Столбец появится в заголовке таблицы

Как удалить столбец:

  • Нажмите на иконку корзины рядом с названием столбца
  • Столбец и все его значения удалятся из таблицы
  1. Создание строк (условий)

Строка = набор значений параметров, при полном совпадении которых участник пойдет по соответствующему выходу.

Как добавить строку:

  • Нажмите кнопку "+ Add row" (или аналогичную кнопку в интерфейсе)
  • Заполните значения для каждого столбца
  • Строка добавится в таблицу с соответствующим выходом

Как удалить строку:

  • Нажмите на иконку корзины рядом со строкой
  • Строка и соответствующий выход удалятся
  • Default — Выход по умолчанию
  1. Default — специальная строка, которая срабатывает, если ни одно из условий в таблице не выполнено.

Характеристики:

  • Всегда находится в конце таблицы
  • Не требует заполнения значений столбцов
  • Срабатывает как "else" в программировании
  • Обязательно должен быть подключен к следующему блоку

💡 Применение: Используйте Default для обработки неожиданных или неподходящих значений параметров.

Пример настройки:

Decision — Сложное условие

Тип: Блок с состоянием
Назначение: Проверка составных условий с логическими операторами и операторами сравнения

Как работает блок

Decision action позволяет создавать сложные условия с использованием:

  • Операторов сравнения (>, <, >=, <=, ==, !=)
  • Логических операторов (AND/OR)
  • Группировки условий с вложенной логикой
  • Проверки строк, чисел, массивов и пустых значений

Принцип работы

  1. Система вычисляет условие, созданное в конфигураторе
  2. Если условие выполнено (true) — участник идет по зеленому выходу (верхний)
  3. Если условие не выполнено (false) — участник идет по серому выходу (нижний)

В отличие от Context Table, Decision action имеет только два выхода: true или false.

Основные элементы управления

  1. Логические операторы

[and] [or] — переключатели для выбора типа объединения условий:

  • and (синий, активный) — ВСЕ условия должны выполниться (логическое И)
  • or (белый, неактивный) — ХОТЯ БЫ ОДНО условие должно выполниться (логическое ИЛИ)

Пример:

  1. Кнопка [+ ( group )]

Создает группу условий для построения вложенной логики.

Применение:

  • Объединение нескольких условий с отдельным логическим оператором
  • Создание сложных комбинаций AND/OR
  • Построение многоуровневой логики

Пример использования группы:

⚠️ Важное правило: Нельзя использовать одиночные условия вместе с группами на одном уровне. Если у вас есть несколько условий, они должны быть обернуты в группу.

  1. Кнопка [+ key]

Добавляет новое условие (строку проверки параметра).

Структура условия:

[параметр] [оператор ▼] [значение] [⊗]

  • Параметр (левое поле) — имя параметра из контекста БЕЗ обертки {{}}
  • Оператор (выпадающий список) — тип сравнения
  • Значение (правое поле) — значение для сравнения, С оберткой {{}} если это параметр контекста
  • [⊗] — кнопка удаления условия

Правила заполнения полей

Левое поле (параметр контекста)

⚠️ Критически важно: Указывайте параметр БЕЗ фигурных скобок {{ }}

Правое поле (значение для сравнения)

Правое поле может содержать:

  1. Статическое значение (без скобок):

credit 10000 Moscow true

  1. Параметр контекста (С фигурными скобками):

{{min_amount}} {{user_region}} {{limit}}

  1. Шаблонные выражения (с функциями):

{{parseDt 'now'}} {{multiply amount 2}}

Примеры:

Статическое: amount >= 10000 Из контекста: amount >= {{credit_limit}} С функцией: created_at >= {{parseDt 'now' '-7 days'}}

Операторы сравнения

При клике на выпадающий список в середине открывается полный набор операторов:

Greater — больше (>)

Greater or equal — больше или равно (>=)

Equal — равно (==)

Not equal — не равно (!=)

Less — меньше (<)

Less or equal — меньше или равно (<=)

In list — содержится в списке

Not in list — не содержится в списке

RegExp — соответствует регулярному выражению

Not RegExp — не соответствует регулярному выражению

Is not empty — не пустое значение

Is empty — пустое значение

Array includes — массив содержит элемент

Array not includes — массив не содержит элемент

Include — строка содержит подстроку

Not include — строка не содержит подстроку

На этой странице