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

# Компоненты и форматы шаблонов

> Настройка компонентов шаблона, переменных, кнопок и специализированных форматов.

Создайте свой шаблон с основным текстом (body), опциональным заголовком (header) и нижним колонтитулом (footer), а также кнопками. Добавьте переменные для содержимого, которое меняется для разных получателей. К форматам аутентификации и специализированным форматам применяются дополнительные ограничения.

## Анатомия стандартного шаблона

| Компонент | Что содержит | Основные ограничения и проверки |
| - | - | - |
| Заголовок (Header) | Опциональный короткий текст или поддерживаемый заголовок с медиафайлом/геолокацией. | Текстовые заголовки: до 60 символов и не более одной переменной. Один заголовок использует только один формат, а не несколько типов медиа одновременно. |
| Основной текст (Body) | Главное сообщение. | Обязательно; до 1024 символов для текста стандартного шаблона. Оставляйте достаточно фиксированного текста, чтобы была понятна цель сообщения. |
| Нижний колонтитул (Footer) | Опциональный поясняющий текст. | До 60 символов для стандартного колонтитула. Не используйте его как еще один блок текста со множеством переменных. |
| Кнопки | Опциональные ответы или действия. | До 10 кнопок всего для поддерживаемых стандартных комбинаций, с отдельными лимитами для каждого типа кнопок. |
| Примеры | Образцы значений переменных и медиафайлов для проверки. | Предоставьте примеры, требуемые для выбранных компонентов. Примеры не являются данными для отправки конкретным получателям. |

Эти лимиты не гарантируют, что каждый специализированный шаблон принимает любую комбинацию. Шаблоны аутентификации используют предустановленный текст; карточки-карусели, предложения с ограниченным сроком действия, коммерческие шаблоны и компоненты звонков имеют собственную структуру.

