Перейти к содержанию

API шаблонов Email

API шаблонов Email управляет многоразовыми шаблонами email, которые лежат в основе пресетов email приложения — теми же шаблонами, которые вы создаете в редакторе email в Control Panel. Каждый шаблон хранит темы для разных языков, информацию об отправителе и содержимое редактора, и идентифицируется по коду пресета email, с которым он связан. Используйте этот код для отправки шаблона через Notify (полезная нагрузка email email_template) или точку Send email в Customer Journey.

Базовый URL

Anchor link to
https://rpc-api.svc-nue.pushwoosh.com

Все эндпоинты обслуживаются по HTTPS. Запросы и ответы используют application/json, если не указано иное.

Аутентификация

Anchor link to

Каждый запрос должен включать заголовок Authorization с вашим токеном Server API:

Authorization: Api YOUR_API_TOKEN

Соглашения

Anchor link to
  • Именование полей: тела запросов и параметры query/path принимают lowerCamelCase (например, previewSettings, searchByLabel, includeHtml) — сервер разбирает любой регистр. Ответы всегда маршалируются с использованием имен полей proto в snake_case (per_page, email_template, sender_info, preview_settings и так далее). Примеры ответов и справочник объектов ниже используют этот регистр.
  • code: каждый ответ с шаблоном содержит код связанного с ним пресета email, а не внутренний ID шаблона. Передавайте этот же код в Get, Update, Delete и в вышеупомянутые API сообщений/journey.
  • Незаполненные поля: ответы включают все поля, даже если они пустые или имеют нулевое значение.

Ответы об ошибках

Anchor link to
HTTP-статусЗначение
400 Bad RequestНеверный аргумент — обязательное поле отсутствует или имеет неверный формат, или не выполнено предварительное условие (например, удаление шаблона, который все еще используется в journey).
401 UnauthorizedОтсутствует или недействителен заголовок Authorization.
403 ForbiddenПриложение или пресет не принадлежат аккаунту вызывающей стороны.
404 Not FoundШаблон, пресет или приложение не найдены.
500 Internal Server ErrorНеожиданный сбой на стороне сервера.

Эндпоинты

Anchor link to
МетодПутьОписание
POST/api/email_templatesСоздать новый шаблон email
GET/api/email_templatesПолучить список шаблонов email приложения
GET/api/email_templates/{code}Получить один шаблон email
PUT/api/email_templates/{code}Обновить шаблон email
DELETE/api/email_templates/{code}Удалить шаблон email
POST/api/email_templates:cloneКлонировать шаблон email в приложение

Создание

Anchor link to

Создает новый шаблон email — его содержимое редактора плюс связанный пресет email — в приложении и возвращает сгенерированный код шаблона.

POST /api/email_templates

Тело запроса

Anchor link to
ПараметрТипОбязательныйОписание
applicationstringДаКод приложения Pushwoosh, в котором нужно создать шаблон.
namestringДаНазвание шаблона, 1–255 символов.
contentobjectДаОбъект содержимого email.
labelstringНетПроизвольная метка, до 255 символов.
categoriesarray of stringsНетНазвания категорий для тегирования шаблона.
previewSettingsobjectНетПроизвольные настройки предпросмотра редактора, сохраняются и возвращаются как есть.
systembooleanНетПомечает шаблон как системный — внутренняя функция, например, фрагмент синхронизированного блока. Системные шаблоны скрыты из List (см. примечание ниже), но остаются доступными по коду. По умолчанию false.
Пример запроса
Anchor link to
{
"application": "XXXXX-XXXXX",
"name": "Welcome email",
"label": "onboarding",
"categories": ["lifecycle"],
"content": {
"senderInfo": {
"from": { "email": "hello@acme.com", "name": "Acme" },
"replyTo": { "email": "support@acme.com", "name": "Acme Support" }
},
"subject": { "en": "Welcome to Acme!", "default": "Welcome to Acme!" },
"pushwoosh": {
"html": "<html><body>Welcome, {name|string|there}!</body></html>",
"localizationData": { "default": { "name": "there" } }
}
}
}

Ответ

Anchor link to

