# 如何发送事务性消息

事务性消息，例如订单确认、订阅续订、密码重置、发货更新或付款通知，对于根据特定操作为用户提供及时、相关的信息至关重要。Pushwoosh 允许您使用 **Customer Journey Builder** 工具自动化这些消息。

## 前提条件
<Aside type="caution" icon="setting" title="需要开发人员协助">
您需要开发团队的协助来完成此设置。
</Aside>

在设置事务性消息之前，请确保：

* [**Pushwoosh SDK**](/zh/developer/pushwoosh-sdk/pushwoosh-sdk-overview) 已集成到您的移动应用或网站中。
* 您想在事务性旅程中使用的事件已在 Pushwoosh 中创建、设置和跟踪。[了解有关创建事件的更多信息](/zh/product/audience-data-and-segmentation/events#implementation)


以下是常见事务性消息的示例以及使用 [**Customer Journey Builder**](/zh/product/customer-journey/pushwoosh-journey-overview) 配置它们的步骤。

## 发送订单确认

要在购买事件发生时自动发送个性化的订单确认消息，请按照以下步骤操作：

1. 在您的 Pushwoosh 帐户中，转到 **Campaigns > Customer Journey Builder**，然后单击 **Create campaign** 开始构建事务性消息流。
2. 在 **Customer Journey Builder** 中，将 **Trigger-based entry element** 添加到画布上，并选择 [PW_InAppPurchase](/zh/product/audience-data-and-segmentation/events/default-events#pw_inapppurchase) 事件（一个默认事件）。确保事件已正确配置。[了解更多](/zh/product/audience-data-and-segmentation/events/default-events#pw_inapppurchase)

<Aside type="tip">
 如果您的应用需要自定义事件，请提前创建并设置它。[了解有关创建事件的更多信息](/zh/product/audience-data-and-segmentation/events/custom-events)。
</Aside>

<img src="/how-to-create-campaigns-how-to-send-transactional-messages-1.webp" alt="Customer Journey Builder 画布显示已为订单确认设置选择 PW_InAppPurchase 事件的基于触发器的入口元素"/>

3. 将 [**推送通知**](/zh/product/customer-journey/journey-elements#push) 元素添加到画布上。创建消息内容，并使用 `{order_id}` 等占位符来个性化消息。

### 推送内容示例

**标题**：“订单确认”

**消息**：“感谢您的订单 `{order_id}`！您的商品将很快发货。”

<img src="/how-to-create-campaigns-how-to-send-transactional-messages-2.webp" alt="推送通知内容预览，显示带有 order_id 个性化占位符的订单确认消息"/>

4. 为确保无论任何消息限制如何都能送达消息，请在交付设置中选择[**发送消息时不考虑全局频率上限**](/zh/product/messaging-channels/global-frequency-capping/#ignore-global-frequency-capping)。

<img src="/shared-53.webp" alt="交付设置，其中为事务性消息选择了“发送消息时不考虑全局频率上限”"/>

5. **完成并启动 Journey**。配置消息以及任何可选的细分或等待步骤。用 [**退出元素**](/zh/product/customer-journey/journey-elements/flow-controls/exit/) 结束分支，或者不设置传出连接，然后单击 **Launch** 启动旅程。

<img src="/how-to-create-campaigns-how-to-send-transactional-messages-3.webp" alt="已完成的 Customer Journey，配置了退出元素并准备启动"/>

现在，当触发条件满足时，事务性消息将自动发送。

## 发送订阅续订电子邮件

通过使用第三方订阅管理服务，例如 [**Adapty**](/zh/product/integrations/adapty-integration)、[**Apphud**](https://docs.apphud.com/docs/pushwoosh) 等，您可以在用户订阅到期时自动向他们发送续订通知或电子邮件，提示他们续订。为此，请执行以下操作：

1. 首先，配置该服务与 Pushwoosh 的集成。[了解有关可用集成的更多信息](/zh/product/integrations/#in-app-purchases)
2. 接下来，在您选择的订阅管理服务中设置 **Subscription_expired** 事件。当用户订阅到期时，该服务将向 Pushwoosh 发送一个 **subscription expired** 事件。
3. 设置好事件后，在 **Customer Journey Builder** 中，单击 **Create campaign** 并将 **Trigger-based entry element** 添加到画布上。
4. 选择从第三方服务发送的 **subscription expired** 事件。

<img src="/how-to-create-campaigns-how-to-send-transactional-messages-4.webp" alt="基于触发器的入口元素，配置了来自第三方服务的 subscription expired 事件"/>

5. 将 [**电子邮件元素**](/zh/product/customer-journey/journey-elements#email) 添加到画布上，并选择您预先创建的电子邮件内容。

### 电子邮件内容示例

***主题**：“您的订阅已到期 – 立即续订以保持联系！”*

***正文：***

*您好，*

*我们注意到您的订阅已到期，我们不希望您错过所有精彩的权益！立即续订您的订阅，继续享受我们不间断的服务。*

*[续订我的订阅]*

*感谢您成为我们尊贵的客户。我们期待您的回归！*

6. 为确保无论任何消息限制如何都能送达消息，请在交付设置中选择[**发送消息时不考虑全局频率上限**](/zh/product/messaging-channels/global-frequency-capping/#ignore-global-frequency-capping)。

7. 完成 Journey 配置并单击 **Launch campaign**。

<img src="/how-to-create-campaigns-how-to-send-transactional-messages-5.webp" alt="已完成的订阅续订电子邮件旅程，准备启动"/>

设置完成后，当第三方服务触发 subscription expired 事件时，续订通知将自动发送。

## 发送密码重置消息

要发送密码重置电子邮件，您需要设置密码重置事件，在您的终端配置密码重置链接，然后 [构建一个 Customer Journey](/zh/product/customer-journey/create-a-customer-journey-for-your-project) 来发送电子邮件。

按照以下步骤完成设置：

### 步骤 1. 在 Pushwoosh 中配置密码重置事件

当用户请求更改密码时，您会触发一个事件，例如 **password change requested**。您需要提前设置此事件。

1. 在 Pushwoosh 仪表板中导航到 **Events**，然后单击 **Create event**。
2. 为事件命名，例如 **Password reset request**。
3. 向事件添加以下属性：

| 属性名称 | 类型 | 描述 | 示例值 |
| ----- | ----- | ----- | ----- |
| reset_link | String | 唯一的密码重置链接。 | https://yourapp.com/reset-password?token=abc |
| user_name | String | 用于个性化的用户名。 | John |
| token_durability | Integer | 令牌有效期（秒）（例如，24 小时）。 | 86400 |
| date | Date | 重置请求的日期和时间。 | 2024-11-18T10:00:00Z |

这些属性充当占位符，在事件触发时从您的系统接收动态数据。

<Aside type="caution" title="重要">
 在事件的属性中，您必须传递一个由您方生成的唯一密码重置链接，或者一个需要包含在链接中才能使其工作的唯一密钥。此链接必须包含一个为每个用户个性化的唯一令牌，并通过从您的系统发送的事件属性嵌入到 URL 中。该令牌应有一个有效期（例如，24 小时）以确保安全，允许用户仅在指定的时间范围内重置密码。
</Aside>

<img src="/how-to-create-campaigns-how-to-send-transactional-messages-6.webp" alt="事件配置界面，显示带有必需属性的密码重置请求事件"/>

在您的应用中设置事件。[了解有关设置自定义事件的更多信息](/zh/product/audience-data-and-segmentation/events#implementation)

### 步骤 2. 生成密码重置链接

当用户请求重置密码时（例如，通过单击“忘记密码”），您需要：

1. **生成唯一令牌**。为用户创建一个安全的、随机生成的令牌。例如，12345-abcde-67890。
2. 将令牌与您的密码重置 URL 结合起来。例如，https://yourapp.com/reset-password?token=12345-abcde-67890。
3. 将令牌保存在您的数据库中，与用户帐户关联，并设置一个过期时间（例如，24 小时）。
4. 在触发 **Password Reset Request** 事件时，将重置链接包含在 reset_link 事件属性中。

### 步骤 3. 创建电子邮件内容

1. 在 Pushwoosh 中导航到 **Email content** 并创建新的电子邮件内容。[了解更多](/zh/product/content/email-content/drag-and-drop-email-editor/create-email-content-with-drag-and-drop-editor/#create-new-email-content)
2. 为动态内容添加占位符：
   1. `{reset_link}` 用于密码重置链接。
   2. `{user_name}` 用于用户名。
   3. `{token_durability}` 用于链接过期时间。

<img src="/how-to-create-campaigns-how-to-send-transactional-messages-7.webp" alt="电子邮件内容编辑器，带有 reset_link、user_name 和 token_durability 字段的占位符"/>

### 步骤 4. 创建营销活动

1. 在 Pushwoosh 中导航到 **Customer Journey** 部分，然后单击 **Create Campaign**。
2. 将 **Trigger-based entry** 元素拖放到画布上。
3. 配置触发器，使其在您的系统发送 **Password Reset Request** 事件时激活。

<img src="/how-to-create-campaigns-how-to-send-transactional-messages-8.webp" alt="Customer Journey 画布，显示为 Password Reset Request 事件配置的基于触发器的入口元素"/>

4. 向画布添加一个 **Email** 元素。

5. 将电子邮件链接到 **Trigger-based entry** 元素。

6. 选择先前创建的带有重置链接和用户详细信息占位符的电子邮件内容。

<img src="/how-to-create-campaigns-how-to-send-transactional-messages-9.webp" alt="链接到触发器入口的电子邮件元素，带有密码重置电子邮件内容和动态占位符"/>

7. 为确保无论任何消息限制如何都能送达消息，请在交付设置中选择 **Send messages without global frequency capping**。

8. 添加消息内容后，确保旅程中的所有步骤都已正确配置。用 **Exit** 元素结束分支，或者不设置传出连接，然后单击 **Launch campaign** 启动旅程。

<img src="/how-to-create-campaigns-how-to-send-transactional-messages-10.webp" alt="已完成的密码重置电子邮件旅程，配置了退出元素并准备启动"/>

激活后，当用户请求重置密码时，**密码重置消息**将自动发送，提供无缝且安全的体验。