# 等待触发器

**等待触发器**元素允许您根据用户是否在设定的时间范围内（最长 90 天）触发一个或多个特定事件来控制您的旅程流程。

您可以创建最多三个分支，每个分支由一个或一组特定事件定义。这使您可以根据用户触发的事件设计不同的通信路径。还有一个额外的分支，称为_未触发_，适用于不满足任何其他分支条件的用户。

<img src="/journey-elements-README-23.webp" alt="旅程画布上的等待触发器元素，显示基于事件的分支"/>

##### 用例
- 向在将商品添加到购物车后的一段时间内未完成购买的用户发送特别折扣。
- 根据用户在收到推送通知后采取的操作创建不同的通信路径：打开通知、点击通知中的链接或不采取任何行动。
- 根据用户在设定的时间范围内是查看产品、将其添加到购物车还是购买产品，设置不同的后续消息。




## 设置等待期

添加等待触发器元素后，指定系统应等待用户触发您所选事件的时长。

您可以将等待期设置为最长 90 天。

如果在此时间范围内未触发任何选定事件，用户将继续沿**未触发**分支前进。
<img src="/journey-elements-wait-for-trigger-1.webp" alt="配置界面显示等待触发器元素的等待期设置，以及设置持续时间和启用固定等待期的选项"/>

#### 固定等待期（可选）

如果您希望用户始终等待完整的持续时间，即使他们的事件提前发生，也请启用**固定等待期**。
<img src="/journey-elements-README-27.webp" alt="配置界面显示等待触发器元素设置中的固定等待期选项。"/>
<Aside type="note" title="示例">
假设您的旅程步骤是：**推送** → **等待触发器** → **电子邮件**。如果您将**等待触发器**步骤设置为 1 天，并开启**固定等待期**，即使用户很快触发了事件（例如，在推送后仅 5 分钟），他们仍然会等待完整的 1 天，然后才会继续接收电子邮件。
</Aside>


## 配置分支

分支让您可以根据用户触发的事件，在旅程中设置不同的结果路径。您最多可以添加三个分支，此外还有一个**未触发**分支，适用于不匹配任何事件条件的用户。

要配置分支：

1. 在**分支名称**字段中输入分支的名称。

2. 通过点击**添加事件**并从下拉菜单中选择一个事件，将事件添加到分支。每个分支最多可以添加四个事件。

3. 对于每个事件，您可以通过点击**添加条件**来添加条件，以按特定属性筛选事件。有关可用操作符，请参阅[标签操作符（按类型）](/zh/product/audience-data-and-segmentation/segmentation/create-segments/by-tags/#tag-operators-by-type)。

<img src="/journey-elements-wait-for-trigger-6.webp" alt="配置界面显示如何使用“添加条件”按钮和属性筛选器选项向分支中的事件添加条件"/>

4. 要从分支中移除事件，请点击**移除事件**。

如果一个分支包含多个事件，您可以使用以下逻辑运算符之一来选择如何评估它们：

- **与 (AND)：** 用户必须触发所有列出的事件才能沿此分支继续。
- **或 (OR)：** 用户需要触发至少一个列出的事件才能继续。

这使您能够以清晰、结构化的方式定制每个分支，以处理复杂的用户行为组合。

<video src="/journey-elements-README-24.webm" title="配置界面显示如何在等待触发器元素中设置具有与/或逻辑运算符的多个事件。" autoplay loop muted playsinline />

要添加新分支，请点击**添加分支**。

<img src="/journey-elements-wait-for-trigger-5.webp" alt="配置界面显示等待触发器元素中的“添加分支”按钮和多个分支设置选项"/>

<Aside type="tip">
在使用“等待触发器”之前，请确保您要监控的事件已存在于您的项目中。[了解如何创建事件](/zh/product/audience-data-and-segmentation/events/)
</Aside>

### 设置多会话属性匹配

如果您的旅程使用[**每个用户的多个活动会话**](/zh/product/customer-journey/journey-elements/entry-elements/trigger-based-entry/#multiple-active-sessions-per-user)，此部分会自动出现。其目的是确保每个传入的事件都与正确的用户会话匹配，而不是应用于用户可能拥有的每个活动会话。


要配置会话匹配：

1. 首先，向您的分支添加一个事件（如上文[配置分支](#configure-branches)部分所述）。

2. 然后，在下拉菜单中选择一个标识会话的属性。您选择的属性必须满足两个条件：

   - 它必须与入口步骤中使用的标识符匹配（例如，`order_id`、`appointment_id`、`transaction_id`）。
   
   - 它也必须存在于您添加到分支的事件中。

<img src="/journey-elements-wait-for-trigger-2.webp" alt="配置界面显示多会话属性匹配下拉菜单，其中包含会话标识符选择选项"/>


<Aside type="caution" title="重要">
您可以使用与入口步骤中完全相同的属性，或任何包含相同值的属性（例如，`order_list` 内的 `order_id`）。如果该值与入口会话标识符不匹配，Pushwoosh 将不知道该事件属于哪个会话，并会将该事件应用于该用户的**所有**活动会话。[了解更多](/zh/product/customer-journey/journey-elements/entry-elements/trigger-based-entry/#multiple-active-sessions-per-user)
</Aside>

##### 示例

您的应用允许用户预订多个预约。每次预订都会启动一个单独的旅程会话，由 `appointment_id` 等属性标识。

假设一个用户预订了两个预约：

* 预约 **1001**
* 预约 **1002**

这将创建两个活动会话，每个预约一个。

稍后，用户触发一个类似 `AppointmentConfirmed` 的事件，其中包含 `appointment_id: 1001`。**等待触发器**元素会将此值与会话标识符进行比较，并正确地仅将该事件应用于预约 **1001** 的会话。这确保了正确的预约流程得以继续。

> 如果事件不包含会话匹配属性（在本例中为 `appointment_id`），Pushwoosh 将无法确定它属于哪个会话。该事件将被应用于**所有**活动的用户会话，从而导致不正确或重复的流程。



## 用例示例

**1. 为触发一个或多个特定事件的用户设置特殊通信。** 假设您想向已预订并支付了机票的客户发送电子邮件。为此，请添加一个带有一个分支的“等待触发器”步骤，并在其中指定两个事件：_TicketBooked_ 和 _TickedPurchased_（假设您之前已配置它们）。选择 _与 (AND)_ 逻辑运算符，以便只有满足这两个条件的用户才能继续前进。

<img src="/journey-elements-README-25.webp" alt="使用与 (AND) 逻辑进行机票预订和购买的等待触发器配置示例，其中包含两个事件。" data-size="original"/>

**2. 根据购买的产品类型拆分流程。** 假设您提供基础版和高级版订阅。购买订阅时，用户会触发 _SubscriptionPurchased_ 事件，其 _type_ 属性会获得 _Basic_ 或 _Premium_ 值。要根据订阅类型拆分旅程流程，请添加一个带有两个分支的“等待触发器”步骤。在第一个分支中，指定 _SubscriptionPurchased_ 事件，条件为 _type is Basic_；在第二个分支中，添加 _SubscriptionPurchased_ 事件，条件为 _type is Premium_。

<video src="/journey-elements-README-26.webm" title="等待触发器配置示例，其中包含针对基础版和高级版订阅类型的两个分支。" autoplay loop muted playsinline />