Обновить пользовательский тип crm.type.update

Выберите инструмент для разработки с AI-агентом:

  • используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
  • используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации

Scope: crm

Кто может выполнять метод: любой пользователь с административным доступом к разделу CRM

Метод обновляет существующий смарт-процесс по его идентификатору id.

Параметры метода

Обязательные параметры отмечены *

Название
тип

Описание

id*
integer

Идентификатор смарт-процесса. Можно получить с помощью методов: crm.type.list, crm.type.add

fields
object

Значения полей (подробное описание приведено ниже) для обновления смарт-процесса

Параметр fields

Название
тип

Описание

title
string

Название смарт-процесса

relations
object

Объект, содержащий в себе связи к другим сущностям CRM. Структура описана объектом type.relations

isUseInUserfieldEnabled
boolean

Включено ли использование смарт-процесса в пользовательском поле

linkedUserFields
object

Набор пользовательских полей в которых должен отображаться данный смарт-процесс. Структура описана объектом type.linkedUserFields

isAutomationEnabled
boolean

Включены ли роботы и триггеры

isBeginCloseDatesEnabled
boolean

Включены ли поля Дата начала и Дата завершения

isBizProcEnabled
boolean

Включено ли использование дизайнера бизнес процессов

isCategoriesEnabled
boolean

Включены ли свои воронки и туннели продаж

isClientEnabled
boolean

Включено ли поле Клиент. При включенной опции у смарт-процесса появляется предустановленная привязка к Контактам и Компаниям

isDocumentsEnabled
boolean

Включена ли печать документов

isLinkWithProductsEnabled
boolean

Включена ли привязка товаров каталога

isMycompanyEnabled
boolean

Включено ли поле Реквизиты вашей компании

isObserversEnabled
boolean

Включено ли поле Наблюдатели

isRecyclebinEnabled
boolean

Включено ли использование корзины

isSetOpenPermissions
boolean

Делать ли новые воронки доступными для всех

isSourceEnabled
boolean

Включены ли поля Источник и Дополнительно об источнике

isStagesEnabled
boolean

Включено ли использование своих стадий и канбана

isExternal
boolean

Является ли смарт-процесс вынесенным из CRM (привязанным к цифровому рабочему месту)

Параметр устарел. Для работы с цифровыми рабочими местами используйте методы crm.automatedsolution.*

customSectionId
integer

Идентификатор цифрового рабочего места

Параметр устарел. Для работы с цифровыми рабочими местами используйте методы crm.automatedsolution.*

customSections
array

Массив цифровых рабочих мест

Параметр устарел. Для работы с цифровыми рабочими местами используйте методы crm.automatedsolution.*

Примечание

Изменение полей настроек смарт-процесса происходит только при передаче изменяемых значений полей.

Например, если у смарт-процесса с id = 128 необходимо отключить функционал печати документов, то передаем следующие параметры:

{
            "id": 128,
            "fields": {
                "isDocumentsEnabled": "N"
            }
        }
        

Связи

  • Настройки необходимо передавать целиком, они полностью перезаписываются.
  • Нельзя изменить настройки предустановленных связей (iPredefined: true). Эти настройки можно не передавать в запросе.
  • Если при попытке сохранить переданные настройки связей возникнет ошибка, она не будет выведена. Настройки просто не сохранятся.

