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

Level

Levels

Назначение Levels

Levels (Уровни) — это сущность для управления системой уровней лояльности клиентов в программе.

Основные возможности:

  • Назначение уровня лояльности клиенту (VIP-статусы, игровые уровни, категории клиентов)
  • Автоматическое повышение/понижение уровня на основе счетчиков (Counters)
  • Ручное управление уровнем через API
  • Гибкая настройка привилегий и преимуществ для каждого уровня
  • Персонализация данных уровня для клиентов
  • Интеграция с другими механиками лояльности

Как работает система уровней

Система уровней позволяет сегментировать клиентов по их активности и предоставлять различные привилегии в зависимости от достигнутого уровня.

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

  1. Создание уровней — администратор создает иерархию уровней (например: Новичок → Постоянный → VIP → Амбассадор)
  2. Назначение начального уровня — новые клиенты получают дефолтный уровень (is_default = true)
  3. Прогрессия — клиент повышает уровень при выполнении условий:
    • Автоматически — при достижении определенного значения счетчика
    • Вручную — через API или сценарии в Flow
  4. Получение привилегий — на каждом уровне клиент получает преимущества, настроенные бизнесом

Что получает/теряет клиент при смене уровня:

  • Повышенный кэшбек — например, 1% на уровне "Новичок", 3% на "VIP"
  • Лучшие награды — доступ к эксклюзивным rewards и items
  • Разблокировка контента — новые items, tasks, achievements
  • Приоритетная поддержка — доступ к специальным каналам обслуживания
  • Персональные предложения — эксклюзивные акции для высоких уровней
  • Множители бонусов — увеличенное начисление баллов за действия

Важно: Конкретные привилегии определяются бизнес-логикой программы лояльности. Система уровней предоставляет гибкий инструмент для реализации любых механик.

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

Пример 1: VIP-статусы в ритейле

Уровень 1: Новичок (priority=1) — кэшбек 1%
Уровень 2: Постоянный (priority=2) — кэшбек 2%, ранний доступ к акциям
Уровень 3: VIP (priority=3) — кэшбек 3%, персональный менеджер
Уровень 4: Амбассадор (priority=4) — кэшбек 5%, эксклюзивные мероприятия

Пример 2: Игровая прогрессия

Уровень 1 (0-99 опыта) — базовые награды
Уровень 2 (100-299 опыта) — разблокировка новых заданий
Уровень 3 (300-599 опыта) — доступ к премиум сундукам
Уровень 10 (5000+ опыта) — легендарные предметы

Пример 3: Статусы лояльности в финансах

Стандарт (priority=1) — базовые условия
Серебро (priority=2) — сниженная комиссия
Золото (priority=3) — повышенная ставка по вкладу
Платина (priority=4) — премиум обслуживание

Связь со счетчиками (Counters)

Уровни могут автоматически изменяться в зависимости от значения счетчика клиента.

Как работает привязка к счетчику

Поля для настройки:

  • is_specific — флаг привязки к счетчику (true = уровень зависит от счетчика)
  • specific_counter — ID счетчика (например, experience_points, purchases_count)
  • from — минимальное значение счетчика для этого уровня
  • to — максимальное значение счетчика для этого уровня

Механизм работы:

  1. Система отслеживает значение указанного счетчика клиента
  2. Когда значение счетчика попадает в диапазон from-to, клиенту автоматически назначается соответствующий уровень
  3. При изменении счетчика уровень может повышаться или понижаться

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

// Уровень 1: Новичок
{
  "id": "level_1_newbie",
  "title": "Новичок",
  "priority": 1,
  "is_specific": true,
  "specific_counter": "experience_points",
  "from": 0,
  "to": 99
}

// Уровень 2: Опытный
{
  "id": "level_2_experienced",
  "title": "Опытный",
  "priority": 2,
  "is_specific": true,
  "specific_counter": "experience_points",
  "from": 100,
  "to": 299
}

