Підстановка даних з подій в повідомлення | 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')

Лист матиме такий вигляд:

Підстановка даних

Зверніть увагу

Мобільне сповіщення відображається по-різному на різних пристроях, але ми рекомендуємо використовувати не більше 40 символів. Якщо вміст масиву може перевищити цей обсяг, цикл  foreach краще не використовувати.

Натомість можна звернутися до певного елементу масиву. Тоді velocity-конструкція для масиву виглядатиме так: $!data.get('array_items').get(0).get('name'). У такій конструкції виводиться перший елемент масиву (нумерація починається з 0).

Залишилися питання?
Спеціалісти обов'язково нададуть відповідь та допоможуть вирішити вашу проблему!
Зворотний дзвінок
Залишіть заявку – і наш спеціаліст зв'яжеться з вами в робочий час.
Відправити заявку
Консультація в чаті
Готові до ваших запитань!
Написати в чат
Електронна пошта
Напишіть в службу підтримки eSputnik.
Надіслати email