Подстановка данных из событий в сообщения | Support eSputnik

Пользовательские данные

Email

Омниканальность

Автоматизация

Подстановка данных из событий в сообщения

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

Транзакционный пуш

Мы рекомендуем использовать метод API Generate event для отправки пользовательских событий с бекенда в eSputnik. Подробнее об отправке данных из заказа читайте в инструкции.

Рассмотрим на практике, как подставить данные из событий в сообщение.

Обратите внимание

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

Типы данных из события

Событие может содержать разные типы данных, которые по-разному подставляются в сообщение:

  • Простые данные (строки и числа, не входящие в объект или массив)
  • Данные объекта
  • Данные массива

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

{
    "eventTypeKey": "data_for_message",
    "keyValue": "user@imaginary.email",
    "params":
    [
        {
            "name": "EmailAddress",
            "value": "user@imaginary.email"
        },
        {
            "name": "externalOrderId",
            "value": 20233
        },
        {
            "name": "sellerName",
            "value": "Shop Tea"
        },
        {
            "name": "object",
            "value":
            {
                "title": "Black Tea",
                "text": "Tea from the Tonganagaon plantation in India",
                "img": "https://pics.site.com/repository/home/1/common/images/1576074904732.jpg",
                "price": "$11.05",
   "link": "https://site.com"
            }
        },
        {
            "name": "array",
            "value":
            {
                "array_items":
                [
                    {
                        "title": "Black Tea",
                        "text": "Tea from the Tonganagaon plantation in India",
                        "img": "https://pics.site.com/repository/home/1/common/images/1576074904732.jpg",
                        "price": "$11.05"
                    },
                    {
                        "title": "Green Tea",
                        "text": "Tea from the Indian region of Darjeeling",
                        "img": "https://pics.site.com/repository/home/1/common/images/1576074904060.jpg",
                        "price": "$10.20"
                    },
                    {
                        "title": "Herbal tea",
                        "text": "Peach, rosehip, and apple, spring flavor.",
                        "img": "https://pics.site.com/repository/home/1/common/images/1576074902892.jpg",
                        "price": "$15.00"
                    }
                ]
            }
        }
    ]
}

Подстановка простых данных из события

У нас есть поля "externalOrderId" и "sellerName" со значениями 20233 и "Shop Tea". Эти строки и числа не входят в объект или массив.

Чтобы подставить данные в сообщение:

  • используйте в шаблоне сообщения velocity-конструкции $data.get('externalOrderId') и $data.get('sellerName'), где externalOrderId и sellerName — названия полей из запроса.

Переменные в сообщении

Пользователь, инициализировавший событие, получит сообщение:

Мобильный пуш

Подстановка данных из объекта

В примере объект – это данные одного товара:

{
    "name": "object",
    "value":
    {
        "title": "Black Tea",
        "text": "Tea from the Tonganagaon plantation in India",
        "img": "https://pics.site.com/repository/home/1/common/images/1576074904732.jpg",
        "price": "$11.05",
        "link": "https://site.com"
    }
}

Для того чтобы получить доступ к данным объекта:

1. В сценарии выделите блок сообщения и в поле JSON укажите название объекта (в этом запросе — ${object}).

Название объекта

2. В самом сообщении в соответствующих полях укажите velocity-переменные из объекта:

  • $data.get('title')
  • $data.get('text')
  • $data.get('img')
  • $data.get('price')
  • $data.get('link')

Переменные в письме

Письмо будет выглядеть так:

Подстановка данных в письмо

Передача объекта с данными покрывает большинство потребностей для таких каналов как SMS, Web Push, Mobile Push, Viber и App Inbox.

Чтобы передать больше данных, используется массив.

Подстановка данных из массива

В примере в массиве передаются данные по нескольким товарам:

{
    "name": "array",
    "value":
    {
        "array_items":
        [
            {
                "title": "Black Tea",
                "text": "Tea from the Tonganagaon plantation in India",
                "img": "https://pics.site.com/repository/home/1/common/images/1576074904732.jpg",
                "price": "$11.05"
            },
            {
                "title": "Green Tea",
                "text": "Tea from the Indian region of Darjeeling",
                "img": "https://pics.site.com/repository/home/1/common/images/1576074904060.jpg",
                "price": "$10.20"
            },
            {
                "title": "Herbal tea",
                "text": "Peach, rosehip, and apple, spring flavor.",
                "img": "https://pics.site.com/repository/home/1/common/images/1576074902892.jpg",
                "price": "$15.00"
            }
        ]
    }
}

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

1. В сценарии выберите блок сообщения и в поле JSON укажите название массива (в примере это ${array}).

Название массива

2. В email-редакторе выделите соответствующую полосу, откройте код и добавьте velocity-конструкцию с циклом #foreach:

<!-- #foreach( $item in $data.get('array_items') ) -->
// html контент
<!-- #end -->

Код velocity

Цикл последовательно проходит элементами массива, помещая данные в промежуточный объект $items (произвольное название), используемый для подстановки данных в сообщение.

3. Укажите velocity-переменные из массива в соответствующих полях письма:

  • $item.get('title')
  • $item.get('text')
  • $item.get('img')
  • $item.get('price')
  • $item.get('link')

Письмо будет выглядеть так:

Подстановка данных

Обратите внимание

Мобильное push-уведомление отображаеся по-разному на разных устройствах, но мы рекомендуем использовать не более 40 символов. Если содержимое массива может превысить этот объем, цикл foreach лучше не использовать.

Вместо этого можно обратиться к определенному элементу массива. Тогда velocity-конструкция для массива будет выглядеть так: $!data.get('array_items').get(0).get(' name'). В такой конструкции выводится первый элемент массива (нумерация начинается с 0).

Остались вопросы?
Специалисты обязательно ответят и помогут решить вашу проблему!
Обратный звонок
Оставьте заявку – и наш специалист свяжется с вами в рабочее время.
Отправить заявку
Консультация в чате
Готовы к вашим вопросам!
Написать в чат
Электронная почта
Напишите в службу поддержки eSputnik.
Отправить email