Возвращает { "email_template": { ... } } — созданный объект шаблона email, но без content (этот эндпоинт не возвращает его). Вызовите Get с возвращенным code, если вам нужно прочитать содержимое.

Список

Anchor link to

Возвращает список шаблонов email приложения — только метаданные, без содержимого — с пагинацией, сортировкой и фильтрацией по названию, метке или категории.

GET /api/email_templates

Параметры запроса

Anchor link to
ПараметрТипОбязательныйОписание
applicationstringДаКод приложения, для которого нужно получить список шаблонов.
orderBystringНетNAME (по умолчанию), CREATED или UPDATED.
orderDirectionstringНетASC (по умолчанию) или DESC.
pageintegerНетИндекс страницы, начиная с нуля.
perPageintegerНетРазмер страницы. По умолчанию 100, если не указан или равен 0. Этот эндпоинт не имеет явного максимума.
searchByNamestringНетПоиск по подстроке (like %value%) в названии шаблона или его коде — достаточно одного совпадения.
searchByLabelstringНетПоиск по подстроке в метке (like %label%) или точное совпадение, если strictSearchByLabel равно true.
strictSearchByLabelbooleanНетИспользовать точное совпадение вместо поиска по подстроке для searchByLabel.
searchByCategoryarray of stringsНетПовторите параметр для фильтрации по нескольким категориям, например, ?searchByCategory=lifecycle&searchByCategory=promo.

Ответ

Anchor link to
ПолеТипОписание
email_templatesarray of objectsТекущая страница объектов шаблонов email. content равен null для каждого элемента.
pageintegerВозвращенный индекс страницы.
per_pageintegerРазмер страницы, использованный для этого ответа.
totalintegerОбщее количество шаблонов, соответствующих фильтрам, на всех страницах.
Пример ответа
Anchor link to
{
"email_templates": [
{ "code": "AAAAA-BBBBB", "name": "Welcome email", "label": "onboarding", "categories": ["lifecycle"] }
],
"page": 0,
"per_page": 100,
"total": 1
}

Получение

Anchor link to

Возвращает один шаблон email по его коду, включая информацию об отправителе, темы для разных языков и полное содержимое редактора.

GET /api/email_templates/{code}

Параметры пути

Anchor link to
ПараметрТипОписание
codestringКод шаблона (код связанного с ним пресета email).

Параметры запроса

Anchor link to
ПараметрТипОбязательныйОписание
includeHtmlbooleanНетВозвращать ли сгенерированный html вместе с содержимым редактора. По умолчанию true. Установите в false, чтобы пропустить его — обычно это более половины полезной нагрузки, а содержимое редактора уже описывает шаблон.

Ответ

Anchor link to

Возвращает { "email_template": { ... } }, полный объект шаблона email.

Обновление

Anchor link to

Обновляет существующий шаблон email по коду, перезаписывая предоставленные поля.

PUT /api/email_templates/{code}

Параметры пути

Anchor link to
ПараметрТипОписание
codestringКод шаблона для обновления.

Тело запроса

Anchor link to
ПараметрТипОбязательныйОписание
namestringНетНовое название, 1–255 символов. Опустите, чтобы сохранить текущее название.
contentobjectНетНовый объект содержимого email, полностью заменяющий сохраненное содержимое. Опустите, чтобы оставить содержимое без изменений.
labelstringНетНовая метка. Всегда перезаписывается — опустите или отправьте "", чтобы очистить ее.
categoriesarray of stringsНетНовый полный набор названий категорий. Опустите, чтобы оставить категории без изменений; отправьте [], чтобы очистить их.
previewSettingsobjectНетНовые настройки предпросмотра. Опустите, чтобы оставить без изменений.
Пример запроса
Anchor link to
{
"name": "Welcome email v2",
"label": "onboarding",
"content": {
"senderInfo": { "from": { "email": "hello@acme.com", "name": "Acme" } },
"subject": { "default": "Welcome to Acme — updated!" },
"pushwoosh": {
"html": "<html>...</html>",
"localizationData": {}
}
}
}

Ответ

Anchor link to

Возвращает { "email_template": { ... } } — обновленный объект шаблона email, также без content. Вызовите Get, если вам нужно прочитать содержимое.

Удаление

Anchor link to

