Для разработчиков
Последние обновления

Осень 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