Для разработчиков

Последние обновления

RSSJSON

Осень 2026

21 октября 2026

Вход по QR-коду в журнале аудита

Журнал аудита записывает вход в мобильное приложение по QR-коду с экрана компьютера. Появились события login_grant_created, login_grant_approved и login_grant_denied: код открыт, вход подтверждён или отклонён. У события user_login при таком входе в деталях приходят способ входа и идентификатор, который связывает все события одного входа. Подробнее — в разделе Вход по QR-коду в журнале.

Ещё изменения:

  • Метод GETПоиск сообщений ищет строгой фразой запрос, целиком взятый в кавычки, в том числе типографские «…», “…” или „…“.

Были обновлены следующие методы:

n8nv2.2.1
+
Security: фильтр событий пополнился событиями входа по QR-коду — Login Grant Created, Login Grant Approved и Login Grant Denied
CLIv2026.10.2
+
pachca security list — флаг --event-key принимает события входа по QR-коду: login_grant_created, login_grant_approved и login_grant_denied
SDKv1.6.1
+
Типы аудит-событий login_grant_created, login_grant_approved и login_grant_denied и модели их деталей с моделью устройства AuditLoginGrantDevice и перечислениями AuditLoginGrantDevicePlatform и AuditLoginGrantDenyReason
+
Модель AuditDetailsUserLoginQr — детали user_login при входе по QR-коду
20 октября 2026

Номер выгрузки в ответе, аватар бота и OAuth в SDK

Метод POSTЭкспорт сообщений может сразу вернуть номер выгрузки: с заголовком Prefer: return=representation он отвечает статусом 202 и номером в теле. По этому номеру архив забирают методом GETСкачать архив экспорта, когда сборка закончится, и вебхук для этого не нужен. SDK, CLI и нода n8n передают заголовок сами. Подробнее — в разделе Экспорт сообщений.

Аватар бота теперь можно поставить и убрать через API. Это доступно тем, кто может редактировать настройки бота.

Были добавлены новые методы:

Обмен кода на токен и отзыв токена описаны в справочнике методов, рядом с остальными методами API. В SDK у них появились свои методы, а ссылку для кнопки авторизации и пару PKCE SDK собирает сам. Как пройти авторизацию от имени сотрудника целиком — в разделе Получение токена.

Ещё изменения:

  • Ответ 429 методов API при превышении лимитов приходит в JSON, как остальные ошибки. Подробнее — на странице Лимиты.
  • При блокировке отправки сообщений за перегрузку ответ сообщает, сколько осталось до снятия блокировки. Подробнее — на странице Лимиты.
  • В части пространств метод POSTПолучение подписи, ключа и других параметров отдаёт другой набор полей формы. Передавайте в форме загрузки все поля из ответа, кроме адреса: SDK, CLI и нода n8n так и делают. Подробнее — на странице Загрузка файлов.
  • Списки и поиск отвечают ошибкой на нецелое число записей на странице. Подробнее — на странице Пагинация.
  • Метод POSTНовый чат возвращает идентификаторы сотрудников, которых не удалось добавить в чат.
  • Поиск в методе GETСписок сотрудников сообщает, что страницы закончились. Подробнее — на странице Пагинация.
  • Метод GETИнформация о боте отдаёт адрес входящего вебхука, секрет подписи исходящего и тело последнего запроса на входящий вебхук. Они приходят токену со скоупом bots:write, если вы можете управлять токенами бота.
  • Метод GETИнформация о токене отдаёт дату входа из CLI или выдачи доступа внешнему приложению.
  • Бесплатное пространство отправляет ограниченное число писем-приглашений за сутки. Подробнее — на странице Лимиты.
  • Редактирование сотрудника применяется целиком: если новая почта занята, остальные поля тоже не меняются.
  • В тег можно добавить только бота, которого может добавить в чат любой сотрудник. Подробнее — в разделе Бот в тегах.

Были обновлены следующие методы: POSTЭкспорт сообщений, GETСкачать архив экспорта, GETИнформация о боте, PUTРедактирование бота, POSTНовый сотрудник, PUTРедактирование сотрудника, POSTДобавление тегов, POSTНовый чат, GETСписок сотрудников, POSTПолучение подписи, ключа и других параметров, POSTЗагрузка файла, GETИнформация о токене.

