Pleep Docs

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

Отправка обычного текста клиенту в WhatsApp, Instagram, Telegram или виджете на сайте от имени оператора через API Pleep

Отправка обычного текстового сообщения клиенту из ваших систем: в WhatsApp, Instagram, Telegram или виджет на сайте. WhatsApp подходит любой: WhatsApp Business API, Wazzup или подключение по QR-коду.

Сообщение уходит от имени оператора, так же как ответ менеджера из монитора: оно сохраняется в диалоге, попадает в подключённую CRM, а ИИ-агент в этом диалоге встаёт на паузу. В мониторе над ним написано «Ваша система · через API», чтобы его не путали с ответом сотрудника.

Эндпоинт

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

Заголовки

ЗаголовокЗначениеОбязательный
X-API-KeyВаш API-ключДа
Content-Typeapplication/jsonДа

Кому писать

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

  • thread_id работает в любом канале. Это тот же идентификатор диалога, что в этапах лида, в вебхуке lead.status_changed, в получении диалогов и в звонке голосовым агентом. Сообщение уходит в тот канал, в котором идёт диалог.
  • bot_id, channel и phone работают только для WhatsApp Business API. Pleep находит диалог этого номера WhatsApp с клиентом, а если диалогов несколько, пишет в тот, где клиент писал последним.

Сообщение уходит только в уже существующий диалог. Начать новый диалог в WhatsApp Business API можно шаблоном через отправку шаблонного сообщения.

Когда можно писать

КаналКогда можно писать обычным текстом
WhatsApp Business APIВ течение 24 часов после последнего сообщения клиента. Дальше только шаблоном через отправку шаблонного сообщения
InstagramВ течение 24 часов после последнего сообщения клиента. Шаблонов в Instagram нет: дождитесь, пока клиент напишет снова
Личный аккаунт Telegram, подключённый официально, через настройки TelegramВ течение 24 часов после последнего сообщения клиента
WhatsApp Business API через WazzupВ течение 24 часов после последнего сообщения клиента. Дальше только шаблоном, его отправляют из Wazzup
Instagram через WazzupВ течение 7 дней после последнего сообщения клиента. Если клиент ещё не писал, написать нельзя
WhatsApp через Wazzup, WhatsApp по QR-коду, Telegram-бот, личный аккаунт Telegram со входом по номеру телефона, виджет на сайтеВ любое время, даже если клиент ещё ничего не писал

Если окно закрыто, сообщение не отправляется, и API сразу возвращает 422 WINDOW_CLOSED.

Если канал диалога выключен в Pleep или отключён, сообщение тоже не отправляется: вернётся 409 CHANNEL_NOT_CONNECTED. Включите канал в его настройках и повторите запрос.

Диалоги голосового агента по телефону текст не принимают: вернётся 422 CHANNEL_NOT_SUPPORTED. Чтобы написать такому клиенту, нужен его диалог в мессенджере.

Кому Pleep не пишет

Людям, которые отказались от сообщений и звонков вашего агента: написали «стоп» на рассылку или попросили больше не звонить во время звонка. Вернётся 409 OUTREACH_SUPPRESSED. Отказ хранится по номеру телефона, поэтому проверяется в диалогах с номером, то есть в WhatsApp.

Если в диалоге ИИ отключён навсегда, сообщение уходит: этот переключатель оставляет диалог людям, а сообщение через API считается ответом оператора.

Тело запроса

ПолеТипОбязательноеОписание
thread_idstringДа, если нет phoneИдентификатор диалога в любом канале, например thread_0765c2bd-980d-4c65-aeea-d04069646be5
bot_idstringДа, если нет thread_idBot ID номера WhatsApp. Где его взять, описано в шаге 3 отправки шаблонного сообщения
channelstringДа, если нет thread_idwaba_coexistence или waba
phonestringДа, если нет thread_idНомер клиента в международном формате, например +77001234567. Плюс, пробелы и дефисы можно оставить
textstringДаТекст сообщения, до 4096 символов

Передавайте что-то одно: thread_id или bot_id, channel и phone. Если придут оба варианта, вернётся 422 VALIDATION_ERROR.

В Instagram длинный текст приходит клиенту несколькими сообщениями, по 1000 символов в каждом.

Примеры

По идентификатору диалога, любой канал

curl -X POST https://microservice.pleep.app/api/v1/messages/send-message \
  -H "Content-Type: application/json" \
  -H "X-API-Key: pk_live_ваш_ключ" \
  -d '{
    "thread_id": "thread_0765c2bd-980d-4c65-aeea-d04069646be5",
    "text": "Добрый день! Вы оставляли заявку, удобно поговорить сегодня?"
  }'

По номеру телефона, WhatsApp Business API

curl -X POST https://microservice.pleep.app/api/v1/messages/send-message \
  -H "Content-Type: application/json" \
  -H "X-API-Key: pk_live_ваш_ключ" \
  -d '{
    "bot_id": "your-bot-id",
    "channel": "waba_coexistence",
    "phone": "+77001234567",
    "text": "Добрый день! Напоминаем о встрече завтра в 11:00."
  }'

Ответ

{
  "ok": true,
  "data": {
    "thread_id": "thread_0765c2bd-980d-4c65-aeea-d04069646be5"
  }
}

thread_id это диалог, в который ушло сообщение. Тот же идентификатор возвращает получение диалогов и принимает set-ai.

ok: true значит, что сообщение принято и поставлено в отправку, а не что клиент его уже получил.

ИИ-агент после сообщения

Сообщение через API считается ответом оператора. Если в расширении Автопереключение включено «Ставить ИИ на паузу, когда вы отвечаете сами» (по умолчанию включено), агент в этом диалоге встаёт на паузу и больше не отвечает клиенту.

Вернуть агента можно через set-ai с ai_enabled: true или переключателем в мониторе. Если в Автопереключении также включено «Включать ИИ обратно, когда вы закончили», агент вернётся сам через указанное время.

Коды ошибок

HTTP-статусКод ошибкиОписание
401UNAUTHORIZEDОтсутствует или недействителен API-ключ
404BOT_NOT_FOUNDБота с таким bot_id нет в аккаунте, которому принадлежит API-ключ. Проверьте bot_id, channel и то, что ключ создан в аккаунте владельца номера (см. API-ключи)
404THREAD_NOT_FOUNDДиалога с таким thread_id нет в аккаунте ключа, или клиент с этим номером ещё не писал на этот номер WhatsApp
409CHANNEL_NOT_CONNECTEDКанал этого диалога выключен в Pleep или больше не подключён
409OUTREACH_SUPPRESSEDЧеловек отказался от сообщений и звонков вашего агента
422VALIDATION_ERRORНет text, не указан диалог, переданы сразу thread_id и phone, неверный channel, номер не похож на телефон или текст длиннее 4096 символов
422WINDOW_CLOSEDВ канале с окном клиент писал раньше, чем оно позволяет (24 часа, а в Instagram через Wazzup 7 дней), или ещё не писал. В WhatsApp Business API отправьте шаблон
422CHANNEL_NOT_SUPPORTEDДиалог голосового агента по телефону: писать в него текст некуда. Так же отвечают старые диалоги WhatsApp через Green API, этот канал больше не поддерживается
429RATE_LIMITEDСлишком много запросов. Лимит: 120 запросов в минуту на API-ключ