跳到内容

在 Journey 中使用 Webhook 响应数据

当您从 Webhook 响应中映射值时,Pushwoosh 会将它们存储为变量,您可以在 Journey 后续的 Update user profile、Time Delay 和内容个性化中使用这些变量,就像使用 Event 属性一样。唯一的例外是 Condition split:它不能直接根据 Webhook 变量进行分支,因为它需要一个已声明类型的值(Tag 或 Event 属性),而映射的 Webhook 值没有类型。请参阅下文的在 Condition split 中比较 Webhook 值。

使用“更新用户个人资料”将 Webhook 值另存为 Tag

Anchor link to

Webhook 可以从外部系统(例如 CRM 用户 ID 或订阅状态)返回数据,而 Pushwoosh 尚未将这些数据存储在用户个人资料中。Update user profile 将映射的值保存为 Tags,以便您可以在细分、动态内容和后续的 Journey 步骤中使用它们。

示例:将 CRM 用户 ID 另存为 Tag

Anchor link to

新用户在您的应用中注册后,Journey 会在您的 CRM 中创建一个匹配的记录。将返回的 CRM 用户 ID 保存为 Tag,可以让您稍后(例如从另一个 Journey 或后续的 Webhook 调用中)引用或更新同一个 CRM 记录,而不是在用户每次重新进入 Journey 时都创建一个重复的记录。

Journey 流程: 基于触发器进入 → Webhook → 更新用户个人资料 → 结束分支

  1. 创建一个以 SignUp 事件为 基于触发器进入 的 Journey。
  2. 在进入步骤后添加一个 Webhook 元素。为其命名(例如,在 CRM 中创建用户),并将请求 URL 设置为您的 CRM 创建用户端点。
  3. 在 响应映射 中,将 路径 设置为响应中的 ID 字段(例如,data.user.id),并将 属性 设置为 crm_user_id。
Webhook 响应映射,路径为 data.user.id,属性为 crm_user_id
  1. 在 Webhook 步骤后添加一个 Update user profile 元素。

  2. 在 动态 Tag 值 中,点击 + 动态值。在 Tag 中,选择存储 CRM ID 的 Tag(如果需要,请提前创建)。在 Event 中,按您给定的名称选择 Webhook 步骤 (在 CRM 中创建用户)。在 动态值 中,选择 crm_user_id。

动态 Tag 值,Tag 为 CRM ID,Event 为 Webhook 步骤,动态值为 crm_user_id
  1. 结束分支——添加一个 Exit 元素或不设置传出连接。
在“更新用户个人资料”步骤后以“退出”结束的 Journey 分支

使用“时间延迟”根据 Webhook 值安排延迟

Anchor link to

访问日期、续订截止日期和配送窗口通常存在于外部预订或计费系统中。在 Webhook 从 API 响应中映射日期后,Time Delay 可以暂停 Journey 直到那一刻,例如在预约前 2 天,以便下一条消息能准时发出。

示例:根据响应中的日期安排提醒

Anchor link to

用户在您的应用中预约。Journey 从您的预订系统中获取访问日期,并在访问前 2 天发送推送提醒。

  1. 创建一个以 AppointmentBooked 事件为 基于触发器进入 的 Journey。
  2. 在进入步骤后添加一个 Webhook 元素。为其命名(例如,获取预约详情),并将请求 URL 设置为您的预订系统 API。
  3. 在 响应映射 中,将 路径 设置为响应中的日期字段(例如,appointment.date),并将 属性 设置为 visit_date。
Webhook 步骤,响应映射为 appointment.date 到 visit_date
  1. 在 Webhook 步骤后添加一个 Time Delay 元素。选择 基于用户/事件数据,将 从…获取日期 设置为 Event,将 Event 设置为您给定的 Webhook 步骤名称 (获取预约详情),将 Event 值 设置为 visit_date,并将延迟设置为 之前 2 天。
根据 Webhook 的 visit_date 配置的时间延迟,偏移量为“之前 2 天”
  1. 如果用户可以在访问前不到 2 天进行预订,请在 Time Delay 元素上启用 如果日期在过去或日期为空则拆分为分支。这将创建两个分支:在过去 和 在将来。请参阅当日期在过去或为空时拆分分支。
  2. 添加一个包含提醒消息的 Push 步骤。如果启用了拆分,请在两个分支中都添加此 Push:在过去(立即发送)和 在将来(在 Time Delay 之后)。
  3. 结束每个分支——添加一个 Exit 元素或不设置传出连接。
时间延迟分为“过去”和“将来”两个分支,每个分支都有 Push 和 Exit 步骤

在 Condition split 中比较 Webhook 值

Anchor link to

Condition split 根据 Segment、Tag 或具有已声明类型的 Event 属性进行分支。从 Webhook 响应中映射的值没有类型,因此它不会出现在 Condition split 的下拉菜单中,也无法直接进行比较。

要根据 Webhook 值进行分支,首先使用 Update user profile 将其保存为匹配类型的 Tag,然后在 Condition split 中比较该 Tag。

示例:根据 Webhook 余额与触发事件的金额进行分支

Anchor link to

用户请求购买,Journey 在继续之前会检查其 CRM 余额是否足以支付触发事件中的价格。

Journey 流程: 基于触发器进入 → Webhook → 更新用户个人资料 → 条件分支

  1. 创建一个以 PurchaseRequested 事件为 基于触发器进入 的 Journey,该事件带有一个数字 required_amount 属性。
  2. 在进入步骤后添加一个 Webhook 元素。在 响应映射 中,将 路径 设置为响应中的余额字段(例如,current_balance),并将 属性 设置为 current_balance。
  3. 在 Webhook 步骤后添加一个 Update user profile 元素。在 动态 Tag 值 中,将 Tag 设置为一个整数或价格类型的数字 Tag(如果需要,请提前创建,例如 Current_balance),将 Event 设置为 Webhook 步骤,并将 动态值 设置为 current_balance。
  4. 在 Update user profile 之后添加一个 Condition split 元素。将条件设置为 Tag Current_balance,运算符为 大于或等于,对于值,选择 Event 属性 → 进入事件 → required_amount,而不是一个常量。
  5. 将每个分支连接到后续步骤。

注意事项

Anchor link to
  • 路径语法: 使用点分隔的路径(例如,data.user.id),或使用 * 段来映射数组的每个元素。不支持过滤器。详情请参阅映射数组的每个元素。
  • 响应大小: 大于 64 KB 的响应不会被处理以进行映射。
  • 条件分支: 映射的 Webhook 值没有类型,不能直接使用。请先将其保存为 Tag。请参阅在 Condition split 中比较 Webhook 值。
  • 测试: 在实时 Journey 中使用映射值之前,请在 Webhook 元素中运行 测试 Webhook。确认请求成功后,在 调用日志 选项卡中检查响应正文与每个 路径 是否匹配。如果 Journey 上线后某个特定旅行者的值看起来不正确,请在 调用日志 中检查该旅行者的行。
  • 响应中的列表: 在 路径 中使用 * 来映射每个项目。选择 item_{n} 作为单独的属性,或选择不带 {n} 的名称作为单个逗号分隔的字符串。路径 索引从 0 开始。{n} 名称从 1 开始。最多映射前 50 个元素。请参阅映射数组的每个元素。