Удобная стандартная структура:

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
HEADER: Appointment update
BODY: Your booking {{1}} is confirmed for {{2}} at {{3}}.
FOOTER: Reply if you need help.
BUTTON: View booking
```

Пример иллюстрирует только структуру; он не является предварительно одобренным Meta.

<Frame caption="Meta labels the standard components. This promotional example illustrates structure, not a utility-category decision.">
  <div style={{ position: "relative", width: "100%", maxWidth: "720px", margin: "0 auto" }}>
    <img src="https://mintcdn.com/lchnan/Q9LYCM-XEE-Z8muf/product-assets/whatsapp-platform-2026-09-22/meta-marketing-template-components.png?fit=max&auto=format&n=Q9LYCM-XEE-Z8muf&q=85&s=26b207935b6d6d53953bd583297490da" alt="Анатомия шаблона Meta с подписанными заголовком, основным текстом, колонтитулом, ссылкой, номером телефона и кнопками быстрого ответа." style={{ width: "100%", height: "auto", margin: 0 }} width="2321" height="1416" data-path="product-assets/whatsapp-platform-2026-09-22/meta-marketing-template-components.png" />
  </div>
</Frame>

Источник: [официальный пример Meta](https://developers.facebook.com/documentation/business-messaging/whatsapp/templates/marketing-templates/custom-marketing-templates/).

## Выбор правильного действия для кнопки

| Кнопка | Действие клиента | Стандартное ограничение или зависимость |
| - | - | - |
| Быстрый ответ (Quick reply) | Отправляет заранее определенный ответ компании. | До 10; держите быстрые ответы сгруппированными вместе при сочетании с другими типами кнопок. |
| Ссылка на веб-сайт (URL) | Открывает веб-страницу. | До 2 кнопок со ссылками. Текст кнопки: 25 символов. URL: 2000 символов, максимум с одной переменной в конце. |
| Номер телефона | Начинает телефонный звонок по указанному номеру. | До 1 кнопки. Текст кнопки: 25 символов; номер телефона: 20 символов. Это не голосовой вызов WhatsApp. |
| Скопировать промокод | Копирует код купона в буфер обмена. | Одна кнопка копирования кода; предназначена для соответствующего маркетингового формата. Текст кнопки предустановлен. |
| Одноразовый пароль (OTP) | Копирует или автоматически подставляет код подтверждения. | Только для шаблонов аутентификации; используйте конфигурацию кнопок, предназначенную для аутентификации. |
| Каталог или список товаров | Открывает соответствующий каталог или выбранные товары. | Требует правильного каталога и действительных идентификаторов товаров. |
| Flow | Открывает структурированную форму внутри WhatsApp. | Требует корректного Flow, действия входа и рабочей опубликованной версии для продакшена. |
| Вызов WhatsApp | Запускает поддерживаемый сценарий звонка в WhatsApp. | Требует доступности функции звонков (Calling eligibility). Не заменяет кнопку с номером телефона или запрос разрешения на исходящие вызовы. |

Кнопка быстрого ответа с текстом **Stop promotions** не является автоматической реализацией отписки. Ваш рабочий процесс должен распознавать ответ и обновлять предпочтения клиента. См. раздел [Отказ клиентов от рассылки](/ru/documentation/whatsapp-business-platform/consent-policies-and-account-health/customer-opt-out).

### Порядок кнопок влияет на удобство использования и совместимость

Располагайте наиболее важные действия первыми. Если кнопок больше трех, WhatsApp отображает первые две и элемент управления **See all options** для остальных.

<Frame caption="Meta's example of a template with additional actions behind See all options. Client appearance may vary.">
  <img src="https://mintcdn.com/lchnan/3gBf_HfRdWRqXdyx/images/whatsapp-platform/meta-template-buttons.png?fit=max&auto=format&n=3gBf_HfRdWRqXdyx&q=85&s=e1f6e7987450e79c5afe3fb1ace30b6f" alt="Шаблон WhatsApp с двумя видимыми кнопками действий и пунктом See all options рядом с развернутым списком, содержащим действия URL, звонка и быстрых ответов." width="800" height="660" data-path="images/whatsapp-platform/meta-template-buttons.png" />
</Frame>

Источник: [компоненты шаблонов Meta](https://developers.facebook.com/documentation/business-messaging/whatsapp/templates/components).

Разделяйте быстрые ответы и другие типы кнопок на отдельные группы:

* Допустимая группировка: URL → Телефон → Быстрый ответ → Быстрый ответ.
* Недопустимая группировка: Быстрый ответ → URL → Быстрый ответ.

В настоящее время в документации Meta описано ограничение десктопной версии для шаблонов с четырьмя и более кнопками либо при смешивании быстрого ответа с другим типом кнопок: получателям предлагается просмотреть такие сообщения на телефоне. Протестируйте это поведение, если вашей аудитории важен доступ с компьютера.

## Переменные: проектирование, проверка и отправка — это отдельные этапы

Для этого текста сообщения:

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
Your booking {{1}} is confirmed for {{2}} at {{3}}.
```

Используйте сопоставление (маппинг), которое ваша команда и интеграция смогут легко поддерживать:

| Позиция | Значение | Пример для проверки | Фактическая отправка |
| - | - | - | - |
| Body 1 | Номер бронирования | BOOKING-123 | Номер бронирования получателя. |
| Body 2 | Дата | 12 октября 2026 | Подтвержденная дата записи. |
| Body 3 | Время и часовой пояс | 10:30 AM UTC | Подтвержденное время с достаточным локальным контекстом. |

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

У **заголовка, тела сообщения и каждой динамической кнопки отдельные позиции параметров**. Переменная `{{1}}` в теле и кнопка-URL `{{1}}` не обязаны содержать одно и то же значение. Кнопка `index` указывает позицию кнопки в шаблоне, начиная с `0`; это не номер переменной тела.

### Пример: значения в теле и динамический URL

Предположим, проверенный шаблон содержит:

* Тело: `Your booking {{1}} is confirmed for {{2}}.`
* Кнопка с индексом `0`: `https://example.com/bookings/{{1}}`

