Підстановка даних з подій в повідомлення | Support eSputnik

Дані користувача

Email

Омніканальність

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

Відстеження подій та поведінки

Підстановка даних з подій в повідомлення

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

Транзакційне повідомлення

Ми рекомендуємо використовувати API метод Generate event для відправки кастомних подій з бекенду до eSputnik. Докладніше про надсилання даних із замовлення читайте в інструкції.

Розглянемо практично, як підставити дані з подій у повідомлення.

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

Повідомлення з динамічним контентом із події має брати участь у сценарії, який запускається відповідною подією. Більше в інструкції із запуску тригерного сценарію за подією.

Типи даних із події

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

  • Прості дані (рядки та числа, що не входять в об'єкт або масив)
  • Дані об'єкту
  • Дані масиву

Розглянемо, як передати ці типи даних повідомлення, на прикладі наступного запиту:

JSON
COPY
MORE

Підстановка простих даних із події

У нас є поля "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"
    }
}
JSON
COPY

Для того щоб отримати доступ до даних об'єкту:

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.

Щоб передати  більше даних, використовується масив.

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

У прикладі в масиві передаються дані декількох товарів:

JSON
COPY
MORE

Для того щоб отримати доступ до даних масиву:

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

Назва масиву

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

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

Код 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