Pleep Docs

Отправка шаблонного сообщения

Отправка шаблонного сообщения WhatsApp одному или нескольким получателям через API Pleep

Отправка шаблонного сообщения WhatsApp на один или несколько номеров телефонов. Поддерживаются каналы WABA Coexistence (Meta Cloud API) и устаревший WABA (GupShup).

Эндпоинт

POST https://microservice.pleep.app/api/v1/messages/send-template

Заголовки

ЗаголовокЗначениеОбязательный
X-API-KeyВаш API-ключДа
Content-Typeapplication/jsonДа
POST
Авторизация
Тело запроса
Получатели
request.json
// POST /api/v1/messages/send-template
// X-API-Key: YOUR_API_KEY

{
  "bot_id": "your-bot-id",
  "channel": "waba_coexistence",
  "to": {
    "phone": "+77001234567"
  },
  "template_id": "welcome_template",
  "template_language": "ru"
}
Ответ
// Ответ появится здесь после отправки запроса

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

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

Шаг 1. Создайте шаблон

Перейдите в вашего AI-агента, затем в левом меню выберите Рассылки.

Раздел Рассылки

Если у вас ещё нет шаблона, нажмите Создать рассылку и создайте шаблон. Вы можете использовать переменные {{1}}, {{2}} и т.д. в тексте шаблона — например, для обращения к клиенту по имени. Шаблоны с переменными можно отправлять только через API.

Создание шаблона с переменными

После создания шаблон отправляется на модерацию в Meta. Дождитесь статуса Одобрен — только после этого шаблон можно использовать для отправки.

Подробнее о шаблонах читайте в разделе Рассылки → Шаблоны.

Шаг 2. Скопируйте Template ID

В разделе Рассылки найдите блок Мои шаблоны. Выберите нужный шаблон и нажмите на текст Template ID — он автоматически скопируется в буфер обмена.

Копирование Template ID

Шаг 3. Найдите Bot ID

Перейдите в Интеграции, выберите вашу интеграцию WhatsApp Business и нажмите Управление. На странице интеграции вы увидите поле Bot ID — нажмите на иконку копирования, и Bot ID скопируется автоматически.

Bot ID в настройках интеграции

Шаг 4. Определите канал

Значение поля channel зависит от типа вашей интеграции WhatsApp:

Если в разделе Рассылки вы видите вкладку WhatsApp Business — используйте канал waba_coexistence. Это новая интеграция через Pleep (Meta Cloud API).

WhatsApp Business tab

Тело запроса

ПолеТипОбязательноеОписание
bot_idstringДаUUID бота. Скопируйте из настроек интеграции (шаг 3)
channelstringДаКанал отправки: waba или waba_coexistence (шаг 4)
toobject или arrayДаОдин получатель или массив получателей
template_idstringДаИдентификатор шаблона. Скопируйте из раздела Рассылки (шаг 2)
template_languagestringНетКод языка шаблона. По умолчанию ru

Объект получателя

Каждый получатель в поле to имеет следующую структуру:

ПолеТипОбязательноеОписание
phonestringДаНомер телефона в международном формате (например, +77001234567)
paramsarrayНетЗначения переменных шаблона для этого получателя (например, имя клиента)

Правила использования params

  • params — необязательное поле. Указывайте его только если шаблон содержит переменные ({{1}}, {{2}} и т.д.)
  • Если шаблон не содержит переменных — не передавайте поле params вообще
  • Пустые строки в params запрещены — API вернёт ошибку 422 VALIDATION_ERROR при передаче "params": [""]
  • Пустой массив "params": [] обрабатывается как отсутствие параметров

Примеры

Шаблон с переменными

{
  "bot_id": "your-bot-id",
  "channel": "waba_coexistence",
  "to": {
    "phone": "+77001234567",
    "params": ["Иван", "25.03.2026"]
  },
  "template_id": "welcome_template"
}

Шаблон без переменных

{
  "bot_id": "your-bot-id",
  "channel": "waba_coexistence",
  "to": {
    "phone": "+77001234567"
  },
  "template_id": "simple_greeting"
}

Несколько получателей (массовая отправка)

{
  "bot_id": "your-bot-id",
  "channel": "waba_coexistence",
  "to": [
    { "phone": "+77001234567", "params": ["Иван"] },
    { "phone": "+77009876543", "params": ["Мария"] },
    { "phone": "+77005551234", "params": ["Алексей"] }
  ],
  "template_id": "welcome_template",
  "template_language": "ru"
}

Ошибка: пустые строки в params

Следующий запрос вернёт ошибку 422. Если шаблон не содержит переменных, просто не передавайте поле params:

{
  "to": { "phone": "+77001234567", "params": [""] }
}

Ответы

Один получатель — успех

{
  "ok": true,
  "data": {
    "message_id": "wamid.HBgLNzcwMDEyMzQ1NjcVAgASGBQzRUI..."
  }
}

Массовая отправка — успех

{
  "ok": true,
  "data": {
    "total": 3,
    "sent": 2,
    "failed": 1,
    "results": [
      { "phone": "+77001234567", "ok": true, "message_id": "wamid.HBg..." },
      { "phone": "+77009876543", "ok": true, "message_id": "wamid.HBg..." },
      { "phone": "+77005551234", "ok": false, "error": "PROVIDER_ERROR", "message": "Некорректный номер телефона" }
    ]
  }
}

Коды ошибок

HTTP-статусКод ошибкиОписание
401UNAUTHORIZEDОтсутствует или недействителен API-ключ
403FORBIDDENAPI-ключ не имеет доступа к этому боту
404BOT_NOT_FOUNDУказанный bot_id не существует
422VALIDATION_ERRORНекорректное тело запроса (отсутствуют поля, неверный формат, пустые строки в params)
429QUOTA_EXCEEDEDМесячная квота сообщений исчерпана
429RATE_LIMITEDСлишком много запросов. Лимит — 30 запросов в минуту на API-ключ
502BILLING_ERRORПроблема с оплатой на стороне провайдера
502PROVIDER_ERRORОшибка провайдера WhatsApp (Meta или GupShup)

Формат ответа с ошибкой

{
  "ok": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "params contains empty strings. Either provide actual values or omit the params field entirely.",
    "status": 422
  }
}

Ошибка провайдера (PROVIDER_ERROR)

При ошибке PROVIDER_ERROR ответ включает поле provider_response с исходным ответом от Meta или GupShup. Используйте его для отладки:

{
  "ok": false,
  "error": {
    "code": "PROVIDER_ERROR",
    "message": "Request failed with status code 400",
    "status": 502
  },
  "provider_response": {
    "error": {
      "message": "(#100) Invalid parameter",
      "type": "OAuthException",
      "code": 100
    }
  }
}

Совет

Если вы получили PROVIDER_ERROR, проверьте поле provider_response — оно содержит точную причину ошибки от Meta/GupShup. Убедитесь, что шаблон одобрен, номер телефона корректен, а количество переменных в params совпадает с переменными в шаблоне.