Перейти к основному содержимому

Отправка сообщений по каскаду в канал WhatsApp

Обновлено: 16 октября 2026

Для отправки сообщений в канал WhatsApp по каскаду используется метод api/cascade/schedule.

к сведению

В этой статье описана отправка сообщений по каскаду с использование метода api/cascade/schedule и объекта whatsappContent.

Подробную информацию о методе api/cascade/schedule смотрите в статье:

File IconОтправка сообщений по каскаду
к сведению

WhatsApp Метод поддерживает отправку сообщений в WhatsApp как по номеру телефона, так и по идентификатору пользователя — BSUID.

warning

WhatsApp Если у вас зарегистрировано два одинаковых по контенту шаблона WhatsApp, которые отличаются только параметром Отслеживать переходы по кнопке-ссылке, мы не рекомендуем отправлять сообщения с таким контентом по API. Для отправки используйте личный кабинет edna Pulse.

В обратном случае мы не можем гарантировать корректное отображение статистики переходов по кнопкам-ссылкам.

Вызов метода​

Чтобы отправить сообщение в канал WhatsApp через каскад по методу api/cascade/schedule, отправьте POST-запрос на URL-адрес https://app.edna.ru/api/cascade/schedule.

подсказка

WhatsApp Вы можете протестировать отправку сообщений через API edna Pulse для канала WhatsApp без предварительного подключения канала.

File IconКак проверить отправку сообщений по API для канала WhatsApp

Примеры запросов с нешаблонными сообщениями WhatsApp​

к сведению

В документации WhatsApp этот тип сообщений называются free-form messages.

Сообщение с текстом​

{
"requestId": "test-001",
"cascadeId": 1,
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"startTime": "2021-01-21T08:00:00Z",
"content": {
"whatsappContent": {
"contentType": "TEXT",
"text": "Добрый день! Рады представить наш новый канал для общения с клиентами. Здесь вы можете задавать все интересующие вопросы."
}
}
}

Сообщение с текстом, отправленное по идентификатору BSUID​

{
"requestId": "test-001",
"cascadeId": 1,
"subscriberFilter": {
"address": "RU.1234567890123456789",
"type": "WHATSAPP_BSUID"
},
"startTime": "2026-04-21T08:00:00Z",
"content": {
"whatsappContent": {
"contentType": "TEXT",
"text": "Добрый день! Это сообщение было отправлено по новому идентификатору"
}
}
}

Сообщение с изображением​

{
"requestId": "test-001",
"cascadeId": 1,
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"startTime": "2021-01-21T08:00:00Z",
"content": {
"whatsappContent": {
"contentType": "IMAGE",
"attachment": {
"url": "https://www.gstatic.com/webp/gallery/1.jpg",
"name": "Lorem Ipsum"
}
}
}
}

Сообщение с документом​

{
"requestId": "test-001",
"cascadeId": 1,
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"startTime": "2021-01-21T08:00:00Z",
"content": {
"whatsappContent": {
"contentType": "DOCUMENT",
"attachment": {
"url": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf",
"name": "Lorem Ipsum"
}
}
}
}

Сообщение с видео​

{
"requestId": "test-001",
"cascadeId": 1,
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"startTime": "2021-01-21T08:00:00Z",
"content": {
"whatsappContent": {
"contentType": "VIDEO",
"attachment": {
"url": "https://file-examples.com/wp-content/uploads/2017/04/file_example_MP4_480_1_5MG.mp4",
"name": "Lorem Ipsum"
}
}
}
}

Сообщение с аудио​

{
"requestId": "test-001",
"cascadeId": 1,
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"startTime": "2021-01-21T08:00:00Z",
"content": {
"whatsappContent": {
"contentType": "AUDIO",
"attachment": {
"url": "https://dl.espressif.com/dl/audio/ff-16b-2c-44100hz.aac",
"name": "Lorem Ipsum"
}
}
}
}

Сообщение с геолокацией​

{
"requestId": "test-001",
"cascadeId": 1,
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"startTime": "2021-01-21T08:00:00Z",
"content": {
"whatsappContent": {
"contentType": "LOCATION",
"location": {
"longitude": "163",
"latitude": "48",
"address": "г. Москва, ул. Правды, д. 3",
"name": "ООО Компания"
}
}
}
}

Сообщение с интерактивным меню​

