Dialogs
Сущность Dialogs (Диалоги)
Назначение
Сущность dialogs отвечает за управление коммуникацией с пользователями через интерактивные элементы интерфейса (поп-апы, уведомления, модальные окна). Диалоги позволяют показывать пользователю информационные сообщения, предложения, уведомления о событиях и другой контент, требующий взаимодействия.
Основные возможности
- Отображение информационных и промо-сообщений пользователю
- Настройка визуального оформления (иконка, заголовок, описание)
- Управление поведением диалога (кнопки, действия при нажатии)
- Интеграция с Flow Engine через отправку событий
- Персонализация контента под конкретного пользователя
- Размещение диалогов на определённых экранах приложения
- Возможность создания диалогов "по умолчанию" для всех пользователей
Структура данных
| Поле | Тип данных | Описание |
|---|---|---|
| environment_id | Varchar(50) | ID окружения (игры) - уникальный идентификатор среды |
| id | Varchar(50) | Уникальный идентификатор диалога |
| icon | Varchar(50) | Код иконки для визуального оформления |
| title | Varchar(50) | Заголовок диалога |
| description | Varchar(250) | Текст описания / содержимое диалога |
| category | Varchar(50) | Экран/категория, на котором должен появиться диалог |
| button | Varchar(50) | Текст на кнопке в окне диалога |
| action | Varchar(50) | Код действия, которое выполняется при нажатии кнопки |
| creator | Varchar(250) | Создатель диалога (пользователь или система) |
| additional | JSON | Дополнительные параметры: дополнительные кнопки, ссылки и другие элементы управления |
| is_default | Boolean | Флаг доступности диалога по умолчанию для всех пользователей |
| status | Varchar(50) | Статус диалога (если is_default = true) |
| personalization | JSON | Объект персонализации для диалогов, показываемых по умолчанию |
Жизненный цикл диалога
1. Создание диалога
Диалог создаётся через административную панель или автоматически через Flow Engine. При создании указываются:
- Визуальное оформление (icon, title, description)
- Место появления (category)
- Поведение (button, action)
- Параметры доступности (is_default, status)
2. Доставка пользователю
Диалоги могут доставляться двумя способами:
Персонализированные диалоги:
- Создаются для конкретного пользователя через Flow
- Отправляются в ответ на определённые действия или события
- Появляются только у целевого пользователя
Диалоги по умолчанию:
- Имеют флаг
is_default = true - Видны всем пользователям (с учётом персонализации)
- Могут иметь различные статусы
3. Отображение
При открытии экрана, указанного в поле category, система проверяет наличие диалогов для отображения и показывает их пользователю согласно приоритету и правилам.
4. Взаимодействие
Когда пользователь нажимает кнопку:
- Выполняется действие, указанное в поле
action - Генерируется событие и отправляется в Flow Engine
- Flow обрабатывает событие и может выполнить дополнительную логику
- Диалог помечается как прочитанный
5. Удаление
После обработки события и выполнения необходимых действий диалог удаляется из очереди пользователя.
Интеграция с Flow Engine
Диалоги тесно интегрированы с Flow Engine:
Создание диалога через Flow
Flow может создавать диалоги в ответ на события через специальное действие CREATE_DIALOG, передавая все необходимые параметры.
Обработка взаимодействия
При нажатии кнопки в диалоге:
- Генерируется событие с кодом из поля
action - Событие отправляется в Flow Engine
- Flow выполняет соответствующую логику:
- Обновление статуса задач
- Начисление бонусов
- Активация оффера
- Переход к следующему этапу сценария
- После успешной обработки диалог считается закрытым
Поле 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
}Лучшие практики
При создании диалогов:
- Краткость - заголовки до 50 символов, описания до 250
- Ясность - понятные формулировки действий на кнопках
- Релевантность - показывать диалог на правильном экране
- Приоритизация - не перегружать пользователя множеством диалогов
- Персонализация - таргетировать диалоги на нужную аудиторию
При работе с Flow:
- Обязательная обработка - каждый action должен обрабатываться в Flow
- Очистка - удалять диалоги после обработки события
- Контроль частоты - не создавать слишком много диалогов одному пользователю
- Тестирование - проверять корректность отображения и обработки событий
Мониторинг и аналитика
Рекомендуется отслеживать:
- Показы диалогов - сколько раз диалог был показан
- Конверсия - процент пользователей, нажавших кнопку
- Время до взаимодействия - как быстро пользователь реагирует
- Ошибки обработки - проблемы в Flow при обработке событий
Связанные сущности
- Events - диалоги создаются и обрабатываются через события
- Flow Engines - управляет логикой создания и обработки диалогов
Рекомендуемые ограничения
- Максимальная длина заголовка: 35 символов
- Максимальная длина описания: 250 символов
- Максимальная длина названия кнопки: 25 символов
- Формат дополнительных параметров: JSON
- Формат персонализации: JSON
Заключение
Сущность dialogs является важным инструментом для взаимодействия с пользователями в Accelera Loyalty. Правильное использование диалогов позволяет эффективно информировать пользователей, мотивировать к действиям и улучшать общий пользовательский опыт в приложении.