n8nv2.2.0
~
Chat: операция Request Export сразу возвращает номер выгрузки в id — с ним Download Export забирает архив, когда тот соберётся
+
Chat: операция Create отдаёт в not_found_member_ids идентификаторы из Member IDs, которых не удалось добавить в чат
+
Bot: операции Update Avatar и Delete Avatar — аватар бота
+
Bot: операция Get отдаёт в Webhook адрес входящего вебхука, секрет подписи и тело последнего запроса, если у токена есть скоуп bots:write и вы можете управлять токенами бота
~
Form: в операции Create поля Close Text и Submit Text по умолчанию пустые — тогда кнопки подписывает Пачка: «Отменить» и «Отправить»
~
Message: в операции Create поле Content необязательно — сообщение можно отправить из одних файлов
~
Profile и User: в операции Update Status поля Emoji и Title нужны, только когда статуса ещё нет — продлить статус можно одним Expires At
~
File: операция Create передаёт в форме загрузки acl и bucket, только если они пришли: в части пространств метод Получение подписи, ключа и других параметров отдаёт bucket вместо acl
CLIv2026.10.1
~
pachca chats request-export выводит номер выгрузки id: с ним pachca chats download-export забирает архив, когда тот соберётся
+
pachca chats create предупреждает в stderr об идентификаторах из --member-ids, которых не удалось добавить в чат
+
pachca bots update-avatar и bots remove-avatar — аватар бота
+
pachca bots get: в webhook приходят адрес входящего вебхука url, секрет подписи secret_token и тело последнего запроса last_request_body, если у токена есть скоуп bots:write и вы можете управлять токенами бота
~
pachca messages create отправляет сообщение без --content, если к нему приложены файлы
~
pachca profile update-status и pachca users update-status: --emoji и --title нужны, только когда статуса ещё нет — продлить статус можно одним --expires-at
~
pachca upload передаёт в форме загрузки acl и bucket, только если они пришли, а у pachca files direct-url флаг --acl необязателен и есть флаг --bucket: в части пространств метод Получение подписи, ключа и других параметров отдаёт bucket вместо acl
SDKv1.6.0
~
Метод Экспорт сообщений (POST /chats/exports) возвращает модель ChatExport с идентификатором выгрузки: SDK передаёт заголовок Prefer: return=representation
~
Метод Скачивание файла (GET /files/{id}) возвращает содержимое файла: Blob в TypeScript, bytes в Python, []byte в Go, ByteArray в Kotlin, Data в Swift и byte[] в C#
~
Метод Новый чат (POST /chats) возвращает ответ целиком в модели CreateChatResponse: чат в data, а в meta.not_found_member_ids — идентификаторы из member_ids, которых не удалось добавить. Код, который брал поля чата из результата, берёт их из data.
~
Класс ошибки SDK выбирает по телу ответа: ApiError — для ответа с массивом errors, OAuthError — для ответа с кодом в поле error, в том числе 403 с insufficient_scope или role_forbidden
~
Перечисления в ответах принимают и значения, которых SDK ещё не знает: такое значение приходит как есть. В Kotlin такое перечисление — value class со строкой value, в Swift — enum со случаем unknown(String), в C# — структура со строкой Value. В Python такое значение — элемент перечисления с исходной строкой в value и is_known, равным False. Код, который перебирает значения такого перечисления, дописывает ветку для незнакомого: else в when в Kotlin, default или case .unknown в switch в Swift, а в C# сравнивает через == или switch по Value вместо case. Перечисления, которые встречаются только в запросах, прежние.
~
Поле error в OAuthError — перечисление OAuthErrorCode. В TypeScript поле — строка, а OAuthErrorCode перечисляет её значения.
~
Поле acl в UploadParams и FileUploadRequest необязательно, и добавлено поле bucket: в части пространств метод Получение подписи, ключа и других параметров отдаёт bucket вместо acl, а метод Загрузка файла передаёт в форме только заданные поля
~
Go: ответ 401, тело которого не разбирается, приходит обычной ошибкой HTTP 401: …, как ответы с другими кодами
+
Методы Обмен кода на токен (POST /oauth/token) и Отзыв токена (POST /oauth/revoke) в сервисе oauth — для бота, который получает токен сотрудника
+
Функции для кнопки авторизации: ссылка на экран согласия и пара PKCE — buildAuthorizeUrl и createPkce в TypeScript, в остальных языках по их правилам
+
Методы Загрузка аватара бота (PUT /bots/{id}/avatar) и Удаление аватара бота (DELETE /bots/{id}/avatar)
+
Поля url, secret_token и last_request_body в объекте webhook бота — приходят в методе Информация о боте (GET /bots/{id})
+
Поле authorized_at в AccessTokenInfo — дата входа из CLI или выдачи доступа внешнему приложению, приходит в методе Информация о токене (GET /oauth/token/info)
+
Коды ошибок daily_invites_limit и restricted_bot_tag_denied
+
Swift: типы ответов, например CreateChatResponse и ListChatsResponse, создаются в коде публичным инициализатором — так заглушка сервиса в тесте возвращает ответ
~
Поле value в ApiErrorItem принимает любое JSON-значение, как его отдаёт API: строку, число, массив, а иногда логическое значение или объект, например список id ботов у кода bot_add_denied. Тип поля — unknown в TypeScript, Any в Python, any в Go, JsonElement в Kotlin, AnyCodable в Swift и object в C#.
~
Необязательны content в MessageCreateRequest — для сообщения из одних файлов — и emoji с title в StatusUpdateRequest — для продления статуса одним expires_at
~
Поле size у файла в MessageCreateRequest необязательно, как при правке сообщения и в черновике: черновик отправляют, передав key, name и file_type его файлов
~
Поля started_at и duration в VideoCallWebhookPayload и duration в AuditDetailsVideoCallFinished бывают null — у звонка, который завершился, так и не начавшись. В Go StartedAt — *string, как остальные даты, которые бывают null.
~
Python: запросы правки сотрудника, задачи, бота и сообщения, а также создания бота передают только те поля, которые вы задали
−
Python: поле-перечисление в ответе приходит элементом своего перечисления, как в аннотации типа
−
Python: необязательный список в ответе разбирается по типу своих элементов, например members в VideoCallWebhookPayload — список WebhookVideoCallMember
+
Модель ExportWebhookPayload — тело вебхука о готовой выгрузке
−
C# и Kotlin: загрузка файла в хранилище и обмен кода на токен идут без заголовка Authorization. В C# такой запрос через переданный HttpClient с токеном в DefaultRequestHeaders уходит через отдельный клиент.
Generatorv1.3.0
+
Заголовок запроса с единственным допустимым значением, например Prefer: return=representation, сгенерированный метод передаёт сам, а ответ 202 с телом становится его результатом
+
Ответ с файлом (application/octet-stream) становится результатом метода: сгенерированный метод возвращает содержимое файла в типе своего языка
~
Ответ { data: T, meta } с одним объектом в data сгенерированный метод возвращает целиком, как ответ списка: в типе ответа, например CreateChatResponse, есть data и meta. Описанный прямо в ответе meta становится отдельной моделью, например CreateChatResponseMeta.
+
Swift: у типов ответов есть публичный инициализатор, как у моделей
+
Тело application/x-www-form-urlencoded: сгенерированный метод передаёт поля запроса формой
+
Расширение x-oauth-authorize-url у операции: SDK получает функции, которые собирают ссылку авторизации и пару PKCE
~
Класс ошибки выбирается по телу ответа, если в спеке есть обе модели ошибок: ApiError для массива errors, OAuthError для кода в поле error
+
Перечисление, которое встречается в ответе, генерируется открытым: значение не из спеки разбирается без ошибки и сохраняется. Закрытыми остаются перечисления, которые встречаются только в запросах.
~
Если поле error в OAuthError ссылается на перечисление, поле получает тип этого перечисления во всех языках, кроме TypeScript
~
Go: ответ 401, тело которого не разбирается, приходит ошибкой HTTP 401: … с причиной через %w, как ответы с другими кодами
−
Python: поле-перечисление в ответе разбирается в элемент своего перечисления
−
Python: необязательный список (list[X] | None) в ответе разбирается по типу своих элементов
~
Массив в query уходит парами name[]=value по расширению x-query-array: brackets у параметра. Без расширения значение повторяется под тем же именем: name=a&name=b.
+
Ссылка на схему-скаляр с ограничениями, например целое от 0 до 6, становится примитивом своего языка, а не моделью
~
Объединение простых значений — anyOf из строк, чисел, логических значений, массивов и объектов без $ref — становится открытым JSON-значением: unknown в TypeScript, Any в Python, any без указателя в Go, JsonElement в Kotlin, AnyCodable в Swift и object в C#
−
Go: код успешного ответа берётся из спеки — 200, 201, 202 или 204
−
C# и Kotlin: операция без авторизации (x-requirements: { auth: false }) уходит без заголовка Authorization, даже если токен задан в заголовках клиента по умолчанию
−
Swift: необязательный meta в типе ответа разбирается из тела, когда ответ его содержит
−
Swift: пример вызова передаёт тело запроса с меткой request:, как в сигнатуре метода
13 октября 2026

Раздел «Интеграции», API ботов и авторизация от имени сотрудника

В Пачке обновился раздел Интеграции: боты пространства и их карточки с настройками, токенами и вебхуками, витрина ботов и страница API с персональными токенами, входами в CLI и авторизациями. Администратор видит на ней все выданные в пространстве доступы и может отозвать любой. Документация ботов собрана заново под этот раздел: Обзор, Создание бота, Настройки бота, Токены бота, Доступы к чатам и сообщениям, Общение с ботом и Витрина.

В документации появился новый раздел Авторизация от имени сотрудника. Он про ботов, которые работают с данными сотрудника его правами: сотрудник один раз соглашается на экране согласия, и дальше бот действует от его имени в Пачке и в связке с другими сервисами. Раздел описывает настройку авторизации, получение токена, согласие и отзыв доступа, а в чек-листе запуска собрано всё, что должно быть включено у бота.