Примеры кода

  1. У смарт-процесса с id = 20:

    • Отключить следующие настройки:
      • Роботы и триггеры
      • Поля Дата начала и Дата завершения
      • Поле Клиент
      • Поле Наблюдатели
    • Включить следующие настройки:
      • Поля Источник и Дополнительно об источнике
      • Использование своих стадий и канбана
    • Включить отображение смарт-процесса в поле Задачи
    curl -X POST \
            -H "Content-Type: application/json" \
            -H "Accept: application/json" \
            -d '{"id":20,"fields":{"isAutomationEnabled":"N","isBeginCloseDatesEnabled":"N","isClientEnabled":"N","isObserversEnabled":"N","isSourceEnabled":"Y","isStagesEnabled":"Y","isUseInUserfieldEnabled":"Y","linkedUserFields":{"TASKS_TASK|UF_CRM_TASK":"true"}}}' \
            https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.type.update
            
    curl -X POST \
            -H "Content-Type: application/json" \
            -H "Accept: application/json" \
            -d '{"id":20,"fields":{"isAutomationEnabled":"N","isBeginCloseDatesEnabled":"N","isClientEnabled":"N","isObserversEnabled":"N","isSourceEnabled":"Y","isStagesEnabled":"Y","isUseInUserfieldEnabled":"Y","linkedUserFields":{"TASKS_TASK|UF_CRM_TASK":"true"}},"auth":"**put_access_token_here**"}' \
            https://**put_your_bitrix24_address**/rest/crm.type.update
            
    BX24.callMethod(
                'crm.type.update',
                {
                    id: 20,
                    fields: {
                        isAutomationEnabled: "N",
                        isBeginCloseDatesEnabled: "N",
                        isClientEnabled: "N",
                        isObserversEnabled: "N",
                        isSourceEnabled: "Y",
                        isStagesEnabled: "Y",
                        isUseInUserfieldEnabled: "Y",
                        linkedUserFields: {
                            "TASKS_TASK|UF_CRM_TASK": "true",
                        },
                    },
                },
                (result) => {
                    if (result.error())
                    {
                        console.error(result.error());
            
                        return;
                    }
            
                    console.info(result.data());
                },
            );
            
    require_once('crest.php');
            
            $result = CRest::call(
                'crm.type.update',
                [
                    'id' => 20,
                    'fields' => [
                        'isAutomationEnabled' => "N",
                        'isBeginCloseDatesEnabled' => "N",
                        'isClientEnabled' => "N",
                        'isObserversEnabled' => "N",
                        'isSourceEnabled' => "Y",
                        'isStagesEnabled' => "Y",
                        'isUseInUserfieldEnabled' => "Y",
                        'linkedUserFields' => [
                            "TASKS_TASK|UF_CRM_TASK" => "true",
                        ],
                    ]
                ]
            );
            
            echo '<PRE>';
            print_r($result);
            echo '</PRE>';
            
  2. Допустим, у смарт-процесса с id = 20 необходимо

    • Удалить все привязанные к смарт-процессу сущности (relations.parent)
    • Включить «показ в карточке» для Лидов, к которым привязан смарт-процесс

    Исходные relations в смарт-процессе:

    {
                "relations": {
                    "parent": [
                        {
                            "entityTypeId": 31,
                            "isChildrenListEnabled": "N",
                            "isPredefined": "N"
                        }
                    ],
                    "child": [
                        {
                            "entityTypeId": 1,
                            "isChildrenListEnabled": "N",
                            "isPredefined": "N"
                        },
                        {
                            "entityTypeId": 2,
                            "isChildrenListEnabled": "N",
                            "isPredefined": "N"
                        }
                    ]
                }
            }
            

    Итоговый запрос:

    curl -X POST \
            -H "Content-Type: application/json" \
            -H "Accept: application/json" \
            -d '{"id":20,"fields":{"relations":{"parent":[],"child":[{"entityTypeId":1,"isChildrenListEnabled":"true"},{"entityTypeId":2,"isChildrenListEnabled":"false"}]}}}' \
            https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.type.update
            
    curl -X POST \
            -H "Content-Type: application/json" \
            -H "Accept: application/json" \
            -d '{"id":20,"fields":{"relations":{"parent":[],"child":[{"entityTypeId":1,"isChildrenListEnabled":"true"},{"entityTypeId":2,"isChildrenListEnabled":"false"}]}},"auth":"**put_access_token_here**"}' \
            https://**put_your_bitrix24_address**/rest/crm.type.update
            
    BX24.callMethod(
                'crm.type.update',
                {
                    id: 20,
                    fields: {
                        relations: {
                            parent: [],
                            child: [
                                {
                                    "entityTypeId": 1,
                                    "isChildrenListEnabled": "true",
                                },
                                {
                                    "entityTypeId": 2,
                                    "isChildrenListEnabled": "false",
                                }
                            ],
                        },
                    },
                },
                (result) => {
                    if (result.error())
                    {
                        console.error(result.error());
            
                        return;
                    }
            
                    console.info(result.data());
                },
            );
            
    require_once('crest.php');
            
            $result = CRest::call(
                'crm.type.update',
                [
                    'id' => 20,
                    'fields' => [
                        'relations' => [
                            'parent' => [],
                            'child' => [
                                [
                                    "entityTypeId" => 1,
                                    "isChildrenListEnabled" => "true",
                                ],
                                [
                                    "entityTypeId" => 2,
                                    "isChildrenListEnabled" => "false",
                                ]
                            ],
                        ],
                    ]
                ]
            );
            
            echo '<PRE>';
            print_r($result);
            echo '</PRE>';
            

Обработка ответа

HTTP-статус: 200