// Уровень 3: Мастер
{
  "id": "level_3_master",
  "title": "Мастер",
  "priority": 3,
  "is_specific": true,
  "specific_counter": "experience_points",
  "from": 300,
  "to": 999999
}

Сценарий автоматического повышения:

  1. Клиент начинает с 0 XP — получает "Уровень 1: Новичок"
  2. Клиент выполняет задания и набирает 150 XP — автоматически повышается до "Уровень 2: Опытный"
  3. Клиент продолжает прогрессию и достигает 500 XP — повышается до "Уровень 3: Мастер"

Примечание: Один счетчик можно использовать для нескольких уровней, создавая систему прогрессии. Важно, чтобы диапазоны from-to не пересекались между уровнями с одинаковым specific_counter.

Уровни без привязки к счетчику

Если is_specific = false, уровень назначается только вручную через API или сценарии Flow:

{
  "id": "vip_special",
  "title": "VIP (Специальный)",
  "priority": 5,
  "is_specific": false
}

Применение: Эксклюзивные уровни для особых клиентов (партнеры, сотрудники, победители конкурсов).

Приоритет и прогрессия

Поле priority

priority определяет "высоту" уровня в иерархии:

  • Чем выше значение **priority**, тем выше уровень
  • Начальный уровень должен иметь priority = 1
  • Система сравнивает уровни клиентов по priority для определения прогресса

Пример иерархии:

УровеньPriorityОписание
Новичок1Начальный уровень
Постоянный2Первое повышение
VIP3Премиум статус
Амбассадор4Максимальный уровень

Важно: Значения priority не обязательно должны идти подряд (1, 2, 3, 4...). Можно использовать любые числа (1, 10, 20, 50), что позволяет в будущем добавлять промежуточные уровни без перенумерации существующих.

Дефолтный уровень

Назначение дефолтного уровня

  • is_default = true означает, что это начальный уровень для всех новых клиентов
  • Только один уровень в рамках окружения (environment_id) может быть дефолтным
  • Дефолтный уровень обычно имеет priority = 1

Пример:

{
  "environment_id": "accelera",
  "id": "newbie",
  "title": "Новичок",
  "description": "Стартовый уровень для всех новых участников программы",
  "priority": 1,
  "is_default": true
}

Автоматическое назначение:

При первом обращении клиента к системе лояльности:

  1. Система проверяет наличие уровня у клиента
  2. Если уровня нет — назначается дефолтный уровень
  3. Клиент начинает прогрессию с этого уровня

Автоматическое и ручное назначение уровней

Система поддерживает два способа управления уровнями клиентов:

1. Автоматическое назначение (на основе счетчиков)

Условия:

  • is_specific = true
  • Указан specific_counter
  • Определены диапазоны from-to

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

  1. Клиент выполняет действия, увеличивающие счетчик (покупки, задания, активность)
  2. Система отслеживает значение счетчика
  3. При попадании в новый диапазон автоматически назначается соответствующий уровень
  4. Клиент получает уведомление о повышении/понижении уровня

Пример: Счетчик total_purchases = 15 → автоматически назначается "Постоянный клиент" (для диапазона 10-50 покупок).

Пример проверки соответствия значений счетчика и уровня клиента через API:

curl --request POST \
     --url /v1/internal/level/refresh/clients \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "client_id": "12345",
  "environment_id": "accelera"
}
'

2. Ручное назначение (через API)

Условия:

  • Вызов API метода назначения уровня
  • Использование сценариев Flow для назначения уровня при выполнении условий

Применение:

  • Назначение эксклюзивных уровней (VIP-клиенты, партнеры)
  • Временные акции (повышение уровня на месяц)
  • Награды за конкурсы (победителю присваивается специальный уровень)
  • Ручная коррекция уровня администратором

Пример через Flow:

Событие: "client_won_contest"

Условие: contest_id = "summer_2025"

Действие: Назначить уровень "champion"

Выдать награду "exclusive_trophy"