Удаляет шаблон email и связанный с ним пресет по коду, удаляя сохраненное содержимое.

DELETE /api/email_templates/{code}

Параметры пути

Anchor link to
ПараметрТипОписание
codestringКод шаблона для удаления.

Ответ

Anchor link to

Пустой объект в случае успеха: {}.

Клонирование

Anchor link to

Клонирует шаблон email — его содержимое и пресет — в целевое приложение, опционально под новым названием.

POST /api/email_templates:clone

Тело запроса

Anchor link to
ПараметрТипОбязательныйОписание
emailPresetCodestringДаcode шаблона для клонирования (возвращаемый Create, Get, List или Update). Назван emailPresetCode, потому что это код связанного пресета email — см. Соглашения.
applicationstringДаКод целевого приложения. Может быть тем же приложением или другим, принадлежащим тому же аккаунту.
namestringНетНазвание для клона, 1–255 символов. По умолчанию используется название исходного шаблона.
Пример запроса
Anchor link to
{
"emailPresetCode": "AAAAA-BBBBB",
"application": "YYYYY-YYYYY",
"name": "Welcome email (copy)"
}

Ответ

Anchor link to
ПолеТипОписание
email_preset_codestringcode нового шаблона — тот же идентификатор, который используется в вызовах Get/Update/Delete как code.

Справочник объектов

Anchor link to

Имена полей ниже соответствуют тому, что фактически возвращают Get, List, Update и Create — имена полей proto в snake_case (см. Соглашения). Когда вы отправляете эти же структуры обратно в теле запроса (Create, Update), форма lowerCamelCase, используемая в примерах запросов выше, также работает; сервер принимает любой регистр на входе.

Объект шаблона email

Anchor link to
ПолеТипОписание
codestringКод связанного пресета email. Идентифицирует этот шаблон во всех остальных частях API.
namestringНазвание шаблона.
labelstringПроизвольная метка.
categoriesarray of stringsНазвания категорий.
contentobjectОбъект содержимого email. Заполняется только методом Get; null в ответах Create, List и Update.
preview_settingsobjectПроизвольные настройки предпросмотра редактора.
createdstring (RFC 3339)Временная метка создания.
updatedstring (RFC 3339)Временная метка последнего обновления.

Объект содержимого email

Anchor link to
ПолеТипОписание
sender_infoobjectОбъект информации об отправителе — адреса from и reply_to.
subjectobject (map)Тема для каждой локали, например, { "en": "Subject", "default": "Subject" }.
unlayer / pushwoosh / smartcardsobjectСодержимое редактора. Должно быть установлено ровно одно из этих полей — оно определяет, какой редактор создал (и будет отображать) шаблон. См. типы редакторов ниже.

Типы редакторов

Anchor link to
ТипПолеОбязательные подполяОписание
unlayerhtml, localization_data, editor_configeditor_config, localization_dataБлочный редактор с перетаскиванием (Unlayer). editor_config — это JSON дизайна Unlayer.
pushwooshhtml, localization_datalocalization_dataСобственный HTML-редактор Pushwoosh. Рекомендуется для шаблонов, создаваемых программно/через API.
smartcardshtml, localization_data, contentcontent, localization_dataБлочный редактор Smart Cards; content — это его специфический JSON.

В каждом типе html — это сгенерированный результат. localization_data — это собственное содержимое редактора для каждой локали: объект, ключами которого являются коды локалей (en, es, default, …), а значениями — копия полей редактора для этой локали. Его внутренняя структура специфична для редактора и непрозрачна для этого API — API сохраняет и возвращает его как есть. Он обязателен при Create/Update для каждого типа (отправьте {}, если локализовать нечего).

Текст внутри html или значения localization_data может включать теги Dynamic Content, например, {name|string|there} — они разрешаются на основе тегов устройства получателя при фактической отправке email. Этот API не разрешает их; он просто сохраняет и возвращает любой текст, который вы туда поместили.

Объект информации об отправителе

Anchor link to
ПолеТипОписание
fromobject{ "email": string, "name": string } — адрес отправителя.
reply_toobject{ "email": string, "name": string } — адрес для ответа.

Оба подполя email, если они не пустые, должны быть действительными адресами электронной почты.

Связанные материалы

Anchor link to