Как работает Direct Send
Direct Send использует шаблоны в фоновом режиме. Вы можете отправить готовый текст или интерактивный контент. Вы также можете указать существующий шаблон Utility и настроить YCloud на конвертацию его поддерживаемых компонентов в сообщение Direct Send.Поддерживаемые возможности и ограничения
Требования и область применения
Подключите свой WABA и рабочий номер телефона к YCloud. В разделе Meta WhatsApp Manager → Шаблоны сообщений проверьте, доступна ли функция Direct Send для вашей компании. Если доступ для вашего WABA отсутствует, используйте одобренный шаблон Utility или свяжитесь с YCloud для проверки соответствия требованиям. Служебный Direct Send позволяет инициировать ожидаемое уведомление за пределами 24-часового окна обслуживания клиентов. Получите согласие клиента и убедитесь, что контент связан с его запросом, транзакцией, учетной записью или важной необходимой информацией. Рекламные акции и коды подтверждения не входят в рамки Utility.Длина сообщений и кнопки
interactive. Заголовок с изображением доступен только при конвертации поддерживаемого шаблона и при условии, что Meta включила эту возможность для вашего WABA.
Срок жизни доставки (TTL)
ttlSeconds определяет, как долго сообщение может оставаться доступным для доставки. Если доставить его в течение этого периода не удается, оно отклоняется. Уже доставленное сообщение не удаляется после истечения срока TTL.
ttlSeconds: 1800; не оставляйте значение по умолчанию.
Поддерживаемые типы сообщений
Следующие форматы охватывают текстовые уведомления, ссылки и ответы клиентов через YCloud.Обработка ответов по кнопкам быстрого ответа
Хотя вы отправляете запросinteractive, Direct Send доставляет контент как шаблон. Поэтому нажатие клиентом кнопки быстрого ответа использует формат быстрого ответа шаблона: type: button, с button.payload и button.text.
Соответствующие поля в событии входящего сообщения YCloud:
button.payload для идентификации действия и context.id для сопоставления ответа с wamid исходного сообщения. Не считывайте этот ответ из interactive.button_reply, который является стандартным форматом кнопок свободного ответа.
Отправка через YCloud
Подготовьте серверный API-ключ, а также номера отправителя и получателя в формате E.164. Идентификатор WABA ID требуется только в том случае, если вы решите отправлять образцы сообщений.1. Выберите режим отправки
sendDirectly отражает тайминг отправки. Чтобы использовать Direct Send, у вашего WABA должен быть доступ, а запрос должен содержать поля Direct Send, указанные ниже.
2. Сформируйте запрос
- Текст
- Кнопка URL
- Кнопки быстрого ответа
3. Отслеживайте доставку
Сохраняйте возвращенныйid сообщения, ваш externalId и wamid, когда он доступен. Получайте обновления через whatsapp.message.updated или запрашивайте GET /v2/whatsapp/messages/{id}.
После accepted результатом отправки будет sent или failed. Успешные сообщения могут переходить в статус delivered и read. Принятый запрос не является подтверждением доставки.
При ошибках синхронной отправки проверьте error.whatsappApiError, если оно присутствует. Для сообщений из очереди проверяйте последующие обновления статуса. Если время ожидания запроса истекло, выполните сверку исходного сообщения перед повторной попыткой.
Конвертация существующего шаблона Utility
Используйте существующий шаблон Utility в вашем WABA. Укажитеtype: "template" и
useDirectSend: true. Передайте имя шаблона, язык и каждый обязательный
параметр. YCloud подставляет переменные и преобразует поддерживаемые компоненты
в текст или интерактивный контент с помощью category: "utility". Шаблон должен
соответствовать приведенным ниже ограничениям конвертации. YCloud не требует статуса APPROVED для
этой конвертации.
Если у шаблона есть заголовок с изображением, убедитесь, что Meta активировала Direct Send с заголовками-изображениями для вашего WABA, прежде чем использовать его. Для этого требуется отдельный доступ от Meta.
В этом примере используйте существующий шаблон категории utility с именем order_update, с
текстом тела Your order {{1}} has been updated. и без заголовка, нижнего колонтитула или кнопок:
type становится
text, а переменная шаблона заменяется переданным ID заказа:
accepted не подтверждает доставку. Сохраняйте id сообщения и
отслеживайте события whatsapp.message.updated. Ознакомьтесь с ограничениями конвертации ниже,
прежде чем повторно использовать шаблон с заголовками или кнопками.
Если YCloud возвращает WHATSAPP_DIRECT_SEND_UNSUPPORTED_COMPONENT, проверьте заголовок шаблона, кнопки и неразрешенные переменные на соответствие ограничениям ниже. Если WABA не может использовать Direct Send, проверьте ее соответствие требованиям перед повторной попыткой или отправьте одобренный Utility template через обычный рабочий процесс шаблонов.
Установка времени жизни сообщения
Для конвертации шаблона значениеttlSeconds из запроса имеет приоритет перед TTL шаблона. Если вы опустите его, YCloud наследует положительный TTL шаблона вплоть до 43200 секунд. TTL шаблона менее 30 секунд не проходит валидацию, поэтому переопределите его допустимым значением в запросе. YCloud не наследует значения TTL шаблона более 43200. Если ни одно из значений не задано, Meta использует свой TTL по умолчанию.
Именование Utility-шаблона Direct Send
template.name идентифицирует существующий шаблон в запросе на конвертацию выше. templateName служит для другой цели: задайте его, если хотите, чтобы Meta повторно использовала понятное имя для Utility-шаблона Direct Send. Поле необязательно и само по себе не включает Direct Send. Вы также должны указать useDirectSend: true или category: "utility".
400 с target templateName и сообщением A template with the same name already exists. Выберите другое имя перед повторной попыткой.
templateName не поддерживается для Authentication Direct Send. Для Utility-сообщения Direct Send в очереди YCloud возвращает ошибку валидации без возврата ID сообщения, в противном случае передает имя в Meta, не сохраняя его в записи сообщения. YCloud игнорирует это поле для сообщений, не использующих Direct Send.
Ограничения на конвертацию шаблонов и языки
Utility Direct Send поддерживает текст, кнопки-ссылки CTA URL и кнопки быстрого ответа. Эти ограничения также действуют, когда YCloud конвертирует сервисный шаблон (utility template):400 с кодом WHATSAPP_DIRECT_SEND_UNSUPPORTED_COMPONENT.
Поддержка языков
Direct Send поддерживает языки шаблонов WhatsApp, за исключением:Просмотр шаблонов, созданных с помощью Direct Send в YCloud
- Перейдите в WhatsApp Manager → Templates в консоли YCloud.
- Выберите WABA, которая использовалась для отправки сообщения.
- Установите фильтр Creator → Auto generated. Используйте Category → Utility , чтобы отфильтровать список по сервисным шаблонам (Utility).
- Проверьте имя шаблона, категорию, язык, статус и время последнего обновления. Нажмите на его имя или Insights , чтобы открыть предпросмотр и аналитику эффективности.

