# Rich-сообщения

Создайте сообщение с кнопками, медиа, карточками или каруселью один раз и отправляйте его по RCS, WhatsApp, LINE и Facebook Messenger. Pushwoosh проверяет контент на соответствие каждому каналу прямо во время редактирования и превращает его в пресет для каждого канала, так что вам не нужно собирать одно и то же сообщение четыре раза.

<Aside type="note">
Rich-сообщения включаются для каждого аккаунта отдельно. Если вы не видите вкладку **Rich messages**, обратитесь к своему аккаунт-менеджеру Pushwoosh.
</Aside>

## Перед началом

Pushwoosh создает копию сообщения только для каналов, настроенных в проекте. Канал, который не настроен, получает статус **Has errors**, и туда ничего не отправляется.

* **RCS** (Rich Communication Services) показывает сообщения от вашего бренда во встроенном приложении сообщений телефона — с кнопками, карточками или медиа вместо простого текста. Чтобы отправлять RCS, подключите Twilio с учетными данными вашего собственного аккаунта и Messaging Service. Номер Twilio без Messaging Service не может отправлять RCS. См. [RCS-сообщения через Twilio](/ru/product/messaging-channels/sms/rcs-messages/).
* **WhatsApp**: [подключите аккаунт WhatsApp Business](/ru/product/first-steps/start-with-your-project/configure-platforms/whatsapp-configuration/) для проекта.
* **LINE**: [настройте платформу LINE](/ru/product/messaging-channels/line/) для проекта.
* **Facebook Messenger**: [подключите свою страницу Facebook](/ru/product/first-steps/start-with-your-project/configure-platforms/facebook-messenger-configuration/).

## Создание rich-сообщения

1. Перейдите в **Content > Messenger presets**.
2. Откройте вкладку **Rich messages**.
3. Нажмите **Create rich message**.
4. Нажмите **Enter preset name** рядом с **Rich message** вверху и введите название сообщения.

## Добавление языков

Сообщение начинается с языка **Default language**, который отправляется пользователям без подходящего языка. Чтобы добавить переводы:

1. Нажмите **значок плюса (+)** рядом с выпадающим списком языков.
2. Выберите языки, которые хотите добавить.
3. Переключайтесь между языками в выпадающем списке и заполняйте контент для каждого из них.

У каждого языка свой тип контента и свои поля. Статус канала — худший среди всех языков: если в одном языке есть ошибки для канала, ошибки есть у всего сообщения в этом канале.

## Выбор типа контента

