Использование API контента в сообщениях
При отпр авке сообщений с помощью API Call триггера, начиная с версии 1.1, возможно передавать данные для сообщения вместе с API-запросом.
С помощью apicontent
одно сообщение может автоматически персонализироваться под каждого клиента. В apicontent
можно передать информацию о совершенных операциях, покупках, истории клиента, т.д. Данная информация передается в виде JSON-объекта.
Пример того, как может выглядеть объект для apicontent
:
{
"product_id": 11,
"product_name": "Графический дизайн: курс для начинающих",
"product_price": 1000
}
Способы передачи API контента в платформу
Через API-запрос
Данные в переменную apicontent
можно передать, запустив триггерную кампанию или сценарий с помощью API-запроса. В запросе необходимые данные передаются в поле content
. Ниже приведен список запросов, в которых доступно поле content
:
- Запуск триггерной кампании
- Импорт профиля + Отправка триггера
- Массовая отправка триггера
- Массовый импорт профилей + отправка триггера
- Отправить профиль клиента в сценарий
- Одновременный импорт и запуск профиля в сценарий
- Массовый импорт и запуск профилей в сценарий
Далее эти данные можно подставить в шаблон с помощью переменно й apicontent
:
Предпросмотр сообщения с apicontent
доступен только после настройки раздела "Настроить API контент". Для этого перейдите в раздел предпросмотра и вставьте объект, содержащий apicontent
, в редактор. Нажмите на галочку, чтобы применить изменения.
Через элемент "API Запрос" в сценарии
В элементе сценария "API Запрос" вы можете получить данные из внешнего источника с помощью запроса и сохранить http-ответ в переменную apicontent
. Информация из запроса в дальнейшем может использоваться в сценарии.
О том, как настроить элемент "API Запрос", можно прочитать здесь.
Выберите тип запроса и вставьте ссылку на сервис, который будет возвращать JSON-объект:
Нажмите на переключатель "Сохранить http-ответ в поле apicontent" и введите название поля, в которое будут записаны данные из внешнего источника:
После этого вы сможете использовать данные из apicontent
в других элементах сценария. Например, вы можете добавить в цепочку элемент "Email-кампания" и выбрать шаблон с переменной apicontent
.
Обратите внимание, что в данном случае данные записываются в поле products
, поэтому путь к данным в шаблоне немного изменится:
Предпросмотр сообщения с apicontent
доступен только после настройки раздела "Настроить API контент". Для этого перейдите в раздел предпросмотра и вставьте объект, содержащий apicontent
, в редактор. Нажмите на галочку, чтобы применить изменения.
Использование цикла в шаб лоне с apicontent
В переменную apicontent
можно передавать JSON-объект, содержащий массив. Пример:
{
"products": [
{
"product_id": 11,
"product_name": "Графический дизайн: курс для начинающих",
"product_price": 1000
},
{
"product_id": 12,
"product_name": "Ве б-дизайн: продвинутый курс",
"product_price": 2000
}
]
}
Чтобы подставить данные из массива в шаблон, вам необходимо перебрать массив. Для этого воспользуйтесь циклом с переменными.
{for $index $el = apicontent.products}
<div>
<p>Курс: {$el.product_name}</p>
<p>Стоимость: {$el.product_price}</p>
</div>
{else}
if empty array
{end}
Этот код подставит в письмо следующие данные:
Если вы регулярно используете один и тот же JSON-объект в переменной, то вы можете сохранить его как пресет и в дальнешем выбирать этот пресет в окне предпросмотра:
Отмена отправки сообщения, если нет поля
Вы можете настроить отмену отправки сообщения, если в объекте apicontent
определенное поле отсутствует или содержит пустое значения. Для этого добавьте проверку на наличие поля и используйте переменную {cancel}
:
{if apicontent.field_2}
field_2 не пустое
{else}
{cancel}
{end}
При таком условии кампания не отправит письмо, если apicontent
будет содержать один из следующих объектов:
{
"field_1": "example"
}
{
"field_1": "example",
"field_2": "" / или 0, null, false
}
Этот подход позволяет избежать отправки нерелевантных писем, а также блокировать отправку, если из внешнего источника были получены неполные данные.
Пример использования
Допустим, у вас есть маркетинговая рассылка, предназначенная только для пользователей, которые прошли или начали проходить определенный курс. В запросе приходит объект apicontent
, который включает информацию о статусе прохождения курса:
{
"user_id": 123,
"course_id": "abcadefg",
"course_name": "Графический дизайн: курс для начинающих",
"course_status": "completed"
}
Однако если в запросе поле course_status
отсутствует или его значение пустое, это может означать, что пользователь не начал курс или не завершил его. В таком случае письмо не должно быть отправлено. Шаблон письма:
{if apicontent.course_status}
<div>
<span>Вы интересовались курсом {apicontent.course_name}.</span>
<span>Возможно, вам понравятся эти курсы: <список курсов></span>
</div>
{else}
{cancel}
{end}