Update User Type crm.type.update

Scope: crm

Who can execute the method: any user with administrative access to the CRM section

This method updates an existing SPA by its identifier id.

Method Parameters

Required parameters are marked with *

Name
type

Description

id*
integer

Identifier of the SPA. Can be obtained using the methods: crm.type.list, crm.type.add

fields
object

Field values (detailed description provided below) for updating the SPA

Parameter fields

Name
type

Description

title
string

Title of the SPA

relations
object

An object containing links to other CRM entities. The structure is described by the object type.relations

isUseInUserfieldEnabled
boolean

Is the use of the SPA in the user field enabled

linkedUserFields
object

A set of user fields in which this SPA should be displayed. The structure is described by the object type.linkedUserFields

isAutomationEnabled
boolean

Are automation rules and triggers enabled

isBeginCloseDatesEnabled
boolean

Are the Start Date and End Date fields enabled

isBizProcEnabled
boolean

Is the use of the business process designer enabled

isCategoriesEnabled
boolean

Are custom Sales Funnels and sales tunnels enabled

isClientEnabled
boolean

Is the Client field enabled. When this option is enabled, the SPA has a preset link to Contacts and Companies

isDocumentsEnabled
boolean

Is document printing enabled

isLinkWithProductsEnabled
boolean

Is the link to catalog products enabled

isMycompanyEnabled
boolean

Is the Your Company Details field enabled

isObserversEnabled
boolean

Is the Observers field enabled

isRecyclebinEnabled
boolean

Is the use of the recycle bin enabled

isSetOpenPermissions
boolean

Should new funnels be made available to everyone

isSourceEnabled
boolean

Are the Source and Additional Information about Source fields enabled

isStagesEnabled
boolean

Is the use of custom stages and Kanban enabled

isExternal
boolean

Is the SPA external to the CRM (linked to a digital workplace)

This parameter is deprecated. For working with digital workplaces, use the methods crm.automatedsolution.*

customSectionId
integer

Identifier of the digital workplace

This parameter is deprecated. For working with digital workplaces, use the methods crm.automatedsolution.*

customSections
array

Array of digital workplaces

This parameter is deprecated. For working with digital workplaces, use the methods crm.automatedsolution.*

Note

Changes to the SPA settings fields occur only when the modifiable field values are passed.

For example, if you need to disable document printing functionality for the SPA with id = 128, you would pass the following parameters:

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

Relations

  • Settings must be passed in full; they are completely overwritten.
  • You cannot change the settings of predefined links (iPredefined: true). These settings can be omitted in the request.
  • If an error occurs while trying to save the passed link settings, it will not be displayed. The settings will simply not be saved.

Code Examples

  1. For the SPA with id = 20:

    • Disable the following settings:
      • Automation rules and triggers
      • Start Date and End Date fields
      • Client field
      • Observers field
    • Enable the following settings:
      • Source and Additional Information about Source fields
      • Use of custom stages and Kanban
    • Enable display of the SPA in the Tasks field
    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. Suppose for the SPA with id = 20 you need to:

    • Remove all entities linked to the SPA (relations.parent)
    • Enable "show in detail form" for Leads linked to the SPA

    Initial relations in the SPA:

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

    Final request:

    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>';
            

Response Handling

HTTP Status: 200

{
            "result": {
                "type": {
                    "id": 20,
                    "title": "SPA #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
            }
        }
        

Returned Data

Name
type

Description

result
object

Root element of the response. Contains a single key type

type
type

Information about the updated SPA

time
time

Information about the request execution time

Error Handling

HTTP Status: 400

{
            "error": 0,
            "error_description": "SPA not found"
        }
        

Name
type

Description

error
string

String error code. It may consist of digits, Latin letters, and underscores

error_description
error_description

Textual description of the error. The description is not intended to be shown to the end user in its raw form

Possible Error Codes

Status

Code

Description

Value

400

ACCESS_DENIED

Access denied

Occurs if the user does not have administrative rights in CRM

403

allowed_only_intranet_user

Action allowed only for intranet users

Occurs if the user is not an intranet user

400

UPDATE_DYNAMIC_TYPE_RESTRICTED

You cannot change the SPA settings due to your plan's restrictions

SPAs are not available on your plan

400

0

Select a workplace where the SPA will be located

When passing isExternal = 'true', but with an empty customSectionId

Statuses and System Error Codes

HTTP Status: 20x, 40x, 50x

The errors described below may occur when calling any method.

Status

Code
Error Message

Description

500

INTERNAL_SERVER_ERROR
Internal server error

An internal server error has occurred, please contact the server administrator or Bitrix24 technical support

500

ERROR_UNEXPECTED_ANSWER
Server returned an unexpected response

An internal server error has occurred, please contact the server administrator or Bitrix24 technical support

503

QUERY_LIMIT_EXCEEDED
Too many requests

The request intensity limit has been exceeded

405

ERROR_BATCH_METHOD_NOT_ALLOWED
Method is not allowed for batch usage

The current method is not allowed to be called using batch

400

ERROR_BATCH_LENGTH_EXCEEDED
Max batch length exceeded

The maximum length of parameters passed to the batch method has been exceeded

401

NO_AUTH_FOUND
Wrong authorization data

Invalid access token or webhook code

400

INVALID_REQUEST
Https required

The methods must be called using the HTTPS protocol

503

OVERLOAD_LIMIT
REST API is blocked due to overload

The REST API is blocked due to overload. This is a manual individual block, to remove it you need to contact Bitrix24 technical support

403

ACCESS_DENIED
REST API is available only on commercial plans

The REST API is available only on commercial plans

403

INVALID_CREDENTIALS
Invalid request credentials

The user whose access token or webhook was used to call the method lacks permissions

404

ERROR_MANIFEST_IS_NOT_AVAILABLE
Manifest is not available

The manifest is not available

403

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

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

401

expired_token
The access token provided has expired

The provided access token has expired

403

user_access_error
The user does not have access to the application

The user does not have access to the application. This means that the application is installed, but the account administrator has allowed access to this application only for specific users

500

PORTAL_DELETED
Portal was deleted

The public part of the site is closed. To open the public part of the site on an on-premise installation, disable the option "Temporary closure of the public part of the site". Path to the setting: Desktop > Settings > Product Settings > Module Settings > Main Module > Temporary closure of the public part of the site

Continue Learning