Публичный API ботов теперь умеет всё, что раздел Интеграции: бота можно создать пустым, как в интерфейсе, выпустить ему несколько токенов со своими правами, включить авторизацию от имени сотрудника и заполнить страницу в витрине. Подробнее — в разделах Токены бота и Настройка авторизации.

Были добавлены новые методы:

Ещё изменения:

  • Журнал аудита записывает выдачу и отзыв каждого доступа к API: персональных токенов, входов в CLI, токенов ботов и авторизаций от имени сотрудника. В деталях событий видно вид токена, его название, владельца и права. Появились события bot_token_deleted, oauth_token_revoked и bot_oauth_client_secret_issued. Подробнее — в разделе Токены и авторизации в журнале.
  • Новый метод PUTОтметка чата непрочитанным помечает чат непрочитанным для владельца токена, как одноимённое действие в интерфейсе.
  • Аватар беседы или канала ставится и убирается через API, а ссылка на него приходит в новом поле avatar_url чата.
  • Мульти-гость работает с API наравне с сотрудником: создаёт персональные токены, входит в CLI и авторизует ботов. Через API он видит то же, что в интерфейсе. Подробнее — в разделе Мульти-гость в API.
  • Если скоуп у токена есть, а текущая роль владельца не позволяет действие, ответ 403 приходит с кодом role_forbidden: повторная авторизация тут не поможет. Подробнее — в разделе Ошибки авторизации.
  • Настройка «Игнорировать свои сообщения» не присылает боту его собственные реакции, а реакции других участников на сообщения бота приходят всегда.
  • Бота с настройкой «Ограничить одним чатом», который уже состоит в беседе или канале, нельзя добавить во второй такой чат и через API. В теги такого бота не добавить, а при включении настройки он выходит из всех тегов.
  • Метод PUTРедактирование сотрудника у бота меняет только имя, ник, теги и suspended, остальные поля в запросе пропускает.
  • В вебхуке о ссылке появились тип чата, его идентификатор и тред, как в вебхуке о новом сообщении.
  • В формах у радиокнопок и чекбоксов до 20 вариантов.
  • Поиск по сотрудникам, чатам и сообщениям и поиск в списке сотрудников отвечают отдельной ошибкой, если запрос не уложился по времени.
  • Голосовое сообщение длиннее 30 минут отклоняется.
  • В пространстве с продвинутым шифрованием текст сообщения ограничен 27 000 байт. Подробнее — в разделе Шифрование и безопасный контур.
  • Информацию о напоминании получает каждый, кому доступен его чат, по тому же правилу, что у фильтра по чатам в списке напоминаний.

Были обновлены следующие методы: POSTНовый бот, PUTРедактирование бота, GETИнформация о боте, GETСписок ботов, GETСписок ботов пространства, GETЖурнал аудита событий, POSTДобавление пользователей, POSTНовый чат, GETСписок чатов, GETИнформация о чате, PUTРедактирование чата, GETСписок чатов пространства, PUTРедактирование сотрудника, GETСписок сотрудников, GETСписок тегов, GETПоиск сотрудников, GETПоиск чатов, GETПоиск сообщений, POSTНовое сообщение, PUTРедактирование сообщения, POSTОткрытие представления, POSTНовый черновик, PUTРедактирование черновика, GETИнформация о напоминании.

