跳到内容

电子邮件模板 API

电子邮件模板 API 管理应用程序电子邮件预设背后的可重用电子邮件模板——与您在 Control Panel 的电子邮件编辑器中构建的模板相同。每个模板存储每个区域设置的主题、发件人信息和编辑器内容,并通过与其连接的电子邮件预设的代码进行识别。使用该代码通过 Notify(电子邮件有效负载 email_template)或 Customer Journey 发送电子邮件点 发送模板。

基本 URL

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

所有端点都通过 HTTPS 提供服务。除非另有说明,请求和响应使用 application/json

身份验证

Anchor link to

每个请求都必须包含一个 Authorization 标头,其中包含您的 服务器 API 令牌

Authorization: Api YOUR_API_TOKEN
  • 字段命名: 请求体和查询/路径参数接受 lowerCamelCase(例如,previewSettingssearchByLabelincludeHtml)——服务器可以解组任何一种大小写。响应总是使用 proto 字段名以 snake_case 格式进行编组(per_pageemail_templatesender_infopreview_settings 等)。下面的响应示例和对象参考使用这种大小写。
  • code 每个模板响应都携带其连接的电子邮件预设的代码,而不是内部模板 ID。将此相同的代码传递给 GetUpdateDelete 以及上面的消息/旅程 API。
  • 未填充字段: 响应包括所有字段,即使是空值或零值。

错误响应

Anchor link to
HTTP 状态含义
400 Bad Request无效参数 — 缺少或格式错误的必填字段,或前提条件失败(例如,删除一个仍在旅程中使用的模板)。
401 Unauthorized缺少或无效的 Authorization 标头。
403 Forbidden应用程序或预设不属于调用者的帐户。
404 Not Found未找到模板、预设或应用程序。
500 Internal Server Error意外的服务器端故障。
方法路径描述
POST/api/email_templates创建一个新的电子邮件模板
GET/api/email_templates列出应用程序的电子邮件模板
GET/api/email_templates/{code}获取单个电子邮件模板
PUT/api/email_templates/{code}更新一个电子邮件模板
DELETE/api/email_templates/{code}删除一个电子邮件模板
POST/api/email_templates:clone将电子邮件模板克隆到应用程序中

在应用程序中创建一个新的电子邮件模板——包括其编辑器内容和一个连接的电子邮件预设——并返回生成的模板代码。

POST /api/email_templates

参数类型必填描述
applicationstring用于创建模板的 Pushwoosh 应用程序代码
namestring模板名称,1–255 个字符。
contentobject电子邮件内容对象
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" } }
}
}
}

返回 { "email_template": { ... } } — 创建的电子邮件模板对象,但不包含 content(此端点不会将其回显)。如果您需要读回内容,请使用返回的 code 调用 Get

列出应用程序的电子邮件模板——仅元数据,无内容——支持分页、排序以及按名称、标签或类别筛选。

GET /api/email_templates

查询参数

Anchor link to
参数类型必填描述
applicationstring要列出模板的应用程序代码。
orderBystringNAME (默认), CREATED, 或 UPDATED
orderDirectionstringASC (默认) 或 DESC
pageinteger从零开始的页面索引。
perPageinteger页面大小。省略或为 0 时默认为 100。此端点不强制执行明确的最大值。
searchByNamestring针对模板名称其代码的子字符串匹配 (like %value%) — 任一匹配即可。
searchByLabelstring标签上的子字符串匹配 (like %label%),或者当 strictSearchByLabeltrue 时进行精确匹配。
strictSearchByLabelbooleansearchByLabel 使用精确匹配而不是子字符串匹配。
searchByCategoryarray of strings重复该参数以按多个类别中的任何一个进行筛选,例如 ?searchByCategory=lifecycle&searchByCategory=promo
字段类型描述
email_templatesarray of objects当前页的电子邮件模板对象。每个项目的 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
}

按代码返回单个电子邮件模板,包括发件人信息、各区域设置的主题以及完整的编辑器内容。

GET /api/email_templates/{code}

路径参数

Anchor link to
参数类型描述
codestring模板的代码(其连接的电子邮件预设代码)。

查询参数

Anchor link to
参数类型必填描述
includeHtmlboolean是否在编辑器内容旁边返回渲染的 html。默认为 true。设置为 false 可跳过它——它通常占有效负载的一半以上,并且编辑器内容已经描述了模板。