{
"requestId": "test-001",
"cascadeId": 1,
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"startTime": "2021-01-21T08:00:00Z",
"content": {
"whatsappContent": {
"contentType": "LIST_PICKER",
"text": "Здравствуйте! Пожалуйста, выберите цвет худи",
"listPicker": {
"button": "Цвета худи",
"sections": [
{
"title": "Выберите цвет",
"items": [
{
"identifier": "1",
"title": "Red",
"subtitle": "Красное худи Матрица L"
},
{
"identifier": "2",
"title": "Blue",
"subtitle": "Синее худи Матрица L"
}
]
}
]
}
}
}
}

Сообщение с кнопками ответа​

{
"requestId": "test-001",
"cascadeId": 1,
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"startTime": "2021-01-21T08:00:00Z",
"content": {
"whatsappContent": {
"contentType": "TEXT",
"text": "Здравствуйте! Пожалуйста, выберите цвет худи",
"keyboard": {
"rows": [
{
"buttons": [
{
"text": "Красный",
"payload": "1"
},
{
"text": "Синий",
"payload": "2"
},
{
"text": "Зеленый",
"payload": "3"
}
]
}
]
}
}
}
}

Сообщение с одним товаром​

{
"requestId": "test-001",
"cascadeId": 3,
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"content": {
"whatsappContent": {
"contentType": "PRODUCT",
"header": {
"text": "Футер"
},
"text": "Выберите лучшее предложение",
"catalog": {
"id": "377932094379589",
"product": {
"id": "yxtgwrkdy9"
}
}
}
}
}

Сообщение с группой товаров​

{
"requestId": "test-001",
"cascadeId": 8,
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"content": {
"whatsappContent": {
"contentType": "PRODUCT_LIST",
"header": {
"text": "Футер"
},
"text": "Выберите лучшее предложение",
"catalog": {
"id": "377932094379589",
"sections": [
{
"title": "Кроссовки",
"products": [
{
"id": "yxtgwrkdy9"
},
{
"id": "5k0l3pwczd"
}
]
},
{
"title": "Футболки",
"products": [
{
"id": "5k0l3pwczd"
}
]
}
]
}
}
}
}

Сообщение с функцией WhatsApp Flows​

{
"requestId": "test-001",
"cascadeId": 3,
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"content": {
"whatsappContent": {
"contentType": "FLOW",
"caption": "Перейти",
"text": "Купить товары по скидкам",
"flowId": 3779320943795899,
"action": "navigate"
}
}
}

Примеры запросов с шаблонными сообщениями WhatsApp​

к сведению

В документации WhatsApp этот тип сообщений называются template messages.

Сообщение с текстом и подписью​

{
"requestId": "test-001",
"cascadeId": 1,
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"startTime": "2021-01-21T08:00:00Z",
"content": {
"whatsappContent": {
"contentType": "TEXT",
"text": "Здравствуйте! Напишите нам, чтобы познакомиться с возможностями edna Pulse",
"footer": {
"text": "Компания edna"
}
}
}
}

Сообщение с текстом, заголовком-текстом и подписью​

{
"requestId": "test-001",
"cascadeId": 1,
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"startTime": "2021-01-21T08:00:00Z",
"content": {
"whatsappContent": {
"contentType": "TEXT",
"text": "Здравствуйте! Напишите нам, чтобы познакомиться с возможностями edna Pulse",
"header": {
"text": "Ваш чат с компанией edna"
},
"footer": {
"text": "Компания edna"
}
}
}
}

Сообщение с текстом и заголовком-изображением​

{
"requestId": "test-001",
"cascadeId": 1,
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"startTime": "2021-01-21T08:00:00Z",
"content": {
"whatsappContent": {
"contentType": "TEXT",
"text": "Здравствуйте! Напишите нам, чтобы познакомиться с возможностями edna Pulse",
"header": {
"imageUrl": "https://cdn.maikoapp.com/3d4b/4qgko/200.jpg"
}
}
}
}

Сообщение с текстом, заголовком-изображением и подписью​

{
"requestId": "test-001",
"cascadeId": 1,
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"startTime": "2021-01-21T08:00:00Z",
"content": {
"whatsappContent": {
"contentType": "TEXT",
"text": "Текст, заголовок-изображение и подпись",
"header": {
"imageUrl": "https://www.gstatic.com/webp/gallery/1.jpg"
},
"footer": {
"text": "Ждем вас!"
}
}
}
}

Сообщение с текстом и заголовком-файлом​

