Как добавить игровую механику со случайным подарком
Задача: создать игровую форму, в которой можно получить один из подарков за подписку и отправить пользователю полученный подарок.

Можно использовать любой набор подарков.
Чтобы запустить механику, нужно:
- Создать и запустить форму из шаблона для игровой механики
- Создать дополнительное поле, в которое будет записываться выигрыш
- Настроить сценарий, выдающий и отправляющий подарок
- Добавить рассылку с выводом выигрыша
Рассмотрим шаги подробнее.
Создание попапа
Создайте новый попап. Для механики нужна определенная форма (можно воспользоваться фильтром «С игровой механикой»):

Настройки попапа
Перейдите в редактирование шаблона и скорректируйте дизайн попапа под ваш сайт.
Подарки
Перейдите в настройки игрового элемента и найдите настройки секторов и вероятности выпадения.

-
Отредактируйте набор подарков: удалите или добавьте.
-
Кликните на подарок, чтобы перейти в его настройки, и укажите:
- Название или картинка подарка.
- Идентификатор выигрыша. Укажите названия подарков. Идентификатор будет передаваться в действие или в поле клиента и использоваться для определения подарка в сценарии. Подробнее тут.
- Текст, который будет выводиться в случае, если подарок выпадет.

-
Укажите вероятность выпадения подарков:
- Простое — позволяет быстро распределить вероятность выпадения подарка с помощью степени шанса. При выборе проценты автоматически перераспределяются между вариантами.
- Ввод в процентах — позволяет вручную указать точный процент выпадения.

Данная настройка работает на фронтенде и не является защищенной от «взлома» посетителями через код сайта. Не рекомендуем использовать её для розыгрышей дорогих и особо ценных подарков.
Поля сбора контактов
Перейдите к настройкам элементов формы и выберите поля, в которых будут запрашиваться данные клиента для отправки подарка.

Мы не рекомендуем полностью удалять поля для ввода контактов, чтобы избежать злоупотребления формой. При этом отчет попапа всегда будет формироваться как для формы сбора контактов даже при отсутствии этих полей.
Таргетинг
Ограничьте таргетинг формы, чтобы она не показывалась при каждом заходе на сайт.
Базовые настройки попапов можно посмотреть в общей инструкции.
Настройка передачи данных на проект
Передача данных работает по принципам, описанным в инструкции.
Для начала нужно добавить дополнительное поле для хранения выигрыша.
Можно создать как поле по клиенту, так и по действию. У второго варианта есть следующие плюсы: новое значение не переписывает предыдущий выигрыш, сохраняется история участий; дополнительные поля по клиенту используются в работе чаще, поэтому их излишнее количество может делать интерфейс более перегруженным.
Через поле действия
-
Создайте дополнительное поле по сущности действия с типом «строка»:

-
В настройках попапа «Действия после заполнения формы клиентом» задайте создание клиента с контактом, а также выдачу действия, в дополнительное поле которого будет записан выигрыш:
- Поле в Mindbox — ранее созданное дополнительное поле по действию;
- Поле формы — «Результат».

После участия в розыгрыше клиенту будет выдано действие регистрации и действие с подарком:

Через поле клиента
-
Создайте дополнительное поле по сущности «Клиент» с типом «строка»:

-
В настройках попапа «Действия после заполнения формы клиентом» задайте создание клиента с контактом и созданным в п.1 поле и добавьте выдачу действия:
- Поле в Mindbox — ранее созданное дополнительное поле по клиенту;
- Поле формы — «Результат».

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

Выдача и отправка подарка в сценарии
Форма — игровая составляющая механики. Выдачу и отправку подарков нужно настраивать отдельно с помощью сценария.
Сценарий запускается по действию выдачи подарка. Далее в блоке «Условие» проверяется сам подарок (он записан в дополнительное поле действия), выдается соответствующий подарок и отправляется рассылка.
Заранее создайте:
- Автоматическую рассылку для отправки подарка. Как вывести выигрыш в рассылке, рассмотрим ниже.
- Пулы с промокодами. Подарки будут выдаваться в виде промокодов, которые можно использовать в качестве бенефита к следующей покупке. Для каждого типа подарка нужен отдельный пул.
При использовании других подарков настройка сценариев может различаться.
Как настроить сценарий:
-
Запускающее событие — выдача подарка. Выберите шаблон из попапа:

-
Проверьте значение выигрыша через режим «Мультиветки». Необходимо добавить все варианты подарков, как они указаны в идентификаторе выигрыша.
- Приз передается в поле действия:

- Приз передается в поле клиента:

-
Выдайте соответствующий подарок и отправьте рассылку:

-
Добавьте отправку подарка для каждого варианта подарка и запустите сценарий:

Вывод подарка в рассылке
Для вывода подарка в верстке проверяется значение выигрыша с помощью блока if: в зависимости от его значения выводится персональный промокод из соответствующего пула и текст.
Например, нужно вывести сообщение:
Используйте промокод PROMO для получения PRIZE на следующую покупку.
Где вместо PROMO будет код клиента, а вместо PRIZE — тип выигрыша.
Задачу можно решить следующим кодом:
Реализация через действие
Используйте промокод
@{if CustomerAction.CustomField.Wheel.Name = "Скидка 5"}
${Recipient.LastReceivedPromoCode.WithTypeNovyjPulPromokodov1.Value} для получения скидки 5%
@{else if CustomerAction.CustomField.Wheel.Name = "Доставка"}
${Recipient.LastReceivedPromoCode.WithTypeNovyjPulPromokodov2.Value} для получения бесплатной доставки
@{else if CustomerAction.CustomField.Wheel.Name = "Бонус 400"}
${Recipient.LastReceivedPromoCode.WithTypeNovyjPulPromokodov3.Value} для получения 400 бонусов
@{else if CustomerAction.CustomField.Wheel.Name = "Бонус 500"}
${Recipient.LastReceivedPromoCode.WithTypeNovyjPulPromokodov4.Value} для получения 500 бонусов
@{end if}
на следующую покупку.
Реализация через поле клиента
Используйте промокод
@{if Recipient.CustomField.Podarok.Name = "Скидка 5"}
${Recipient.LastReceivedPromoCode.WithTypeNovyjPulPromokodov1.Value} для получения скидки 5%
@{else if CustomerAction.CustomField.Podarok.Name = "Доставка"}
${Recipient.LastReceivedPromoCode.WithTypeNovyjPulPromokodov2.Value} для получения бесплатной доставки
@{else if Recipient.CustomField.Podarok.Name = "Бонус 400"}
${Recipient.LastReceivedPromoCode.WithTypeNovyjPulPromokodov3.Value} для получения 400 бонусов
@{else if Recipient.CustomField.Podarok.Name = "Бонус 500"}
${Recipient.LastReceivedPromoCode.WithTypeNovyjPulPromokodov4.Value} для получения 500 бонусов
@{end if}
на следующую покупку.
Параметры промокодов вида Recipient.LastReceivedPromoCode.WithTypeNovyjPulPromokodov1.Value составляются на основе системного имени пула; значение можно посмотреть на странице конкретного пула.
Пример полученного сообщения:
Используйте промокод 1234ABCD для получения 400 бонусов на следующую покупку.