Отправка сообщения
Отправка обычного текста клиенту в WhatsApp, Instagram, Telegram или виджете на сайте от имени оператора через API Pleep
Отправка обычного текстового сообщения клиенту из ваших систем: в WhatsApp, Instagram, Telegram или виджет на сайте. WhatsApp подходит любой: WhatsApp Business API, Wazzup или подключение по QR-коду.
Сообщение уходит от имени оператора, так же как ответ менеджера из монитора: оно сохраняется в диалоге, попадает в подключённую CRM, а ИИ-агент в этом диалоге встаёт на паузу. В мониторе над ним написано «Ваша система · через API», чтобы его не путали с ответом сотрудника.
Эндпоинт
Заголовки
| Заголовок | Значение | Обязательный |
|---|---|---|
X-API-Key | Ваш API-ключ | Да |
Content-Type | application/json | Да |
Кому писать
Диалог можно указать двумя способами, в одном запросе только одним:
thread_idработает в любом канале. Это тот же идентификатор диалога, что в этапах лида, в вебхукеlead.status_changed, в получении диалогов и в звонке голосовым агентом. Сообщение уходит в тот канал, в котором идёт диалог.bot_id,channelиphoneработают только для WhatsApp Business API. Pleep находит диалог этого номера WhatsApp с клиентом, а если диалогов несколько, пишет в тот, где клиент писал последним.
Сообщение уходит только в уже существующий диалог. Начать новый диалог в WhatsApp Business API можно шаблоном через отправку шаблонного сообщения.
Когда можно писать
| Канал | Когда можно писать обычным текстом |
|---|---|
| WhatsApp Business API | В течение 24 часов после последнего сообщения клиента. Дальше только шаблоном через отправку шаблонного сообщения |
| В течение 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_id | string | Да, если нет phone | Идентификатор диалога в любом канале, например thread_0765c2bd-980d-4c65-aeea-d04069646be5 |
bot_id | string | Да, если нет thread_id | Bot ID номера WhatsApp. Где его взять, описано в шаге 3 отправки шаблонного сообщения |
channel | string | Да, если нет thread_id | waba_coexistence или waba |
phone | string | Да, если нет thread_id | Номер клиента в международном формате, например +77001234567. Плюс, пробелы и дефисы можно оставить |
text | string | Да | Текст сообщения, до 4096 символов |
Передавайте что-то одно: thread_id или bot_id, channel и phone. Если придут оба варианта, вернётся 422 VALIDATION_ERROR.
В Instagram длинный текст приходит клиенту несколькими сообщениями, по 1000 символов в каждом.
Примеры
По идентификатору диалога, любой канал
По номеру телефона, WhatsApp Business API
Ответ
thread_id это диалог, в который ушло сообщение. Тот же идентификатор возвращает получение диалогов и принимает set-ai.
ok: true значит, что сообщение принято и поставлено в отправку, а не что клиент его уже получил.
ИИ-агент после сообщения
Сообщение через API считается ответом оператора. Если в расширении Автопереключение включено «Ставить ИИ на паузу, когда вы отвечаете сами» (по умолчанию включено), агент в этом диалоге встаёт на паузу и больше не отвечает клиенту.
Вернуть агента можно через set-ai с ai_enabled: true или переключателем в мониторе. Если в Автопереключении также включено «Включать ИИ обратно, когда вы закончили», агент вернётся сам через указанное время.
Коды ошибок
| HTTP-статус | Код ошибки | Описание |
|---|---|---|
| 401 | UNAUTHORIZED | Отсутствует или недействителен API-ключ |
| 404 | BOT_NOT_FOUND | Бота с таким bot_id нет в аккаунте, которому принадлежит API-ключ. Проверьте bot_id, channel и то, что ключ создан в аккаунте владельца номера (см. API-ключи) |
| 404 | THREAD_NOT_FOUND | Диалога с таким thread_id нет в аккаунте ключа, или клиент с этим номером ещё не писал на этот номер WhatsApp |
| 409 | CHANNEL_NOT_CONNECTED | Канал этого диалога выключен в Pleep или больше не подключён |
| 409 | OUTREACH_SUPPRESSED | Человек отказался от сообщений и звонков вашего агента |
| 422 | VALIDATION_ERROR | Нет text, не указан диалог, переданы сразу thread_id и phone, неверный channel, номер не похож на телефон или текст длиннее 4096 символов |
| 422 | WINDOW_CLOSED | В канале с окном клиент писал раньше, чем оно позволяет (24 часа, а в Instagram через Wazzup 7 дней), или ещё не писал. В WhatsApp Business API отправьте шаблон |
| 422 | CHANNEL_NOT_SUPPORTED | Диалог голосового агента по телефону: писать в него текст некуда. Так же отвечают старые диалоги WhatsApp через Green API, этот канал больше не поддерживается |
| 429 | RATE_LIMITED | Слишком много запросов. Лимит: 120 запросов в минуту на API-ключ |