Лето 2026
Список и удаление ботов, права доступа бота, вебхуки видеозвонков
Появились методы для управления ботами. Метод GETСписок ботов возвращает ботов, которые вы можете редактировать, с поиском по имени. Метод DELETEУдаление бота удаляет бота: прежний токен сразу инвалидируется, бот исключается из чатов, его исходящий вебхук удаляется. Оба метода требуют скоуп bots:read и bots:write соответственно.
При создании и редактировании бота добавились настройки прав доступа: who_can_add — кто может добавлять бота в чаты (creator, creator_admin, creator_admin_user, anyone), и can_edit — роли, которым, помимо создателя, разрешено редактировать настройки бота (admin, chat_owners). При создании также можно передать single_chat — ограничить бота одной беседой или каналом (личные чаты и треды в ограничение не входят). Все три поля возвращаются в объекте бота.
Появился новый тип исходящего вебхука — события видеозвонков: video_call_started, video_call_finished и video_call_recording_ready. Вебхук приходит для видеозвонков в чатах, где состоит бот. Подробнее о payload — в гайде Настройка и типы событий.
В журнале аудита появился тип события bot_deleted — удаление бота. Его можно фильтровать параметром event_key.
В поиске сотрудников у параметра sort появилось значение creation — сортировка по дате создания (в дополнение к by_score и alphabetical).
Get Many (список ботов) и Deletewho_can_add, can_edit, single_chat в операциях Create и Updatevideo_call_started, video_call_finished, video_call_recording_readyCreation (по дате создания)pachca bots list — список ботов с поиском по имени (--query)pachca bots delete — удаление бота по его idpachca bots create и bots update — права доступа бота: --who-can-add, --can-edit, --single-chatpachca search users — значение сортировки --sort creation (по дате создания)Список ботов (GET /bots) — список ботов с поиском по имениУдаление бота (DELETE /bots/{id})who_can_add, can_edit, single_chatVideoCallWebhookPayload и события video_call_started, video_call_finished, video_call_recording_readybot_deletedGET /search/users): значение сортировки creation (по дате создания)VideoCallWebhookPayload)Ротация токена бота и новые настройки вебхука
Токен бота теперь можно перевыпускать через API. Метод POSTРотация токена бота доступен администратору, владельцу компании или создателю бота по скоупу bots:write. Метод POSTРотация собственного токена бота позволяет боту перевыпустить токен самому себе по скоупу bot_self:write. Прежний токен инвалидируется сразу, новый возвращается в ответе один раз — сохраните его.
При создании и редактировании бота добавились две настройки вебхука: ignore_self_messages — игнорировать входящие сообщения, отправленные самим ботом (защита от зацикливания), и events_history_enabled — сохранять историю событий для получения через метод GETИстория событий. Оба поля также возвращаются в объекте бота.
В журнале аудита появились новые типы событий, связанные с управлением ботами: bot_token_recreated (ротация токена), bot_scopes_updated (изменение скоупов токена) и bot_webhook_settings_updated (изменение настроек вебхука). Их можно фильтровать параметром event_key.
Bot: новая операция Recreate Token — ротация токена бота по IDBot: новая операция Recreate Token Self — бот перевыпускает собственный токенBot: настройки вебхука Ignore Self Messages и Events History Enabled на Create/Update и в ответеChat (Request Export, Download Export), unfurl — в Message, информация о токене — в новом OAuth. Старые workflow (Chat Export/Link Preview/Profile → Get Info) продолжают работатьfiles/custom-properties/oauth вместо common, экспорт чата → chats, unfurl → messages. Старые имена продолжают работать (скрытые алиасы)pachca bots recreate-token — ротация токена бота по его id (нужны права администратора, владельца или создателя бота)pachca bots recreate-token-self — бот перевыпускает собственный токен своим же токеномpachca bots create и bots update — настройки вебхука --ignore-self-messages и --events-history-enabledРотация токена бота (POST /bots/{id}/recreate_token)Ротация собственного токена бота (POST /bot/recreate_token)ignore_self_messages, events_history_enabledbot_token_recreated, bot_scopes_updated, bot_webhook_settings_updatedclient.files, дополнительные поля — client.customProperties, информация о токене — client.oauth, unfurl — client.messages.unfurl() (бывш. createLinkPreviews). Старые имена (client.common, client.linkPreviews.createLinkPreviews(), client.profile.getTokenInfo()) продолжают работать как deprecated-алиасы — существующий код не ломаетсяclient.common и т.п.) сохраняются как рабочие, но скрытые из примеров аксессоры (обратная совместимость SDK)Настройки входящего вебхука бота и сортировка в поиске сообщений
При создании и редактировании бота теперь можно настроить его входящий вебхук: шаблон форматирования template, шаблонизатор template_engine (liquid или mustache), поле верификации challenge_key и показ превью ссылок link_preview_enabled. Эти же поля возвращаются в объекте бота. Подробнее о шаблонах и верификации — в гайде Входящие вебхуки.
В поиске сообщений появился параметр sort — сортировка результатов: created_at (по дате создания, по умолчанию) или relevance (по релевантности).
Create/Update и в ответе — Template, Template Engine, Challenge Key, Link Preview EnabledSort (сортировка Created At или Relevance)pachca bots create — настройки входящего вебхука: --template, --template-engine, --challenge-key, --link-preview-enabledpachca bots update — настройки входящего вебхука: --template, --template-engine, --challenge-key, --link-preview-enabledpachca search list-messages — параметр --sort (сортировка: created_at или relevance)template, template_engine, challenge_key, link_preview_enabledsort в поиске сообщений (GET /search/messages): created_at или relevanceNameError в авто-ретрае при ответах 429 и 5xxNameError на 429/5xx)Настраиваемые скоупы ботов и саморегистрация вебхука
Теперь при создании и редактировании бота можно задать скоупы его токена — параметр scopes. Если он не указан, бот получает набор по умолчанию. Текущие скоупы бота возвращаются в объекте бота в поле scopes.
Бот может самостоятельно изменить URL своего исходящего вебхука своим же токеном — без участия администратора и без знания собственного user_id. Для этого нужен скоуп bot_self:webhook:write.
Scopes (выбор скоупов токена) и поле scopes в ответеUpdate Webhook — саморегистрация исходящего вебхука бота его токеномpachca bots create — параметр --scopes (выбор скоупов токена бота)pachca bots update — параметр --scopes (изменение скоупов токена бота)pachca bots update-webhook — саморегистрация исходящего вебхука бота его собственным токеномscopes (выбор скоупов токена) и поле scopes в ответеСаморегистрация вебхука бота (PUT /bot/webhook)Создание ботов через API, голосовые сообщения
Теперь бота можно создать и получить через API, а не только в интерфейсе. При создании вы получите access_token бота — сразу сохраните его, повторно получить токен можно только через интерфейс.
Новые и обновлённые методы для ботов:
Появилась поддержка голосовых сообщений. В сообщении возвращается объект voice_content с длительностью, формой волны и расшифровкой, а при отправке файла с file_type = voice принимаются параметры duration_ms и waveform.
В payload вебхука реакции поле created_at теперь приходит и при удалении реакции. Также в деталях события аудита DLP поле action_message может быть null, если у действия правила не задан текст.
Create и Getvoice_content и параметры файла duration_ms / waveformpachca bots create — создание бота и получение его access_tokenpachca bots get — получение параметров ботаpachca bots update — новые поля --name, --nickname, --events, --trigger-on, --commandsvoice_content и параметры файлов --duration-ms / --waveform для голосовыхНовый бот (POST /bots) и Информация о боте (GET /bots/{id})voice_content в модели сообщения и параметры файлов duration_ms / waveform для голосовыхWebhook-модели и polling в SDK
SDK стали точнее типизировать payload вебхуков и получили helpers для polling истории событий. Это упрощает обработку вебхуков без публичного webhook URL и сохраняет discriminator-поля для маршрутизации событий в коде.
Был обновлен следующий метод:
type и дополнительный дискриминатор eventtype и дополнительные литералы вроде event[] / {} и не теряются из-за omitemptyMarshalJSON, чтобы сохранять явные пустые контейнеры в JSON