Как работает Direct Send
В основе Direct Send лежат шаблоны. Вместо создания шаблона перед отправкой вы передаете готовый текст или поддерживаемый интерактивный контент. Meta сопоставляет содержимое вашего сообщения с существующим шаблоном. Если совпадений нет, Meta удаляет персональные данные, определяет язык и создает новый шаблон в фоновом режиме для сопоставления будущих сообщений. Например, сообщения «Ваш заказ A123456 отправлен» и «Ваш заказ B789012 отправлен» имеют одинаковую структуру. В последующих уведомлениях можно повторно использовать подходящий сгенерированный шаблон. Сгенерированные шаблоны сохраняют информацию о категории, качестве и эффективности. Это позволяет определять, какой контент работает хорошо, а какой вызывает проблемы с доставкой, даже если вы не создавали шаблон самостоятельно.Поддерживаемые возможности и ограничения
Требования и область применения отправки
Бизнес-портфолио с лимитом на отправку сообщений от 100 000 или без ограничений, как правило, подходят для Utility Direct Send. Подключите свой WABA и рабочий номер телефона к YCloud. В разделе Meta WhatsApp Manager → Шаблоны сообщений проверьте, доступна ли вашей компании функция Direct Send. Если доступ для вашего WABA отсутствует, используйте одобренный шаблон категории Utility или обратитесь в YCloud для проверки соответствия требованиям. Utility Direct Send позволяет инициировать ожидаемое уведомление за пределами 24-часового окна поддержки клиентов. Получите согласие клиента и следите за тем, чтобы контент был напрямую связан с его запросом, транзакцией, аккаунтом или необходимой важной информацией. Рекламные акции и коды подтверждения не входят в этот сценарий Utility.Длина сообщения и кнопки
В приведенных ниже примерах отправки используются текстовые заголовки. В текстовых сообщениях предпросмотр ссылок не отображается. Лимиты учетной записи и параметры пропускной способности продолжают действовать.
Используйте текстовые заголовки для настраиваемых запросов
interactive Direct Send.
Время жизни доставки (TTL)
ttlSeconds определяет, в течение какого времени сообщение может быть доставлено. Если оно не может быть доставлено за этот период, оно отменяется. Доставленное сообщение не удаляется после истечения срока TTL.
Значение по умолчанию отличается от допустимого диапазона настройки. Для обновления статуса доставки, актуального только в течение 30 минут, задайте
ttlSeconds: 1800; не оставляйте значение по умолчанию.
Поддержка языков
Direct Send поддерживает языки шаблонов WhatsApp, за исключением следующих:
Используйте поддерживаемый язык для рабочих процессов Direct Send.
Поддерживаемые типы сообщений
Следующие форматы охватывают текстовые уведомления, ссылки и ответы клиентов через 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 перед отправкой.
- Текст
- Кнопка-ссылка (URL)
- Кнопки ответа
3. Отслеживайте доставку
Сохраняйте возвращенныйid сообщения, ваш externalId и wamid, когда он доступен. Получайте обновления через whatsapp.message.updated или запрашивайте GET /v2/whatsapp/messages/{id}.
После accepted результатом отправки будет sent или failed. Успешные сообщения могут переходить в статусы delivered и read. Принятый запрос не является подтверждением доставки.
При ошибках синхронной отправки проверьте error.whatsappApiError, если он присутствует. Для сообщений в очереди отслеживайте последующие обновления статуса. Если время ожидания запроса истекло, выполните сверку исходного сообщения перед повторной попыткой.
Присвоение имени шаблону Utility Direct Send
Задайте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 возвращает ошибку валидации без возврата идентификатора сообщения, а в остальных случаях передает имя в Meta, не сохраняя его в записи сообщения. YCloud игнорирует это поле для сообщений, не использующих Direct Send.
Просмотр шаблонов, созданных с помощью 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 на ваш 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, чтобы узнать срок действия, если он указан.
Сведения о типах нарушений, специфичных для Direct Send, а также о полезных нагрузках предупреждений, ограничений и восстановления см. в документации Meta Webhook for account restriction.
Запрос пересмотра решения по категории
Если вы считаете, что контент был помечен ошибочно, перейдите в Meta Business Support Home → WhatsApp account → Direct Send template updates → Available for review. Выберите соответствующие шаблоны и нажмите Request review. Отправьте запрос в течение 60 дней с момента получения уведомления. Каждый помеченный шаблон можно отправить на проверку один раз. Отслеживайте статус: In review, Reversed или Unchanged. Если возможность проверки недоступна, свяжитесь с YCloud, указав WABA ID, имя или ID шаблона, язык и детали уведомления.Расширение YCloud: повторное использование существующих шаблонов Utility
YCloud добавляет функцию конвертации шаблонов поверх Meta Direct Send. Используйте это расширение, если ваша интеграция уже отправляет имена и параметры шаблонов. YCloud подставляет переменные и преобразует поддерживаемые компоненты в готовый контент сообщения, а затем передает этот контент в Meta Direct Send для сопоставления или генерации. Эта конвертация выполняется на стороне YCloud; она не является этапом процесса сопоставления и генерации Direct Send со стороны Meta.template.name выбирает существующий шаблон для конвертации. Описанное выше необязательное поле templateName задает имя шаблона Direct Send и не выбирает шаблон, используемый для конвертации.
Конвертация существующего шаблона Utility
Используйте существующий шаблон Utility в вашем WABA. Задайтеtype: "template" и useDirectSend: true. Укажите имя шаблона, язык и каждый обязательный параметр. YCloud подставляет переменные и преобразует поддерживаемые компоненты в текстовый или интерактивный контент с помощью category: "utility". Шаблон должен соответствовать приведенным ниже ограничениям конвертации. Для этой конвертации YCloud не требует статуса APPROVED.
Если шаблон содержит заголовок с изображением, перед его использованием убедитесь, что Meta активировала для вашего WABA поддержку Direct Send с заголовками-изображениями. Для этого требуется отдельный доступ от Meta.
В качестве примера используйте существующий сервисный шаблон с именем order_update, текстом сообщения Your order {{1}} has been updated. и без заголовка, нижнего колонтитула или кнопок:
type становится text, а переменная шаблона заменяется переданным идентификатором заказа:
accepted не подтверждает доставку. Сохраните id сообщения и отслеживайте события whatsapp.message.updated. Ознакомьтесь с ограничениями конвертации ниже перед повторным использованием шаблона с заголовками или кнопками.
Если YCloud возвращает WHATSAPP_DIRECT_SEND_UNSUPPORTED_COMPONENT, проверьте заголовок шаблона, кнопки и неразрешенные переменные на соответствие ограничениям ниже. Если для WABA недоступно использование Direct Send, проверьте соответствие требованиям перед повторной попыткой или отправьте одобренный шаблон Utility через стандартный рабочий процесс отправки шаблонов.
Настройка времени жизни сообщения конвертации
При конвертации шаблонов значениеttlSeconds в запросе имеет приоритет над TTL шаблона. Если вы опустите его, YCloud унаследует положительное значение TTL шаблона до 43200 секунд. TTL шаблона менее 30 секунд не пройдет валидацию, поэтому переопределите его допустимым значением в запросе. YCloud не наследует значения TTL шаблона выше 43200. Если ни одно из значений не задано, Meta применяет свой стандартный TTL.
Ограничения конвертации шаблонов
Следующие ограничения применяются к конвертации существующего шаблона Utility в контент Direct Send силами YCloud:
Не комбинируйте кнопки CTA URL и кнопки быстрого ответа. Другие типы заголовков и кнопок не поддерживают конвертацию. При наличии неподдерживаемых компонентов или неразрешенных переменных шаблона возвращается HTTP
400 с кодом WHATSAPP_DIRECT_SEND_UNSUPPORTED_COMPONENT.
Часто задаваемые вопросы по Direct Send
Нужно ли мне имя шаблона перед отправкой?
Нужно ли мне имя шаблона перед отправкой?
Нет для пользовательского контента. Передайте полное сообщение, и Meta сопоставит или сгенерирует шаблон. Чтобы преобразовать существующий шаблон категории Utility, передайте его
template.name и установите useDirectSend: true. Необязательное поле templateName задает имя шаблона Utility Direct Send; оно не выбирает существующий шаблон.Почему Direct Send всё равно генерирует шаблоны?
Почему Direct Send всё равно генерирует шаблоны?
Шаблоны обеспечивают проверку категорий и качества, отчеты о производительности и устранение неполадок. Direct Send устраняет необходимость создавать их вручную, но не отменяет шаблонную обработку сообщения.
Могу ли я отправлять сообщения вне 24-часового окна поддержки клиентов?
Могу ли я отправлять сообщения вне 24-часового окна поддержки клиентов?
Да, для подходящих уведомлений Utility Direct Send. Ваш WABA должен иметь доступ, клиент должен ожидать сообщение, а контент должен соответствовать требованиям категории Utility. Для обычных сервисных сообщений в свободной форме по-прежнему требуется открытое сервисное окно.
Почему сообщение может быть успешно доставлено до того, как появится созданный для него шаблон?
Почему сообщение может быть успешно доставлено до того, как появится созданный для него шаблон?
Генерация и синхронизация шаблонов происходят асинхронно и могут завершиться после отправки сообщения. После завершения выберите правильный WABA и примените фильтр Auto generated .
Как удаляются неиспользуемые сгенерированные шаблоны?
Как удаляются неиспользуемые сгенерированные шаблоны?
Meta удаляет сгенерированные шаблоны, которые ни разу не использовались для отправки, через 24 часа. Ранее использовавшиеся шаблоны могут быть заархивированы после периода неактивности. Удалять их вручную не требуется.
Гарантирует ли установка utility, что Meta подтвердит эту категорию?
Гарантирует ли установка utility, что Meta подтвердит эту категорию?
Нет. Meta оценивает фактический контент. Удалите рекламные формулировки из уведомлений Utility и воспользуйтесь процедурой пересмотра, если подлинное сообщение Utility было помечено неверно.
Как тарифицируется Direct Send?
Как тарифицируется Direct Send?
Для сообщений категории Utility действуют те же правила тарификации, что и для вручную созданных шаблонов Utility. См. раздел WhatsApp pricing.