n8nv2.1.4
+
Bot: операции Get Many Tokens, Create Token, Update Token, Reissue Token и Delete Token — у бота может быть несколько токенов, у каждого своё имя и права. Операция Get Scopes отдаёт каталог прав, которые можно выдать боту.
+
Bot: операция Rotate Client Secret — новый client_secret для авторизации от имени сотрудника
+
Bot: у Create и Update появились поля OAuth Client и Promo — авторизация от имени сотрудника и страница бота в витрине, а также Kind и Unfurl Domains. У Create — Empty для бота без токена, у Update — Single Chat.
+
Chat: операция Mark Unread — отметка чата непрочитанным для владельца токена
+
Chat: операции Update Avatar и Delete Avatar — аватар беседы или канала. В ответах с чатами появилось поле avatar_url.
+
Security: фильтр событий пополнился восемью событиями — выпуск, изменение, перевыпуск и удаление токена бота, выпуск и обновление секрета клиента, выключение авторизации и отзыв токена самим приложением
+
Trigger: событие о ссылке приносит entity_type, entity_id и thread, как событие о новом сообщении
−
README: где взять токен бота и персональный токен — теперь раздел «Интеграции»: «Боты» для бота, «API» для персонального
−
Bot: значение Anyone поля Who Can Add описано как публичный бот, которого гости и мульти-гости не добавляют
−
Message и Task: подсказки к полю Content и к фильтру Chat IDs описывают, что меняется для мульти-гостя
−
Message, Draft и Task: подсказка к полю Content называет предел длины текста — 40 000 байт
−
Message: подсказка к полю Parent Message ID описывает ответ с цитатой в любом чате, в том числе в треде: ответ отправляют в тот же чат или тред, где лежит исходное сообщение
−
Bot: подсказка к полю Ignore Self Messages говорит, что настройка не присылает боту и его собственные реакции
−
Credentials: подсказка Webhook Allowed IPs перечисляет все три адреса, с которых Пачка отправляет вебхуки
CLIv2026.10.0
+
pachca bots list-tokens, create-token, update-token, reissue-token и delete-token — токены бота, у каждого своё имя и права. pachca bots list-scopes — каталог прав, которые можно выдать боту.
+
pachca bots rotate-client-secret — новый client_secret для авторизации от имени сотрудника
+
pachca bots create и bots update: флаги --oauth-client и --promo для авторизации от имени сотрудника и страницы бота в витрине, --kind и --unfurl-domains. У bots create — --empty для бота без токена, у bots update — --single-chat.
+
pachca chats mark-unread — отметка чата непрочитанным
+
pachca chats update-avatar и chats remove-avatar — аватар беседы или канала. В выводе команд с чатами появилось поле avatar_url.
+
pachca security list — флаг --event-key принимает восемь новых событий: bot_token_created, bot_token_updated, bot_token_reissued, bot_token_deleted, bot_oauth_client_secret_issued, bot_oauth_client_secret_rotated, bot_oauth_client_disabled и oauth_token_revoked
−
pachca search users, search chats, search messages и users list: в справке описан ответ 504 с кодом timeout, если поиск не уложился по времени, а у файлов в messages create, messages update и drafts — предел голосового в 30 минут
+
pachca auth login — вход через браузер передаёт имя устройства, по которому вход узнаётся в списке токенов CLI
−
pachca guide: сценарии разворачивания ссылок и поллинга описывают раздел «Интеграции» — событие ссылок с доменами и история событий без Webhook URL
−
pachca messages create, messages update и tasks list: подсказки к --content и --chat-ids описывают, что меняется для мульти-гостя
−
pachca messages create, messages update, drafts create, drafts update, tasks create и tasks update: в справке к --content указан предел длины текста — 40 000 байт, а в пространстве с продвинутым шифрованием 27 000
−
pachca messages create: подсказка к --parent-message-id описывает ответ с цитатой в любом чате, в том числе в треде. В описаниях тредов сказано, какой идентификатор куда передавать: id — чтобы написать в тред, chat_id — чтобы прочитать его сообщения.
~
После ответа 401 CLI подсказывает, что делать дальше: войти заново, если вход через браузер отозван или завершён, или сохранить новый токен. В подсказку подставлен профиль, с которым запускалась команда.
−
pachca views open: в справке у блоков radio и checkbox до 20 вариантов
−
pachca bots create и bots update: справка к --ignore-self-messages говорит, что настройка не присылает боту и его собственные реакции
−
pachca bots list-events: в справке у события отправки формы сказано, что chat_id фиксируется при открытии формы, а не при её отправке
−
pachca chats create, members add и users update: в справке описаны отказы для бота с настройкой «Ограничить одним чатом» — single_chat_bot_occupied, если он уже состоит в другой беседе или канале, и single_chat_bot_tag_denied при добавлении в тег. У users update сказано, что у бота меняются только имя, ник, теги и suspended.
−
pachca tasks get: в справке сказано, что напоминание видят все, кому доступен его чат, по тому же правилу, что у фильтра --chat-ids в tasks list
SDKv1.5.0
~
Методы самого бота Саморегистрация вебхука бота (PUT /bot/webhook) и Ротация собственного токена бота (POST /bot/recreate_token) отвечают своими моделями BotSelfResponse и BotSelfTokenResponse: кроме id и настроек вебхука, в них есть oauth_client
~
Поле access_token в ответе Новый бот (POST /bots) стало необязательным: у бота, созданного с empty: true, токена нет. Объект webhook в запросе Редактирование бота (PUT /bots/{id}) тоже больше не обязателен.
+
Методы Список токенов бота (GET /bots/{id}/tokens), Новый токен бота (POST /bots/{id}/tokens), Изменение токена бота (PUT /bots/{id}/tokens/{token_id}), Перевыпуск токена бота (POST /bots/{id}/tokens/{token_id}/reissue), Удаление токена бота (DELETE /bots/{id}/tokens/{token_id}) и Каталог прав бота (GET /bots/{id}/scopes)
+
Метод Ротация секрета клиента (POST /bots/{id}/rotate_client_secret)
+
Авторизация от имени сотрудника в Новый бот (POST /bots) и Редактирование бота (PUT /bots/{id}): поля oauth_client и promo в запросе, oauth_client, oauth_client_enabled, promo и client_secret в ответе, а также поле empty для пустого бота
+
В объекте бота — name, nickname, avatar_url, creator_id, created_at, authorized_users_count, last_used_at и permissions, у вебхука — kind, unfurl_domains и last_request_at. kind, unfurl_domains и single_chat принимаются и при редактировании.
+
Поле oauth_client у ботов в Список ботов пространства (GET /company/bots)
+
Метод Отметка чата непрочитанным (PUT /chats/{id}/unread) и скоуп chats:mark_unread
+
Методы Загрузка аватара чата (PUT /chats/{id}/avatar) и Удаление аватара чата (DELETE /chats/{id}/avatar), поле avatar_url в объекте чата
+
Типы аудит-событий bot_token_created, bot_token_updated, bot_token_reissued, bot_token_deleted, bot_oauth_client_secret_issued, bot_oauth_client_secret_rotated, bot_oauth_client_disabled и oauth_token_revoked и модели их деталей. У деталей bot_scopes_updated, bot_webhook_settings_updated и bot_oauth_client_updated появились bot_id и actor_id.
+
Модели AuditDetailsToken и AuditDetailsBotTokenUpdated: в деталях событий токенов приходят вид токена token_kind, название, владелец resource_owner_id и скоупы. У oauth_authorization_revoked появился user_id, у событий входа с устройства — device_name.
+
Значение bot_add_denied в ValidationErrorCode — так Добавление пользователей (POST /chats/{id}/members) и Новый чат (POST /chats) отвечают на бота, которого вам не разрешает добавить его настройка «Кто может добавлять бота в чаты»
+
Значения single_chat_bot_occupied, single_chat_bot_tag_denied и bot_changed_concurrently в ValidationErrorCode: так Новый чат (POST /chats) и Добавление пользователей (POST /chats/{id}/members) отвечают 409 на бота с настройкой «Ограничить одним чатом», который уже состоит в другой беседе или канале, а Редактирование сотрудника (PUT /users/{id}) — 422 на попытку добавить такого бота в тег или если настройки бота поменялись во время запроса
+
Код ошибки timeout и ответ 504 у Поиск сотрудников (GET /search/users), Поиск чатов (GET /search/chats), Поиск сообщений (GET /search/messages) и Список сотрудников (GET /users) — поиск не уложился по времени
+
Поля entity_type, entity_id и thread в вебхуке о ссылке (LinkSharedWebhookPayload)
20 сентября 2026

Черновики и отложенные сообщения

В API появились черновики — неотправленные сообщения, которые сотрудник видит в поле ввода чата и дописывает сам. С полем schedule тот же метод создаёт отложенное сообщение: оно уходит в назначенное время и может повторяться.

Были добавлены новые методы:

Работают они только с личным токеном: скоупы черновиков токенам ботов не выдаются. Как приём применить агенту — в новом разделе Черновик вместо отправки.

Описан метод скачивания файла. Он нужен вложениям, у которых нет прямой ссылки на хранилище: зашифрованным и отправленным из безопасного контура пространства. Обе настройки разобраны в новом разделе Шифрование и безопасный контур.

У вложений появился тип video и длительность голосового, аудио- и видеофайла.

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

n8nv2.1.3
~
Повтор после 429 ждёт не меньше срока из Retry-After. Пауза дольше минуты не повторяется: узел возвращает ошибку вместо того, чтобы держать прогон часами
−
Message: подсказка к полю Entity ID объясняет, что в нём лежит в зависимости от Entity Type, а Parent Message ID — что ответ появится в ленте чата, а не в треде
−
Reaction: у поля Code сказано, что нужен сам символ эмодзи — +1 и :+1: отклоняются
−
Profile и User: у поля срока статуса сказано, что смещение вида +03:00 учитывается, а время без смещения считается UTC
+
Draft: новый ресурс — операции Create, Get, Get Many, Update и Delete для черновиков и отложенных сообщений. Отложенное создаётся полем Schedule, недоступно токенам ботов
+
Message: у вложений появился тип Video и поле Duration Ms — длительность голосового, аудио- и видеофайла
~
Trigger: в объекте треда поля Message ID и Message Chat ID объявлены необязательными — у треда без сообщения-родителя они приходят пустыми
−
Chat: у операции Request Export поле Webhook URL больше не обязательно
+
File: операция Get — скачивание вложения, у которого нет прямой ссылки: зашифрованного или конфиденциального
CLIv2026.9.1
~
Повтор после 429 ждёт не меньше срока из Retry-After: прежний потолок в 60 секунд убран. Пауза дольше минуты не повторяется — команда сразу возвращает ошибку с заголовком
−
pachca api <метод> --spec и --docs показывают развёрнутые описания методов: кого метод пускает, что меняется в пространстве после вызова и чем он отличается от соседнего
+
pachca drafts — черновики и отложенные сообщения: create, get, list, update, delete. Отложенное задаётся флагом --schedule, отменяется удалением
+
В выводе сообщений у вложений появилось поле duration_ms и тип video
−
pachca chats request-export больше не требует --webhook-url
+
pachca files get — скачивание вложения, у которого нет прямой ссылки: зашифрованного или конфиденциального. Путь задаётся обязательным флагом --save
SDKv1.4.0
~
Повтор запроса после 429 ждёт не меньше срока из Retry-After — джиттер добавляется вверх, а не вниз. Пауза дольше минуты не повторяется вовсе: ответ возвращается вызывающему коду вместе с заголовком
~
Поля message_id и message_chat_id в объекте треда исходящих вебхуков стали nullable — у треда без сообщения-родителя они приходят null
~
Поле webhook_url в запросе Экспорт сообщений (POST /chats/exports) больше не обязательно
+
Методы Новый черновик (POST /drafts), Список черновиков (GET /drafts), Информация о черновике (GET /drafts/{id}), Редактирование черновика (PUT /drafts/{id}) и Удаление черновика (DELETE /drafts/{id})
+
Поле duration_ms в объекте файла и значение video у file_type
+
Скоупы drafts:read и drafts:write, события аудита oauth_device_authorization_approved и oauth_device_authorization_denied, пять кодов ошибок расписания
+
Метод Скачивание файла (GET /files/{id}) — отдаёт содержимое вложения, у которого в url стоит адрес API
Generatorv1.2.0
~
Все шесть эмиттеров ждут после 429 не меньше срока из Retry-After — джиттер добавляется вверх, а не вниз: повтор раньше срока попадает в ещё закрытое окно и продлевает паузу
~
Пауза дольше минуты не повторяется: сгенерированный клиент возвращает ответ вызывающему коду вместе с заголовком, вместо того чтобы блокировать поток на часы
10 сентября 2026

