# 如何发送事务性消息

事务性消息，例如订单确认、订阅续订、密码重置、发货更新或付款通知，对于根据特定操作向用户提供及时、相关的信息至关重要。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.  将 [**push notification**](/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.  为确保消息无论任何消息限制都能送达，请在交付设置中选择 [**Send messages without global frequency capping**](/zh/product/messaging-channels/global-frequency-capping/#ignore-global-frequency-capping)。

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

5.  **完成并启动旅程**。配置消息以及任何可选的细分或等待步骤。添加 [**Exit element**](/zh/product/customer-journey/journey-elements#exit-from-journey) 并点击 **Launch** 启动旅程。

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

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

## 发送订阅续订邮件

通过使用第三方订阅管理服务，如 [**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="基于触发器的入口元素已配置为来自第三方服务的订阅到期事件"/>

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

### 邮件内容示例

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

***正文：***

*您好，*

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

*[续订我的订阅]*

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

6.  为确保消息无论任何消息限制都能送达，请在交付设置中选择 [**Send messages without global frequency capping**](/zh/product/messaging-channels/global-frequency-capping/#ignore-global-frequency-capping)。

7.  完成旅程配置并点击 **Launch campaign**。

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

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

## 发送密码重置消息

要发送密码重置邮件，您需要设置密码重置事件，在您端配置密码重置链接，然后[构建一个 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)
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 画布显示已为密码重置请求事件配置的基于触发器的入口元素"/>

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="已完成的密码重置邮件旅程，配置了退出元素并准备启动"/>

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