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

Dialogs

Сущность Dialogs (Диалоги)

Назначение

Сущность dialogs отвечает за управление коммуникацией с пользователями через интерактивные элементы интерфейса (поп-апы, уведомления, модальные окна). Диалоги позволяют показывать пользователю информационные сообщения, предложения, уведомления о событиях и другой контент, требующий взаимодействия.

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

  • Отображение информационных и промо-сообщений пользователю
  • Настройка визуального оформления (иконка, заголовок, описание)
  • Управление поведением диалога (кнопки, действия при нажатии)
  • Интеграция с Flow Engine через отправку событий
  • Персонализация контента под конкретного пользователя
  • Размещение диалогов на определённых экранах приложения
  • Возможность создания диалогов "по умолчанию" для всех пользователей

Структура данных

ПолеТип данныхОписание
environment_idVarchar(50)ID окружения (игры) - уникальный идентификатор среды
idVarchar(50)Уникальный идентификатор диалога
iconVarchar(50)Код иконки для визуального оформления
titleVarchar(50)Заголовок диалога
descriptionVarchar(250)Текст описания / содержимое диалога
categoryVarchar(50)Экран/категория, на котором должен появиться диалог
buttonVarchar(50)Текст на кнопке в окне диалога
actionVarchar(50)Код действия, которое выполняется при нажатии кнопки
creatorVarchar(250)Создатель диалога (пользователь или система)
additionalJSONДополнительные параметры: дополнительные кнопки, ссылки и другие элементы управления
is_defaultBooleanФлаг доступности диалога по умолчанию для всех пользователей
statusVarchar(50)Статус диалога (если is_default = true)
personalizationJSONОбъект персонализации для диалогов, показываемых по умолчанию

Жизненный цикл диалога

1. Создание диалога

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

  • Визуальное оформление (icon, title, description)
  • Место появления (category)
  • Поведение (button, action)
  • Параметры доступности (is_default, status)

2. Доставка пользователю

Диалоги могут доставляться двумя способами:

Персонализированные диалоги:

  • Создаются для конкретного пользователя через Flow
  • Отправляются в ответ на определённые действия или события
  • Появляются только у целевого пользователя

Диалоги по умолчанию:

  • Имеют флаг is_default = true
  • Видны всем пользователям (с учётом персонализации)
  • Могут иметь различные статусы

3. Отображение

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

4. Взаимодействие

Когда пользователь нажимает кнопку:

  1. Выполняется действие, указанное в поле action
  2. Генерируется событие и отправляется в Flow Engine
  3. Flow обрабатывает событие и может выполнить дополнительную логику
  4. Диалог помечается как прочитанный

5. Удаление

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

Интеграция с Flow Engine

Диалоги тесно интегрированы с Flow Engine:

Создание диалога через Flow

Flow может создавать диалоги в ответ на события через специальное действие CREATE_DIALOG, передавая все необходимые параметры.

Обработка взаимодействия

При нажатии кнопки в диалоге:

  1. Генерируется событие с кодом из поля action
  2. Событие отправляется в Flow Engine
  3. Flow выполняет соответствующую логику:
    • Обновление статуса задач
    • Начисление бонусов
    • Активация оффера
    • Переход к следующему этапу сценария
  4. После успешной обработки диалог считается закрытым

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

Поле additional в формате JSON позволяет расширить функциональность диалога:

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

{
  "buttons": [
    {
      "text": "Перейти в магазин",
      "action": "OPEN_SHOP",
      "style": "primary"
    },
    {
      "text": "Позже",
      "action": "DISMISS",
      "style": "secondary"
    }
  ],
  "links": [
    {
      "text": "Подробнее",
      "url": "https://example.com/rules"
    }
  ],
  "image_url": "https://cdn.example.com/promo/image.png",
  "auto_close": 5000,
  "priority": 1
}

Описание параметров:

  • buttons - массив дополнительных кнопок с действиями
  • links - внешние ссылки для перехода
  • image_url - URL изображения для визуального оформления
  • auto_close - время автоматического закрытия (мс)
  • priority - приоритет отображения при наличии нескольких диалогов

Категории экранов (category)

Поле category определяет, на каком экране появится диалог:

  • home - главный экран
  • shop - экран магазина
  • profile - профиль пользователя
  • wallet - кошелёк/баланс
  • quests - экран заданий
  • events - экран событий
  • achievements - достижения
  • onboarding - онбординг новых пользователей

Типовые сценарии использования

1. Приветственное сообщение

{
  "id": "welcome_dialog",
  "title": "Добро пожаловать!",
  "description": "Спасибо за регистрацию. Получите 100 бонусных баллов!",
  "category": "home",
  "button": "Получить бонус",
  "action": "CLAIM_WELCOME_BONUS",
  "is_default": false
}

2. Промо-акция

{
  "id": "summer_promo",
  "title": "Летняя распродажа!",
  "description": "Скидки до 50% на все товары",
  "category": "shop",
  "button": "К покупкам",
  "action": "OPEN_PROMO_SECTION",
  "is_default": true,
  "status": "active",
  "personalization": {
    "segments": ["active_buyers"],
    "schedule": {
      "start_date": "2025-06-01T00:00:00Z",
      "end_date": "2025-08-31T23:59:59Z"
    }
  }
}

3. Уведомление о завершении задания

json

{ "id": "quest_complete", "title": "Задание выполнено!", "description": "Вы завершили ежедневное задание и получили награду", "category": "quests", "button": "Отлично", "action": "DISMISS_QUEST_NOTIFICATION", "is_default": false }

4. Системное уведомление с выбором

{
  "id": "quest_complete",
  "title": "Задание выполнено!",
  "description": "Вы завершили ежедневное задание и получили награду",
  "category": "quests",
  "button": "Отлично",
  "action": "DISMISS_QUEST_NOTIFICATION",
  "is_default": false
}

Лучшие практики

При создании диалогов:

  1. Краткость - заголовки до 50 символов, описания до 250
  2. Ясность - понятные формулировки действий на кнопках
  3. Релевантность - показывать диалог на правильном экране
  4. Приоритизация - не перегружать пользователя множеством диалогов
  5. Персонализация - таргетировать диалоги на нужную аудиторию

При работе с Flow:

  1. Обязательная обработка - каждый action должен обрабатываться в Flow
  2. Очистка - удалять диалоги после обработки события
  3. Контроль частоты - не создавать слишком много диалогов одному пользователю
  4. Тестирование - проверять корректность отображения и обработки событий

Мониторинг и аналитика

Рекомендуется отслеживать:

  • Показы диалогов - сколько раз диалог был показан
  • Конверсия - процент пользователей, нажавших кнопку
  • Время до взаимодействия - как быстро пользователь реагирует
  • Ошибки обработки - проблемы в Flow при обработке событий

Связанные сущности

  • Events - диалоги создаются и обрабатываются через события
  • Flow Engines - управляет логикой создания и обработки диалогов

Рекомендуемые ограничения

  • Максимальная длина заголовка: 35 символов
  • Максимальная длина описания: 250 символов
  • Максимальная длина названия кнопки: 25 символов
  • Формат дополнительных параметров: JSON
  • Формат персонализации: JSON

Заключение

Сущность dialogs является важным инструментом для взаимодействия с пользователями в Accelera Loyalty. Правильное использование диалогов позволяет эффективно информировать пользователей, мотивировать к действиям и улучшать общий пользовательский опыт в приложении.

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