Руководство по тегам

Появилось руководство Теги. Тег — именованная группа сотрудников пространства: его упоминают в сообщении и привязывают к чату, чтобы состав участников поддерживался сам.

В руководстве разобрано, как тег держит состав беседы или канала, что делает упоминание тега в чате и в треде, как задаётся набор тегов сотрудника через поле list_tags, чем удаление тега отличается от исключения тега из чата, какие правила у названий и какие события тег пишет в журнал аудита.

09 сентября 2026

Ответ на форму через журнал событий и рост суточного предела сообщений

Бот без адреса исходящего вебхука теперь может обрабатывать формы: событие view_submit приходит в журнал событий, а ответить на него можно новым методом.

Был добавлен новый метод:

Отвечать нужно в течение 5 секунд, иначе пользователь увидит ошибку отправки, а значения полей сохранятся для повторной попытки. Подробнее — в разделе Ответ через журнал событий.

Суточный предел сообщений в один чат вырос с 5 000 до 7 500 — Лимиты.

Журнал аудита пополнился событием exchange_disabled — отключена интеграция с Exchange.

У блока time в формах начальное значение принимается и в формате HH:mm:ss, секунды при этом отбрасываются. У прикрепляемых файлов описаны пределы длины пути и названия.

n8nv2.1.2
+
Form: операция Submit Response — ответ на отправку формы для бота без адреса исходящего вебхука
−
Bot: у операции Remove Events поле ID стало строковым — идентификатор события не число, и ввести его было нельзя
+
Security: фильтр событий пополнился значением Exchange Disabled — отключена интеграция с Exchange
CLIv2026.9.0
+
pachca views submit-response — ответ на отправку формы для бота без адреса исходящего вебхука
+
pachca security list — флаг --event-key принимает значение exchange_disabled
−
pachca api POST /messages --spec — у прикрепляемых файлов показаны пределы длины: key до 1000 символов и name до 255
−
pachca api POST /views/open --spec — у блока time начальное значение принимается и в формате HH:mm:ss
SDKv1.3.2
+
Метод ответа на отправку формы и модели запроса и результата
+
В payload вебхука о заполнении формы появились view_id и submit_id
+
Коды ошибок view_not_found, submit_expired и service_unavailable, тип аудит-события exchange_disabled

Лето 2026

28 августа 2026

Суточный лимит сообщений, отключение 2FA в журнале аудита и сроки ссылок на файлы

У отправки появился суточный предел — 5 000 сообщений в один чат за скользящие 24 часа, сообщения в тред считаются в чат родительского. Рядом действует общий предел по всем чатам сразу — 30 запросов за 5 секунд. Отказ приходит с 429, и у него два вида: суточный предел отдаёт обычную ошибку, а лимит на частоту запросов — текст, а не JSON.

У кнопок описаны пределы: до 8 в строке, не больше 32 строк и 100 на сообщение. Размер файла size описан 64-битным числом, а ссылка на вложение живёт до 7 дней. Удаление сообщения стирает вложения из хранилища сразу.

Подробнее — в разделах Лимиты, Ошибки, Кнопки и Загрузка файлов.

Ответ 409 описан у методов, где он возможен, и называет конфликтующее поле в errors[].key — например, email при повторном адресе почты сотрудника.

Журнал аудита пополнился событием user_2fa_disabled — сотрудник отключил себе двухфакторную аутентификацию.

Ссылка на файл из формы живёт 2 часа, а сам файл хранится сутки после отправки — Обработка форм. Вложенный .html Пачка показывает просмотром прямо в переписке: скрипты не выполняются, картинки и стили нужно вшивать в документ — Оформление ответов.

В поле content исходящего вебхука приходят цитаты и списки, а подчёркивание не отражается. Описания блоков формы, напоминаний и разметки сверены с поведением API. На странице Лимиты описан отдельный предел для выборки списка чатов номером страницы.

n8nv2.1.1
+
Security: фильтр событий пополнился значением User 2fa Disabled — сотрудник отключил себе двухфакторную аутентификацию
CLIv2026.8.3
+
pachca security list — флаг --event-key принимает значение user_2fa_disabled
−
pachca api POST /messages --spec — размер файла size описан 64-битным числом, у ссылки url указан срок действия до 7 дней, а у кнопок появились пределы: url до 1024 символов и не больше 32 строк в buttons
−
pachca api POST /views/open --spec — у радиокнопки блока radio изначальный выбор задаётся полем checked, как у чекбоксов, а не selected. У пункта списка предел value — 255 символов, а сам options стал обязательным
−
pachca api POST /tasks --spec и pachca api PUT /tasks/{id} --spec — у priority показаны допустимые границы 1–3, которые проверяет API
+
pachca api --spec показывает ответ 409 у методов сотрудника, тега и закрепления сообщения и ответ 429 у POST /messages — суточный предел сообщений в чат
−
pachca api GET /tasks --spec — у фильтров chat_ids и performer_ids показан предел в 100 идентификаторов, который проверяет API
SDKv1.3.1
~
Поле size у файла сообщения и у записи видеозвонка описано 64-битным числом — размер файла может превышать 2 ГБ. Методы Новое сообщение (POST /messages), Редактирование сообщения (PUT /messages/{id}), payload вебхука о видеозвонке
~
Поле selected у радиокнопки блока radio переименовано в checked — так его называет форма. Модель ViewBlockSelectableOption, метод Открыть форму (POST /views/open)
~
Поле options у блоков select, radio и checkbox стало обязательным — форма без пунктов отклоняется валидацией
+
Поле description у пункта выпадающего списка — модель ViewBlockSelectOption
+
Значение user_2fa_disabled в перечислении типов аудит-событий
12 августа 2026

