# 富消息

只需构建一次带有按钮、媒体、卡片或轮播的消息，即可通过 RCS、WhatsApp、LINE 和 Facebook Messenger 发送。Pushwoosh 会在您编辑时针对每个渠道检查内容，并将其转换为每个渠道的预设，因此您无需将同一条消息构建四次。

<Aside type="note">
富消息按账户开启。如果您看不到 **富消息 (Rich messages)** 选项卡，请联系您的 Pushwoosh 客户经理。
</Aside>

## 开始之前

Pushwoosh 只为项目中已设置的渠道创建消息副本。未设置的渠道会获得 **有错误 (Has errors)** 状态，不会向其发送任何内容。

* **RCS**（Rich Communication Services，富通信服务）在手机内置的消息应用中显示来自您品牌的消息，使用按钮、卡片或媒体代替纯文本。要发送 RCS，请使用您自己的账户凭据连接 Twilio，并配置 Messaging Service。没有 Messaging Service 的 Twilio 号码无法发送 RCS。请参阅[通过 Twilio 发送 RCS 消息](/zh/product/messaging-channels/sms/rcs-messages/)。
* **WhatsApp**：为项目[连接您的 WhatsApp Business 账户](/zh/product/first-steps/start-with-your-project/configure-platforms/whatsapp-configuration/)。
* **LINE**：为项目[配置 LINE 平台](/zh/product/messaging-channels/line/)。
* **Facebook Messenger**：[连接您的 Facebook 主页](/zh/product/first-steps/start-with-your-project/configure-platforms/facebook-messenger-configuration/)。

## 创建富消息

1. 前往 **内容 (Content) > Messenger 预设 (Messenger presets)**。
2. 打开 **富消息 (Rich messages)** 选项卡。
3. 点击 **创建富消息 (Create rich message)**。
4. 点击顶部 **富消息 (Rich message)** 旁边的 **输入预设名称 (Enter preset name)**，然后输入消息名称。

## 添加语言

消息从 **默认语言 (Default language)** 开始，该语言会发送给没有匹配语言的用户。要添加翻译：

1. 点击语言下拉菜单旁边的 **加号 (+) 图标**。
2. 选择要添加的语言。
3. 在下拉菜单中切换语言，并为每种语言填写内容。

每种语言都有自己的内容类型和字段。渠道状态取所有语言中最差的一个：如果某种语言在某个渠道中有错误，则整条消息在该渠道中都有错误。

## 选择内容类型

在 **内容类型 (Content type)** 块中选择一个 **类型 (Type)**。类型决定表单显示哪些块和字段，因此请先选择它。

| 类型 | 说明 | 适用场景 |
| :---- | :---- | :---- |
| **Text** | 不含媒体或按钮的纯文本。 | 您只需要告知用户某些信息。 |
| **Media** | 带有图片、视频、文档或音频文件的文本。 | 您想随文本一起发送文件。 |
| **Quick reply** | 带有回复按钮的文本。 | 您希望用户一键回复。在 Journey 中，每个按钮都有自己的分支，用户会根据回答继续流程。 |
| **Call to action** | 带有打开链接或拨打电话号码按钮的文本。 | 您希望用户直接从消息中打开页面或拨打电话。 |
| **List picker** | 带有选项列表的文本。 | 您希望用户从列表中选择一个选项。仅在 WhatsApp 中有效，且仅在 24 小时窗口内，因此仅在备用文本本身能表达清楚时使用。 |
| **Card** | 一个包含媒体、标题、文本和按钮的块。 | 您用图片和按钮展示一个项目。 |
| **Carousel** | 一条消息中包含两到十张卡片。 | 您一次展示多个项目。 |
| **Custom LINE Flex** | 您自己的 LINE Flex 布局。 | 您已经有 LINE Flex 布局。仅在 LINE 中有效。 |