Set Creator to Auto generated. This test WABA has no matching generated templates.
auto_generated. Используйте фильтр Auto generated для их поиска вместо того, чтобы полагаться только на названия.
На странице аналитики отображаются предпросмотр сообщения, а также доступная статистика доставки, ошибок, прочтений и взаимодействий за выбранный период. Анализируйте статус шаблона вместе с его содержимым при проверке предупреждения или приостановленного шаблона.
Сгенерированные шаблоны нельзя редактировать или удалять вручную. Чтобы изменить уведомление, обновите содержимое в запросе на отправку; затем Meta сопоставит или сгенерирует шаблон под это содержимое.
Правила в отношении контента и целостности
Делайте служебный контент (Utility) конкретным и нерекламным
Служебные сообщения (Utility) должны следовать за ожидаемым действием клиента или предоставлять необходимую важную информацию. Четко указывайте соответствующий заказ, запись на прием, аккаунт или транзакцию.category на utility не меняет смысла сообщения. Meta продолжает оценивать сгенерированные шаблоны и после отправки. Существенно отличающийся сценарий использования можно проверить с помощью образца сообщения перед отправкой.
Проверка нового сценария использования с помощью образцов сообщений (необязательно)
POST /v2/whatsapp/messages/{wabaId}/messageSamples отправляет один пример в Meta и возвращает категорию, определенную Meta. Сообщение клиенту при этом не отправляется. Эта проверка необязательна; ее не требуется вызывать для каждого сообщения или перед использованием Direct Send. Для нового сценария Utility рекомендуется проверить три-четыре репрезентативных образца, по одному на запрос.
Замените WABA_ID на идентификатор вашего WhatsApp Business Account и задайте YCLOUD_API_KEY в вашем окружении. В образце используйте вымышленные данные клиента:
category перед использованием содержимого в запросе Direct Send категории Utility. Если Meta определяет MARKETING или AUTHENTICATION, скорректируйте текст или используйте соответствующий сценарий обмена сообщениями. Для проверки кнопок передайте поля type и interactive из приведенного выше примера отправки; поля получателя и отправки указывать не нужно.
Как отличить приостановку шаблона от ограничения аккаунта
Шаблон может быть приостановлен из-за низкого качества. В таком случае отправка сообщений, которые совпадают с ним или очень похожи, завершается ошибкой Meta132015. Найдите затронутый шаблон в YCloud, проверьте его содержимое и статус и устраните причину, прежде чем возобновлять отправку этого уведомления.
Повторное некорректное использование категорий может привести к ограничению Direct Send для всего WABA:
Получение уведомлений YCloud
whatsapp.template.correct_category_detection через вашу конечную точку Webhook, если хотите получать уведомления об определении категорий. Это не ответ на messageSamples, и оно отправляется не для каждого сообщения. В объекте whatsappTemplate события сравните previousCategory с category. Например, previousCategory: "UTILITY" и category: "MARKETING" означает, что Meta обнаружила маркетинговый контент в шаблоне Utility Direct Send. Проверьте содержимое перед повторной отправкой аналогичных сообщений. Для отслеживания доставки используйте whatsapp.message.updated отдельно.
Соответствующие поля события об ограничении аккаунта YCloud:
violationType, где указана причина, и restrictions[].expiration, где указан срок окончания (если предоставлен).
Запрос на пересмотр решения по категории
Если вы считаете, что контент был помечен ошибочно, откройте Главная страница Meta Business Support → Аккаунт WhatsApp → Обновления шаблонов Direct Send → Доступно для проверки. Выберите нужные шаблоны и нажмите Запросить проверку. Отправьте запрос в течение 60 дней с момента получения уведомления. Каждый помеченный шаблон можно отправить на проверку только один раз. Отслеживайте результат: In review, Reversed или Unchanged. Если возможность запросить проверку недоступна, обратитесь в YCloud, указав WABA ID, имя или ID шаблона, язык и сведения об уведомлении.Часто задаваемые вопросы о Direct Send
Требуется ли имя шаблона перед отправкой?
Требуется ли имя шаблона перед отправкой?
template.name и установите useDirectSend: true. Необязательное поле templateName задает имя для шаблона Utility Direct Send; оно не выбирает существующий шаблон.Почему Direct Send всё равно генерирует шаблоны?
Почему Direct Send всё равно генерирует шаблоны?
Можно ли отправлять сообщения за пределами 24-часового окна клиентской поддержки?
Можно ли отправлять сообщения за пределами 24-часового окна клиентской поддержки?
Почему сообщение может быть успешно отправлено до того, как появится сгенерированный шаблон?
Почему сообщение может быть успешно отправлено до того, как появится сгенерированный шаблон?
Как удаляются неиспользуемые сгенерированные шаблоны?
Как удаляются неиспользуемые сгенерированные шаблоны?
Гарантирует ли установка категории utility, что Meta примет её?
Гарантирует ли установка категории utility, что Meta примет её?
Как тарифицируется Direct Send?
Как тарифицируется Direct Send?