Важно: При ручном назначении уровня система не проверяет соответствие счетчику. Администратор полностью контролирует назначение.

Откат уровня

  • Клиент может "откатиться" на более низкий уровень, если значение счетчика уменьшается и попадает в диапазон более низкого уровня
  • При ручном назначении можно назначить любой уровень, включая более низкий

Пример: Клиент имел уровень "VIP" (100+ покупок), но после возврата товаров его счетчик стал 85 покупок → автоматически откатывается на "Постоянный" (50-99 покупок).

Описание полей

Обязательные поля

ПараметрТип данныхОписание
environment_idVarchar(50)ID окружения, к которому относится уровень
idVarchar(50)Уникальный идентификатор уровня
titleVarchar(50)Название уровня (отображаемое имя)
priorityIntegerПриоритет уровня. Чем выше значение, тем выше уровень. Начальный уровень должен иметь priority = 1

Поля с описанием

ПараметрТип данныхОписание
descriptionVarchar(250)Описание уровня и его преимуществ

Флаги и настройки

ПараметрТип данныхОписание
is_defaultBooleanФлаг дефолтного уровня. true = стартовый уровень для всех новых клиентов. Только один уровень на окружение может быть дефолтным
is_specificBooleanФлаг привязки к счетчику. is_specific = true означает, что уровень автоматически назначается при попадании значения счетчика в диапазон from-to

Привязка к счетчику

ПараметрТип данныхОписание
specific_counterVarchar(50)ID счетчика (например, experience_points, purchases_count). Используется при is_specific = true
fromIntegerМинимальное значение счетчика для этого уровня (включительно)
toIntegerМаксимальное значение счетчика для этого уровня (включительно)

Примечание: Поля specific_counter, from, to обязательны при is_specific = true и игнорируются при is_specific = false.

Примечание: Поля specific_counter, from, to обязательны при is_specific = true и игнорируются при is_specific = false.

Персонализация и дополнительно

ПараметрТип данныхОписание
personalizationJSONОбъект персонализации для динамической замены параметров в текстах уровня
additionalJSONДополнительные параметры уровня (иконки, цвета бейджей, список привилегий, мультипликаторы и т.д.)
creatorVarchar(250)Создатель уровня (имя пользователя)

Дополнительные параметры (additional)

Поле additional позволяет хранить любые кастомные параметры для визуализации и логики:

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

{
  "additional": {
    "badge_icon_url": "https://cdn.example.com/badges/vip.png",
    "badge_color": "#FFD700",
    "cashback_multiplier": 1.5,
    "privileges": [
      "Повышенный кэшбек 3%",
      "Приоритетная поддержка",
      "Ранний доступ к акциям",
      "Персональный менеджер"
    ],
    "unlock_features": ["premium_chest", "vip_tasks", "exclusive_items"],
    "display_order": 3,
    "gradient_colors": ["#FFD700", "#FFA500"],
    "required_xp": 1000,
    "reward_on_reach": "level_up_bonus"
  }
}

Возможные параметры:

  • badge_icon_url — URL иконки уровня для отображения
  • badge_color — цвет бейджа уровня
  • cashback_multiplier — множитель кэшбека для этого уровня
  • privileges — список привилегий текстом
  • unlock_features — список разблокируемых функций/сущностей
  • reward_on_reach — ID награды, выдаваемой при достижении уровня
  • gradient_colors — цвета градиента для визуализации
  • required_xp — требуемый опыт (дублирование для удобства фронтенда)

Примеры заполнения Levels

Пример 1: Дефолтный начальный уровень

{
  "environment_id": "accelera",
  "id": "newbie",
  "title": "Новичок",
  "description": "Стартовый уровень для всех новых участников программы лояльности",
  "priority": 1,
  "is_default": true,
  "is_specific": true,
  "specific_counter": "experience_points",
  "from": 0,
  "to": 99,
  "additional": {
    "badge_icon_url": "https://cdn.example.com/badges/newbie.png",
    "badge_color": "#C0C0C0",
    "cashback_multiplier": 1.0,
    "privileges": ["Базовый кэшбек 1%"]
  }
}