Чаты и боты всего пространства, фильтры напоминаний

Владелец пространства может выгрузить перечень всех бесед и каналов, включая закрытые, где он не состоит, и перечень всех ботов, включая тех, кто недоступен ему для редактирования. Настройки таких ботов не раскрываются: приходят только имя и никнейм. Оба метода доступны только Владельцу пространства на тарифе «Корпорация» и требуют отдельных скоупов. Подробнее — в разделе Права и роли.

Список напоминаний научился фильтровать выдачу: по состоянию, автору, ответственным и чатам. Фильтр по чатам заодно расширяет выборку — возвращаются все напоминания указанных чатов, а не только ваши.

Ответ 403 с кодом insufficient_scope теперь содержит заголовок WWW-Authenticate с недостающим скоупом: причину отказа можно разобрать, не читая тело ответа. Подробнее — в разделе Авторизация.

Журнал аудита больше не теряет события при переходе на следующую страницу, когда за одну секунду их записано больше, чем вмещает страница.

n8nv2.1.0
+
Chat: новая операция Get Many Workspace Chats — все беседы и каналы пространства, включая закрытые, с фильтром Activity по состоянию чата
+
Bot: новая операция Get Many Workspace Bots — все боты пространства, у недоступных для редактирования заполнены только Name и Nickname
+
Task: операция Get Many — фильтры Status, Chat IDs, Performer IDs и Author ID
+
Security: фильтр событий пополнился значениями Company Chats Accessed и Company Bots Accessed
−
Message: у вложения с незаполненными Size и Duration Ms эти поля больше не уходят в API нулями. duration_ms: 0 API отклонял ошибкой валидации, и отправка сообщения с файлом падала, хотя руками ничего не заполняли
−
Ошибка 403 insufficient_scope называет недостающий скоуп — он берётся из заголовка WWW-Authenticate
CLIv2026.8.2
+
pachca chats list-company — все беседы и каналы пространства, включая закрытые, с флагом --activity для выбора состояния
+
pachca bots list-company — все боты пространства, с флагом --query для фильтра по имени
+
pachca tasks list — флаги --status, --chat-ids, --performer-ids и --author-id
+
pachca security list — фильтр --event-key принимает company_chats_accessed и company_bots_accessed
−
Недостающий скоуп в ошибке insufficient_scope берётся из заголовка WWW-Authenticate, а не из текста сообщения
SDKv1.3.0
+
Метод Список чатов пространства (GET /company/chats)
+
Метод Список ботов пространства (GET /company/bots) и модель CompanyBotResponse
+
Параметры status, chat_ids, performer_ids и author_id в методе Список напоминаний (GET /tasks)
+
Значения company_chats_accessed и company_bots_accessed в AuditEventKey, значения company_chats:read и company_bots:read в OAuthScope
07 августа 2026

Вход в CLI через браузер, архивные чаты в списке

В CLI появился вход через браузер: команда pachca auth login вместо выписывания токена в интерфейсе. Токен живёт час, продлевается сам и хранится в хранилище ключей ОС, а pachca auth logout закрывает доступ на сервере. Вставка готового токена осталась — это путь для CI и агентов. Подробнее — CLI: авторизация.

Список чатов научился отдавать архивные. По умолчанию, как и раньше, возвращаются только активные чаты, а параметр archived добавляет к ним архивные — при любом значении availability. Отличить один от другого можно по новому полю archived объекта чата: оно приходит во всех ответах с чатом, независимо от параметров запроса.

Скоупы group_tags:read и user_status:read стали доступны роли «Сотрудник» и токенам ботов — теги и статусы сотрудников в API теперь видны тем же, кому они видны в интерфейсе.

Неизвестное значение entity_type при отправке сообщения больше не приводит к отправке в чат со случайно совпавшим идентификатором: метод отвечает 400 с кодом invalid. Регистр значения по-прежнему не важен.

В журнале аудита появились три типа событий: изменение параметров OAuth-клиента бота, выдача клиенту доступа к данным пользователя и отзыв такого доступа. Состав деталей каждого — в гайде Журнал аудита событий.

n8nv2.0.18
+
Chat: операция Get Many — поле Archived для выдачи архивных чатов вместе с активными
~
Group Tag и User: у чтения тегов и статуса сотрудника убрана пометка о необходимости прав администратора — скоупы group_tags:read и user_status:read доступны сотрудникам и ботам
+
Security: фильтр событий пополнился значениями Bot OAuth Client Updated, OAuth Authorization Granted и OAuth Authorization Revoked
−
JSON-поля разбираются перед отправкой запроса и больше не уходят в API строкой. Некорректный ввод падает на ноде с понятным сообщением, а не возвращается ошибкой валидации из API. Затрагивает Message: Unfurl (поле Link Previews)
CLIv2026.8.1
+
pachca auth login — вход через браузер вместо ручной вставки токена. Токен живёт час и продлевается сам; --token и PACHCA_TOKEN остаются для CI и агентов
+
Токен входа хранится в хранилище ключей ОС — Keychain, Secret Service или Диспетчер учётных данных; в файле конфигурации остаются только имя, почта и права. Где хранилища нет, токен ложится в файл, и CLI сообщает об этом при входе. Отказ — --insecure-storage или PACHCA_SECRET_STORE=file
+
pachca auth status и pachca auth list — способ входа, срок жизни токена, выданные права и где хранится токен
~
pachca auth logout — гасит токен входа через браузер на сервере, а не только удаляет профиль с машины
~
Отказ по правам называет недостающее право и причину; в JSON-выводе — тип PACHCA_SCOPE_ERROR и поле scope
+
pachca auth status --remote — права по данным сервера, а не сохранённые при входе
+
pachca auth login --token - — чтение токена из потока ввода, чтобы секрет не попадал в историю оболочки
+
pachca auth switch — сообщает о нечитаемом секрете и истёкшем токене сразу при переключении
~
pachca doctor — отдельная проверка хранилища ключей, способ входа и срок токена; заблокированное хранилище больше не выдаётся за недействительный токен
−
pachca doctor — проверяет адрес API из настроек, а не всегда облачный
+
pachca chats list — флаг --archived для выдачи архивных чатов вместе с активными
+
pachca security list — фильтр --event-key принимает bot_oauth_client_updated, oauth_authorization_granted и oauth_authorization_revoked
SDKv1.2.0
+
Поле archived в модели чата и одноимённый параметр запроса в методе Список чатов (GET /chats)
+
Значения bot_oauth_client_updated, oauth_authorization_granted и oauth_authorization_revoked в AuditEventKey и модели их деталей
01 августа 2026

Проверка имени файла, уточнения в журнале аудита и страница «Права и роли»

Имя файла в сообщении теперь проверяется: расширение в name должно совпадать с расширением файла в key, иначе метод ответит 422. Так один тип файла больше нельзя замаскировать под другой. Базовую часть имени по-прежнему можно менять, подробнее — в разделе Загрузка файлов.

Уточнили описание журнала аудита. Детали событий видеозвонка теперь описаны отдельно для начала звонка, его завершения и готовой записи, у изменения профиля появился признак обновления через SSO, а детали удаления бота и перевыпуска его токена больше не описаны как пустые. Поля ip_address и user_agent отмечены как необязательные: у событий, записанных без запроса пользователя, они приходят пустыми.