{
"requestId": "test-001",
"cascadeId": 1,
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"startTime": "2021-01-21T08:00:00Z",
"content": {
"whatsappContent": {
"contentType": "TEXT",
"text": "Здравствуйте! Напишите нам, чтобы познакомиться с возможностями edna Pulse",
"header": {
"documentUrl": "https://cdn.maikoapp.com/3d4b/4qgko/200.jpg"
}
}
}
}

Сообщение с текстом, заголовком-файлом и подписью​

{
"requestId": "test-001",
"cascadeId": 1,
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"startTime": "2021-01-21T08:00:00Z",
"content": {
"whatsappContent": {
"contentType": "TEXT",
"text": "Здравствуйте! Напишите нам, чтобы познакомиться с возможностями edna Pulse",
"header": {
"documentUrl": "https://cdn.maikoapp.com/3d4b/4qgko/200.jpg"
},
"footer": {
"text": "Компания edna"
}
}
}
}

Сообщение с текстом, заголовком-видео и подписью​

{
"requestId": "test-001",
"cascadeId": 1,
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"startTime": "2021-01-21T08:00:00Z",
"content": {
"whatsappContent": {
"contentType": "TEXT",
"text": "Текст, заголовок-видео и подпись",
"header": {
"videoUrl": "https://file-examples.com/wp-content/uploads/2017/04/file_example_MP4_480_1_5MG.mp4"
},
"footer": {
"text": "Ждем вас!"
}
}
}
}

Сообщение с текстом и двумя чат-кнопками​

{
"requestId": "test-001",
"cascadeId": 11,
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"startTime": "2021-01-21T08:00:00Z",
"content": {
"whatsappContent": {
"contentType": "TEXT",
"text": "Здравствуйте! Напишите нам, чтобы познакомиться с возможностями edna Pulse",
"keyboard": {
"rows": {
"buttons": [
{
"text": "Написать",
"type": "QUICK_REPLY",
"payload": "1"
},
{
"text": "Позже",
"type": "QUICK_REPLY",
"payload": "2"
}
]
}
}
}
}
}

Сообщение с текстом и кнопкой-ссылкой​

{
"requestId": "test-001",
"cascadeId": 1,
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"startTime": "2021-01-21T08:00:00Z",
"content": {
"whatsappContent": {
"contentType": "TEXT",
"text": "Здравствуйте! Перейдите в базу знаний edna, чтобы познакомиться с возможностями edna Pulse",
"keyboard": {
"rows": {
"buttons": [
{
"text": "Перейти",
"type": "URL",
"url": "https://docs-pulse.edna.ru/"
}
]
}
}
}
}
}

Сообщение с текстом и кнопкой-звонком​

{
"requestId": "test-001",
"cascadeId": 1,
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"startTime": "2021-01-21T08:00:00Z",
"content": {
"whatsappContent": {
"contentType": "TEXT",
"text": "Здравствуйте! Позвоните нам, чтобы познакомиться с возможностями edna Pulse",
"keyboard": {
"rows": {
"buttons": [
{
"text": "Позвонить",
"type": "PHONE",
"phone": "79000000000"
}
]
}
}
}
}
}

Авторизационное сообщение с кнопкой копирования одноразового пароля​

{
"requestId": "test-001",
"cascadeId": 71,
"subscriberFilter": {
"address": "79000000000",
"type": "PHONE"
},
"content": {
"whatsappContent": {
"contentType": "AUTHENTICATION",
"messageMatcherId": 4601,
"text": "1234"
}
}
}

Параметры whatsappContent​

к сведению

Подробную информацию об общих параметрах метода api/cascade/schedule смотрите в статье:

