Для AI-агентов: markdown этой страницы — /docs-content/entities/automated-solutions/update.md индекс документации — /llms.txt
Обновить рабочее место
PATCH /v1/automated-solutions/:id
Обновляет цифровое рабочее место CRM — этим вызовом типы смарт-процессов привязывают к рабочему месту и отвязывают от него.
Поля передаются плоско в корне JSON — без обёртки fields.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
id (path) |
number | да | Идентификатор рабочего места. Список: GET /v1/automated-solutions |
Поля запроса (body)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
title |
string | нет | Новое название рабочего места |
typeIds |
number[] | нет | Полный набор идентификаторов типов смарт-процессов, которые должны быть привязаны к рабочему месту, — поле id типа из GET /v1/smart-processes, а не его entityTypeId. Переданный массив заменяет текущий набор целиком. Без ключа typeIds набор не меняется, пустой массив [] отвязывает все типы. Текущий набор: GET /v1/automated-solutions/:id |
Примеры
curl — личный ключ
curl -X PATCH "https://vibecode.bitrix24.tech/v1/automated-solutions/11" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"typeIds": [63]
}'
curl — OAuth-приложение
curl -X PATCH "https://vibecode.bitrix24.tech/v1/automated-solutions/11" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"typeIds": [63]
}'
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/automated-solutions/11', {
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
typeIds: [63],
}),
})
const { success, data } = await res.json()
console.log('Привязанные типы:', data.typeIds)
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/automated-solutions/11', {
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
typeIds: [63],
}),
})
const { success, data } = await res.json()
console.log('Привязанные типы:', data.typeIds)
Поля ответа
Ответ содержит рабочее место целиком, а не только переданные поля.
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | true при успешном обновлении |
data.id |
number | Идентификатор рабочего места |
data.title |
string | Название рабочего места после обновления |
data.typeIds |
number[] | Идентификаторы типов смарт-процессов, которые действительно привязаны к рабочему месту после обновления |
Пример ответа
{
"success": true,
"data": {
"id": 11,
"title": "Закупки",
"typeIds": [63]
}
}
Пример ответа при ошибке
404 — рабочего места с таким id нет:
{
"success": false,
"error": {
"code": "ENTITY_NOT_FOUND",
"message": "Элемент не найден"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 404 | ENTITY_NOT_FOUND |
Рабочего места с таким id нет |
| 400 | READONLY_FIELD |
В теле передан id — поле только для чтения. Запрос отклоняется до обращения к порталу |
| 403 | BITRIX_ACCESS_DENIED |
Рабочее место установлено приложением Маркетплейса и закрыто на изменение, либо у владельца ключа не хватает прав. Поля b24Code в ответе нет, подсказка в error.hint называет обе причины |
| 403 | B24_AUTOMATED_SOLUTION_LIMIT_EXCEEDED |
На портале исчерпан предел числа рабочих мест, в облаке Битрикс24 он зависит от тарифа. Повтор запроса не поможет. Подсказка в error.hint называет выход: перенести типы и удалить пустое рабочее место либо повысить тариф |
| 401 | MISSING_API_KEY |
Заголовок X-Api-Key не передан |
| 403 | SCOPE_DENIED |
API-ключ не имеет скоупа crm |
| 401 | TOKEN_MISSING |
API-ключ не имеет настроенных токенов |
Полный список общих ошибок API — Ошибки.
Известные особенности
Тип смарт-процесса состоит только в одном рабочем месте. Если тип из typeIds уже привязан к другому рабочему месту, вызов переносит его: из набора прежнего рабочего места тип исчезает без отдельного запроса. Так типы переносят перед удалением рабочего места.
Неизвестный идентификатор в typeIds молча отвязывает типы. Значение, которому не соответствует ни один тип смарт-процесса, в том числе entityTypeId вместо id, отбрасывается, а ответ остаётся 200. Поскольку набор заменяется целиком, такой вызов может отвязать все типы рабочего места. Сверяйте data.typeIds в ответе с отправленным набором.