Объект template сообщения YCloud может сопоставлять их следующим образом:

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "name": "booking_confirmation",
  "language": { "code": "en_US" },
  "components": [
    {
      "type": "body",
      "parameters": [
        { "type": "text", "text": "BOOKING-123" },
        { "type": "text", "text": "12 October 2026, 10:30 AM UTC" }
      ]
    },
    {
      "type": "button",
      "sub_type": "url",
      "index": 0,
      "parameters": [
        { "type": "text", "text": "BOOKING-123" }
      ]
    }
  ]
}
```

Это **фрагмент объекта template**, а не полный запрос на отправку. Предполагается, что указанный шаблон и точный языковой вариант одобрены в WABA отправителя. Параметр кнопки передает суффикс, а не полный URL.

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

## Медиазаголовки: примеры файлов не являются реальными вложениями

Для заголовка с изображением, видео или документом:

1. Выберите нужный формат заголовка при создании шаблона.
2. Предоставьте репрезентативный образец для проверки.
3. В момент отправки передайте фактический медиафайл, используя поддерживаемый YCloud media ID или поле ссылки.
4. Убедитесь, что файл доступен для скачивания, его формат соответствует шаблону и не превышает лимиты на медиафайлы.
5. Протестируйте доставленное сообщение, включая читаемость файла на телефоне.

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

GIF-заголовки присутствуют в текущих спецификациях, однако Meta ограничивает эту возможность соответствующим маршрутом **Marketing Messages API for WhatsApp** . Не предполагайте, что она доступна в любом стандартном рабочем процессе с шаблонами только потому, что поле существует.

## Выбор специализированного формата

| Ваша задача... | Выберите | Подготовьте до создания |
| - | - | - |
| Показать несколько визуальных вариантов с отдельными действиями | [Медиакарусель](/ru/documentation/whatsapp-business-platform/messaging/message-templates/carousel-templates) | Единую структуру медиа и кнопок карточек; значения для отправки каждой карточки. |
| Позволить клиентам скопировать промокод | [Шаблон с кодом купона](/ru/documentation/whatsapp-business-platform/messaging/message-templates/coupon-code-templates) | Действительный промокод и четкие условия акции. |
| Показать акцию с ограниченным сроком действия | [Ограниченное по времени предложение](/ru/documentation/whatsapp-business-platform/messaging/message-templates/limited-time-offer-templates) | Значение срока действия и соответствующие правила оформления заказа. |
| Открыть весь каталог товаров | [Шаблон каталога](/ru/documentation/whatsapp-business-platform/messaging/message-templates/catalog-templates) | Привязанный каталог и действительное изображение товара, если указано. |
| Показать подборку товаров из каталога | [Многотоварный шаблон](/ru/documentation/whatsapp-business-platform/messaging/message-templates/multi-product-templates) | Идентификаторы товаров, разделы и актуальное наличие. |
| Собрать структурированные ответы | [Flow](/ru/documentation/whatsapp-business-platform/more-whatsapp-features/whatsapp-flows/index) | Flow ID, экраны, обработку данных и логику завершения сценария. |
| Подтвердить вход или восстановление доступа | [Шаблон аутентификации](/ru/documentation/whatsapp-business-platform/messaging/message-templates/authentication-message-templates/index) | Генерацию кода, валидацию, срок действия и обработку резервных сценариев. |

## Диагностика ошибок компонентов

| Признак проблемы | Что проверить в первую очередь |
| - | - |
| Ошибка количества или формата параметров | Сравните ожидаемые переменные каждого компонента с полезной нагрузкой отправки. Не считайте все переменные одним общим списком. |
| Открывается не та кнопка или возникает сбой | Проверьте индекс кнопки, подтип, суффикс URL и проверенный порядок кнопок. |
| Медиафайл не может быть доставлен | Проверьте фактический медиафайл при отправке, его доступность, MIME-тип, размер и формат заголовка шаблона. |
| Шаблон не найден | Проверьте WABA, имя и точный языковой вариант. |
| Недопустимая комбинация кнопок | Проверьте общее количество, количество по типам и группировку быстрых ответов. |
| Работает только на одном устройстве | Протестируйте на актуальных клиентах Android, iOS и Desktop; проверьте совместимость конкретного формата. |

[Руководство по API шаблонов YCloud](/ru/api-reference/guides/whatsapp-platform/manage-whatsapp-templates) и [контракт OpenAPI](https://newdocs.ycloud.com/openapi/endpoints/ycloud-api-v2.yaml) определяют поля YCloud. Поддержка компонентов со стороны Meta не гарантирует, что каждый редактор YCloud, Inbox, Campaign или маршрут API предоставляет такую же функциональность.

Перейдите к разделам [Создание шаблона](/ru/documentation/channels/whatsapp-accounts-management/template-management/create-template/index) и [Проверка и жизненный цикл шаблона](/ru/documentation/whatsapp-business-platform/messaging/message-templates/template-review-and-lifecycle).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.