Были обновлены следующие методы:

Ещё в описание исходящего вебхука о сообщении добавили поле changed_at — оно приходило и раньше, но в документации его не было.

Появилась новая страница Права и роли. На ней собрано, как связаны роль в пространстве и роль в чате, кто и что видит в закрытых беседах и каналах, и какие права нужны частым методам.

Заодно перестроили гайд Журнал аудита событий: в нём появились структура записи, состав деталей для каждого типа события, разбор фильтров и приём для регулярной выгрузки в SIEM.

n8nv2.0.17
~
Message: в описании поля Files сказано, что расширение в name должно совпадать с расширением файла в key
CLIv2026.8.0
~
pachca api POST /messages --spec и --docs: у поля files[].name описано требование к расширению
~
pachca api GET /audit_events --spec: уточнён состав деталей событий видеозвонков, user_updated, bot_deleted и bot_token_recreated
~
pachca messages list: в примерах появился шаг сценария «Получить список активных тредов за период»
SDKv1.1.0
~
Поля ip_address и user_agent в записи журнала аудита стали nullable
~
Детали аудит-события видеозвонка разделены на три модели: AuditDetailsVideoCallStarted, AuditDetailsVideoCallFinished и AuditDetailsVideoCallRecording (была одна AuditDetailsVideoCall на начало и завершение)
+
Поле started_message_id в деталях всех трёх событий видеозвонка, recording_id и file_id — в деталях готовой записи
+
Поле context в деталях события user_updated и модель AuditDetailsBot для событий bot_deleted и bot_token_recreated
+
Поле changed_at в payload исходящего вебхука о сообщении (MessageWebhookPayload)
~
Поле files[].name в методах POST /messages и PUT /messages/{id}: расширение должно совпадать с расширением файла в key
28 июля 2026

Уточнения в описании API

Подробнее описали поведение нескольких методов и полей. Работа API не менялась.

Были уточнены следующие методы:

Уточнены описания полей моделей:

  • У 32 полей описано, в каком случае приходит null. Например, last_activity_at пуст, пока сотрудник ни разу не заходил в Пачку.
  • display_avatar_url и display_name приходят только у сообщений от ботов.
  • name у реакции заполнено всегда.
  • last_name, department и title у незаполненного значения приходят как null либо как пустая строка.
  • first_name приходит как null, пока приглашённый сотрудник не завершил регистрацию, то есть пока invite_status равен sent.
  • value у дополнительного поля приходит как null, если поле не заполнено. Число передаётся строкой, дата — в формате ISO 8601.
n8nv2.0.16
−
Запись (POST/PATCH) больше не повторяется автоматически при 5xx
−
Bot: ресурс открывается на Get Many вместо Recreate own bot token
−
User: у операций со статусом и аватаркой вернулся выбор сотрудника вместо числового поля
−
User → Update Avatar и Chat → Download Export работают при выборе сущности из списка или по ссылке
−
Выбор сотрудника: список открывается сразу, без ввода текста
−
Пагинация и поиск чатов: курсор кодируется, доступны результаты со второй страницы и далее
−
Триггер: вебхук без webhook_timestamp отклоняется, если задан секрет подписи
CLIv2026.7.2
−
files direct-url: файл добавляется в форму последним
−
files direct-url не падает при успешной загрузке
−
Явный --profile не перебивается переменной PACHCA_TOKEN
−
Запись больше не повторяется автоматически при 503
−
chats download-export: имя файла из Content-Disposition не уводит запись за пределы указанной папки
−
-o csv: ячейки с =, +, -, @ экранируются, объекты и массивы выводятся как JSON
SDKv1.0.28
−
Поле details в журнале аудита (GET /audit_events) читается во всех языках
−
Ошибки API разбираются в типизированный ApiError: поле payload принимает вложенный объект
−
Python: блоки представлений (ViewBlockUnion) не теряют данные
−
Примеры из README компилируются
~
Union без общего поля-дискриминатора разбирается по составу полей. В Go у такого union появилось поле Raw с исходным JSON
~
first_name у сотрудника, value у дополнительного поля, display_avatar_url и display_name у сообщения стали опциональными
~
Reaction.name больше не nullable
~
У 32 полей описано, когда API возвращает null; исправлены примеры callback_id и private_metadata для форм
Generatorv1.1.10
+
Эмиттеры Go, C#, Swift, Kotlin и Python умеют union без дискриминатора — вариант выбирается по составу полей
−
Дискриминатор union определяется по всем членам сразу: поле принимается, только если литерал есть у каждого
−
Открытый additionalProperties даёт значение произвольного типа, а не строку. В Kotlin для него используется JsonElement
24 июля 2026

Самостоятельные треды и аудит видеозвонков

Появился метод POSTНовый самостоятельный тред — создание треда, не связанного с сообщением. Тело запроса не требуется, создатель становится единственным участником треда. Метод требует скоуп threads:create. Поскольку у такого треда нет исходного сообщения, поля message_id и message_chat_id в объекте треда теперь могут возвращаться как null — это касается всех методов работы с тредами.

В журнале аудита появились типы событий видеозвонков: video_call_started, video_call_finished и video_call_recording_ready. Их можно фильтровать параметром event_key. В деталях события возвращаются chat_id, длительность и (для записи) размер файла.

n8nv2.0.15
+
Thread: операция Create a standalone thread — создание треда без привязки к сообщению
+
Security: в фильтр событий добавлены video_call_started, video_call_finished, video_call_recording_ready
CLIv2026.7.1
+
pachca threads create — создание самостоятельного треда без привязки к сообщению
−
Примеры в --help больше не смешиваются между командами с общим путём
SDKv1.0.27
+
Метод Новый самостоятельный тред (POST /threads) — создание треда без привязки к сообщению
~
У модели Thread поля message_id и message_chat_id стали nullable (null для самостоятельного треда)
+
Журнал аудита: типы событий video_call_started, video_call_finished, video_call_recording_ready и модели деталей AuditDetailsVideoCall, AuditDetailsVideoCallRecording
07 июля 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).

n8nv2.0.14
+
Bot: новые операции Get Many (список ботов) и Delete
+
Bot: поля прав доступа who_can_add, can_edit, single_chat в операциях Create и Update
+
Trigger: события видеозвонков video_call_started, video_call_finished, video_call_recording_ready
+
User: поиск — опция сортировки Creation (по дате создания)
CLIv2026.7.0
+
pachca bots list — список ботов с поиском по имени (--query)
+
pachca bots delete — удаление бота по его id
+
pachca bots create и bots update — права доступа бота: --who-can-add, --can-edit, --single-chat
+
pachca search users — значение сортировки --sort creation (по дате создания)
SDKv1.0.26
+
Метод Список ботов (GET /bots) — список ботов с поиском по имени
+
Метод Удаление бота (DELETE /bots/{id})
+
У бота поля прав доступа: who_can_add, can_edit, single_chat
+
Новый payload исходящего вебхука VideoCallWebhookPayload и события video_call_started, video_call_finished, video_call_recording_ready
+
Журнал аудита: новый тип события bot_deleted
+
Поиск сотрудников (GET /search/users): значение сортировки creation (по дате создания)
Generatorv1.1.9
−
Kotlin SDK: сериализатор union исходящих вебхуков теперь строится по членам union, а не по захардкоженному списку — новый тип payload подхватывается автоматически (чинит компиляцию при добавлении VideoCallWebhookPayload)
24 июня 2026