其他类型在全部四个渠道中都有效：RCS、WhatsApp、LINE 和 Messenger。在不支持某类型的渠道中，用户会收到[备用文本](#set-the-fallback-text)。

在 **类型 (Type)** 旁边，**WhatsApp 类别 (WhatsApp category)** 用于设置 WhatsApp 模板的类别。请参阅[获取 WhatsApp 模板审批](#get-the-whatsapp-template-approved)。

## 填写消息

**类型 (Type)** 决定 **内容类型 (Content type)** 块之后显示什么。大多数类型都有带 **Body** 的 **Message** 块。**List picker** 会添加 **List** 块，**Card** 和 **Carousel** 会添加 **Card** 或 **Carousel cards** 块，而 **Custom LINE Flex** 只有 **LINE Flex message** 块。请在下方找到您的类型。

编辑器会检查每个渠道的限制，当内容超出任一限制时，会为该渠道设置 **有错误 (Has errors)** 状态。每种类型都列出了相应的限制。对于 WhatsApp，**WhatsApp** 徽章下的问题来自模板检查和 Meta 审核状态。

### Text

用于不含媒体或按钮的普通消息。适用于所有渠道。

<Aside type="caution">
不要在 **Body** 中使用 `{% if %}` 或 `{% for %}` 等 Liquid 控制标签。RCS 和 WhatsApp 会将文本作为服务商模板发送，而模板不支持这些标签。包含这些标签的消息在 RCS 中会显示 **有错误 (Has errors)**，并且无法作为 WhatsApp 模板提交。
</Aside>

1. 在 **类型 (Type)** 中选择 **Text**。
2. 在 **Body** 中输入消息文本。您可以插入表情符号和个性化占位符。

**Body** 限制：RCS 中 1,600 个字符，LINE 中 5,000 个，Messenger 中 2,000 个。

### Media

用于随文本发送图片、视频、文档或音频文件。先选择文件类型，再添加文件链接。

1. 在 **类型 (Type)** 中选择 **Media**。
2. 输入 **Body**。
3. 选择 **Media type**：**Image**、**Video**、**Document** 或 **Audio**。
4. 在 **Media URL** 中设置文件链接：
   * 对于图片，点击字段旁边的附件图标并从媒体库中选择 JPEG 或 PNG 文件，或粘贴 `https://` 链接。
   * 对于视频、文档或音频文件，粘贴 `https://` 链接。媒体库只存放图片。
5. 对于视频，按照设置图片的方式设置 **Video poster URL**。LINE 需要它来显示视频：没有它，LINE 徽章会出现错误。

<img src="/content-rich-messages-6.webp" alt="Media 类型的富消息，显示 Media URL 字段及其附件图标、Media type 下拉菜单和一张已选择的图片" width="598"/>

**Body** 限制：RCS 中 1,600 个字符，Messenger 中 2,000 个。

<Aside type="note">
LINE 不发送音频或文档：对于这些媒体类型，LINE 会发送备用文本。在 **Media** 类型中，LINE 不显示 **Body**，Messenger 发送文件时不带说明文字。
</Aside>

同样的步骤也用于设置 **Header media URL** 和卡片的媒体。

### Quick reply

当您希望用户一键回复时使用。在 Journey 中，每个按钮都有自己的分支，因此您可以根据用户的回答继续 Journey。

1. 在 **类型 (Type)** 中选择 **Quick reply**。
2. 输入 **Body**。
3. 点击 **Add button** 并输入按钮的 **Title**。
4. 为每个按钮重复第 3 步。

<img src="/content-rich-messages-15.webp" alt="三个快速回复按钮，每个按钮都有标题，以及 Add button 控件" width="598"/>

限制：

* **按钮：** RCS 中 1–4 个，LINE 和 Messenger 中 1–13 个。
* **按钮标题：** RCS 中 25 个字符，LINE 和 Messenger 中 20 个。

<Aside type="note">
保存时，Pushwoosh 会为每个按钮分配一个 ID。Journey 根据该 ID 进行分支，因此之后重命名按钮，已使用该按钮的 Journey 中的分支仍会保留。

**Quick reply**、**Call to action** 和 **List picker** 还有 **Header text**、**Header media URL** 和 **Footer** 字段。只有 WhatsApp 会发送它们。RCS、LINE 和 Messenger 会忽略它们。
</Aside>

### Call to action

用于将用户引导到链接，或让用户直接从消息中拨打电话号码。

1. 在 **类型 (Type)** 中选择 **Call to action**。
2. 输入 **Body**。
3. 点击 **Add button**。
4. 选择 **Type of action**：**Open URL** 或 **Call phone**。
5. 输入按钮的 **Title**。
6. 对于 **Open URL**，输入 **URL**。对于 **Call phone**，以国际格式输入 **Phone number**，例如 `+1234567890`。

<img src="/content-rich-messages-7.webp" alt="带有两个按钮的 Call to action 富消息：已填写 Type of action、Title 以及 URL 或 Phone number 字段" width="598"/>

限制：

* **按钮：** RCS 中 1–4 个，LINE 中 1 个或更多，Messenger 中 1–3 个。
* **按钮标题：** RCS 中 25 个字符，LINE 中 40 个，Messenger 中 20 个。
* **Body：** RCS 中 1,600 个字符，Messenger 中 640 个。编辑器不检查 LINE 的正文。

### List picker

用于让用户从列表中选择一个选项。

1. 在 **类型 (Type)** 中选择 **List picker**。
2. 输入 **Body**。
3. 在 **List** 块中输入 **List button text**。
4. 点击 **Add item**。
5. 输入 **Item name**，并可选择输入 **Item description**。
6. 为每个项目重复第 4 步和第 5 步。

<img src="/content-rich-messages-8.webp" alt="List picker 富消息，显示列表按钮文本和两个列表项，每项都有名称和描述" width="598"/>

<Aside type="note">
只有 WhatsApp 会显示列表，并且只在 24 小时窗口内显示，因为列表不能作为 WhatsApp 模板。RCS、LINE 和 Messenger 会改为发送[备用文本](#set-the-fallback-text)。仅在备用文本本身能表达清楚时使用 list picker。
</Aside>

### 卡片和轮播

卡片用于包含媒体、文本和按钮的单个块。轮播用于在一条消息中展示两到十张卡片。

1. 在 **类型 (Type)** 中选择 **Card** 或 **Carousel**。
2. 对于轮播，在 **Message** 块中输入 **Body**，然后为每张卡片点击 **Add card**，最多十张。RCS 和 Messenger 不发送轮播的 **Body**。
3. 填写每张卡片：
   * **Media URL** 和 **Media type**
   * **Card title**
   * **Card body**（可选）
   * **Footer**（可选）
   * 按钮：**Quick reply**、**Open URL** 或 **Call phone**

   <img src="/content-rich-messages-9.webp" alt="轮播的第一张卡片，包含媒体 URL、卡片标题、卡片正文、页脚和两个按钮" width="598"/>

4. 要更改卡片在 RCS 中的外观，请在 **RCS card layout** 下设置 **Orientation**、**Height** 和 **Thumbnail alignment**。保留为 **Default** 即使用 RCS 默认布局。

<img src="/content-rich-messages-12.webp" alt="Add card 按钮和 RCS card layout 块，其中 Orientation、Height 和 Thumbnail alignment 均设置为 Default" width="598"/>

#### 各渠道的卡片规则

各渠道接受的卡片不同：

* **RCS 轮播：** 每张卡片都需要图片或视频、**Card body** 以及一到两个按钮。每张卡片上的按钮类型和顺序必须相同。RCS 在轮播中不显示卡片的 **Footer**。在单张卡片中，页脚显示在正文下方，且不能包含占位符。
* **Messenger：** 每张卡片都需要 **Card title**，且卡片媒体必须是图片。Messenger 不显示卡片的 **Footer**。
* **LINE：** 卡片媒体必须是图片。

编辑器还会检查以下限制：

* **轮播中的卡片数：** RCS、LINE 和 Messenger 中 2–10 张。
* **Card title：** RCS 中 200 个字符，Messenger 中 80 个。编辑器不在 LINE 中检查。
* **Card body：** RCS 中，单张卡片 1,600 个字符，轮播中标题和正文合计 160 个字符。Messenger 中 80 个字符。编辑器不在 LINE 中检查。
* **卡片上的按钮：** RCS 中，单张卡片 0–4 个，轮播中 1–2 个。Messenger 中 0–3 个。编辑器不在 LINE 中检查。

### Custom LINE Flex

当您已经有 LINE Flex 布局时，请使用 **Custom LINE Flex**。

1. 在 **类型 (Type)** 中选择 **Custom LINE Flex**。
2. 将 Flex 容器粘贴到 **Flex JSON** 中。容器类型必须是 `bubble` 或 `carousel`。

<img src="/content-rich-messages-10.webp" alt="Custom LINE Flex 富消息，Flex JSON 字段中粘贴了一个 Flex 容器" width="598"/>

LINE 会按原样发送，RCS 和 Messenger 会发送备用文本。

<span id="set-the-fallback-text" />

## 设置备用文本

备用文本是当某个渠道无法按您构建的方式显示消息时，Pushwoosh 发送的内容。请在表单底部的 **Fallback text** 中输入。

<img src="/content-rich-messages-11.webp" alt="富消息表单底部，Fallback text 字段已填写" width="598"/>

| Pushwoosh 使用它的场景 | 如果 **Fallback text** 为空 |
| :---- | :---- |
| 无法显示该内容类型的渠道，例如 RCS 中的 list picker | 该渠道会显示 **有错误 (Has errors)**。 |
| 发送到不支持 RCS 的手机的 SMS | Pushwoosh 发送 **Body**。如果两者都为空，RCS 会显示 **有错误 (Has errors)**。 |
| 卡片、轮播、行动号召和 Flex 消息在 LINE 通知和聊天列表中显示的文本 | Pushwoosh 使用 **Body**。如果两者都为空，LINE 会显示 **有错误 (Has errors)**。 |

**Fallback text** 限制：RCS 中 1,600 个字符，Messenger 中 2,000 个，LINE 中 5,000 个（卡片、轮播、行动号召和 Flex 消息为 400 个）。

## 检查渠道兼容性

标题下方的 **Channels** 栏为每个渠道显示一个徽章。当您离开字段或更改下拉菜单时，Pushwoosh 会重新检查消息。

| 徽章颜色 | 状态 | 含义 |
| :---- | :---- | :---- |
| 绿色 | Compatible | 该渠道按设计发送消息。 |
| 橙色 | Partially compatible | 该渠道无法显示部分内容，改为发送备用文本。 |
| 红色 | Has errors | 在您修复错误之前，不会向该渠道发送任何内容。 |
| 灰色 | Not checked | 消息尚未检查，或检查失败。编辑任一字段即可重新检查。 |

点击徽章，即可在栏下方查看该渠道的问题，并在右侧预览该渠道中的消息。每个问题都会指出对应字段及其违反的规则。

选择某个渠道后，该渠道不投递的字段会在表单中的名称旁显示提示，例如 **(not delivered on RCS)**，预览中也不会显示这些字段。

在此示例中，RCS 有错误，因为项目中未设置 RCS：

<img src="/content-rich-messages-2.webp" alt="富消息编辑器标题，显示 RCS、WhatsApp、Messenger 和 LINE 徽章，下方有 RCS is not set up 问题" width="841"/>

<span id="save-the-rich-message" />

## 保存富消息

点击 **保存 (Save)**。Pushwoosh 会保存消息，并为每个没有 **有错误 (Has errors)** 的渠道创建或更新其副本：

* **RCS**：一个同名的 SMS 预设。Pushwoosh 会在您的 Twilio 账户中创建 RCS 模板并将其附加到该预设。不支持 RCS 的手机会以 SMS 形式收到备用文本。
* **WhatsApp**：一个同名的 WhatsApp 预设，可在 **WhatsApp** Journey 元素和一次性 WhatsApp 消息中使用。
* **LINE**：一个同名的 LINE 预设。
* **Messenger**：一个同名的 Messenger 预设，可在 **Facebook Messenger** Journey 元素中使用。

RCS 副本是一个 SMS 预设，因此它显示在 **SMS** 选项卡中。LINE 副本显示在 **LINE** 选项卡中。两者都带有 **Rich message** 徽章。您需要通过其富消息来管理副本：

* **编辑副本：** 点击副本或其 **Edit** 操作。富消息会在编辑器中打开。
* **删除副本：** 删除富消息。您无法单独删除副本，Pushwoosh 会随消息一起删除其所有副本。

<img src="/content-rich-messages-3.webp" alt="按名称筛选的 Messenger 预设 LINE 选项卡，其中两个预设带有 Rich message 徽章" width="1132"/>

<Aside type="caution">
带有 **有错误 (Has errors)** 的渠道会保留其最后一个副本不变。如果某个 Journey 已在发送该副本，它会继续发送旧内容，直到您修复错误并重新保存。
</Aside>

<span id="get-the-whatsapp-template-approved" />

## 获取 WhatsApp 模板审批

在用户最后一条消息开启的 24 小时窗口之外，WhatsApp 只投递经 Meta 审批的模板。在富消息获得审批通过的模板之前，Pushwoosh 只会在 WhatsApp 上将其发送给过去 24 小时内给您发过消息的用户，并且 **WhatsApp** 徽章保持橙色。

1. 在 **类型 (Type)** 旁边选择 **WhatsApp category**：**Marketing** 或 **Utility**。Meta 按类别为模板定价和审核。
2. [保存富消息](#save-the-rich-message)。
3. 点击 **Save and submit for WhatsApp approval**。Pushwoosh 会保存消息，并为每种语言向 Meta 发送一个模板。

<img src="/content-rich-messages-16.webp" alt="富消息编辑器，Type 旁边有 WhatsApp category 字段，并显示 Save and submit for WhatsApp approval 按钮" width="841"/>

### 查看审核状态

**Channels** 栏下方的一行会在 **WhatsApp template:** 之后显示审核状态。提交之前，显示为 **not submitted**：

<img src="/content-rich-messages-4.webp" alt="富消息编辑器，已选择 WhatsApp 徽章，显示 24 小时窗口问题、Save and submit for WhatsApp approval 按钮以及 WhatsApp template: not submitted" width="841"/>

状态会随着 Meta 审核模板而变化：

| 状态 | 含义 |
| :---- | :---- |
| **not submitted** | 模板尚未发送给 Meta。WhatsApp 仅在 24 小时窗口内收到消息。 |
| **pending review** | Meta 正在审核模板。在审批通过之前，WhatsApp 仅在 24 小时窗口内收到消息。 |
| **approved** | WhatsApp 会将模板发送给任何用户。 |
| **the latest change is pending review, the approved version is sent** | 您编辑并重新提交了已审批的消息。在 24 小时窗口之外，用户会收到之前审批通过的版本。 |
| **rejected** | Meta 拒绝了该模板，原因显示在状态之后。请修改内容并重新提交。 |

Pushwoosh 每隔几分钟就会向 Meta 查询一次审核状态。要立即查询，请点击 **Refresh status**。如果有多种语言，显示的是离审批通过最远的状态。

### 无法提交的情况

在以下情况下，**Save and submit for WhatsApp approval** 不可用：

* 项目中未设置 WhatsApp。
* 类型为 **Carousel**：轮播在 WhatsApp 上仅在 24 小时窗口内发送。
* WhatsApp 无法根据该类型构建模板，例如 **List picker** 或 **Custom LINE Flex**。

### 编辑已审批的消息

编辑已审批的消息不会使其停止发送：在 24 小时窗口之外，已审批的版本会继续发送，直到 Meta 审批通过新版本。每次编辑后请重新提交消息。

## 在 Journey 中发送富消息

在副本所属渠道的元素中选择该副本：

* **RCS**：在 **SMS** 元素中，选择 SMS 副本作为预设。请参阅[按 RCS 回复按钮分支](/zh/product/customer-journey/journey-elements/channels/sms/#branch-on-rcs-reply-buttons)。
* **LINE**：选择 LINE 副本作为预设。请参阅[按回复按钮分支](/zh/product/customer-journey/journey-elements/channels/line/#branch-on-reply-buttons)。
* **WhatsApp**：在 **Content** 下拉菜单中选择富消息，该消息带有 **Rich message** 徽章。请参阅[使用富消息](/zh/product/customer-journey/journey-elements/channels/whatsapp/#use-a-rich-message)。
* **Facebook Messenger**：选择 **Preset**，然后选择 Messenger 副本。请参阅[按回复按钮分支](/zh/product/customer-journey/journey-elements/channels/facebook-messenger/#branch-on-reply-buttons)。

<img src="/content-rich-messages-14.webp" alt="WhatsApp Journey 元素的 Content 下拉菜单，其中一条富消息带有 Rich message 徽章" width="575"/>

当消息带有快速回复按钮时，元素会为每个按钮生成一个分支，另加 **Not match**。

<span id="branch-when-the-provider-rejects-the-message" />

### 服务商拒绝消息时分支

SMS、WhatsApp、LINE 和 Facebook Messenger 元素可以将消息被服务商拒绝的用户发送到单独的分支。您可以用它尝试其他渠道，而不是等待一个不可能到来的回复。

1. 打开元素设置。
2. 开启 **Branch when the provider rejects the message**。
3. 保存元素。
4. 在画布上，将 **Rejected by provider** 分支连接到下一个元素。

<img src="/content-rich-messages-13.webp" alt="Journey 画布，显示 WhatsApp 元素、Rejected by provider 分支和 Wait for refusal: 1 hour 标签" width="830"/>

#### 哪些用户会进入此分支

在以下情况下，用户会进入 **Rejected by provider**：

* Pushwoosh 发送消息时服务商拒绝了该消息，例如在 24 小时窗口之外通过 Messenger 发送，或通过 WhatsApp 发送给过去 24 小时内未给您发过消息的用户
* 之后来自 Twilio、Meta 或 SMS 服务商的投递报告将消息标记为失败或未投递。

Pushwoosh 会重试的错误不会进入此分支。

#### 元素等待多长时间

元素等待的时长取决于它的其他分支：

* **有快速回复按钮：** 被拒绝的消息会立即进入 **Rejected by provider**。其他用户等待点击。
* **有投递拆分：** 元素等待拆分中设置的时间。
* **没有按钮也没有投递拆分：** 元素最多将用户保留 1 小时，画布上显示 **Wait for refusal: 1 hour**。如果服务商在此时间内没有拒绝消息，用户将通过 **Sent** 继续。

如果没有连接 **Rejected by provider** 箭头，消息被拒绝的用户会沿元素的其他分支继续。关闭该设置会移除该分支及其箭头。

## 将富消息作为一次性 WhatsApp 消息发送

在一次性 WhatsApp 消息中，在 **Content** 步骤的模板下拉菜单中选择富消息。请参阅[发送富消息](/zh/product/messaging-channels/whatsapp-messages/send-whatsapp-messages/send-one-time-whatsapp/#send-a-rich-message)。

已审批的富消息可以发送给任何受众。没有已审批的模板时，它只会发送给 24 小时窗口处于开启状态的联系人，并且受众和发送时间是固定的。

## 管理富消息

富消息列在 **富消息 (Rich messages)** 选项卡中，每个渠道都有一个徽章。

<img src="/content-rich-messages-1.webp" alt="Rich messages 选项卡，显示三条消息，每条都有 RCS、WhatsApp、Messenger 和 LINE 的兼容性徽章" width="1132"/>

打开消息的 **⋮** 菜单，可以：

* **编辑**消息。
* **复制**消息。副本会在每个没有 **有错误 (Has errors)** 的渠道中获得自己的副本。
* **删除**消息。Pushwoosh 也会删除其副本。当某个 Journey 正在发送其中一个副本时，您无法删除该富消息：请先将其从 Journey 中移除。