File IconОтправка сообщений по каскаду: Общие параметры
ПараметрТип данныхХарактерОписание
contentTypestringОбязательныйТип содержимого сообщения. Возможные значения указываются в верхнем регистре:
- TEXT — текстовое сообщение;
- IMAGE — изображение;
- DOCUMENT — документ, вложенный в сообщение;
- VIDEO — сообщение, содержащее видео;
- AUDIO — сообщение, содержащее звук;
- LOCATION — сообщение с координатами, адресом и описанием места. Координаты преобразуются в снимок Google maps;
- LIST_PICKER — кнопки интерактивного меню WhatsApp;
- AUTHENTICATION — сообщение с одноразовым паролем и кнопкой копирования;
- FLOW — сообщение, содержащее WhatsApp Flows. File IconИспользование WhatsApp Flows WhatsApp Flows — Meta for Developers
textstringОбязательный, если contentType = TEXT, AUTHENTICATION или FLOW- Текст сообщения, если contentType = TEXT.
- Текст сообщения, в которое будет вложен Flow, если contentType = FLOW.
- Одноразовый пароль, если contentType = AUTHENTICATION.
warning
Если при отправке сообщения WhatsApp указано поле attachment — поле text игнорируется и отправляется только вложение.
File IconОформление текста
flowIdintegerОбязательный, если contentType = FLOWИдентификатор Flow, который присваивается в WhatsApp Manager в момент создания Flow.
screenstringНеобязательныйИдентификатор экрана, который первым будет отображаться во Flow.
captionstringОбязательный, если contentType = FLOWТекст кнопки, после нажатия на которую запускается Flow.
actionstringНеобязательныйТип взаимодействия Flow.
Возможные значения:
- navigate — Flow не делает запрос к конечной точке. Значение по умолчанию.
- data_exchange — Flow делает запрос к конечной точке. Creating surveys with WhatsApp Flows
attachmentobjectОбязательныйСодержит информацию о вложении.
warning
Если при отправке сообщения WhatsApp указано поле attachment — поле text игнорируется и отправляется только вложение.
File IconТребования к вложениям
attachment.urlstringОбязательный, если объект attachment не пустойСсылка на вложение: изображение, файл, видео или аудио.
attachment.namestringОбязательныйНазвание изображения, файла, видео или аудио. Максимальная длина — 70 символов.
headerobjectОбязательныйЗаголовок сообщения. Можно выбрать один из следующих вариантов заголовка: текст, изображение, документ. Для текстового заголовка нужно указать сам текст заголовка, заголовок может содержать одну переменную. Сам заголовок отображается жирным текстом перед сообщением. Для мультимедиа заголовка можно указать ссылку на документ или изображение.
footerstringОбязательныйПодпись. Отображается под сообщением приглушенным цветом текста.
locationobjectОбязательныйСодержит информацию о геолокации. Отправка сообщения с геолокацией доступна только в рамках 24-часового диалога.
location.longitudestringОбязательныйКоординаты (долгота). Диапазон значений — от -180 до 180.
location.latitudestringОбязательныйКоординаты (широта). Диапазон значений — от -90 до 90.
location.addressstringНеобязательныйАдрес на карте.
location.name stringНеобязательныйНазвание объекта, адрес которого передается.
header.textstringОбязательный для текстового заголовкаТекст заголовка.
header.imageUrl stringОбязательный для заголовка-изображенияСсылка на изображение в заголовке.
header.documentUrlstringОбязательный для заголовка-документаСсылка на документ в заголовке.
header.documentNamestringОбязательный для заголовка-документаНазвание документа в заголовке. Будет отображаться получателю сообщения.
header.videoUrlstringОбязательный для заголовка-видеоСсылка на видео в заголовке.
header.videoNamestringОбязательный для заголовка-видеоНазвание видео в заголовке. Будет отображаться получателю сообщения.
buttonsobjectОбязательныйМассив объектов, в каждом из которых определяется кнопка.
buttons.textstringОбязательныйТекст кнопки. Максимальная длина — 20 символов.
buttons.urlstringОбязательный для кнопки-ссылкиURL-адрес, который открывается при нажатии кнопки.
buttons.urlPostfixstringОбязательный, если в шаблоне есть динамическая ссылка или она ненулеваяДинамическая часть ссылки URL-адреса кнопки.
buttons.phonestringОбязательный для кнопки-звонкаНомер телефона, который набирается при нажатии кнопки.
buttons.payloadstringОбязательный для кнопки с текстомКод или текст кнопки быстрого ответа.
Максимальное количество символов:
- у HSM-сообщений — 128.
- у CHAT-сообщений — 128.
buttons.typestringОбязательныйВид кнопки:
- URL — открывает указанную ссылку;
- PHONE — набирает указанный номер телефона;
- QUICK_REPLY — отправляет готовый ответ;
- OTP — копирует одноразовый пароль.
В одном сообщении может быть либо не более трех кнопок типа QUICK_REPLY, либо не более одной каждой из кнопок URL и PHONE. Кнопки QUICK_REPLY не могут быть в сообщении с другими кнопками.
Возможные варианты:
- QUICK_REPLY
- QUICK_REPLY QUICK_REPLY
- QUICK_REPLY QUICK_REPLY QUICK_REPLY
- URL
- PHONE
- URL PHONE
buttons.otpTypebooleanНеобязательныйТип кнопки в авторизационном сообщение WhatsApp. Только для авторизационного шаблонного сообщения WhatsApp.
Возможные значения:
- COPY_CODE — скопировать код;
- ONE_TAP — кнопка автоматического заполнения.
buttons.autofillTextstringНеобязательныйТекст кнопки автоматического заполнения. Только для кнопок автоматического заполнения в авторизационном шаблонном сообщении WhatsApp. Максимальное количество символов — 25.
buttons.packageNamestringНеобязательныйИмя пакета приложения Android в авторизационном сообщение WhatsApp. Только для кнопок автоматического заполнения в авторизационном шаблонном сообщении WhatsApp.
listPickerobjectОбязательныйОбъект списка элементов. Содержит в себе параметр button и объект sections, который содержит объекты section.
listPicker.buttonstringОбязательный, если объект listPicker не пустойНаименование кнопки для интерактивного списка.
listPicker.sections.titlestringОбязательный, если объект listPicker не пустойЗаголовок секции с элементами, который отображается пользователю.
listPicker.sections.itemsarray of objectsНеобязательныйСписок объектов item.
listPicker.sections.​items.identifierstringОбязательный, если объект listPicker не пустойСквозной для всего сообщения ID элемента, вернется в ответном сообщении пользователя.
listPicker.sections.​items.titlestringОбязательный, если объект listPicker не пустойНазвание элемента. Максимальная длина — 24 символа с учетом пробелов.
listPicker.sections.​items.subtitlestringОбязательный, если объект listPicker не пустойПодзаголовок элемента. Максимальная длина — 24 символа с учетом пробелов.
messageMatcherIdintegerОбязательный, если contentType = AUTHENTICATIONИдентификатор шаблона для данного авторизационного сообщения.
useMarketingMessagesApibooleanНеобязательныйПараметр определяет способ доставки маркетингового сообщения — Marketing Messages API или Cloud API.
Возможные значения:
- true — через Marketing Messages API;
- false — через Cloud API. File IconВключение Marketing Messages API для WhatsApp
messageActivitySharingbooleanНеобязательныйПараметр включает оптимизацию доставки маркетингового сообщения через Marketing Messages API и определяет, может ли Meta* анализировать данные сообщения.
Возможные значения:
- true — оптимизация включена: Meta* может читать сообщение и принимать решение о его доставке получателю.
- false — оптимизация отключена: Meta* не имеет доступа к содержанию сообщения и не участвует в принятии решения о доставке. File IconВключение Marketing Messages API для WhatsApp

