[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-entities\u002Fsmart-processes":3,"docs-tabs-entities\u002Fsmart-processes":6},{"content":4,"lastmod":5},"# Типы смарт-процессов\n\nУправление типами смарт-процессов: создание, получение, обновление, удаление, поиск. Тип — это шаблон (определение сущности), а не запись в нём. Для работы с элементами внутри типа используйте [`\u002Fv1\u002Fitems\u002F:entityTypeId`](\u002Fdocs\u002Fentities\u002Fitems).\n\nБитрикс24 API: `crm.type.*`\nСкоуп: `crm`\n\n## Операции\n\n- [Создать тип](.\u002Fsmart-processes\u002Fcreate.md) — `POST \u002Fv1\u002Fsmart-processes`\n- [Список типов](.\u002Fsmart-processes\u002Flist.md) — `GET \u002Fv1\u002Fsmart-processes`\n- [Получить тип](.\u002Fsmart-processes\u002Fget.md) — `GET \u002Fv1\u002Fsmart-processes\u002F:entityTypeId`\n- [Обновить тип](.\u002Fsmart-processes\u002Fupdate.md) — `PATCH \u002Fv1\u002Fsmart-processes\u002F:entityTypeId`\n- [Удалить тип](.\u002Fsmart-processes\u002Fdelete.md) — `DELETE \u002Fv1\u002Fsmart-processes\u002F:entityTypeId`\n- [Поиск типов](.\u002Fsmart-processes\u002Fsearch.md) — `POST \u002Fv1\u002Fsmart-processes\u002Fsearch`\n- [Поля типа](.\u002Fsmart-processes\u002Ffields.md) — `GET \u002Fv1\u002Fsmart-processes\u002Ffields`\n- [Агрегация типов](.\u002Fsmart-processes\u002Faggregate.md) — `POST \u002Fv1\u002Fsmart-processes\u002Faggregate`\n\n## Ключевые поля\n\n| Поле | Описание |\n|------|---------|\n| `entityTypeId` | **Главный идентификатор типа.** Используется во всех запросах к элементам через `\u002Fv1\u002Fitems\u002F:entityTypeId`. Генерируется при создании автоматически, неизменяем |\n| `title` | Название типа, которое видят пользователи в интерфейсе Битрикс24 |\n| `isCategoriesEnabled` | Включены ли свои воронки и туннели продаж |\n| `isStagesEnabled` | Включены ли свои стадии и канбан |\n| `isClientEnabled` | Есть ли поле «Клиент» (контакты и компании) |\n| `isLinkWithProductsEnabled` | Можно ли привязывать товары каталога |\n| `relations` | Связи с другими сущностями CRM (сделки, контакты, другие смарт-процессы) |\n\nПолный список из 27 полей — [Поля типа](.\u002Fsmart-processes\u002Ffields.md).\n\n## Что нужно знать перед работой\n\n1. **Тип ≠ элемент.** `\u002Fv1\u002Fsmart-processes` управляет **определениями** (шаблонами). Для записей внутри типа — `\u002Fv1\u002Fitems\u002F:entityTypeId`.\n2. **`entityTypeId` — ключ связи с элементами.** После создания типа сохраните его и передавайте во все запросы к элементам. Изменить `entityTypeId` нельзя.\n3. **Новый тип не инициализирован.** Сразу после `POST \u002Fv1\u002Fsmart-processes` поле `isInitialized: false`. Для готовности к работе добавьте воронки и стадии через [`\u002Fv1\u002Fcategories\u002F:entityTypeId`](\u002Fdocs\u002Fentities\u002Fcategories).\n4. **`relations` двунаправленные.** Связь, созданная в `parent` одного типа, автоматически появится в `child` у связанной сущности.\n\n## Типичный сценарий\n\n1. Посмотреть, какие типы уже есть: [`GET \u002Fv1\u002Fsmart-processes`](.\u002Fsmart-processes\u002Flist.md).\n2. Создать новый тип со всеми нужными возможностями: [`POST \u002Fv1\u002Fsmart-processes`](.\u002Fsmart-processes\u002Fcreate.md) с флагами `isStagesEnabled`, `isCategoriesEnabled` и т. д.\n3. Сохранить `entityTypeId` из ответа — он понадобится для всех дальнейших вызовов.\n4. Настроить воронки для типа: [`POST \u002Fv1\u002Fcategories\u002F:entityTypeId`](\u002Fdocs\u002Fentities\u002Fcategories).\n5. Работать с элементами внутри типа: [`\u002Fv1\u002Fitems\u002F:entityTypeId`](\u002Fdocs\u002Fentities\u002Fitems) — CRUD, поиск, товары, пользовательские поля.\n\n## Лимиты\n\n| Лимит | Значение |\n|-------|----------|\n| Максимум типов на портал | Зависит от тарифа Битрикс24 (при превышении — `CREATE_DYNAMIC_TYPE_RESTRICTED`) |\n| Диапазон `entityTypeId` при автогенерации | Чётные числа `≥ 1030` |\n| Диапазон `entityTypeId` при явной передаче | от `128` до `191` — `≥ 128` и `\u003C 192` |\n| Удаление типа с элементами | Запрещено — сначала удалите элементы через [`DELETE \u002Fv1\u002Fitems\u002F:entityTypeId\u002F:id`](\u002Fdocs\u002Fentities\u002Fitems) |\n| Ограничение частоты | Общее для API Вайбкод — см. [Лимиты и оптимизация](\u002Fdocs\u002Foptimization) |\n\n## Смотрите также\n\n- [Элементы смарт-процессов](\u002Fdocs\u002Fentities\u002Fitems)\n- [Воронки и стадии](\u002Fdocs\u002Fentities\u002Fcategories)\n- [Пользовательские поля](\u002Fdocs\u002Fuserfields)\n- [Entity API](\u002Fdocs\u002Fentity-api)\n- [Синтаксис фильтрации](\u002Fdocs\u002Ffiltering)\n- [Справочник сущностей](\u002Fdocs\u002Fentities-index)\n","2026-06-29",{"smart-processes\u002Fcreate.md":7,"smart-processes\u002Flist.md":8,"smart-processes\u002Fget.md":9,"smart-processes\u002Fupdate.md":10,"smart-processes\u002Fdelete.md":11,"smart-processes\u002Fsearch.md":12,"smart-processes\u002Ffields.md":13,"smart-processes\u002Faggregate.md":14},"\n## Создать тип смарт-процесса\n\n`POST \u002Fv1\u002Fsmart-processes`\n\nСоздаёт новый тип смарт-процесса с автоматически назначенным `entityTypeId`. После создания тип доступен в `\u002Fv1\u002Fitems\u002F:entityTypeId` для CRUD операций по элементам.\n\n## Поля запроса (body)\n\n| Поле | Тип | Обяз. | По умолч. | Описание |\n|------|-----|:-----:|:---------:|---------|\n| `title` | string | **да** | — | Название смарт-процесса |\n| `isCategoriesEnabled` | boolean | | `false` | Использовать в смарт-процессе свои воронки и туннели продаж |\n| `isStagesEnabled` | boolean | | `false` | Использовать в смарт-процессе свои стадии и канбан |\n| `isBeginCloseDatesEnabled` | boolean | | `false` | Поля «Дата начала» и «Дата завершения» |\n| `isClientEnabled` | boolean | | `false` | Поле «Клиент» с привязкой к контактам и компаниям |\n| `isLinkWithProductsEnabled` | boolean | | `false` | Привязка товаров каталога |\n| `isMycompanyEnabled` | boolean | | `false` | Поле «Реквизиты вашей компании» |\n| `isObserversEnabled` | boolean | | `false` | Поле «Наблюдатели» |\n| `isSourceEnabled` | boolean | | `false` | Поля «Источник» и «Дополнительно об источнике» |\n| `isAutomationEnabled` | boolean | | `false` | Роботы и триггеры |\n| `isBizProcEnabled` | boolean | | `false` | Дизайнер бизнес-процессов |\n| `isDocumentsEnabled` | boolean | | `false` | Печать документов |\n| `isRecyclebinEnabled` | boolean | | `false` | Использование корзины |\n| `isSetOpenPermissions` | boolean | | **`true`** | Делать новые воронки доступными для всех |\n| `isUseInUserfieldEnabled` | boolean | | `false` | Использовать смарт-процесс в пользовательском поле |\n| `isRecurringEnabled` | boolean | | `false` | Поле «Регулярность» |\n| `isPaymentsEnabled` | boolean | | `false` | Онлайн-оплата |\n| `isCountersEnabled` | boolean | | `false` | Счётчики (уведомления и бейджи) |\n| `relations` | object | | `{}` | Связи с другими сущностями CRM — см. «Связи и пользовательские поля» ниже |\n| `linkedUserFields` | object | | `{}` | Набор пользовательских полей, в которых будет отображаться смарт-процесс — см. «Связи и пользовательские поля» ниже |\n\nПолный список полей: [GET \u002Fv1\u002Fsmart-processes\u002Ffields](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Ffields).\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"title\": \"Договоры поставки\",\n    \"isStagesEnabled\": true,\n    \"isCategoriesEnabled\": true,\n    \"isAutomationEnabled\": true,\n    \"isBizProcEnabled\": true,\n    \"isLinkWithProductsEnabled\": true\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"title\": \"Договоры поставки\",\n    \"isStagesEnabled\": true,\n    \"isCategoriesEnabled\": true,\n    \"isAutomationEnabled\": true,\n    \"isBizProcEnabled\": true,\n    \"isLinkWithProductsEnabled\": true\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    title: 'Договоры поставки',\n    isStagesEnabled: true,\n    isCategoriesEnabled: true,\n    isAutomationEnabled: true,\n    isBizProcEnabled: true,\n    isLinkWithProductsEnabled: true,\n  }),\n})\n\nconst { success, data } = await res.json()\nconsole.log('Создан тип, entityTypeId:', data.entityTypeId)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    title: 'Договоры поставки',\n    isStagesEnabled: true,\n    isCategoriesEnabled: true,\n    isAutomationEnabled: true,\n    isBizProcEnabled: true,\n    isLinkWithProductsEnabled: true,\n  }),\n})\n\nconst { success, data } = await res.json()\n```\n\n## Связи и пользовательские поля\n\nПоля `relations` и `linkedUserFields` не описаны в `\u002Ffields`, но принимаются при создании и сохраняются Битрикс24.\n\n### `relations` — связи с сущностями CRM\n\nОбъект с двумя массивами: `parent` (родительские типы) и `child` (дочерние типы).\n\n```json\n{\n  \"title\": \"Договоры поставки\",\n  \"relations\": {\n    \"parent\": [\n      { \"entityTypeId\": 2, \"isChildrenListEnabled\": \"Y\" }\n    ],\n    \"child\": [\n      { \"entityTypeId\": 3, \"isChildrenListEnabled\": \"Y\" }\n    ]\n  }\n}\n```\n\n| Поле записи | Тип | Описание |\n|---|---|---|\n| `entityTypeId` | number | ID связанного типа (2 = сделки, 3 = контакты, 4 = компании, 7 = коммерческие предложения, 31 = счета, 1030+ = смарт-процессы) |\n| `isChildrenListEnabled` | boolean \u002F string | Отображать ли список записей этого смарт-процесса в карточке связанного типа |\n\n> **Формат `isChildrenListEnabled`.** Поле принимает булево `true`\u002F`false`, строки `\"Y\"`\u002F`\"N\"` или `\"true\"`\u002F`\"false\"` — значение нормализуется автоматически (`true`\u002F`\"Y\"`\u002F`\"yes\"`\u002F`1` → включено, `false`\u002F`\"N\"`\u002F`\"no\"`\u002F`0` → выключено). В ответе флаг всегда возвращается как `\"Y\"`\u002F`\"N\"`.\n\n**Побочный эффект от `isClientEnabled: true`:** Битрикс24 автоматически добавит в `relations.parent` связи с контактами (`entityTypeId: 3`) и компаниями (`entityTypeId: 4`) с флагом `isPredefined: \"Y\"` — передавать их вручную не нужно.\n\n### `linkedUserFields` — отображение в пользовательских полях\n\nОбъект, где ключ — идентификатор поля из другой сущности в формате `{ENTITY_CODE}|{FIELD_NAME}`, значение — включить (`true`) или выключить (`false`) отображение.\n\n> **Формат значения.** Поле принимает булево `true`\u002F`false`, строки `\"Y\"`\u002F`\"N\"` или `\"true\"`\u002F`\"false\"` — значение нормализуется автоматически (`true`\u002F`\"Y\"`\u002F`\"yes\"`\u002F`1` → включено, `false`\u002F`\"N\"`\u002F`\"no\"`\u002F`0` → выключено). В ответе флаг всегда возвращается как `\"Y\"`\u002F`\"N\"`.\n\n```json\n{\n  \"title\": \"Договоры поставки\",\n  \"linkedUserFields\": {\n    \"TASKS_TASK|UF_CRM_TASK\": \"Y\",\n    \"TASKS_TASK_TEMPLATE|UF_CRM_TASK\": \"Y\",\n    \"CALENDAR_EVENT|UF_CRM_CAL_EVENT\": \"Y\"\n  }\n}\n```\n\nПоддерживаются 3 фиксированных ключа:\n\n| Ключ | Где отобразится смарт-процесс |\n|------|------------------------------|\n| `TASKS_TASK\\|UF_CRM_TASK` | Поле «Элемент CRM» в задачах |\n| `TASKS_TASK_TEMPLATE\\|UF_CRM_TASK` | Поле «Элемент CRM» в шаблонах задач |\n| `CALENDAR_EVENT\\|UF_CRM_CAL_EVENT` | Поле «Элемент CRM» в событиях календаря |\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `id` | number | Внутренний ID записи типа |\n| `entityTypeId` | number | **Назначенный `entityTypeId`** — используется в `\u002Fv1\u002Fitems\u002F:entityTypeId` |\n| `title` | string | Название |\n| `createdBy` | number | Создатель |\n| `updatedBy` | number | Последний редактор |\n| `createdTime` | datetime | Дата создания |\n| `updatedTime` | datetime | Дата изменения |\n| `customSectionId` | number \\| null | ID цифрового рабочего места, если привязан |\n\nПлюс все `isXxxEnabled` флаги в том состоянии, которое было передано (или `false` по умолчанию). Полный список — [Поля типа](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Ffields).\n\nСписок элементов созданного типа открывается в Битрикс24 по `entityTypeId`:\n\n```\nhttps:\u002F\u002F\u003Cportal>.bitrix24.ru\u002Fcrm\u002Ftype\u002F\u003CentityTypeId>\u002Flist\u002Fcategory\u002F0\u002F\n```\n\n`0` — основная воронка. `\u003Cportal>` — домен портала. Доступ ограничен правами сотрудника в Битрикс24.\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 31,\n    \"entityTypeId\": 1050,\n    \"title\": \"Договоры поставки\",\n    \"createdBy\": 1,\n    \"createdTime\": \"2026-04-21T13:46:45+03:00\",\n    \"updatedTime\": \"2026-04-21T13:46:45+03:00\",\n    \"updatedBy\": 1,\n    \"customSectionId\": null,\n    \"isCategoriesEnabled\": true,\n    \"isStagesEnabled\": true,\n    \"isBeginCloseDatesEnabled\": false,\n    \"isClientEnabled\": false,\n    \"isLinkWithProductsEnabled\": true,\n    \"isMycompanyEnabled\": false,\n    \"isObserversEnabled\": false,\n    \"isSourceEnabled\": false,\n    \"isAutomationEnabled\": true,\n    \"isBizProcEnabled\": true,\n    \"isDocumentsEnabled\": false,\n    \"isRecyclebinEnabled\": false,\n    \"isSetOpenPermissions\": true,\n    \"isUseInUserfieldEnabled\": false,\n    \"isRecurringEnabled\": false,\n    \"isPaymentsEnabled\": false,\n    \"isCountersEnabled\": false,\n    \"isInitialized\": false\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n422 — не передано обязательное поле:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"BITRIX_ERROR\",\n    \"message\": \"Не заполнено обязательное поле \\\"Название\\\"\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 401 | `MISSING_API_KEY` | Заголовок `X-Api-Key` не передан |\n| 401 | `INVALID_API_KEY` | Ключ не найден или отозван |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `crm` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |\n| 400 | `READONLY_FIELD` | В теле передано поле только для чтения (`id`, `isInitialized`, `createdTime` и другие) |\n| 422 | `BITRIX_ERROR` | Любая ошибка от Битрикс24: не передано `title`, `entityTypeId` вне диапазона, превышен лимит смарт-процессов на портале и т. д. Конкретная причина — в поле `message` |\n\nТипичные сообщения в `message` при `BITRIX_ERROR`:\n- `Не заполнено обязательное поле \"Название\"` — пропущен `title`\n- `EntityTypeId should be more or equal than 128 and less than 192` — передан `entityTypeId` вне диапазона\n- `Превышено максимальное количество смарт-процессов` — достигнут лимит портала\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**Авто-генерация `entityTypeId`.** Битрикс24 сам назначает свободный идентификатор. Если вы хотите передать собственный, значение должно быть **уникальным** и попадать в один из диапазонов: от `128` до `191` (`≥ 128` и `\u003C 192`), либо чётное число `≥ 1030`. Значение возвращается в поле `entityTypeId` ответа — сохраните его и используйте во всех запросах к типу и его элементам.\n\n**После создания `isInitialized: false`.** Битрикс24 ещё не сгенерировал стандартные стадии и воронки. Они создаются при первом обращении к типу в интерфейсе или программно — через `\u002Fv1\u002Fstatuses` и `\u002Fv1\u002Fcategories\u002F:entityTypeId`.\n\n**`relations` двунаправленные.** Если вы указали `parent: [{entityTypeId: 2, ...}]`, то в сделках (тип 2) в поле `relations.child` автоматически появится ссылка на ваш новый тип с флагом `isPredefined: \"N\"` (пользовательская связь).\n\n**`isSetOpenPermissions` по умолчанию `true`** — это единственный флаг с положительным дефолтом. Если нужны приватные воронки, передавайте `false` явно.\n\n## Смотрите также\n\n- [Обновить тип](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Fupdate)\n- [Удалить тип](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Fdelete)\n- [Список типов](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Flist)\n- [Поля типа](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Ffields)\n- [Элементы смарт-процессов](\u002Fdocs\u002Fentities\u002Fitems)\n- [Стадии и воронки](\u002Fdocs\u002Fentities\u002Fcategories)\n- [Лимиты и оптимизация](\u002Fdocs\u002Foptimization)\n","\n## Список типов смарт-процессов\n\n`GET \u002Fv1\u002Fsmart-processes`\n\nВозвращает типы смарт-процессов на портале. Каждый тип имеет `entityTypeId` — используйте его для работы с элементами через [\u002Fv1\u002Fitems\u002F:entityTypeId](\u002Fdocs\u002Fentities\u002Fitems).\n\n## Параметры\n\n| Параметр | Тип | По умолч. | Описание |\n|----------|-----|-----------|---------|\n| `filter` | object | — | Фильтрация по полям. Пример: `?filter[isStagesEnabled]=true`. [Синтаксис фильтрации](\u002Fdocs\u002Ffiltering) |\n| `select` | string | — | Выборка полей: `?select=id,title,entityTypeId` |\n| `sort` | string | — | Сортировка по полю: `?sort=title` (по возрастанию), `?sort=-createdTime` (по убыванию) |\n| `limit` | number | — | Ограничить количество записей в ответе |\n\nСписок полей для `filter` и `select` — [Поля типа](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Ffields).\n\nДля нескольких условий фильтрации одновременно используйте [Поиск типов](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Fsearch) — POST с телом запроса вместо строки запроса.\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data } = await res.json()\nfor (const sp of data) {\n  console.log(`${sp.title}: entityTypeId=${sp.entityTypeId}`)\n}\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `data` | array | Массив типов смарт-процессов. Поля каждого типа — см. [Поля типа](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Ffields) |\n\nСписок элементов любого типа из массива `data` открывается в Битрикс24 по `entityTypeId`:\n\n```\nhttps:\u002F\u002F\u003Cportal>.bitrix24.ru\u002Fcrm\u002Ftype\u002F\u003CentityTypeId>\u002Flist\u002Fcategory\u002F0\u002F\n```\n\n`0` — основная воронка. `\u003Cportal>` — домен портала. Доступ ограничен правами сотрудника в Битрикс24.\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": 3,\n      \"entityTypeId\": 174,\n      \"title\": \"Договоры\",\n      \"code\": null,\n      \"customSectionId\": null,\n      \"isCategoriesEnabled\": true,\n      \"isStagesEnabled\": true,\n      \"isClientEnabled\": true,\n      \"isLinkWithProductsEnabled\": true,\n      \"isObserversEnabled\": true,\n      \"isSourceEnabled\": true,\n      \"isAutomationEnabled\": true,\n      \"isBizProcEnabled\": true,\n      \"isDocumentsEnabled\": true,\n      \"isRecyclebinEnabled\": true,\n      \"isSetOpenPermissions\": true,\n      \"isUseInUserfieldEnabled\": true,\n      \"createdBy\": 1,\n      \"updatedBy\": 1,\n      \"createdTime\": \"2021-07-20T16:04:10+03:00\",\n      \"updatedTime\": \"2024-07-19T14:27:27+03:00\"\n    }\n  ]\n}\n```\n\n## Пример ответа при ошибке\n\n403 — нет скоупа:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"SCOPE_DENIED\",\n    \"message\": \"This endpoint requires 'crm' scope\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 401 | `MISSING_API_KEY` | Заголовок `X-Api-Key` не передан |\n| 401 | `INVALID_API_KEY` | Ключ не найден или отозван |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `crm` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |\n| 422 | `BITRIX_ERROR` | Ошибка от Битрикс24. Конкретная причина — в поле `message` |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**`entityTypeId` — ключевое поле.** Сохраняйте его и передавайте в `\u002Fv1\u002Fitems\u002F:entityTypeId` для работы с элементами этого типа.\n\n**Пагинации нет.** Ответ содержит все типы смарт-процессов портала одним массивом.\n\n## Смотрите также\n\n- [Создать тип](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Fcreate)\n- [Получить тип](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Fget)\n- [Поля типа](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Ffields)\n- [Поиск типов](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Fsearch)\n- [Элементы смарт-процессов](\u002Fdocs\u002Fentities\u002Fitems)\n- [Синтаксис фильтрации](\u002Fdocs\u002Ffiltering)\n- [Лимиты и оптимизация](\u002Fdocs\u002Foptimization)\n","\n## Получить тип смарт-процесса\n\n`GET \u002Fv1\u002Fsmart-processes\u002F:entityTypeId`\n\nВозвращает тип смарт-процесса по `entityTypeId`.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|---------|\n| `entityTypeId` (path) | number | **да** | ID типа сущности. Список: `GET \u002Fv1\u002Fsmart-processes` |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002F174\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002F174\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002F174', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data } = await res.json()\nconsole.log('Тип:', data.title, 'entityTypeId:', data.entityTypeId)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002F174', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `data` | object | Тип смарт-процесса. Полный список полей — см. [Поля типа](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Ffields) |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 3,\n    \"entityTypeId\": 174,\n    \"title\": \"Договоры\",\n    \"code\": null,\n    \"customSectionId\": null,\n    \"isCategoriesEnabled\": true,\n    \"isStagesEnabled\": true,\n    \"isClientEnabled\": true,\n    \"isLinkWithProductsEnabled\": true,\n    \"isObserversEnabled\": true,\n    \"isSourceEnabled\": true,\n    \"isAutomationEnabled\": true,\n    \"isBizProcEnabled\": true,\n    \"isDocumentsEnabled\": true,\n    \"isRecyclebinEnabled\": true,\n    \"isSetOpenPermissions\": true,\n    \"isUseInUserfieldEnabled\": true,\n    \"createdBy\": 1,\n    \"updatedBy\": 1,\n    \"createdTime\": \"2021-07-20T16:04:10+03:00\",\n    \"updatedTime\": \"2024-07-19T14:27:27+03:00\"\n  }\n}\n```\n\n> **Карточка возвращает больше полей, чем список и `\u002Ffields`.** В дополнение к полям выше `GET \u002Fv1\u002Fsmart-processes\u002F:entityTypeId` отдаёт `relations` (объект с массивами `parent`\u002F`child`), `linkedUserFields` (map) и `customSections` (массив) — это сквозной проброс от Битрикс24 `crm.type.get`, которого нет ни в списке, ни в `\u002Ffields`. `relations`\u002F`linkedUserFields` документированы как входные поля create\u002Fupdate. `customSections` — только в ответе карточки.\n>\n> **`id` ≠ ключ карточки.** В ответе есть внутренний `id` (напр. 3), но карточка адресуется по `entityTypeId` (напр. 174): `GET \u002Fv1\u002Fsmart-processes\u002F\u003CentityTypeId>`. `GET \u002Fv1\u002Fsmart-processes\u002F\u003Cid>` вернёт `404 ENTITY_NOT_FOUND` — не путайте поле `id` с ключом пути.\n\n## Пример ответа при ошибке\n\n404 — тип не найден:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"ENTITY_NOT_FOUND\",\n    \"message\": \"Смарт-процесс не найден\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 401 | `MISSING_API_KEY` | Заголовок `X-Api-Key` не передан |\n| 401 | `INVALID_API_KEY` | Ключ не найден или отозван |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `crm` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |\n| 404 | `ENTITY_NOT_FOUND` | Тип с таким `entityTypeId` не найден |\n| 422 | `BITRIX_ERROR` | Ошибка от Битрикс24. Конкретная причина — в поле `message` |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Список типов](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Flist)\n- [Создать тип](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Fcreate)\n- [Обновить тип](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Fupdate)\n- [Удалить тип](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Fdelete)\n- [Поля типа](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Ffields)\n- [Элементы смарт-процессов](\u002Fdocs\u002Fentities\u002Fitems)\n- [Лимиты и оптимизация](\u002Fdocs\u002Foptimization)\n","\n## Обновить тип смарт-процесса\n\n`PATCH \u002Fv1\u002Fsmart-processes\u002F:entityTypeId`\n\nОбновляет поля существующего типа смарт-процесса. Передавайте только те поля, которые нужно изменить — остальные остаются прежними.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|---------|\n| `entityTypeId` (path) | number | **да** | ID типа сущности. Список: `GET \u002Fv1\u002Fsmart-processes` |\n\n## Поля запроса (body)\n\nВсе поля опциональны. Не переданные поля остаются без изменений.\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `title` | string | Название смарт-процесса |\n| `code` | string | Символьный код типа (для программной идентификации) |\n| `isCategoriesEnabled` | boolean | Использовать свои воронки и туннели продаж |\n| `isStagesEnabled` | boolean | Использовать свои стадии и канбан |\n| `isBeginCloseDatesEnabled` | boolean | Поля «Дата начала» и «Дата завершения» |\n| `isClientEnabled` | boolean | Поле «Клиент» с привязкой к контактам и компаниям |\n| `isLinkWithProductsEnabled` | boolean | Привязка товаров каталога |\n| `isMycompanyEnabled` | boolean | Поле «Реквизиты вашей компании» |\n| `isObserversEnabled` | boolean | Поле «Наблюдатели» |\n| `isSourceEnabled` | boolean | Поля «Источник» и «Дополнительно об источнике» |\n| `isAutomationEnabled` | boolean | Роботы и триггеры |\n| `isBizProcEnabled` | boolean | Дизайнер бизнес-процессов |\n| `isDocumentsEnabled` | boolean | Печать документов |\n| `isRecyclebinEnabled` | boolean | Использование корзины |\n| `isSetOpenPermissions` | boolean | Делать новые воронки доступными для всех |\n| `isUseInUserfieldEnabled` | boolean | Использовать смарт-процесс в пользовательском поле |\n| `isRecurringEnabled` | boolean | Поле «Регулярность» |\n| `isPaymentsEnabled` | boolean | Онлайн-оплата |\n| `isCountersEnabled` | boolean | Счётчики (уведомления и бейджи) |\n| `relations` | object | Связи с другими сущностями CRM. **Полностью заменяет** существующие связи — см. «Известные особенности» |\n| `linkedUserFields` | object | Пользовательские поля, в которых отображается смарт-процесс. Формат — см. [Создать тип](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Fcreate#связи-и-пользовательские-поля) |\n\nПолный список полей: [GET \u002Fv1\u002Fsmart-processes\u002Ffields](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Ffields).\n\n**Сменить `entityTypeId` нельзя** — он устанавливается при создании и остаётся неизменным.\n\n## Основные обновляемые поля\n\n- `title` — переименование типа\n- `isStagesEnabled`, `isCategoriesEnabled`, `isAutomationEnabled`, `isBizProcEnabled` — включение\u002Fвыключение основных возможностей\n- `code` — назначение программного идентификатора\n- `relations` — настройка связей с другими типами CRM\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X PATCH https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002F1050 \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"title\": \"Договоры поставки (обновлённое название)\",\n    \"code\": \"supply_contracts\",\n    \"isAutomationEnabled\": false\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X PATCH https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002F1050 \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"title\": \"Договоры поставки (обновлённое название)\",\n    \"code\": \"supply_contracts\",\n    \"isAutomationEnabled\": false\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002F1050', {\n  method: 'PATCH',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    title: 'Договоры поставки (обновлённое название)',\n    code: 'supply_contracts',\n    isAutomationEnabled: false,\n  }),\n})\n\nconst { success, data } = await res.json()\nconsole.log('Обновлено в:', data.updatedTime)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002F1050', {\n  method: 'PATCH',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    title: 'Договоры поставки (обновлённое название)',\n    code: 'supply_contracts',\n    isAutomationEnabled: false,\n  }),\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `data` | object | Полный объект типа после обновления. Список полей — см. [Поля типа](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Ffields) |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 31,\n    \"entityTypeId\": 1050,\n    \"title\": \"Договоры поставки (обновлённое название)\",\n    \"code\": \"supply_contracts\",\n    \"createdBy\": 1,\n    \"createdTime\": \"2026-04-21T13:46:45+03:00\",\n    \"updatedBy\": 1,\n    \"updatedTime\": \"2026-04-21T14:50:13+03:00\",\n    \"customSectionId\": null,\n    \"isCategoriesEnabled\": true,\n    \"isStagesEnabled\": true,\n    \"isBeginCloseDatesEnabled\": false,\n    \"isClientEnabled\": false,\n    \"isLinkWithProductsEnabled\": true,\n    \"isMycompanyEnabled\": false,\n    \"isObserversEnabled\": false,\n    \"isSourceEnabled\": false,\n    \"isAutomationEnabled\": false,\n    \"isBizProcEnabled\": true,\n    \"isDocumentsEnabled\": false,\n    \"isRecyclebinEnabled\": false,\n    \"isSetOpenPermissions\": true,\n    \"isUseInUserfieldEnabled\": false,\n    \"isRecurringEnabled\": false,\n    \"isPaymentsEnabled\": false,\n    \"isCountersEnabled\": false,\n    \"isInitialized\": true\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n404 — тип не найден:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"SMART_PROCESS_NOT_FOUND\",\n    \"message\": \"Smart process with entityTypeId=99999 not found\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 401 | `MISSING_API_KEY` | Заголовок `X-Api-Key` не передан |\n| 401 | `INVALID_API_KEY` | Ключ не найден или отозван |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `crm` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |\n| 400 | `INVALID_ENTITY_TYPE_ID` | `entityTypeId` не является положительным целым. Сообщение: `entityTypeId must be a positive integer` |\n| 400 | `READONLY_FIELD` | В теле передано поле только для чтения (`id`, `isInitialized`, `createdTime` и другие) |\n| 404 | `SMART_PROCESS_NOT_FOUND` | Тип с таким `entityTypeId` не найден. Сообщение: `Smart process with entityTypeId=X not found` |\n| 422 | `BITRIX_ERROR` | Ошибка валидации от Битрикс24. Конкретная причина — в поле `message` |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**`relations` полностью заменяет существующие связи.** Если передать `relations: {parent: [{entityTypeId: 3}]}`, все прежние `parent`-связи **будут удалены** и заменены на один новый массив. Чтобы добавить связь, не потеряв текущие, — сначала получите текущее состояние через `GET \u002Fv1\u002Fsmart-processes\u002F:entityTypeId`, добавьте новую запись в массив и передайте весь обновлённый список.\n\nАналогично для `child` и `linkedUserFields` — это «перезапись», не «патч по записям».\n\n**Пустое тело запроса (`{}`) допустимо.** PATCH с пустым объектом возвращает HTTP 200 и текущее состояние типа, ничего не меняя.\n\n**Изменение `entityTypeId` невозможно** — он задаётся при создании и служит стабильным идентификатором типа.\n\n## Смотрите также\n\n- [Получить тип](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Fget)\n- [Список типов](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Flist)\n- [Создать тип](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Fcreate)\n- [Удалить тип](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Fdelete)\n- [Поля типа](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Ffields)\n- [Элементы смарт-процессов](\u002Fdocs\u002Fentities\u002Fitems)\n- [Лимиты и оптимизация](\u002Fdocs\u002Foptimization)\n","\n## Удалить тип смарт-процесса\n\n`DELETE \u002Fv1\u002Fsmart-processes\u002F:entityTypeId`\n\nУдаляет тип смарт-процесса по `entityTypeId`. Вместе с типом удаляются все связанные с ним метаданные: воронки, стадии, права доступа, настройки бизнес-процессов.\n\n**Удалить можно только тип, у которого нет элементов.** Если в типе есть хотя бы один элемент — сначала удалите элементы через `DELETE \u002Fv1\u002Fitems\u002F:entityTypeId\u002F:id` или перенесите их в другой тип.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|---------|\n| `entityTypeId` (path) | number | **да** | ID типа сущности. Список: `GET \u002Fv1\u002Fsmart-processes` |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X DELETE \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002F1050\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X DELETE \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002F1050\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002F1050', {\n  method: 'DELETE',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nif (res.status === 204) {\n  console.log('Тип удалён')\n} else {\n  const { error } = await res.json()\n  console.error('Ошибка:', error.code, error.message)\n}\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002F1050', {\n  method: 'DELETE',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nif (res.status === 204) {\n  console.log('Тип удалён')\n}\n```\n\n## Ответ\n\nПри успешном удалении возвращается HTTP-статус `204 No Content` с пустым телом — признак успеха проверяется по статусу.\n\n## Пример ответа\n\n```\nHTTP\u002F1.1 204 No Content\n```\n\n## Пример ответа при ошибке\n\n404 — тип не найден:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"SMART_PROCESS_NOT_FOUND\",\n    \"message\": \"Smart process with entityTypeId=99999 not found\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 401 | `MISSING_API_KEY` | Заголовок `X-Api-Key` не передан |\n| 401 | `INVALID_API_KEY` | Ключ не найден или отозван |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `crm` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |\n| 400 | `INVALID_ENTITY_TYPE_ID` | `entityTypeId` не является положительным целым. Сообщение: `entityTypeId must be a positive integer` |\n| 404 | `SMART_PROCESS_NOT_FOUND` | Тип с таким `entityTypeId` не найден. Сообщение: `Smart process with entityTypeId=X not found` |\n| 422 | `BITRIX_ERROR` | В типе есть элементы (сообщение: `Вы не можете удалить тип сущности, у которого есть элементы`) или другая ошибка от Битрикс24 |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**Удаление необратимо.** Нет корзины и отката — удалённый тип восстановить нельзя. Связанные метаданные (воронки, стадии, права) удаляются вместе с типом.\n\n**Перед удалением проверьте количество элементов.** Если есть сомнения, получите количество:\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fitems\u002F1050\u002Faggregate\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"count\": true}'\n```\n\nЕсли `count > 0` — сначала удалите элементы или перенесите в другой тип.\n\n**`entityTypeId` не переиспользуется.** После удаления Битрикс24 не выдаст этот же `entityTypeId` новому типу — при следующем создании вы получите новое значение из диапазона `≥ 1030`.\n\n**Связи в других типах остаются.** Если другой тип ссылается на удалённый через `relations.parent` или `relations.child`, связь в его настройках сохранится, но станет «висячей». Настройте связи в оставшихся типах после удаления.\n\n## Смотрите также\n\n- [Список типов](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Flist)\n- [Получить тип](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Fget)\n- [Обновить тип](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Fupdate)\n- [Агрегация элементов](\u002Fdocs\u002Fentities\u002Fitems\u002Faggregate)\n- [Удалить элемент](\u002Fdocs\u002Fentities\u002Fitems)\n- [Лимиты и оптимизация](\u002Fdocs\u002Foptimization)\n","\n## Поиск типов смарт-процессов\n\n`POST \u002Fv1\u002Fsmart-processes\u002Fsearch`\n\nПоиск типов смарт-процессов с фильтрами в теле POST-запроса. Применяется, когда условий фильтрации несколько и они не помещаются в строку запроса.\n\n## Поля запроса (body)\n\n| Параметр | Тип | По умолч. | Описание |\n|----------|-----|-----------|---------|\n| `filter` | object | `{}` | Фильтрация по любым полям типа (`title`, `entityTypeId`, `isStagesEnabled`, `isClientEnabled`, `isAutomationEnabled` и т. д.). [Синтаксис фильтрации](\u002Fdocs\u002Ffiltering) |\n| `limit` | number | `50` | Количество записей в ответе |\n\nПолный список полей, по которым можно фильтровать: [Поля типа](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Ffields).\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002Fsearch\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"filter\": { \"isClientEnabled\": true, \"isStagesEnabled\": true },\n    \"limit\": 10\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002Fsearch\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"filter\": { \"isClientEnabled\": true, \"isStagesEnabled\": true },\n    \"limit\": 10\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002Fsearch', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    filter: { isClientEnabled: true, isStagesEnabled: true },\n    limit: 10,\n  }),\n})\n\nconst { success, data } = await res.json()\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002Fsearch', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    filter: { isClientEnabled: true, isStagesEnabled: true },\n    limit: 10,\n  }),\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `data` | array | Массив типов, удовлетворяющих фильтру. Поля каждого типа — см. [Поля типа](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Ffields) |\n| `meta.total` | number | Общее количество типов под фильтр |\n| `meta.hasMore` | boolean | Есть ли ещё записи сверх `limit` |\n| `meta.durationMs` | number | Время выполнения запроса в миллисекундах |\n\nСписок элементов любого типа из массива `data` открывается в Битрикс24 по `entityTypeId`:\n\n```\nhttps:\u002F\u002F\u003Cportal>.bitrix24.ru\u002Fcrm\u002Ftype\u002F\u003CentityTypeId>\u002Flist\u002Fcategory\u002F0\u002F\n```\n\n`0` — основная воронка. `\u003Cportal>` — домен портала. Доступ ограничен правами сотрудника в Битрикс24.\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": 3,\n      \"entityTypeId\": 174,\n      \"title\": \"Договоры\",\n      \"isStagesEnabled\": true,\n      \"isClientEnabled\": true,\n      \"isCategoriesEnabled\": true,\n      \"isLinkWithProductsEnabled\": true\n    }\n  ],\n  \"meta\": { \"total\": 7, \"hasMore\": false, \"durationMs\": 884 }\n}\n```\n\nВ каждом объекте показаны 7 полей. Полный ответ содержит все поля типа.\n\n## Пример ответа при ошибке\n\n403 — нет скоупа:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"SCOPE_DENIED\",\n    \"message\": \"This endpoint requires 'crm' scope\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 401 | `MISSING_API_KEY` | Заголовок `X-Api-Key` не передан |\n| 401 | `INVALID_API_KEY` | Ключ не найден или отозван |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `crm` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |\n| 422 | `BITRIX_ERROR` | Ошибка от Битрикс24. Конкретная причина — в поле `message` |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**Булевы фильтры передавайте как `true`\u002F`false`**, не как `\"Y\"`\u002F`\"N\"` — Вайбкод сам преобразует их для Битрикс24.\n\n**Когда использовать search вместо list.** Когда нужно несколько условий фильтрации одновременно — тело запроса читаемее длинной строки запроса. Для получения всех типов подойдёт `GET \u002Fv1\u002Fsmart-processes`.\n\n## Смотрите также\n\n- [Список типов](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Flist)\n- [Поля типа](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Ffields)\n- [Получить тип](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Fget)\n- [Элементы смарт-процессов](\u002Fdocs\u002Fentities\u002Fitems)\n- [Синтаксис фильтрации](\u002Fdocs\u002Ffiltering)\n- [Лимиты и оптимизация](\u002Fdocs\u002Foptimization)\n","\n## Поля типа смарт-процесса\n\n`GET \u002Fv1\u002Fsmart-processes\u002Ffields`\n\nВозвращает описание полей типа смарт-процесса: какие можно передавать при создании и обновлении, какие доступны только на чтение.\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002Ffields\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002Ffields\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002Ffields', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data } = await res.json()\nconsole.log('Полей:', Object.keys(data.fields).length)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002Ffields', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | RO | Описание |\n|------|-----|:--:|---------|\n| `id` | number | да | Внутренний ID записи типа |\n| `entityTypeId` | number | | ID типа сущности. Передаётся в `\u002Fv1\u002Fitems\u002F:entityTypeId` для работы с элементами. Если не передан при создании — Битрикс24 назначает свободное значение автоматически |\n| `title` | string | | Название типа смарт-процесса |\n| `code` | string \\| null | | Символьный код типа (для программной идентификации). `null`, если не задан |\n| `customSectionId` | number \\| null | | ID цифрового рабочего места, к которому привязан тип. `null`, если не привязан. Записывается при создании, но не обновляется |\n| `isCategoriesEnabled` | boolean | | Использовать в смарт-процессе свои воронки и туннели продаж |\n| `isStagesEnabled` | boolean | | Использовать в смарт-процессе свои стадии и канбан |\n| `isBeginCloseDatesEnabled` | boolean | | Поля «Дата начала» и «Дата завершения» |\n| `isClientEnabled` | boolean | | Поле «Клиент» с привязкой к контактам и компаниям |\n| `isLinkWithProductsEnabled` | boolean | | Привязка товаров каталога |\n| `isMycompanyEnabled` | boolean | | Поле «Реквизиты вашей компании» |\n| `isObserversEnabled` | boolean | | Поле «Наблюдатели» |\n| `isSourceEnabled` | boolean | | Поля «Источник» и «Дополнительно об источнике» |\n| `isAutomationEnabled` | boolean | | Роботы и триггеры |\n| `isBizProcEnabled` | boolean | | Дизайнер бизнес-процессов |\n| `isDocumentsEnabled` | boolean | | Печать документов |\n| `isRecyclebinEnabled` | boolean | | Использование корзины |\n| `isSetOpenPermissions` | boolean | | Делать новые воронки доступными для всех |\n| `isUseInUserfieldEnabled` | boolean | | Использовать смарт-процесс в пользовательском поле |\n| `isRecurringEnabled` | boolean | | Поле «Регулярность» |\n| `isPaymentsEnabled` | boolean | | Онлайн-оплата |\n| `isCountersEnabled` | boolean | | Счётчики (уведомления и бейджи) |\n| `isInitialized` | boolean | да | Тип полностью инициализирован в портале |\n| `createdBy` | number | да | Кем создан. Поиск: `GET \u002Fv1\u002Fusers` |\n| `updatedBy` | number | да | Кем изменён. Поиск: `GET \u002Fv1\u002Fusers` |\n| `createdTime` | datetime | да | Дата создания |\n| `updatedTime` | datetime | да | Дата изменения |\n\nОтвет также содержит массив `aggregatable` — поля, по которым доступна группировка в [агрегации](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Faggregate), и массив `batch` со списком операций, доступных для пакетной обработки: `create`, `update`, `delete`.\n\n> **Формат datetime.** `createdTime`\u002F`updatedTime` приходят в ISO 8601, но конкретное представление (со смещением `+03:00` либо UTC `…Z` с миллисекундами) зависит от портала — парсьте как ISO 8601, не сравнивайте строки побайтно.\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"fields\": {\n      \"id\": { \"type\": \"number\", \"readonly\": true },\n      \"entityTypeId\": { \"type\": \"number\", \"readonly\": false },\n      \"title\": { \"type\": \"string\", \"readonly\": false },\n      \"isCategoriesEnabled\": { \"type\": \"boolean\", \"readonly\": false },\n      \"isStagesEnabled\": { \"type\": \"boolean\", \"readonly\": false },\n      \"isLinkWithProductsEnabled\": { \"type\": \"boolean\", \"readonly\": false },\n      \"code\": { \"type\": \"string\", \"readonly\": false },\n      \"createdBy\": { \"type\": \"number\", \"readonly\": true },\n      \"customSectionId\": { \"type\": \"number\", \"readonly\": false },\n      \"createdTime\": { \"type\": \"datetime\", \"readonly\": true }\n    },\n    \"aggregatable\": [\"customSectionId\", \"createdBy\", \"updatedBy\", \"isCategoriesEnabled\", \"isStagesEnabled\", \"isAutomationEnabled\", \"isBizProcEnabled\", \"isPaymentsEnabled\", \"isCountersEnabled\", \"isLinkWithProductsEnabled\"],\n    \"batch\": [\"create\", \"update\", \"delete\"]\n  }\n}\n```\n\nПоказаны 10 полей из 27. Полный список — в таблице выше.\n\n## Пример ответа при ошибке\n\n401 — ключ не передан:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"MISSING_API_KEY\",\n    \"message\": \"API key required. Pass via X-Api-Key header.\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 401 | `MISSING_API_KEY` | Заголовок `X-Api-Key` не передан |\n| 401 | `INVALID_API_KEY` | Ключ не найден или отозван |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `crm` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**Вложенные структуры.** При создании и обновлении можно передавать поля `relations` (связи с другими типами CRM) и `linkedUserFields` (связанные пользовательские поля). Они не описаны в ответе `\u002Ffields`, но принимаются и сохраняются Битрикс24 без изменений. Подробнее — в [Создать тип](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Fcreate).\n\n**Отличие от `GET \u002Fv1\u002F{entity}\u002Ffields` у стандартных сущностей.** Этот эндпоинт описывает поля **типа смарт-процесса** (`crm.type.*`), а не элементов внутри него. Для полей элементов используйте `GET \u002Fv1\u002Fitems\u002F:entityTypeId\u002Ffields`.\n\n## Смотрите также\n\n- [Список типов](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Flist)\n- [Создать тип](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Fcreate)\n- [Обновить тип](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Fupdate)\n- [Элементы смарт-процессов](\u002Fdocs\u002Fentities\u002Fitems)\n- [Поля элементов](\u002Fdocs\u002Fentities\u002Fitems\u002Ffields)\n- [Пользовательские поля](\u002Fdocs\u002Fuserfields)\n- [Лимиты и оптимизация](\u002Fdocs\u002Foptimization)\n","\n## Агрегация типов смарт-процессов\n\n`POST \u002Fv1\u002Fsmart-processes\u002Faggregate`\n\nПодсчёт количества типов смарт-процессов по фильтру с опциональной группировкой. Считает, сколько типов на портале удовлетворяют условию, и разбивает их по значению выбранного поля — например, сколько типов создал каждый сотрудник или у скольких включена та или иная возможность.\n\n## Поля для агрегации\n\nГруппировка и числовые функции работают по полям из списка `aggregatable`:\n\n- `createdBy`, `updatedBy` — кто создал и кто последним изменил тип. Подходят для `groupBy`.\n- `customSectionId` — идентификатор цифрового рабочего места. Подходит для `groupBy`.\n- `isCategoriesEnabled`, `isStagesEnabled`, `isAutomationEnabled`, `isBizProcEnabled`, `isPaymentsEnabled`, `isCountersEnabled`, `isLinkWithProductsEnabled` — флаги возможностей.\n\nОсновной сценарий для каталога типов — `count` (сколько типов под фильтр) и `groupBy` (разбивка по полю). У типов смарт-процессов нет пользовательских полей — агрегируются только перечисленные стандартные.\n\n## Поля запроса (body)\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|---------|\n| `aggregate` | array | нет | Массив агрегаций. Каждый элемент: `{ \"field\": \"*\", \"function\": \"count\" }`. Функция `count` считает строки, а не значения поля. Функции: `count`, `sum`, `avg`, `min`, `max`. Без массива возвращается только `count` |\n| `filter` | object | нет | Фильтрация по полям типа. Список полей: [Поля типа](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Ffields). [Синтаксис фильтрации](\u002Fdocs\u002Ffiltering) |\n| `groupBy` | string \\| string[] | нет | Поле или массив полей для группировки (максимум 5). Принимает только поля из списка `aggregatable` выше |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002Faggregate\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"filter\": { \"isStagesEnabled\": true },\n    \"groupBy\": \"createdBy\"\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002Faggregate\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"filter\": { \"isStagesEnabled\": true },\n    \"groupBy\": \"createdBy\"\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002Faggregate', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    filter: { isStagesEnabled: true },\n    groupBy: 'createdBy',\n  }),\n})\n\nconst { success, data } = await res.json()\nconsole.log('Всего типов:', data.count)\nconsole.log('По создателям:', data.groups)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fsmart-processes\u002Faggregate', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    filter: { isStagesEnabled: true },\n    groupBy: 'createdBy',\n  }),\n})\n\nconst { success, data } = await res.json()\n```\n\n> Для группировки по нескольким полям передайте массив: `\"groupBy\": [\"createdBy\", \"isStagesEnabled\"]` (максимум 5).\n\n## Другие сценарии\n\nПодсчёт записей — `count` с полем `\"*\"`, самый быстрый запрос без выгрузки записей. Без массива `aggregate` результат тот же:\n\n```json\n{ \"aggregate\": [{ \"field\": \"*\", \"function\": \"count\" }] }\n```\n\nСколько типов с включёнными роботами и триггерами:\n\n```json\n{ \"filter\": { \"isAutomationEnabled\": true } }\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data.count` | number | Количество типов, соответствующих фильтру |\n| `data.aggregates` | object | Результаты числовых функций. Для группировки по `count` — пустой объект |\n| `data.groups` | array | Группы (только при `groupBy`). Каждый элемент: поле группировки + `count` + `aggregates` |\n| `data.meta.totalRecords` | number | Общее количество типов под фильтр |\n| `data.meta.recordsProcessed` | number | Сколько типов обработано для агрегации |\n| `data.meta.truncated` | boolean | `true`, если под фильтр попало больше 5000 типов |\n| `data.meta.groupTotal` | number | Количество групп (только при `groupBy`) |\n| `data.meta.groupsTruncated` | boolean | `true`, если список групп был усечён |\n\n## Пример ответа\n\nГруппировка по создателю (`groupBy: \"createdBy\"`):\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"count\": 7,\n    \"aggregates\": {},\n    \"groups\": [\n      { \"createdBy\": 1, \"count\": 4, \"aggregates\": {} },\n      { \"createdBy\": 835, \"count\": 2, \"aggregates\": {} },\n      { \"createdBy\": 1013, \"count\": 1, \"aggregates\": {} }\n    ],\n    \"meta\": {\n      \"totalRecords\": 7,\n      \"recordsProcessed\": 7,\n      \"truncated\": false,\n      \"groupTotal\": 3,\n      \"groupsTruncated\": false\n    }\n  }\n}\n```\n\nБез `groupBy` поле `data.groups` в ответе отсутствует.\n\n## Пример ответа при ошибке\n\n400 — поле недоступно для группировки:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"INVALID_PARAMS\",\n    \"message\": \"groupBy field 'title' is not aggregatable on this entity. Available: customSectionId, createdBy, updatedBy, isCategoriesEnabled, isStagesEnabled, isAutomationEnabled, isBizProcEnabled, isPaymentsEnabled, isCountersEnabled, isLinkWithProductsEnabled.\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 400 | `INVALID_PARAMS` | Неизвестная функция, несуществующее поле или поле вне списка `aggregatable` — сообщение перечисляет доступные поля |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `crm` |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**`count` считается одним вызовом.** Запрос без массива `aggregate` возвращает количество типов под фильтр одним обращением к Битрикс24, не выгружая записи.\n\n**Группировка по флагу даёт две группы — `true` и `false`.** Например, `groupBy: \"isAutomationEnabled\"` разделит типы на две группы: с включёнными роботами и без них. Если все типы имеют одинаковое значение флага, в ответе будет одна группа.\n\n## Смотрите также\n\n- [Список типов](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Flist)\n- [Поиск типов](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Fsearch)\n- [Поля типа](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Ffields)\n- [Агрегация элементов](\u002Fdocs\u002Fentities\u002Fitems\u002Faggregate)\n- [Синтаксис фильтрации](\u002Fdocs\u002Ffiltering)\n- [Лимиты и оптимизация](\u002Fdocs\u002Foptimization)\n"]