For AI agents: markdown of this page — /docs-content-en/entities/automated-solutions.md documentation index — /llms.txt

Digital workspaces

Manage CRM digital workspaces: create, get, update and delete them, and bind smart process types to them. A workspace is a separate section of the Bitrix24 account that groups the smart processes bound to it.

Bitrix24 API: crm.automatedsolution.* Scope: crm

Create workspace

POST /v1/automated-solutions

Creates a CRM digital workspace — a separate section of the Bitrix24 account to which smart process types can be bound in the same request.

Fields are passed flat at the JSON root — without a fields wrapper.

Request fields (body)

Field Type Required Description
title string yes Workspace name
typeIds number[] no IDs of the smart process types to bind to the workspace — the type id field from GET /v1/smart-processes, not its entityTypeId. If the key is omitted, the workspace is created with no bound types

Examples

curl — personal key

Terminal
curl -X POST "https://vibecode.bitrix24.com/v1/automated-solutions" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "HR processes",
    "typeIds": [63]
  }'

curl — OAuth application

Terminal
curl -X POST "https://vibecode.bitrix24.com/v1/automated-solutions" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "HR processes",
    "typeIds": [63]
  }'

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/automated-solutions', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    title: 'HR processes',
    typeIds: [63],
  }),
})

const { success, data } = await res.json()
console.log('Workspace ID:', data.id, 'bound types:', data.typeIds)

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/automated-solutions', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    title: 'HR processes',
    typeIds: [63],
  }),
})

const { success, data } = await res.json()
console.log('Workspace ID:', data.id, 'bound types:', data.typeIds)

Response fields

The response code is 201 Created.

Field Type Description
success boolean true on successful creation
data.id number Identifier of the created workspace
data.title string Workspace name
data.typeIds number[] IDs of the smart process types actually bound to the workspace. List of types: GET /v1/smart-processes, field id

Response example

JSON
{
  "success": true,
  "data": {
    "id": 9,
    "title": "HR processes",
    "typeIds": [63]
  }
}

Error response example

400 — the required title field is missing:

JSON
{
  "success": false,
  "error": {
    "code": "MISSING_REQUIRED_FIELDS",
    "message": "Body field \"title\" is required to create automatedSolution."
  }
}

Errors

HTTP Code Description
400 MISSING_REQUIRED_FIELDS The body has no title. The request is rejected before it reaches the Bitrix24 portal
400 READONLY_FIELD The body contains id — a read-only field
403 B24_AUTOMATED_SOLUTION_LIMIT_EXCEEDED The portal has reached its limit on the number of workspaces; in the Bitrix24 cloud the limit depends on the plan. Retrying the request does not help. error.hint suggests what to do: move the types and delete an empty workspace, or upgrade the plan
401 MISSING_API_KEY The X-Api-Key header is missing
403 SCOPE_DENIED The API key does not have the crm scope
401 TOKEN_MISSING The API key has no configured tokens

Full list of common API errors — Errors.

Known specifics

An unknown ID in typeIds does not cause an error. A value that matches no smart process type, including an entityTypeId passed instead of the id, is dropped: the workspace is created with 201, but without that type. Compare data.typeIds in the response with the set you sent.

See also