Пример 2: Средний уровень с автоматическим повышением

{
  "environment_id": "accelera",
  "id": "regular",
  "title": "Постоянный",
  "description": "Вы постоянный участник программы! Кэшбек увеличен до 2%",
  "priority": 2,
  "is_default": false,
  "is_specific": true,
  "specific_counter": "experience_points",
  "from": 100,
  "to": 299,
  "additional": {
    "badge_icon_url": "https://cdn.example.com/badges/regular.png",
    "badge_color": "#4169E1",
    "cashback_multiplier": 1.2,
    "privileges": [
      "Повышенный кэшбек 2%",
      "Доступ к специальным акциям"
    ],
    "unlock_features": ["special_tasks"]
  }
}

Пример 3: VIP-уровень

{
  "environment_id": "accelera",
  "id": "vip",
  "title": "VIP",
  "description": "Премиум статус с максимальными привилегиями и эксклюзивными наградами",
  "priority": 3,
  "is_default": false,
  "is_specific": true,
  "specific_counter": "experience_points",
  "from": 300,
  "to": 999999,
  "additional": {
    "badge_icon_url": "https://cdn.example.com/badges/vip.png",
    "badge_color": "#FFD700",
    "gradient_colors": ["#FFD700", "#FFA500"],
    "cashback_multiplier": 1.5,
    "privileges": [
      "Максимальный кэшбек 3%",
      "Приоритетная поддержка",
      "Ранний доступ к акциям",
      "Персональный менеджер",
      "Эксклюзивные награды"
    ],
    "unlock_features": ["vip_tasks", "premium_chest", "exclusive_items"],
    "reward_on_reach": "vip_welcome_bonus"
  }
}

Пример 4: Специальный уровень без привязки к счетчику

{
  "environment_id": "accelera",
  "id": "ambassador",
  "title": "Амбассадор",
  "description": "Эксклюзивный статус для самых активных участников программы",
  "priority": 4,
  "is_default": false,
  "is_specific": false,
  "additional": {
    "badge_icon_url": "https://cdn.example.com/badges/ambassador.png",
    "badge_color": "#9400D3",
    "gradient_colors": ["#9400D3", "#FF1493"],
    "cashback_multiplier": 2.0,
    "privileges": [
      "Удвоенный кэшбек 5%",
      "Участие в эксклюзивных мероприятиях",
      "Закрытый клуб амбассадоров",
      "Доступ к тестированию новых функций"
    ]
  }
}

Пример 5: С персонализацией

{
  "environment_id": "accelera",
  "id": "gold",
  "title": "Золотой статус",
  "description": "До следующего уровня осталось {{xp_needed}} опыта",
  "priority": 2,
  "is_default": false,
  "is_specific": true,
  "specific_counter": "experience_points",
  "from": 500,
  "to": 999,
  "personalization": {
    "context": {
      "xp_needed": "500"
    },
    "dictionary": {}
  },
  "additional": {
    "badge_color": "#FFD700",
    "cashback_multiplier": 1.3
  }
}

Примеры API-запросов

Проверки соответствия значений счетчика и уровня клиента через API:

curl --request POST \
     --url /v1/internal/level/refresh/clients \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "client_id": "12345",
  "environment_id": "accelera"
}
'

Получение текущего уровня клиента

curl --request GET \
     --url /v1/internal/level/clients/{{client_id}}/{{environment_id}} \
     --header 'accept: application/json'

Пример ответа:

{
    "timestamp": "1742305835279",
    "environment_id": "ruwiki",
    "entity_id": "",
    "client_id": "ayuka",
    "client_hash": "",
    "id": "rank-3",
    "date": "2025-03-18",
    "time": "16:50",
    "datetime": "2025-03-18 16:50:35",
    "title": "Спец",
    "description": "",
    "priority": 2,
    "additional": {
        "level_cup": 60,
        "level_image_closed": "https://cdn.ruwiki.ru/commonswiki/files/7/7c/%D0%9F%D0%9B_%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B9_%D0%BF%D0%BE%D0%B4%D0%B0%D1%80%D0%BE%D0%BA.png",
        "level_image_opened": "https://cdn.ruwiki.ru/commonswiki/files/e/e0/%D0%9F%D0%9B_%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B9_%D0%BF%D0%BE%D0%B4%D0%B0%D1%80%D0%BE%D0%BA_%D0%B7%D0%B5%D0%BB%D0%B5%D0%BD%D0%B0%D1%8F_%D0%B3%D0%B0%D0%BB%D0%BE%D1%87%D0%BA%D0%B0.png"
    },
    "is_specific": true,
    "specific_counter": "experience",
    "from": 60,
    "to": 599,
    "creator": "admin"
}

Назначение уровня клиенту вручную

Примечание: При ручном назначении уровня игнорируются условия счетчика. Это позволяет предоставлять эксклюзивные уровни независимо от прогресса клиента.

Удаление уровня у клиента

После удаления клиенту будет назначен дефолтный уровень (is_default = true).

Интеграция с другими сущностями

Levels тесно интегрируются с другими механиками системы лояльности:

1. Counters (Счетчики)

  • Автоматическое повышение — уровни привязываются к счетчикам для автоматической прогрессии
  • Примеры счетчиков: experience_points, purchases_count, total_spent, login_streak

Пример: Счетчик experience_points используется для уровней 1-10, где каждый уровень требует определенного количества опыта.

2. Rewards (Награды)

  • Награды за повышение — при достижении нового уровня через Flow выдаются специальные призы
  • Уровневые награды — некоторые награды доступны только клиентам с определенным уровнем

Пример: При достижении VIP-уровня клиент получает награду vip_welcome_bonus (промокод на 1000 рублей).

3. Tasks (Задания)

  • Разблокировка заданий — на разных уровнях доступны разные задания
  • Усложнение задач — с повышением уровня задания становятся сложнее и ценнее

Пример: Задание "VIP Challenge" доступно только клиентам с уровнем VIP или выше.

4. Items (Предметы)

  • Уровневые предметы — некоторые items заблокированы (is_locked = true) до достижения определенного уровня
  • Скидки по уровню — цены на items могут зависеть от уровня клиента

Пример: Эксклюзивный скин доступен для покупки только клиентам с уровнем "Амбассадор".

5. Wallet (Кошельки)

  • Множители начисления — уровень влияет на размер кэшбека и бонусов
  • Бонусы при повышении — начисление баллов на кошелек при достижении нового уровня

Пример: Клиент с уровнем VIP получает 1.5x множитель на все начисления баллов.

6. Offers (Предложения)

  • Персональные предложения — эксклюзивные offers для клиентов с высоким уровнем
  • Уровневые акции — специальные акции для каждого уровня

Пример: Offer "VIP Week" доступен только клиентам с уровнем VIP.

7. Achievements (Достижения)

  • Достижения за уровни — получение ачивок при достижении определенных уровней
  • Прогрессия достижений — цепочки достижений, связанных с повышением уровня

Пример: Достижение "Путь к вершине" — достичь максимального уровня программы.

8. Flow (Сценарии)

  • Автоматизация действий — сценарии отслеживают изменение уровня и выполняют действия
  • Персонализация механик — разная логика для разных уровней клиентов

Пример сценария:

Событие: level_changed (в будущих версиях)

Условие: new_level.priority >= 3

Действие 1: Выдать награду "vip_bonus"
Действие 2: Отправить уведомление "Поздравляем с VIP-статусом!"
Действие 3: Активировать offer "vip_exclusive"

Практические сценарии

Сценарий 1: Базовая система уровней с автоматической прогрессией

Задача: Создать 4-уровневую систему на основе общего опыта клиента.

