#Update a smart process type

PATCH /v1/smart-processes/:entityTypeId

Updates the fields of an existing smart process type. Pass only the fields you need to change — the rest stay the same.

#Parameters

Parameter Type Required Description
entityTypeId (path) number yes Entity type ID. List: GET /v1/smart-processes

#Request fields (body)

All fields are optional. Fields that are not passed stay unchanged.

Field Type Description
title string Smart process name
code string Symbolic code of the type (for programmatic identification)
isCategoriesEnabled boolean Use custom pipelines and sales tunnels
isStagesEnabled boolean Use custom stages and kanban
isBeginCloseDatesEnabled boolean "Start date" and "End date" fields
isClientEnabled boolean "Client" field linked to contacts and companies
isLinkWithProductsEnabled boolean Linking catalog products
isMycompanyEnabled boolean "Your company details" field
isObserversEnabled boolean "Observers" field
isSourceEnabled boolean "Source" and "More about the source" fields
isAutomationEnabled boolean Automation rules and triggers
isBizProcEnabled boolean Business process designer
isDocumentsEnabled boolean Document printing
isRecyclebinEnabled boolean Recycle bin usage
isSetOpenPermissions boolean Make new pipelines available to everyone
isUseInUserfieldEnabled boolean Use the smart process in a user field
isRecurringEnabled boolean "Recurrence" field
isPaymentsEnabled boolean Online payment
isCountersEnabled boolean Counters (notifications and badges)
relations object Relations with other CRM entities. Fully replaces existing relations — see "Known specifics"
linkedUserFields object User fields in which the smart process is displayed. Format — see Create type

Full list of fields: GET /v1/smart-processes/fields.

entityTypeId cannot be changed — it is set on creation and stays immutable.

#Frequently updated fields

  • title — renaming the type
  • isStagesEnabled, isCategoriesEnabled, isAutomationEnabled, isBizProcEnabled — enabling/disabling core capabilities
  • code — assigning a programmatic identifier
  • relations — configuring relations with other CRM types

#Examples

#curl — personal key

Terminal
curl -X PATCH https://vibecode.bitrix24.tech/v1/smart-processes/1050 \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Supply contracts (updated name)",
    "code": "supply_contracts",
    "isAutomationEnabled": false
  }'

#curl — OAuth application

Terminal
curl -X PATCH https://vibecode.bitrix24.tech/v1/smart-processes/1050 \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Supply contracts (updated name)",
    "code": "supply_contracts",
    "isAutomationEnabled": false
  }'

#JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/smart-processes/1050', {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    title: 'Supply contracts (updated name)',
    code: 'supply_contracts',
    isAutomationEnabled: false,
  }),
})

const { success, data } = await res.json()
console.log('Updated at:', data.updatedTime)

#JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/smart-processes/1050', {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    title: 'Supply contracts (updated name)',
    code: 'supply_contracts',
    isAutomationEnabled: false,
  }),
})

const { success, data } = await res.json()

#Response fields

Field Type Description
data object The full type object after the update. List of fields — see Type fields

#Response example

JSON
{
  "success": true,
  "data": {
    "id": 31,
    "entityTypeId": 1050,
    "title": "Supply contracts (updated name)",
    "code": "supply_contracts",
    "createdBy": 1,
    "createdTime": "2026-04-21T13:46:45+03:00",
    "updatedBy": 1,
    "updatedTime": "2026-04-21T14:50:13+03:00",
    "customSectionId": null,
    "isCategoriesEnabled": true,
    "isStagesEnabled": true,
    "isBeginCloseDatesEnabled": false,
    "isClientEnabled": false,
    "isLinkWithProductsEnabled": true,
    "isMycompanyEnabled": false,
    "isObserversEnabled": false,
    "isSourceEnabled": false,
    "isAutomationEnabled": false,
    "isBizProcEnabled": true,
    "isDocumentsEnabled": false,
    "isRecyclebinEnabled": false,
    "isSetOpenPermissions": true,
    "isUseInUserfieldEnabled": false,
    "isRecurringEnabled": false,
    "isPaymentsEnabled": false,
    "isCountersEnabled": false,
    "isInitialized": true
  }
}

#Error response example

404 — type not found:

JSON
{
  "success": false,
  "error": {
    "code": "SMART_PROCESS_NOT_FOUND",
    "message": "Smart process with entityTypeId=99999 not found"
  }
}

#Errors

HTTP Code Description
401 MISSING_API_KEY The X-Api-Key header was not passed
401 INVALID_API_KEY The key was not found or was revoked
403 SCOPE_DENIED The API key does not have the crm scope
401 TOKEN_MISSING The API key has no configured tokens
404 SMART_PROCESS_NOT_FOUND A type with this entityTypeId was not found. Message: Smart process with entityTypeId=X not found
422 BITRIX_ERROR A validation error from Bitrix24. The specific reason is in the message field

Full list of general API errors — Errors.

#Known specifics

relations fully replaces existing relations. If you pass relations: {parent: [{entityTypeId: 3}]}, all previous parent relations will be deleted and replaced with a single new array. To add a relation without losing the current ones — first get the current state via GET /v1/smart-processes/:entityTypeId, add a new record to the array, and pass the entire updated list.

The same applies to child and linkedUserFields — this is a "full overwrite", not a "per-record patch".

An empty body ({}) is allowed. A PATCH with an empty object returns HTTP 200 and the current state of the type, changing nothing.

Changing entityTypeId is not possible — it is set on creation and serves as a stable identifier of the type.

#See also