{
            "result": {
                "type": {
                    "id": 20,
                    "title": "Смарт-процесс #3",
                    "code": "",
                    "createdBy": 1,
                    "entityTypeId": 1222,
                    "customSectionId": null,
                    "isCategoriesEnabled": "Y",
                    "isStagesEnabled": "Y",
                    "isBeginCloseDatesEnabled": "N",
                    "isClientEnabled": "N",
                    "isUseInUserfieldEnabled": "Y",
                    "isLinkWithProductsEnabled": "N",
                    "isMycompanyEnabled": "Y",
                    "isDocumentsEnabled": "N",
                    "isSourceEnabled": "Y",
                    "isObserversEnabled": "N",
                    "isRecyclebinEnabled": "N",
                    "isAutomationEnabled": "N",
                    "isBizProcEnabled": "N",
                    "isSetOpenPermissions": "Y",
                    "isPaymentsEnabled": "N",
                    "isCountersEnabled": "N",
                    "createdTime": "2024-07-08T17:24:47+02:00",
                    "updatedTime": "2024-07-09T20:55:37+02:00",
                    "updatedBy": 1,
                    "relations": {
                        "parent": [],
                        "child": [
                            {
                                "entityTypeId": 1,
                                "isChildrenListEnabled": "Y",
                                "isPredefined": "N"
                            },
                            {
                                "entityTypeId": 2,
                                "isChildrenListEnabled": "Y",
                                "isPredefined": "N"
                            }
                        ]
                    },
                    "linkedUserFields": {
                        "CALENDAR_EVENT|UF_CRM_CAL_EVENT": "N",
                        "TASKS_TASK|UF_CRM_TASK": "Y",
                        "TASKS_TASK_TEMPLATE|UF_CRM_TASK": "N"
                    },
                    "customSections": []
                }
            },
            "time": {
                "start": 1720551426.116454,
                "finish": 1720551426.816224,
                "duration": 0.6997702121734619,
                "processing": 0.20451998710632324,
                "date_start": "2024-07-09T20:57:06+02:00",
                "date_finish": "2024-07-09T20:57:06+02:00",
                "operating": 0.2044668197631836
            }
        }
        

Возвращаемые данные

Название
тип

Описание

result
object

Корневой элемент ответа. Содержит единственный ключ type

type
type

Информация об обновленном смарт-процессе

time
time

Информация о времени выполнения запроса

Обработка ошибок

HTTP-статус: 400

{
            "error": 0,
            "error_description": "Смарт-процесс не найден"
        }
        

Название
тип

Описание

error
string

Строковый код ошибки. Может состоять из цифр, латинских букв и знака подчеркивания

error_description
error_description

Текстовое описание ошибки. Описание не предназначено для показа конечному пользователю в необработанном виде

Возможные коды ошибок

Статус

Код

Описание

Значение

400

ACCESS_DENIED

Доступ запрещен

Возникает, если у пользователя нет административных прав CRM

403

allowed_only_intranet_user

Действие разрешено только интранет-пользователям

Возникает, если пользователь не является интранет-пользователем

400

UPDATE_DYNAMIC_TYPE_RESTRICTED

Вы не можете изменить настройки смарт-процесса из-за ограничений вашего тарифа

Смарт-процессы не доступны на вашем тарифе

400

0

Выберите рабочее место, в котором будет находиться смарт-процесс

При передаче isExternal = 'true', но пустом customSectionId

Статусы и коды системных ошибок

HTTP-статус: 20x, 40x, 50x

Описанные ниже ошибки могут возникнуть при вызове любого метода

Статус

Код
Текст ошибки

Описание

500

INTERNAL_SERVER_ERROR
Internal server error

Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24

500

ERROR_UNEXPECTED_ANSWER
Server returned an unexpected response

Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24

503

QUERY_LIMIT_EXCEEDED
Too many requests

Превышен лимит на интенсивность запросов

429

OPERATION_TIME_LIMIT
Method is blocked due to operation time limit

Метод заблокирован из-за превышения лимита на ресурсоемкость запросов. Блокировка снимается автоматически через 10 минут

405

ERROR_BATCH_METHOD_NOT_ALLOWED
Method is not allowed for batch usage

Текущий метод не разрешен для вызова с помощью batch

400

ERROR_BATCH_LENGTH_EXCEEDED
Max batch length exceeded

Превышена максимальная длина параметров, переданных в метод batch

401

NO_AUTH_FOUND
Wrong authorization data

Неверный access-токен или код вебхука

400

INVALID_REQUEST
Https required

Для вызовов методов требуется использовать протокол HTTPS

503

OVERLOAD_LIMIT
REST API is blocked due to overload

REST API заблокирован из-за перегрузки. Это ручная индивидуальная блокировка, для снятия необходимо обращаться в техническую поддержку Битрикс24

403

ACCESS_DENIED
REST API is available only on commercial plans

REST API доступен только на коммерческих планах

403

INVALID_CREDENTIALS
Invalid request credentials

У пользователя, с чьим access-токеном или вебхуком был вызван метод, не хватает прав

404

ERROR_MANIFEST_IS_NOT_AVAILABLE
Manifest is not available

Манифест недоступен

403

insufficient_scope
The request requires higher privileges than provided by the webhook token

Запрос требует более высоких привилегий, чем предоставляет токен вебхука

401

expired_token
The access token provided has expired

Предоставленный access-токен доступа истек

403

user_access_error
The user does not have access to the application

Пользователь не имеет доступа к приложению. Это означает, что приложение установлено, но администратор портала разрешил доступ к этому приложению только конкретным пользователям

500

PORTAL_DELETED
Portal was deleted

Публичная часть сайта закрыта. Чтобы открыть публичную часть сайта на коробочной установке отключите опцию «Временное закрытие публичной части сайта». Путь к настройке: Рабочий стол > Настройки > Настройки продукта > Настройки модулей > Главный модуль > Временное закрытие публичной части сайта

Продолжите изучение