Выберите **Type** в блоке **Content 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 category** задает категорию шаблона WhatsApp. См. [Одобрение шаблона WhatsApp](#get-the-whatsapp-template-approved).

## Заполнение сообщения

От **Type** зависит, что идет после блока **Content type**. У большинства типов есть блок **Message** с полем **Body**. **List picker** добавляет блок **List**, **Card** и **Carousel** — блок **Card** или **Carousel cards**, а у **Custom LINE Flex** есть только блок **LINE Flex message**. Найдите свой тип ниже.

Редактор проверяет ограничения каждого канала и присваивает каналу статус **Has errors**, когда контент превышает одно из них. Ограничения перечислены для каждого типа. Для WhatsApp проблемы под значком **WhatsApp** берутся из проверки шаблона и статуса проверки Meta.

### Text

Используйте для простого сообщения без медиа и кнопок. Работает во всех каналах.

<Aside type="caution">
Не используйте в **Body** управляющие теги Liquid, такие как `{% if %}` или `{% for %}`. RCS и WhatsApp отправляют текст как шаблон провайдера, который их не поддерживает. Сообщение с такими тегами получает **Has errors** для RCS и не может быть отправлено как шаблон WhatsApp.
</Aside>

1. В поле **Type** выберите **Text**.
2. Введите текст сообщения в **Body**. Можно вставлять эмодзи и плейсхолдеры персонализации.

Ограничения **Body**: 1 600 символов в RCS, 5 000 в LINE и 2 000 в Messenger.

### 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="Rich-сообщение типа Media с полем Media URL и значком вложения, выпадающим списком Media type и выбранным изображением" width="598"/>

Ограничения **Body**: 1 600 символов в RCS и 2 000 в Messenger.

<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"/>

Ограничения:

* **Кнопки:** 1–4 в RCS, 1–13 в LINE и Messenger.
* **Заголовок кнопки:** 25 символов в RCS, 20 в LINE и Messenger.

<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="Rich-сообщение типа Call to action с двумя кнопками: заполнены поля Type of action, Title и URL или Phone number" width="598"/>

Ограничения:

* **Кнопки:** 1–4 в RCS, 1 или больше в LINE, 1–3 в Messenger.
* **Заголовок кнопки:** 25 символов в RCS, 40 в LINE, 20 в Messenger.
* **Body:** 1 600 символов в RCS и 640 в Messenger. Текст для 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="Rich-сообщение типа List picker с текстом кнопки списка и двумя элементами списка, у каждого есть название и описание" width="598"/>

<Aside type="note">
Список показывает только WhatsApp и только в пределах 24-часового окна, потому что список не может быть шаблоном WhatsApp. RCS, LINE и Messenger вместо него отправляют [резервный текст](#set-the-fallback-text). Используйте list picker, только если резервный текст понятен сам по себе.
</Aside>

### Card и carousel

Используйте карточку для одного блока с медиа, текстом и кнопками. Используйте карусель, чтобы показать от двух до десяти карточек в одном сообщении.

1. В поле **Type** выберите **Card** или **Carousel**.
2. Для карусели введите **Body** в блоке **Message**, затем нажмите **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, задайте **Orientation**, **Height** и **Thumbnail alignment** в разделе **RCS card layout**. Оставьте значения **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:** медиа карточки должно быть изображением.

Редактор также проверяет следующие ограничения:

* **Карточки в карусели:** 2–10 в RCS, LINE и Messenger.
* **Card title:** 200 символов в RCS и 80 в Messenger. В LINE редактор его не проверяет.
* **Card body:** в RCS — 1 600 символов в одиночной карточке и 160 символов на заголовок и текст вместе в карусели. В Messenger — 80 символов. В LINE редактор его не проверяет.
* **Кнопки на карточке:** в RCS — 0–4 на одиночной карточке и 1–2 в карусели. В Messenger — 0–3. В LINE редактор их не проверяет.

### Custom LINE Flex

Используйте **Custom LINE Flex**, если у вас уже есть макет LINE Flex.

1. В поле **Type** выберите **Custom LINE Flex**.
2. Вставьте контейнер Flex в **Flex JSON**. Тип контейнера должен быть `bubble` или `carousel`.

<img src="/content-rich-messages-10.webp" alt="Rich-сообщение типа Custom LINE Flex с контейнером Flex, вставленным в поле Flex JSON" width="598"/>

LINE отправляет его как есть, а RCS и Messenger отправляют резервный текст.

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

## Резервный текст

Резервный текст — это то, что Pushwoosh отправляет туда, где канал не может показать сообщение в том виде, в котором вы его создали. Введите его в поле **Fallback text** внизу формы.

<img src="/content-rich-messages-11.webp" alt="Нижняя часть формы rich-сообщения с заполненным полем Fallback text" width="598"/>

| Где Pushwoosh его использует | Если **Fallback text** пустой |
| :---- | :---- |
| Канал, который не может показать тип контента, например list picker в RCS | Канал получает **Has errors**. |
| SMS на телефон без RCS | Pushwoosh отправляет **Body**. Если оба поля пустые, RCS получает **Has errors**. |
| Текст уведомления LINE и списка чатов для карточек, каруселей, call to action и сообщений Flex | Pushwoosh использует **Body**. Если оба поля пустые, LINE получает **Has errors**. |

Ограничения **Fallback text**: 1 600 символов в RCS, 2 000 в Messenger и 5 000 в LINE (400 для карточек, каруселей, call to action и сообщений Flex).

## Проверка совместимости с каналами

Полоса **Channels** под заголовком показывает по одному значку на канал. Pushwoosh заново проверяет сообщение, когда вы покидаете поле или меняете значение в выпадающем списке.

| Цвет значка | Статус | Что это значит |
| :---- | :---- | :---- |
| Зеленый | Compatible | Канал отправляет сообщение в том виде, в котором оно создано. |
| Оранжевый | Partially compatible | Канал не может показать часть контента и вместо нее отправляет резервный текст. |
| Красный | Has errors | В этот канал ничего не отправляется, пока вы не исправите ошибки. |
| Серый | Not checked | Сообщение еще не проверялось, или проверка не удалась. Отредактируйте поле, чтобы проверить снова. |

Нажмите на значок, чтобы увидеть проблемы этого канала под полосой и предпросмотр сообщения в этом канале справа. Каждая проблема указывает поле и нарушенное правило.

Когда вы выбираете канал, поля, которые он не доставляет, получают пометку рядом с названием в форме, например **(not delivered on RCS)**, а предпросмотр их не показывает.

В этом примере у RCS есть ошибки, потому что RCS не настроен в проекте:

<img src="/content-rich-messages-2.webp" alt="Заголовок редактора rich-сообщений со значками RCS, WhatsApp, Messenger и LINE и проблемой RCS is not set up под ними" width="841"/>

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

## Сохранение rich-сообщения

Нажмите **Save**. Pushwoosh сохраняет сообщение и для каждого канала без **Has errors** создает или обновляет его копию:

* **RCS**: пресет SMS с тем же названием. Pushwoosh создает шаблон RCS в вашем аккаунте Twilio и прикрепляет его к пресету. Телефоны без RCS получают резервный текст в виде SMS.
* **WhatsApp**: пресет WhatsApp с тем же названием, доступный в элементе Journey **WhatsApp** и в разовых сообщениях WhatsApp.
* **LINE**: пресет LINE с тем же названием.
* **Messenger**: пресет Messenger с тем же названием, доступный в элементе Journey **Facebook Messenger**.

Копия для RCS — это пресет SMS, поэтому она появляется на вкладке **SMS**. Копия для LINE появляется на вкладке **LINE**. У обеих есть значок **Rich message**. Копией управляют через ее rich-сообщение:

* **Редактирование копии:** нажмите на нее или на действие **Edit**. Rich-сообщение откроется в редакторе.
* **Удаление копии:** удалите rich-сообщение. Копию нельзя удалить отдельно, и Pushwoosh удаляет все копии вместе с сообщением.

<img src="/content-rich-messages-3.webp" alt="Вкладка LINE в Messenger presets с фильтром по названию и двумя пресетами со значком Rich message" width="1132"/>

<Aside type="caution">
Канал с **Has errors** сохраняет свою последнюю копию без изменений. Если Journey уже отправляет эту копию, он продолжает отправлять старый контент, пока вы не исправите ошибки и не сохраните сообщение снова.
</Aside>

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

## Одобрение шаблона WhatsApp

За пределами 24-часового окна, которое открывает последнее сообщение пользователя, WhatsApp доставляет только шаблоны, одобренные Meta. Пока у rich-сообщения нет одобренного шаблона, Pushwoosh отправляет его в WhatsApp только пользователям, которые писали вам за последние 24 часа, а значок **WhatsApp** остается оранжевым.

1. Рядом с **Type** выберите **WhatsApp category**: **Marketing** или **Utility**. Meta назначает цену и проверяет шаблоны по категории.
2. [Сохраните rich-сообщение](#save-the-rich-message).
3. Нажмите **Save and submit for WhatsApp approval**. Pushwoosh сохраняет сообщение и отправляет в Meta шаблон для каждого языка.

<img src="/content-rich-messages-16.webp" alt="Редактор rich-сообщений с полем WhatsApp category рядом с Type и кнопкой Save and submit for WhatsApp approval" width="841"/>

### Проверка статуса

Строка под полосой **Channels** показывает статус проверки после **WhatsApp template:**. До отправки там указано **not submitted**:

<img src="/content-rich-messages-4.webp" alt="Редактор rich-сообщений с выбранным значком 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 не одобрит новую. Отправляйте сообщение на одобрение повторно после каждого изменения.

## Отправка rich-сообщения в Journey

Выберите копию в элементе ее канала:

* **RCS**: в элементе **SMS** выберите копию SMS в качестве пресета. См. [Ветвление по кнопкам ответа RCS](/ru/product/customer-journey/journey-elements/channels/sms/#branch-on-rcs-reply-buttons).
* **LINE**: выберите копию LINE в качестве пресета. См. [Ветвление по кнопкам ответа](/ru/product/customer-journey/journey-elements/channels/line/#branch-on-reply-buttons).
* **WhatsApp**: выберите rich-сообщение в выпадающем списке **Content**, где у него есть значок **Rich message**. См. [Использование rich-сообщения](/ru/product/customer-journey/journey-elements/channels/whatsapp/#use-a-rich-message).
* **Facebook Messenger**: выберите **Preset**, затем копию для Messenger. См. [Ветвление по кнопкам ответа](/ru/product/customer-journey/journey-elements/channels/facebook-messenger/#branch-on-reply-buttons).

<img src="/content-rich-messages-14.webp" alt="Выпадающий список Content элемента Journey WhatsApp с rich-сообщением, отмеченным значком 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 его отправляет, например Messenger за пределами 24-часового окна или WhatsApp пользователю, который не писал вам за последние 24 часа
* более поздний отчет о доставке от Twilio, Meta или SMS-провайдера помечает сообщение как неотправленное или недоставленное.

Ошибки, после которых Pushwoosh повторяет отправку, в эту ветку не ведут.

#### Сколько ждет элемент

Сколько ждет элемент, зависит от других его веток:

* **С кнопками быстрого ответа:** отклоненное сообщение сразу уходит в **Rejected by provider**. Остальные пользователи ждут нажатия.
* **С разделением по доставке:** элемент ждет время, заданное в разделении.
* **Без кнопок и без разделения по доставке:** элемент удерживает пользователя до 1 часа, а на холсте отображается **Wait for refusal: 1 hour**. Если за это время провайдер не отклонит сообщение, пользователь продолжает путь через **Sent**.

Если стрелка **Rejected by provider** не подключена, пользователь, сообщение которому было отклонено, идет по другим веткам элемента. Если выключить настройку, ветка и ее стрелка удаляются.

## Отправка rich-сообщения как разового сообщения WhatsApp

В разовом сообщении WhatsApp выберите rich-сообщение в выпадающем списке шаблонов на шаге **Content**. См. [Отправка rich-сообщения](/ru/product/messaging-channels/whatsapp-messages/send-whatsapp-messages/send-one-time-whatsapp/#send-a-rich-message).

Одобренное rich-сообщение уходит любой аудитории. Без одобренного шаблона оно уходит только контактам с открытым 24-часовым окном, а аудитория и время отправки фиксированы.

## Управление rich-сообщениями

Rich-сообщения перечислены на вкладке **Rich messages** со значком для каждого канала.

<img src="/content-rich-messages-1.webp" alt="Вкладка Rich messages с тремя сообщениями и значком совместимости для RCS, WhatsApp, Messenger и LINE у каждого" width="1132"/>

Откройте меню **⋮** сообщения, чтобы:

* **Отредактировать** его.
* **Дублировать** его. Дубликат получает собственные копии во всех каналах без **Has errors**.
* **Удалить** его. Pushwoosh удаляет и его копии. Rich-сообщение нельзя удалить, пока Journey отправляет одну из его копий: сначала уберите ее из Journey.