自定义邮件解决方案
将自定义邮件解决方案/提供商集成到您的运营商API中
Fast Tracks 支持多种邮件提供商,如果您的业务需要使用不在支持提供商列表中的提供商,您可以构建此API。
Fast Track 邮件服务
Fast Track 邮件服务可以配置为向下面列出的运营商API端点发送邮件请求,这允许运营商管理邮件提供商。它支持发送消息和获取传递状态。
以下端点可以作为您的运营商API的一部分来构建:
⬆️ POST /channels/email/batch
然后运营商可以将这些请求转发给邮件提供商进行处理,并返回相应的响应。
API格式和响应需要按照以下概述的格式进行格式化
重要的是,下面概述的"meta"数据需要通过Webhook或轮询方式发送回Fast Track,以便正确存储转换数据。请参考所示示例和下面的表格以获得进一步说明。
前提条件
- 告知Fast Track是否应考虑任何速率限制。(如果您计划实施速率限制,请事先联系Fast Track,我们可以指导您支持的实施方案)
- 告知Fast Track是否应考虑任何批次最大值。
- 向Fast Track提供集成提供商特定的任何凭据(如果需要)
批量邮件
批量邮件有助于在一个API请求中处理邮件集合。批量请求中的消息数量受配置中设置的整数限制,并在配置的时间跨度内发送,即使批次尚未满。
端点实现
按照以下格式实现端点,以支持通过API批量发送邮件。
⬆️ POST <operator-api-endpoint-url>/channels/email/batch
请求头
发送请求的头部包含一个"X-Api-Key",这是在端点验证API调用所需的令牌。此令牌需要传递给Fast Track以便进行这些请求。
请求体架构
以下是批处理请求时预期格式的示例。请求存储在一个数组中,一个接一个。
| 键 | 类型 | 描述 |
|---|---|---|
activity.id * | string | 邮件的唯一标识符 |
activity.brand_id * | integer | Fast Track上品牌的唯一标识符 |
activity.user_id * | string | 玩家的唯一标识符 |
activity.internal_user_id * | integer | 玩家的唯一内部标识符 |
activity.activity_id * | integer | 在Fast Track中设置的活动的唯一标识符 |
activity.action_group_id * | integer | 邮件来源于Fast Track的动作组的唯一标识符 |
activity.trigger_hash * | string | 触发器哈希 |
activity.action_id * | integer | 来自Fast Track的单个动作的唯一标识符 |
subject * | string | 邮件的主题行 |
content * | string | 邮件的内容,HTML格式 |
amp_content | string (optional) | 可选的邮件正文AMP HTML版本 |
email * | string | 玩家的邮箱地址 |
sender_name * | string | 在Fast Track中为邮件账户配置的发送者名称 |
sender_address * | string | 在Fast Track中为邮件账户配置的发送者地址 |
replyto_address * | string | 在Fast Track中为邮件账户配置的回复地址 |
provider_name | string | 用于路由消息的邮件提供商 |
meta | object | 在Fast Track CRM活动中定义的自定义键值对 |
预期响应
运营商API应返回以下响应。
成功 HTTP 200 JSON 响应
请求中最初发送的"activity.id"将在响应中作为"id"返回。这是帮助Fast Track识别初始批次请求中单个邮件消息所必需的。
"email_id"将是由运营商API生成的唯一标识符,Fast Track将使用它来识别更新状态时相关的邮件消息。
如果任何列出的类别("successful"、"failed"或"fatal")没有关联的邮件,它们应该作为空数组返回。
请求需要包含successful、failed或fatal属性中的一个
| 响应类别 | 描述 |
|---|---|
successful | 成功传递。Fast Track将确认消息并开始处理队列中的下一批。 |
failed | 不成功。当收到此错误时,Fast Track将跳过邮件消息。此外,如果启用了服务,它会将其数据发送到失败动作。 |
fatal | 消息将被重试 |
响应中未列出的任何其他消息将被重试。
错误 (非500响应) JSON 响应
Fast Track在批处理中仅支持HTTP状态码200。如果收到任何其他状态码,整个批次请求将使用以下响应重试。
转换数据
我们支持通过webhook检索转换数据。
Webhook
Fast Track将提供一个Webhook URL和X-API-KEY,您可以发送每个邮件的转换数据。
提供的X-API-KEY应作为请求中的头部。
重要的是,Fast Track在发送邮件请求中提供的"activity"数据需要发送回来
POST {supplied-url}/operator-api/email/conversion
| 键 | 类型 | 描述 |
|---|---|---|
activity.id | string | 邮件的唯一标识符 |
activity.brand_id | integer | Fast Track上品牌的唯一标识符 |
activity.user_id | integer | 玩家的标识符 |
activity.internal_user_id | integer | 玩家的内部标识符 |
activity.activity_id | integer | 在Fast Track中设置的活动标识符 |
activity.action_group_id | integer | 邮件在Fast Track中来源的动作组标识符 |
activity.trigger_hash | string | 触发器哈希 |
activity.action_id | integer | 来自Fast Track的单个动作的唯一标识符 |
email_id | string | 邮件的唯一标识符 |
delivery_status | string | 邮件的传递状态 |
| 状态 (delivery_status) | 描述 |
|---|---|
delivered | 消息成功传递给最终接收者 |
open | 收件人已打开邮件(跟踪像素) |
click | 收件人已点击邮件中的链接 |
spam | 收件人将消息标记为垃圾邮件 |
bounce | 消息被收件人的邮件服务器拒绝 |
dropped | 由于抑制规则(如之前的硬退信),消息未发送 |
failed | 消息发送给最终接收者失败 |