Перейти к основному содержимому

Использование 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}