Реализация:

  1. Создать счетчик experience_points со значением 0
  2. Создать 4 уровня с привязкой к счетчику:
// Уровень 1: Новичок (0-99 XP)
{
  "id": "level_1",
  "title": "Новичок",
  "priority": 1,
  "is_default": true,
  "is_specific": true,
  "specific_counter": "experience_points",
  "from": 0,
  "to": 99
}

// Уровень 2: Опытный (100-299 XP)
{
  "id": "level_2",
  "title": "Опытный",
  "priority": 2,
  "is_specific": true,
  "specific_counter": "experience_points",
  "from": 100,
  "to": 299
}

// Уровень 3: Профи (300-599 XP)
{
  "id": "level_3",
  "title": "Профи",
  "priority": 3,
  "is_specific": true,
  "specific_counter": "experience_points",
  "from": 300,
  "to": 599
}

// Уровень 4: Легенда (600+ XP)
{
  "id": "level_4",
  "title": "Легенда",
  "priority": 4,
  "is_specific": true,
  "specific_counter": "experience_points",
  "from": 600,
  "to": 999999
}
  1. Настроить начисление XP за действия в Flow:
    • Покупка: +50 XP
    • Выполнение задания: +30 XP
    • Ежедневный вход: +10 XP
    • Приглашение друга: +100 XP
  2. Клиент автоматически повышается при накоплении опыта

Результат: Самонастраивающаяся система прогрессии без ручного вмешательства.

Сценарий 2: VIP-статусы с выдачей наград при повышении

Задача: Создать 3 VIP-статуса и выдавать награды при достижении каждого.

Реализация:

  1. Создать 3 уровня на основе количества покупок:
// Серебро (10-29 покупок)
{
  "id": "silver",
  "title": "Серебряный статус",
  "priority": 2,
  "is_specific": true,
  "specific_counter": "purchases_count",
  "from": 10,
  "to": 29,
  "additional": {
    "cashback_multiplier": 1.2,
    "reward_on_reach": "silver_bonus"
  }
}

// Золото (30-49 покупок)
{
  "id": "gold",
  "title": "Золотой статус",
  "priority": 3,
  "is_specific": true,
  "specific_counter": "purchases_count",
  "from": 30,
  "to": 49,
  "additional": {
    "cashback_multiplier": 1.5,
    "reward_on_reach": "gold_bonus"
  }
}

// Платина (50+ покупок)
{
  "id": "platinum",
  "title": "Платиновый статус",
  "priority": 4,
  "is_specific": true,
  "specific_counter": "purchases_count",
  "from": 50,
  "to": 999999,
  "additional": {
    "cashback_multiplier": 2.0,
    "reward_on_reach": "platinum_bonus"
  }
}
  1. В Flow настроить сценарий на событие покупки:
    • Увеличить счетчик purchases_count
    • Проверить, изменился ли уровень
    • Если да → выдать награду из additional.reward_on_reach

Пример Flow:

Событие: purchase

Действие: counter.increment("purchases_count", 1)

Получить текущий уровень клиента

IF (уровень изменился) THEN
  Выдать reward из level.additional.reward_on_reach
  Отправить уведомление о повышении

Результат: Клиенты мотивированы совершать больше покупок для получения VIP-статуса и бонусов.

Сценарий 3: Эксклюзивные уровни для особых клиентов

Задача: Создать специальные уровни для партнеров и сотрудников компании.

Реализация:

  1. Создать уровни без привязки к счетчикам:
// Партнер
{
  "id": "partner",
  "title": "Партнер",
  "priority": 10,
  "is_default": false,
  "is_specific": false,
  "additional": {
    "cashback_multiplier": 3.0,
    "privileges": [
      "Максимальный кэшбек 10%",
      "Доступ к оптовым ценам",
      "Персональный менеджер"
    ]
  }
}