返回 { "email_template": { ... } },即完整的电子邮件模板对象

按代码更新现有电子邮件模板,覆盖提供的字段。

PUT /api/email_templates/{code}

路径参数

Anchor link to
参数类型描述
codestring要更新的模板代码。
参数类型必填描述
namestring新名称,1–255 个字符。省略以保留当前名称。
contentobject新的电子邮件内容对象,完全替换存储的内容。省略以保持内容不变。
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": {}
}
}
}

返回 { "email_template": { ... } } — 更新后的电子邮件模板对象,同样不包含 content。如果您需要读回内容,请调用 Get

按代码删除电子邮件模板及其连接的预设,移除存储的内容。

DELETE /api/email_templates/{code}

路径参数

Anchor link to
参数类型描述
codestring要删除的模板代码。

成功时返回一个空对象:{}

将电子邮件模板——其内容和预设——克隆到目标应用程序中,可选择使用新名称。

POST /api/email_templates:clone

参数类型必填描述
emailPresetCodestring要克隆的模板的 code(由 CreateGetListUpdate 返回)。此处命名为 emailPresetCode 是因为它是连接的电子邮件预设的代码——参见约定
applicationstring目标应用程序代码。可以是同一个应用程序,也可以是同一帐户拥有的不同应用程序。
namestring克隆的名称,1–255 个字符。默认为源模板的名称。
请求示例
Anchor link to
{
"emailPresetCode": "AAAAA-BBBBB",
"application": "YYYYY-YYYYY",
"name": "Welcome email (copy)"
}
字段类型描述
email_preset_codestring新模板的 code — 与 Get/Update/Delete 调用的 code 标识符相同。

对象参考

Anchor link to

下面的字段名称与 GetListUpdateCreate 实际返回的名称相匹配——snake_case proto 字段名(参见约定)。当您在请求体(CreateUpdate)中发回这些相同的结构时,上面请求示例中使用的 lowerCamelCase 形式也有效;服务器接受任一大小写的输入。

电子邮件模板对象

Anchor link to
字段类型描述
codestring连接的电子邮件预设的代码。在 API 的其他任何地方都用此代码标识该模板。
namestring模板名称。
labelstring自由文本标签。
categoriesarray of strings类别名称。
contentobject电子邮件内容对象。仅由 Get 填充;在 CreateListUpdate 响应中为 null
preview_settingsobject任意编辑器预览设置。
createdstring (RFC 3339)创建时间戳。
updatedstring (RFC 3339)最后更新时间戳。

电子邮件内容对象

Anchor link to
字段类型描述
sender_infoobject发件人信息对象fromreply_to 地址。
subjectobject (map)各区域设置的主题,例如 { "en": "Subject", "default": "Subject" }
unlayer / pushwoosh / smartcardsobject编辑器内容。必须且只能设置其中一个——它选择哪个编辑器生成(并将渲染)该模板。参见下面的编辑器类型

编辑器类型

Anchor link to
类型字段必填子字段描述
unlayerhtml, localization_data, editor_configeditor_config, localization_data拖放式块编辑器 (Unlayer)。editor_config 是 Unlayer 设计 JSON。
pushwooshhtml, localization_datalocalization_dataPushwoosh 自有的基于 HTML 的编辑器。推荐用于通过编程/API 创作的模板。
smartcardshtml, localization_data, contentcontent, localization_dataSmart Cards 块编辑器;content 是其编辑器特定的 JSON。

在每种类型中,html 都是渲染后的输出。localization_data 是该编辑器自己的各区域设置内容:一个以区域设置代码(enesdefault 等)为键的对象,其中每个值都是该区域设置的编辑器字段副本。其内部结构是编辑器特定的,对本 API 不透明——API 按原样存储和返回它。对于每种类型,在 Create/Update 时都是必需的(如果没有要本地化的内容,请发送 {})。

htmllocalization_data 值内的文本可以包含动态内容标签,例如 {name|string|there} — 这些标签在实际发送电子邮件时会根据收件人的设备标签进行解析。本 API 不会解析它们;它只是存储并返回您放入的任何文本。

发件人信息对象

Anchor link to
字段类型描述
fromobject{ "email": string, "name": string } — 发件人地址。
reply_toobject{ "email": string, "name": string } — 回复地址。

两个 email 子字段在非空时都必须是有效的电子邮件地址。

相关内容

Anchor link to