Ротация токена бота и новые настройки вебхука

Токен бота теперь можно перевыпускать через 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.

n8nv2.0.13
+
Bot: новая операция Recreate Token — ротация токена бота по ID
+
Bot: новая операция Recreate Token Self — бот перевыпускает собственный токен
+
Bot: настройки вебхука Ignore Self Messages и Events History Enabled на Create/Update и в ответе
~
Ресурсы выровнены с API: экспорт чата — в Chat (Request Export, Download Export), unfurl — в Message, информация о токене — в новом OAuth. Старые workflow (Chat Export/Link Preview/Profile → Get Info) продолжают работать
CLIv2026.6.3
~
Команды реорганизованы по разделам: 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
SDKv1.0.25
+
Метод Ротация токена бота (POST /bots/{id}/recreate_token)
+
Метод Ротация собственного токена бота (POST /bot/recreate_token)
+
У бота поля настроек вебхука: ignore_self_messages, events_history_enabled
+
Журнал аудита: новые типы событий bot_token_recreated, bot_scopes_updated, bot_webhook_settings_updated
~
Сервисы реорганизованы: загрузка файлов — client.files, дополнительные поля — client.customProperties, информация о токене — client.oauth, unfurl — client.messages.unfurl() (бывш. createLinkPreviews). Старые имена (client.common, client.linkPreviews.createLinkPreviews(), client.profile.getTokenInfo()) продолжают работать как deprecated-алиасы — существующий код не ломается
Generatorv1.1.8
+
Генерация deprecated-алиасов сервисов: при переносе операций в новый сервис старые имена (client.common и т.п.) сохраняются как рабочие, но скрытые из примеров аксессоры (обратная совместимость SDK)
19 июня 2026

Настройки входящего вебхука бота и сортировка в поиске сообщений

При создании и редактировании бота теперь можно настроить его входящий вебхук: шаблон форматирования template, шаблонизатор template_engine (liquid или mustache), поле верификации challenge_key и показ превью ссылок link_preview_enabled. Эти же поля возвращаются в объекте бота. Подробнее о шаблонах и верификации — в гайде Входящие вебхуки.

В поиске сообщений появился параметр sort — сортировка результатов: created_at (по дате создания, по умолчанию) или relevance (по релевантности).

n8nv2.0.12
+
Bot: настройки входящего вебхука в операциях Create/Update и в ответе — Template, Template Engine, Challenge Key, Link Preview Enabled
+
Search: операция поиска сообщений — поле Sort (сортировка Created At или Relevance)
CLIv2026.6.2
+
pachca bots create — настройки входящего вебхука: --template, --template-engine, --challenge-key, --link-preview-enabled
+
pachca bots update — настройки входящего вебхука: --template, --template-engine, --challenge-key, --link-preview-enabled
+
pachca search list-messages — параметр --sort (сортировка: created_at или relevance)
SDKv1.0.24
+
У бота поля настроек входящего вебхука: template, template_engine, challenge_key, link_preview_enabled
+
Параметр sort в поиске сообщений (GET /search/messages): created_at или relevance
−
Python SDK: исправлен NameError в авто-ретрае при ответах 429 и 5xx
Generatorv1.1.7
−
Python: согласованы имя объявления и вызова jitter-функции в ретрае (раньше ретрай падал NameError на 429/5xx)
16 июня 2026

Настраиваемые скоупы ботов и саморегистрация вебхука

Теперь при создании и редактировании бота можно задать скоупы его токена — параметр scopes. Если он не указан, бот получает набор по умолчанию. Текущие скоупы бота возвращаются в объекте бота в поле scopes.

Бот может самостоятельно изменить URL своего исходящего вебхука своим же токеном — без участия администратора и без знания собственного user_id. Для этого нужен скоуп bot_self:webhook:write.

n8nv2.0.11
~
Bot: параметр Scopes (выбор скоупов токена) и поле scopes в ответе
+
Bot: новая операция Update Webhook — саморегистрация исходящего вебхука бота его токеном
+
Pachca Trigger: автоматический режим теперь работает и с токеном бота — узел сам регистрирует и очищает вебхук, без Bot ID (персональному токену по-прежнему нужен Bot ID)
CLIv2026.6.1
~
pachca bots create — параметр --scopes (выбор скоупов токена бота)
~
pachca bots update — параметр --scopes (изменение скоупов токена бота)
+
pachca bots update-webhook — саморегистрация исходящего вебхука бота его собственным токеном
SDKv1.0.23
~
У бота параметр scopes (выбор скоупов токена) и поле scopes в ответе
+
Метод Саморегистрация вебхука бота (PUT /bot/webhook)
15 июня 2026

Создание ботов через API, голосовые сообщения

Теперь бота можно создать и получить через API, а не только в интерфейсе. При создании вы получите access_token бота — сразу сохраните его, повторно получить токен можно только через интерфейс.

Новые и обновлённые методы для ботов:

Появилась поддержка голосовых сообщений. В сообщении возвращается объект voice_content с длительностью, формой волны и расшифровкой, а при отправке файла с file_type = voice принимаются параметры duration_ms и waveform.

В payload вебхука реакции поле created_at теперь приходит и при удалении реакции. Также в деталях события аудита DLP поле action_message может быть null, если у действия правила не задан текст.

n8nv2.0.10
+
Bot: новые операции Create и Get
+
Message: голосовые сообщения — поле voice_content и параметры файла duration_ms / waveform
CLIv2026.6.0
+
pachca bots create — создание бота и получение его access_token
+
pachca bots get — получение параметров бота
~
pachca bots update — новые поля --name, --nickname, --events, --trigger-on, --commands
+
В выводе сообщений — поле voice_content и параметры файлов --duration-ms / --waveform для голосовых
SDKv1.0.22
+
Методы Новый бот (POST /bots) и Информация о боте (GET /bots/{id})
+
Поле voice_content в модели сообщения и параметры файлов duration_ms / waveform для голосовых
05 июня 2026

Webhook-модели и polling в SDK

SDK стали точнее типизировать payload вебхуков и получили helpers для polling истории событий. Это упрощает обработку вебхуков без публичного webhook URL и сохраняет discriminator-поля для маршрутизации событий в коде.

Был обновлен следующий метод:

SDKv1.0.21
~
SDK сохраняют литеральные поля webhook-моделей, включая type и дополнительный дискриминатор event
+
SDK получили helpers для polling истории вебхуков и примеры запуска без публичного webhook URL
Generatorv1.1.6
~
Генераторы сохраняют литеральные поля моделей, включая основной дискриминатор type и дополнительные литералы вроде event
+
Генераторы выпускают SDK helpers для polling истории вебхуков во всех поддерживаемых языках
02 июня 2026
SDKv1.0.20
~
Go SDK: явные пустые массивы и объекты в optional request-полях теперь сериализуются как [] / {} и не теряются из-за omitempty
Generatorv1.1.5
~
Go generator: для optional non-null array/map полей генерируется MarshalJSON, чтобы сохранять явные пустые контейнеры в JSON