// Сотрудник
{
  "id": "employee",
  "title": "Сотрудник компании",
  "priority": 11,
  "is_default": false,
  "is_specific": false,
  "additional": {
    "cashback_multiplier": 5.0,
    "privileges": [
      "Скидка сотрудника 50%",
      "Тестирование новых функций"
    ]
  }
}
  1. Назначать уровни вручную через API или сценарии Flow
  2. Периодически проверять актуальность статуса (например, раз в месяц)

Результат: Гибкая система для управления особыми категориями клиентов.

Сценарий 5: Многоуровневая прогрессия с постепенным усложнением

Задача: Создать 10 уровней с экспоненциальным ростом требований.

Реализация:

  1. Создать 10 уровней с возрастающими требованиями:
Уровень 1: 0-99 XP (100 XP до следующего)
Уровень 2: 100-249 XP (150 XP до следующего)
Уровень 3: 250-499 XP (250 XP до следующего)
Уровень 4: 500-899 XP (400 XP до следующего)
Уровень 5: 900-1499 XP (600 XP до следующего)
...
Уровень 10: 10000+ XP
  1. Настроить персонализацию для отображения прогресса:
{
  "id": "level_2",
  "title": "Уровень 2",
  "description": "До следующего уровня: {{xp_needed}} опыта",
  "personalization": {
    "context": {
      "xp_needed": "150"
    }
  }
}
  1. При переходе на новый уровень выдавать награды:
    • Уровень 5 → Сундук с редкими наградами
    • Уровень 10 → Эксклюзивный титул "Мастер"

Результат: Долгосрочная мотивация через постепенное усложнение прогрессии.

Сценарий 6: Комбинированная система (автоматика + ручное управление)

Задача: Основные уровни автоматические, но администратор может вручную назначить VIP-статус.

Реализация:

  1. Создать автоматические уровни 1-3 на основе опыта
  2. Создать ручной VIP-уровень без привязки к счетчику:
{
  "id": "vip_manual",
  "title": "VIP (специальный)",
  "priority": 100,
  "is_specific": false,
  "additional": {
    "note": "Назначается вручную администратором"
  }
}
  1. В Flow настроить логику:
    • Если клиент имеет уровень с priority >= 100 → не менять уровень автоматически
    • В противном случае → обновлять уровень по счетчику

Результат: Гибкость управления — автоматика для большинства + ручной контроль для особых случаев.

Визуализация и отображение

Примечание: Визуализация уровней реализуется на стороне клиента (фронтенд, мобильное приложение), используя API системы лояльности.

Примечание: Визуализация уровней реализуется на стороне клиента (фронтенд, мобильное приложение), используя API системы лояльности.

Что может отображать клиентское приложение:

  1. Текущий уровень клиента
    • Название уровня
    • Иконка/бейдж из additional.badge_icon_url
    • Описание привилегий
  2. Прогресс до следующего уровня
    • Текущее значение счетчика
    • Требуемое значение для следующего уровня
    • Процент выполнения
    • Визуальная шкала прогресса
  3. Список всех уровней
    • Иерархия уровней с требованиями
    • Заблокированные и открытые уровни
    • Превью наград за достижение

Пример UI:

┌─────────────────────────────────┐
│  🥈 Серебряный статус           │
│  ━━━━━━━━━━━━━━━━━━━░░░░░ 75%  │
│  150 / 200 покупок              │
│                                 │
│  Ваши привилегии:               │
│  ✓ Кэшбек 2%                    │
│  ✓ Ранний доступ к акциям       │
│                                 │
│  До Золотого статуса: 50 покупок│
└─────────────────────────────────┘

Ограничения текущей версии

История изменений уровней

В текущей версии системы отсутствует история изменений уровня клиента. Хранится только текущий уровень.

Что это означает:

  • Нельзя увидеть, когда клиент достиг определенного уровня
  • Нельзя отследить, сколько раз клиент повышался/понижался
  • Нет логов изменений уровня

Рекомендация: Если требуется история, можно реализовать логирование изменений на стороне сценариев Flow или внешней системы.

Пример Flow для логирования:

Событие: Изменение уровня