Оформление текста​

Опция для оформления текста в сообщениях WhatsApp подключена по умолчанию без возможности отключения.

Выделение текстаПример
_Курсив_Курсив
*Жирный*Жирный
~Зачеркнутый~Зачеркнутый
`Моноширинный`Моноширинный

Правила экранирования кавычек в тексте​

Знаки кавычек “ или ‘ должны быть отделены знаком \ в отправляемом сообщении.

Пример правильного оформления:

"text": "Мария! Ждем вас на Мастер-класс \"Готовим вместе c Tefal\" 25.01.2020 в 13.00. Не пропустите это событие! Наш телефон 8(495)100-00-00"

"text": "Мария! Ждем вас на Мастер-класс «Готовим вместе c Tefal» 25.01.2020 в 13.00. Не пропустите это событие! Наш телефон 8(495)100-00-00"

Пример неправильного оформления:

"text": "Мария! Ждем вас на Мастер-класс "Готовим вместе с Tefal" 25.01.2020 в 13.00. Не пропустите это событие! Наш телефон 8(495)100-00-00"

Требования к вложениям​

Отправляемые вложения должны соответствовать следующим требованиям:

Тип вложенияПоддерживаемый форматДопустимый размер
documentЛюбой корректный MIME-тип.100 МБ
imageimage/jpeg, image/png.5 МБ
audioaudio/aac, audio/mp4, audio/amr, audio/mpeg, audio/ogg.
Кодек=opus (NWB) и ACC.
16 МБ
videovideo/mp4, video/3gpp.
Поддерживается только формат MPEG 4 и 3GPP c кодеком H.264 (MPEG-4 Part 10) и AAC для аудио.
16 МБ

developers.facebook.com

Формат ответа​

{
"requestId": "string"
}

Пример ответа​

{
"requestId": "test-001"
}

Параметры ответа​

ПараметрТип данныхОписание
requestIdstringВнутренний идентификатор исходящего сообщения. Был сгенерирован внешней системой клиента при отправке сообщения.

         


осторожно

* Деятельность компании Meta запрещена на территории Российской Федерации.