PPleex для AI-агентов

Pleex — все мессенджеры (WhatsApp, Telegram) и почта в одном окне, разбитые на области. Агент получает API-ключ одной области и работает только в ней: читает переписки, отвечает клиентам, разбирает голосовые по готовым расшифровкам. Ниже — всё, что нужно для подключения.

1. Ключ области

Ключ выдаёт владелец области: Pleex → переключатель областей (слева) → Управление областями → AI-агенты → Создать ключ. Ключ формата pleex_… показывается один раз. Он даёт доступ только к одной области; отзывается одной кнопкой.

2. Подключение MCP (рекомендуется)

claude mcp add --transport http pleex https://mcp.pleex.co/mcp \
  --header "Authorization: Bearer pleex_ВАШ_КЛЮЧ"

Транспорт — streamable HTTP; сервер: https://mcp.pleex.co/mcp

3. Инструменты MCP

Читать переписку
list_chats(query?, limit, messenger?)Чаты области; query — имя, номер или текст превью
get_messages(chat_id?|phone?, limit, before_id?)История чата; голосовые приходят с расшифровкой, PDF — с текстом, приглашения — с полем event
search(query, limit)Поиск по чатам — вернёт чаты
search_messages(query, limit, messenger?)Поиск по телу сообщений — вернёт сами сообщения со сниппетом
get_transcript(message_id, wait_seconds?)Расшифровка голосового или текст документа по id
fetch_media(message_id, preview?)Докачать файл; preview=true у видео вернёт только кадр, не качая ролик
get_group_members(chat_id)Участники группы
list_labels()Теги и папки области для сегментации
Писать и отправлять
send_message(text, chat_id?|phone?)Отправить сообщение; если чата с номером нет — он создаётся (WhatsApp)
send_file(filename, chat_id?|phone?, …)Отправить файл; у медиа ждём квитанцию о доставке, а не только «ушло»
upload_chunk(data_b64, seq, upload_id?)Большой файл кусками — когда целиком не проходит
react(message_id, emoji)Реакция на сообщение
delete_message(message_id, for_everyone?)Удалить своё сообщение
click_button(message_id, text)Нажать кнопку в сообщении бота (Telegram)
Черновик вместо отправки

Если агенту нельзя писать людям напрямую: он готовит черновик, человек подтверждает.

send_scheduled(text, at, chat_id?|phone?)Отправить позже, во времени области
list_drafts()Черновики, ждущие подтверждения
approve_draft(message_id, at?)Подтвердить — уйдёт сразу или в назначенное время
discard_draft(message_id)Отклонить черновик
Контакты и память
resolve_contact(phone)Номер телефона → chat_id, имя, канал
save_contact(name, chat_id?|phone?)Записать имя в адресную книгу — как в WhatsApp
save_contact_info(chat_id?|phone?, …)Должность, компания, заметки к контакту
save_secret_from_message(chat_id, slot, pattern?)Забрать код или пароль из сообщения в хранилище, не печатая его в переписке
События в вашу систему

Вебхук приходит на каждое входящее — агенту не нужно опрашивать Pleex по кругу.

set_webhook(url, only_human?, channel_kinds?, tag_ids?)Куда слать входящие
list_webhooks()Что подписано сейчас
delete_webhook(webhook_id)Отписаться
Служебное
health()Проверка ключа, доступности и молчания каналов

Типовой цикл: resolve_contact(phone) → get_messages → send_message.

4. REST API (если MCP недоступен)

Тот же ключ, база https://api.pleex.co, заголовок Authorization: Bearer pleex_…

GET /api/conversations/?q=<текст|номер>поиск чатов
GET /api/conversations/{id}/messages/?limit=80&before=<id>история (keyset-пагинация)
POST /api/conversations/resolve/ {"phone":"+7..."}номер → чат
POST /api/conversations/{id}/send/ {"kind":"text","text":"..."}отправка
GET /api/messages/{id}/одно сообщение (transcript / text_preview)

Каждое сообщение содержит: direction, kind, sender_name, contact_phone, text, transcript, text_preview, media_url (абсолютная ссылка для скачивания), media_meta (длительность, контакты из vCard, имя файла), sent_at.

5. Ограничения ключа

  • Видит только свою область — чужие чаты недоступны.
  • Управление областями и ключами (/api/accounts/*) запрещено — 403.
  • Отозванный ключ — 401; заблокированная (неоплаченная) область — 402.
  • Ключи старого формата sona_… больше не принимаются — перевыпустите ключ.