Записать в лог:
- client_id
- old_level_id
- new_level_id
- timestamp
- reason (auto/manual)

События изменения уровня

В текущей версии отсутствуют автоматические события при изменении уровня (например, level_up, level_down).

Планируется в следующих версиях:

  • Событие level_changed при любом изменении уровня
  • Событие level_up при повышении уровня
  • Событие level_down при понижении уровня

Текущее решение: Логику изменения уровня необходимо отслеживать в сценариях Flow вручную, сравнивая старый и новый уровень клиента.

Рекомендации по использованию

  1. Планирование иерархии — продумайте систему уровней заранее, оставляйте "зазоры" в значениях priority для возможности добавления промежуточных уровней
  2. Диапазоны счетчиков — убедитесь, что диапазоны from-to не пересекаются между уровнями с одинаковым specific_counter
  3. Дефолтный уровень — всегда создавайте дефолтный уровень для новых клиентов
  4. Четкое описание привилегий — используйте description и additional для детального описания преимуществ каждого уровня
  5. Тестирование прогрессии — протестируйте автоматическое повышение/понижение уровней на тестовых клиентах
  6. Мониторинг — отслеживайте распределение клиентов по уровням для балансировки системы
  7. Коммуникация — информируйте клиентов о повышении уровня через уведомления
  8. Награды за достижение — мотивируйте клиентов, выдавая ценные призы при достижении новых уровней

Работа с Levels

Для работы с уровнями используйте методы API, описанные выше. Уровни могут создаваться и управляться через интерфейс ЛК менеджера или программно через API.

Интеграция с Flow позволяет:

  • Автоматически начислять опыт за действия клиентов
  • Выдавать награды при повышении уровня
  • Разблокировать новые функции и сущности
  • Персонализировать механики в зависимости от уровня клиента

Типичный workflow:

  1. Создание иерархии уровней в системе
  2. Настройка счетчика для автоматической прогрессии
  3. Создание сценариев в Flow для начисления опыта
  4. Настройка наград и привилегий для каждого уровня
  5. Тестирование и запуск программы лояльности
  6. Мониторинг и оптимизация системы уровней

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

LevelsНазначение LevelsКак работает система уровнейПримеры использованияПример 1: VIP-статусы в ритейлеПример 2: Игровая прогрессияПример 3: Статусы лояльности в финансахСвязь со счетчиками (Counters)Как работает привязка к счетчикуУровни без привязки к счетчикуПриоритет и прогрессияПоле priorityДефолтный уровеньНазначение дефолтного уровняАвтоматическое и ручное назначение уровней1. Автоматическое назначение (на основе счетчиков)2. Ручное назначение (через API)Откат уровняОписание полейОбязательные поляПоля с описаниемФлаги и настройкиПривязка к счетчикуПерсонализация и дополнительноДополнительные параметры (additional)Примеры заполнения LevelsПример 1: Дефолтный начальный уровеньПример 2: Средний уровень с автоматическим повышениемПример 3: VIP-уровеньПример 4: Специальный уровень без привязки к счетчикуПример 5: С персонализациейПримеры API-запросовПолучение текущего уровня клиентаНазначение уровня клиенту вручнуюУдаление уровня у клиентаИнтеграция с другими сущностями1. Counters (Счетчики)2. Rewards (Награды)3. Tasks (Задания)4. Items (Предметы)5. Wallet (Кошельки)6. Offers (Предложения)7. Achievements (Достижения)8. Flow (Сценарии)Практические сценарииСценарий 1: Базовая система уровней с автоматической прогрессиейСценарий 2: VIP-статусы с выдачей наград при повышенииСценарий 3: Эксклюзивные уровни для особых клиентовСценарий 5: Многоуровневая прогрессия с постепенным усложнениемСценарий 6: Комбинированная система (автоматика + ручное управление)Визуализация и отображениеОграничения текущей версииИстория изменений уровнейСобытия изменения уровняРекомендации по использованиюРабота с Levels