概述
在本教程中,您将设置一个常见的预订工作流程:- 在用户完成预订后发送预订确认邮件。
- 如果用户开始预订但未及时完成,则发送恢复邮件。
- 两个自定义事件(
booking_started、booking_complete) - 一个根据完成与放弃情况分支的 Journey
- 用于确认详情的预订数据源
- 用于恢复激励的可选优惠券数据源
设置流程
- 您的应用跟踪
booking_started自定义事件。 - 这会将用户加入 Journey。
- Journey 等待
booking_complete事件,如果未及时收到,则发送后续提醒。 - 如果预订完成,OneSignal 在发送时调用预订数据源,并发送包含最新预订详情的确认邮件。
- 如果预订未在等待窗口内完成,Journey 会走过期路径并发送恢复邮件。
设置
先决条件
开始之前,请确保您具备:- 启用了 邮件 渠道的 OneSignal 应用
- 可以以 JSON 格式返回预订和/或优惠券数据的后端端点
- 在您的应用、后端和 OneSignal 外部 ID 之间共享的稳定用户标识符
- 访问 自定义事件
1. 跟踪预订事件
跟踪以下自定义事件。这些可以来自您的应用(使用我们的 SDK)或后端(使用我们的 REST API)。 事件名称:booking_started— 当用户开始预订流程时booking_complete— 当预订成功完成时
跟踪事件和从后端返回数据时使用相同的用户身份。不匹配的 ID 是缺少个性化的最常见原因。
2. 创建数据源别名
在 OneSignal 中,转到 设置 > 数据源 并创建以下别名。 预订数据源: 使用此源在发送时提取最新预订详情。- 别名:
booking_data - 方法: GET
- URL:
示例端点
JSON
- 别名:
coupon - 方法: GET
- URL:
示例端点
JSON
3. 创建邮件模板
预订确认邮件:
主题:预订恢复邮件
主题:- 使用优惠券数据源
- 不使用优惠券数据源
在 Liquid 中始终包含
default 过滤器,以防止数据源字段缺失时出现空白内容。4. 构建 Journey
- 在 OneSignal 中,转到 消息 > Journeys > 创建 Journey
-
将 入口触发器 设置为:
- 自定义事件:
booking_started
- 自定义事件:
-
添加 等待直到 步骤:
- 条件: 发生自定义事件
- 事件名称:
booking_complete - 最大等待时间: 10 分钟
- 启用过期路径
-
配置分支:
- 已完成: 发送预订确认邮件
- 数据源:
booking_data
- 数据源:
- 已过期: 发送恢复邮件
- 数据源:
coupon
- 数据源:
- 已完成: 发送预订确认邮件
过期分支允许您处理放弃情况,无需在应用中添加额外逻辑。请参见:
- Journey 设置 - 了解自定义事件入口和出口规则的详情
- Journeys 操作 - 了解等待直到步骤和过期分支的详情
5. 测试和验证
验证事件
从您的应用或后端触发自定义事件并确认。 在 OneSignal 中,转到 分析 > 自定义事件 并确认您看到:- 为您的外部 ID 显示
booking_started事件 - 为您的外部 ID 显示
booking_complete事件
验证数据源
使用已知用户 ID 手动调用您的数据源端点并确认:- 返回 200 响应
- 存在所有预期字段
验证邮件
从 Journey 编辑器发送测试消息并确认:- 预订邮件包含真实预订详情
- 恢复邮件包含有效优惠券
- 没有 Liquid 变量显示为空
如果个性化缺失,请确认数据源请求中的用户 ID 与触发 Journey 的用户匹配。
示例:数据源实现
示例 Node.js 数据源端点
示例 Node.js 数据源端点
常见问题
邮件显示空值
- 数据源返回 404
- JSON 响应中的字段名称已更改
- 用户身份不匹配
Journey 不分支
- 未跟踪
booking_complete事件 - 事件名称不匹配(区分大小写)
- 事件发生在等待窗口之外
数据源返回 401 或 403
- API 密钥缺失或无效
- 标头未在数据源设置中配置
下一步
- 添加事件属性(服务类型、价格)以实现更高级的 Journey 条件
- 添加额外的恢复步骤,如推送或短信提醒
- 使用 Journey 出口规则防止重复恢复消息