# Цифровые рабочие места

Управление цифровыми рабочими местами CRM: создание, получение, обновление, удаление и привязка к ним типов смарт-процессов. Рабочее место — отдельный раздел портала, в котором собраны привязанные к нему смарт-процессы.

Битрикс24 API: `crm.automatedsolution.*`
Скоуп: `crm`

## Операции

- [Создать рабочее место](./automated-solutions/create.md) — `POST /v1/automated-solutions`
- [Список рабочих мест](./automated-solutions/list.md) — `GET /v1/automated-solutions`
- [Получить рабочее место](./automated-solutions/get.md) — `GET /v1/automated-solutions/:id`
- [Обновить рабочее место](./automated-solutions/update.md) — `PATCH /v1/automated-solutions/:id`
- [Удалить рабочее место](./automated-solutions/delete.md) — `DELETE /v1/automated-solutions/:id`
- [Поля рабочего места](./automated-solutions/fields.md) — `GET /v1/automated-solutions/fields`

## Ключевые поля

| Поле | Описание |
|------|---------|
| `id` | Идентификатор рабочего места. Назначается при создании |
| `title` | Название рабочего места. Обязательно при создании |
| `typeIds` | Идентификаторы привязанных типов смарт-процессов — поле `id` типа из [`GET /v1/smart-processes`](/docs/entities/smart-processes/list), а не его `entityTypeId` |

У сущности три поля, все перечислены выше. Типы и признак `readonly` — [Поля рабочего места](./automated-solutions/fields.md).

## Что нужно знать перед работой

1. **Смарт-процесс привязывается со стороны рабочего места.** Привязку задаёт поле `typeIds` рабочего места — при [создании](./automated-solutions/create.md) и [обновлении](./automated-solutions/update.md). Поле `customSectionId` у типа смарт-процесса устарело: оно принимается только при создании типа, а `PATCH /v1/smart-processes/:entityTypeId` отклоняет его с `400 READONLY_FIELD`.
2. **`typeIds` в `PATCH` перезаписывается целиком.** Переданный массив заменяет текущий набор привязанных типов. Чтобы добавить один тип, получите текущий набор через [`GET /v1/automated-solutions/:id`](./automated-solutions/get.md) и отправьте его вместе с `id` нового типа. Если ключ `typeIds` не передан, набор не меняется. Пустой массив `[]` отвязывает все типы.
3. **Тип смарт-процесса состоит только в одном рабочем месте.** Привязка типа к рабочему месту снимает его с прежнего — так типы переносят между рабочими местами.
4. **Неизвестный идентификатор в `typeIds` отбрасывается без ошибки.** Значение, которому не соответствует ни один тип, в том числе `entityTypeId` вместо `id`, не привязывается, а ответ остаётся успешным. В `PATCH` это может отвязать все типы рабочего места: сверяйте `typeIds` в ответе с отправленным набором.
5. **Фильтр и сортировка списка — только по `id` и `title`.** Любое другое имя поля, включая `typeIds`, отклоняется с `400 UNKNOWN_FILTER_FIELD` или `400 UNKNOWN_SORT_FIELD`. Найти рабочее место по привязанному типу можно только перебором списка.
6. **Удалить можно только рабочее место без привязанных типов.** Если к нему привязан хотя бы один тип, `DELETE` возвращает `422 BITRIX_ERROR` с `b24Code: "HAS_BOUND_TYPES"`. Сначала отвяжите типы или перенесите их в другое рабочее место, затем повторите удаление.
7. **Рабочие места, установленные приложением Маркетплейса, закрыты на изменение и удаление.** Отличить их по ответу API нельзя: признака происхождения в полях нет. Попытка изменить или удалить такое место возвращает `403 BITRIX_ACCESS_DENIED` — тот же код, что и при нехватке прав у владельца ключа. Подсказка в `error.hint` называет обе причины. Рабочие места, созданные через `POST /v1/automated-solutions`, так не блокируются.
8. **Число рабочих мест на портале ограничено.** В облаке Битрикс24 предел зависит от тарифа. При исчерпании `POST /v1/automated-solutions` возвращает `403 B24_AUTOMATED_SOLUTION_LIMIT_EXCEEDED`, повтор запроса не поможет.

## Типичный сценарий

1. Найти нужный тип смарт-процесса и запомнить его `id` — не `entityTypeId`: [`GET /v1/smart-processes`](/docs/entities/smart-processes/list).
2. Посмотреть, какие рабочие места уже есть: [`GET /v1/automated-solutions`](./automated-solutions/list.md).
3. Создать рабочее место сразу с привязкой: [`POST /v1/automated-solutions`](./automated-solutions/create.md) с `title` и `typeIds`.
4. Добавить тип в существующее рабочее место: получить текущий набор через [`GET /v1/automated-solutions/:id`](./automated-solutions/get.md) и отправить полный набор в [`PATCH /v1/automated-solutions/:id`](./automated-solutions/update.md).
5. Убрать рабочее место: отвязать типы через `PATCH` с `typeIds: []`, затем [`DELETE /v1/automated-solutions/:id`](./automated-solutions/delete.md).

## Лимиты

| Лимит | Значение |
|-------|----------|
| Число рабочих мест на портале | Зависит от тарифа Битрикс24. При превышении — `403 B24_AUTOMATED_SOLUTION_LIMIT_EXCEEDED` |
| Максимум записей на запрос | 5000 (`limit ≤ 5000`) |
| Batch-запросы | до 50 операций в [`POST /v1/batch`](/docs/batch) |
| Ограничение частоты | Общее для API Вайбкод — см. [Лимиты и оптимизация](/docs/optimization) |

## Смотрите также

- [Типы смарт-процессов](/docs/entities/smart-processes)
- [Элементы смарт-процессов](/docs/entities/items)
- [Entity API](/docs/entity-api)
- [Синтаксис фильтрации](/docs/filtering)
- [Справочник API](/docs/api-reference)
