> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 旅程消息

> 配置旅程中的推送通知、电子邮件、短信和应用内消息步骤，包括模板、投递时间和会话要求。

旅程中的每个消息步骤会在用户到达该流程节点时向用户发送消息。您可以添加**推送通知**、**电子邮件**、**短信**和**应用内消息**步骤，每个步骤都有自己的模板和投递行为。

要添加消息步骤，请点击旅程画布中的 **(+)** 按钮并选择渠道。

<Note>
  目前不支持在单个步骤内安排消息时间。推送通知、电子邮件和短信会在用户到达步骤时立即发送。如果您需要延迟，请在消息步骤之前使用[等待步骤](./journeys-actions#wait)。
</Note>

***

## 推送通知

1. 点击 **(+)** 并选择**推送通知**。
2. 在侧面板中，选择现有的[消息模板](./templates)或创建新模板。
3. 保存步骤。

当用户到达此步骤时，OneSignal 会立即发送推送通知。用户必须拥有有效的推送订阅才能接收。

<Tip>
  为模板起一个描述性名称（例如"欢迎 — 第1天推送"），以便在下拉列表中轻松找到。
</Tip>

***

## 电子邮件

在添加电子邮件步骤之前，请确认您的 OneSignal 应用已[设置电子邮件](./email-setup)。

1. 点击 **(+)** 并选择**电子邮件**。
2. 在侧面板中，选择现有的[电子邮件模板](./templates)或创建新模板。
3. 保存步骤。

当用户到达此步骤时，OneSignal 会立即发送电子邮件。用户必须拥有已订阅的电子邮件地址。

您可以使用 [Liquid 语法](./using-liquid-syntax)、[数据标签](./add-user-data-tags)或[数据订阅](./data-feeds)（发送时获取实时 API 数据）来个性化电子邮件内容。

***

## 短信

在添加短信步骤之前，请确认您的 OneSignal 应用已[设置短信消息](./sms-messaging)。

1. 点击 **(+)** 并选择**短信**。
2. 在侧面板中，选择现有的[短信模板](./templates)。如果您尚未创建，请前往**消息 > 模板 > + 新建模板 > 新建短信模板**。
3. 保存步骤。

当用户到达此步骤时，OneSignal 会立即发送短信。用户必须拥有已订阅的手机号码。

***

## 应用内消息

在添加应用内消息步骤之前，请确认您的应用已[设置应用内消息](./in-app-messages-setup)。

1. 点击 **(+)** 并选择**应用内消息**。
2. 在侧面板中，使用[拖放编辑器](./design-your-in-app-message)或 [HTML 编辑器](./design-your-in-app-message-with-html)设计您的消息。
3. 可选择配置[触发条件](./iam-triggers)和**投递时间表**（用户打开应用查看消息的时间窗口）。
4. 保存步骤。

### 会话时机

应用内消息需要**新会话**才能显示。新会话是指应用失去焦点 30 秒以上后重新获得焦点。

这意味着：

1. 用户在旅程中到达应用内消息步骤。
2. 消息**不会**在当前会话中显示。
3. 下次用户打开应用（开始新会话）时，如果满足触发条件且投递时间表未过期，消息将会显示。

<Warning>
  如果用户在到达应用内消息步骤时正在使用应用，他们在关闭并重新打开应用（30 秒以上后）之前不会看到消息。请相应地规划您的旅程流程——考虑在应用内消息之前放置[等待步骤](./journeys-actions#wait)，以便自然发生会话中断。
</Warning>

<Info>
  旅程中的应用内消息每位用户只显示一次。即使用户重新进入旅程，同一条应用内消息也不会再次显示。
</Info>

***

## Webhook

除了消息步骤外，您还可以添加 **webhook 步骤**，在旅程中的任意节点将实时数据发送到外部系统（CRM、分析平台、自定义后端）。Webhook 适用于同步用户状态、触发外部工作流或在 OneSignal 之外记录旅程进度。

<Card title="旅程 Webhook" icon="webhook" href="./journeys-webhook">
  配置 webhook 步骤，在旅程中将数据发送到外部工具。
</Card>

***

## 常见问题

### 我可以安排消息在特定时间发送吗？

不能在消息步骤本身内设置。如需延迟投递，请在消息步骤前添加[等待步骤](./journeys-actions#wait)。您也可以使用旅程的[计划设置](./journeys-settings#schedule)来控制整个旅程的活跃时间。

### 为什么我的应用内消息没有显示？

应用内消息需要新会话才能显示。如果用户在到达步骤时已在应用内，消息会排队等待下一个会话（应用失去焦点 30 秒以上后重新打开）。另请检查触发条件是否满足以及投递时间表是否未过期。

### 如果用户重新进入旅程，他们会再次看到同一条应用内消息吗？

不会。旅程中的应用内消息每位用户只显示一次，无论重新进入与否。如需再次显示消息，请创建包含不同内容的新应用内消息步骤。

### 如果用户没有该消息渠道的订阅会怎样？

该用户的消息步骤将被跳过。例如，如果到达了电子邮件步骤但用户没有已订阅的电子邮件地址，则不会发送电子邮件，用户将继续进行旅程中的下一步。

### 我可以个性化旅程消息吗？

可以。推送通知、电子邮件和短信模板支持使用 [Liquid 语法](./using-liquid-syntax)插入用户属性、[数据标签](./add-user-data-tags)和[自定义事件属性](./message-personalization#custom-events)。电子邮件模板还支持[数据订阅](./data-feeds)，可在发送时获取实时 API 数据。

## 相关页面

<Columns cols={2}>
  <Card title="旅程 Webhook" icon="webhook" href="./journeys-webhook">
    在旅程中的任意节点将实时数据发送到外部系统。
  </Card>

  <Card title="旅程操作" icon="code-branch" href="./journeys-actions">
    在消息步骤之间添加等待步骤、分支逻辑和分流路径。
  </Card>

  <Card title="旅程设置" icon="gear" href="./journeys-settings">
    配置进入规则、退出规则、重新进入和计划。
  </Card>

  <Card title="消息个性化" icon="user-pen" href="./message-personalization">
    使用标签、Liquid 语法和自定义事件属性个性化消息。
  </Card>

  <Card title="模板" icon="copy" href="./templates">
    跨渠道创建和管理可复用的消息模板。
  </Card>

  <Card title="数据订阅" icon="database" href="./data-feeds">
    在发送时将实时 API 数据引入电子邮件消息。
  </Card>
</Columns>
