Create a new custom type crm.type.add

Scope: crm

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

This method creates a new SPA.

Method Parameters

Required parameters are marked with *

Name
type

Description

fields*
object

Field values (detailed description provided below) for adding a new SPA

Parameter fields

Required parameters are marked with *

Name
type

Description

Default

title*
string

Title of the SPA

entityTypeId
integer

Identifier of the created SPA. If this field is not provided, it will be generated automatically.

It should be noted that:

  1. This parameter is unique. It is not possible to create two SPAs with the same entityTypeId
  2. The value of entityTypeId must be within one of two ranges:
    • an even integer that is greater than or equal to 1030
    • in the range from 128 to 192

relations
object

An object containing links to other CRM entities. The structure is described below

isUseInUserfieldEnabled
boolean

Is the use of the SPA in the user field enabled

N

linkedUserFields
object

A set of user fields in which this SPA should be displayed. The structure is described below

{}

isAutomationEnabled
boolean

Are Automation rules and triggers enabled

N

isBeginCloseDatesEnabled
boolean

Are the Start Date and End Date fields enabled

N

isBizProcEnabled
boolean

Is the business process designer enabled

N

isCategoriesEnabled
boolean

Are custom sales funnels and tunnels enabled

N

isClientEnabled
boolean

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

N

isDocumentsEnabled
boolean

Is document printing enabled

N

isLinkWithProductsEnabled
boolean

Is the binding of catalog products enabled

N

isMycompanyEnabled
boolean

Is the Your Company Details field enabled

N

isObserversEnabled
boolean

Is the Observers field enabled

N

isRecyclebinEnabled
boolean

Is the use of the recycle bin enabled

N

isSetOpenPermissions
boolean

Should new funnels be available to everyone

Y

isSourceEnabled
boolean

Are the Source and Additional Information about Source fields enabled

N

isStagesEnabled
boolean

Is the use of custom stages and kanban enabled

N

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.*

-

Relations relations

Name
type

Description

parent
relation[]

CRM elements that will be linked to this SPA

child
relation[]

CRM elements to which this SPA will be linked

One relation relation

Required parameters are marked with *

Name
type

Description

Default

entityTypeId*
integer

Identifier of the system or custom type of the CRM entity

-

isChildrenListEnabled
boolean

Should the linked element be added to the card.

Values Y and N do not work. You must pass "true" or "false"

"false"

Binding to user fields

linkedUserFields — a set of fields in which this SPA should be displayed.
This setting will only be considered if isUseInUserfieldEnabled = 'Y' is passed.

Name
type

Description

Default Value

CALENDAR_EVENT|UF_CRM_CAL_EVENT
boolean

Calendar event

"false"

TASKS_TASK|UF_CRM_TASK
boolean

Tasks

"false"

TASKS_TASK_TEMPLATE|UF_CRM_TASK
boolean

Task templates

"false"

These parameters do not support passing values Y and N. Use "true" or "false".

Code Examples

How to Use Examples in Documentation

Let's create an SPA with the following conditions:

  • The most complete set of enabled settings
  • Link Leads, Deals, Invoices to the created SPA. Each link is added to the card of the elements of this SPA
  • Link the created SPA to Contacts and Companies. The link to Contacts is added to the card
  • The SPA should be displayed in the following fields: Calendar Event, Tasks
curl -X POST \
        -H "Content-Type: application/json" \
        -H "Accept: application/json" \
        -d '{"fields":{"title":"SPA","entityTypeId":2024,"isAutomationEnabled":"Y","isBeginCloseDatesEnabled":"Y","isBizProcEnabled":"Y","isCategoriesEnabled":"Y","isClientEnabled":"Y","isDocumentsEnabled":"Y","isLinkWithProductsEnabled":"Y","isMycompanyEnabled":"Y","isObserversEnabled":"Y","isRecyclebinEnabled":"Y","isSetOpenPermissions":"Y","isSourceEnabled":"Y","isStagesEnabled":"Y","isUseInUserfieldEnabled":"Y","linkedUserFields":{"CALENDAR_EVENT|UF_CRM_CAL_EVENT":"true","TASKS_TASK|UF_CRM_TASK":"true"},"relations":{"parent":[{"entityTypeId":1,"isChildrenListEnabled":"true"},{"entityTypeId":2,"isChildrenListEnabled":"true"},{"entityTypeId":31,"isChildrenListEnabled":"true"}],"child":[{"entityTypeId":3,"isChildrenListEnabled":"true"},{"entityTypeId":4}]}}}' \
        https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.type.add
        
curl -X POST \
        -H "Content-Type: application/json" \
        -H "Accept: application/json" \
        -d '{"fields":{"title":"SPA","entityTypeId":2024,"isAutomationEnabled":"Y","isBeginCloseDatesEnabled":"Y","isBizProcEnabled":"Y","isCategoriesEnabled":"Y","isClientEnabled":"Y","isDocumentsEnabled":"Y","isLinkWithProductsEnabled":"Y","isMycompanyEnabled":"Y","isObserversEnabled":"Y","isRecyclebinEnabled":"Y","isSetOpenPermissions":"Y","isSourceEnabled":"Y","isStagesEnabled":"Y","isUseInUserfieldEnabled":"Y","linkedUserFields":{"CALENDAR_EVENT|UF_CRM_CAL_EVENT":"true","TASKS_TASK|UF_CRM_TASK":"true"},"relations":{"parent":[{"entityTypeId":1,"isChildrenListEnabled":"true"},{"entityTypeId":2,"isChildrenListEnabled":"true"},{"entityTypeId":31,"isChildrenListEnabled":"true"}],"child":[{"entityTypeId":3,"isChildrenListEnabled":"true"},{"entityTypeId":4}]}},"auth":"**put_access_token_here**"}' \
        https://**put_your_bitrix24_address**/rest/crm.type.add
        
try
        {
        	const response = await $b24.callMethod(
        		'crm.type.add',
        		{
        			fields: {
        				title: "SPA",
        				entityTypeId: 2024,
        				isAutomationEnabled: "Y",
        				isBeginCloseDatesEnabled: "Y",
        				isBizProcEnabled: "Y",
        				isCategoriesEnabled: "Y",
        				isClientEnabled: "Y",
        				isDocumentsEnabled: "Y",
        				isLinkWithProductsEnabled: "Y",
        				isMycompanyEnabled: "Y",
        				isObserversEnabled: "Y",
        				isRecyclebinEnabled: "Y",
        				isSetOpenPermissions: "Y",
        				isSourceEnabled: "Y",
        				isStagesEnabled: "Y",
        				isUseInUserfieldEnabled: "Y",
        				linkedUserFields: {
        					"CALENDAR_EVENT|UF_CRM_CAL_EVENT": "true",
        					"TASKS_TASK|UF_CRM_TASK": "true",
        				},
        				relations: {
        					parent: [
        						{
        							entityTypeId: 1,
        							isChildrenListEnabled: "true",
        						},
        						{
        							entityTypeId: 2,
        							isChildrenListEnabled: "true",
        						},
        						{
        							entityTypeId: 31,
        							isChildrenListEnabled: "true",
        							
        						},
        					],
        					child: [
        						{
        							entityTypeId: 3,
        							isChildrenListEnabled: "true",
        						},
        						{
        							entityTypeId: 4,
        						},
        					],
        				},
        			},
        		}
        	);
        	
        	const result = response.getData().result;
        	console.info(result);
        }
        catch( error )
        {
        	console.error(error);
        }
        
try {
            $response = $b24Service
                ->core
                ->call(
                    'crm.type.add',
                    [
                        'fields' => [
                            'title'                     => "SPA",
                            'entityTypeId'              => 2024,
                            'isAutomationEnabled'       => "Y",
                            'isBeginCloseDatesEnabled'  => "Y",
                            'isBizProcEnabled'          => "Y",
                            'isCategoriesEnabled'       => "Y",
                            'isClientEnabled'           => "Y",
                            'isDocumentsEnabled'        => "Y",
                            'isLinkWithProductsEnabled' => "Y",
                            'isMycompanyEnabled'        => "Y",
                            'isObserversEnabled'        => "Y",
                            'isRecyclebinEnabled'       => "Y",
                            'isSetOpenPermissions'      => "Y",
                            'isSourceEnabled'           => "Y",
                            'isStagesEnabled'           => "Y",
                            'isUseInUserfieldEnabled'   => "Y",
                            'linkedUserFields'          => [
                                "CALENDAR_EVENT|UF_CRM_CAL_EVENT" => "true",
                                "TASKS_TASK|UF_CRM_TASK"          => "true",
                            ],
                            'relations'                 => [
                                'parent' => [
                                    [
                                        'entityTypeId'           => 1,
                                        'isChildrenListEnabled'  => "true",
                                    ],
                                    [
                                        'entityTypeId'           => 2,
                                        'isChildrenListEnabled'  => "true",
                                    ],
                                    [
                                        'entityTypeId'           => 31,
                                        'isChildrenListEnabled'  => "true",
                                    ],
                                ],
                                'child'  => [
                                    [
                                        'entityTypeId'           => 3,
                                        'isChildrenListEnabled'  => "true",
                                    ],
                                    [
                                        'entityTypeId'           => 4,
                                    ],
                                ],
                            ],
                        ],
                    ]
                );
        
            $result = $response
                ->getResponseData()
                ->getResult();
        
            echo 'Success: ' . print_r($result, true);
        
        } catch (Throwable $e) {
            error_log($e->getMessage());
            echo 'Error adding CRM type: ' . $e->getMessage();
        }
        
BX24.callMethod(
            'crm.type.add',
            {
                fields: {
                    title: "SPA",
                    entityTypeId: 2024,
                    isAutomationEnabled: "Y",
                    isBeginCloseDatesEnabled: "Y",
                    isBizProcEnabled: "Y",
                    isCategoriesEnabled: "Y",
                    isClientEnabled: "Y",
                    isDocumentsEnabled: "Y",
                    isLinkWithProductsEnabled: "Y",
                    isMycompanyEnabled: "Y",
                    isObserversEnabled: "Y",
                    isRecyclebinEnabled: "Y",
                    isSetOpenPermissions: "Y",
                    isSourceEnabled: "Y",
                    isStagesEnabled: "Y",
                    isUseInUserfieldEnabled: "Y",
                    linkedUserFields: {
                        "CALENDAR_EVENT|UF_CRM_CAL_EVENT": "true",
                        "TASKS_TASK|UF_CRM_TASK": "true",
                    },
                    relations: {
                        parent: [
                            {
                                entityTypeId: 1,
                                isChildrenListEnabled: "true",
                            },
                            {
                                entityTypeId: 2,
                                isChildrenListEnabled: "true",
                            },
                            {
                                entityTypeId: 31,
                                isChildrenListEnabled: "true",
                                
                            },
                        ],
                        child: [
                            {
                                entityTypeId: 3,
                                isChildrenListEnabled: "true",
                            },
                            {
                                entityTypeId: 4,
                            },
                        ],
                    },
                },
            },
            (result) => {
                if (result.error())
                {
                    console.error(result.error());
        
                    return;
                }
        
                console.info(result.data());
            },
        );
        
require_once('crest.php');
        
        $result = CRest::call(
            'crm.type.add',
            [
                'fields' => [
                    'title' => "SPA",
                    'entityTypeId' => 2024,
                    'isAutomationEnabled' => "Y",
                    'isBeginCloseDatesEnabled' => "Y",
                    'isBizProcEnabled' => "Y",
                    'isCategoriesEnabled' => "Y",
                    'isClientEnabled' => "Y",
                    'isDocumentsEnabled' => "Y",
                    'isLinkWithProductsEnabled' => "Y",
                    'isMycompanyEnabled' => "Y",
                    'isObserversEnabled' => "Y",
                    'isRecyclebinEnabled' => "Y",
                    'isSetOpenPermissions' => "Y",
                    'isSourceEnabled' => "Y",
                    'isStagesEnabled' => "Y",
                    'isUseInUserfieldEnabled' => "Y",
                    'linkedUserFields' => [
                        "CALENDAR_EVENT|UF_CRM_CAL_EVENT" => "true",
                        "TASKS_TASK|UF_CRM_TASK" => "true",
                    ],
                    'relations' => [
                        'parent' => [
                            [
                                'entityTypeId' => 1,
                                'isChildrenListEnabled' => "true",
                            ],
                            [
                                'entityTypeId' => 2,
                                'isChildrenListEnabled' => "true",
                            ],
                            [
                                'entityTypeId' => 31,
                                'isChildrenListEnabled' => "true",
                            ],
                        ],
                        'child' => [
                            [
                                'entityTypeId' => 3,
                                'isChildrenListEnabled' => "true",
                            ],
                            [
                                'entityTypeId' => 4,
                            ],
                        ],
                    ],
                ],
            ]
        );
        
        echo '<PRE>';
        print_r($result);
        echo '</PRE>';
        

Response Handling

HTTP status: 200

{
            "result": {
                "type": {
                    "id": 16,
                    "createdBy": 1,
                    "entityTypeId": 2024,
                    "isCategoriesEnabled": "Y",
                    "isStagesEnabled": "Y",
                    "isBeginCloseDatesEnabled": "Y",
                    "isClientEnabled": "Y",
                    "isUseInUserfieldEnabled": "Y",
                    "isLinkWithProductsEnabled": "Y",
                    "isMycompanyEnabled": "Y",
                    "isDocumentsEnabled": "Y",
                    "isSourceEnabled": "Y",
                    "isObserversEnabled": "Y",
                    "isRecyclebinEnabled": "Y",
                    "isAutomationEnabled": "Y",
                    "isBizProcEnabled": "Y",
                    "isSetOpenPermissions": "Y",
                    "isPaymentsEnabled": "N",
                    "isCountersEnabled": "N",
                    "createdTime": "2024-07-05T19:47:33+02:00",
                    "updatedTime": "2024-07-05T19:47:33+02:00",
                    "updatedBy": 1,
                    "title": "SPA",
                    "relations": {
                        "parent": [
                            {
                                "entityTypeId": 3,
                                "isChildrenListEnabled": "Y",
                                "isPredefined": "Y"
                            },
                            {
                                "entityTypeId": 4,
                                "isChildrenListEnabled": "Y",
                                "isPredefined": "Y"
                            },
                            {
                                "entityTypeId": 1,
                                "isChildrenListEnabled": "Y",
                                "isPredefined": "N"
                            },
                            {
                                "entityTypeId": 2,
                                "isChildrenListEnabled": "Y",
                                "isPredefined": "N"
                            },
                            {
                                "entityTypeId": 31,
                                "isChildrenListEnabled": "Y",
                                "isPredefined": "N"
                            }
                        ],
                        "child": [
                            {
                                "entityTypeId": 3,
                                "isChildrenListEnabled": "Y",
                                "isPredefined": "N"
                            },
                            {
                                "entityTypeId": 4,
                                "isChildrenListEnabled": "N",
                                "isPredefined": "N"
                            }
                        ]
                    },
                    "linkedUserFields": {
                        "CALENDAR_EVENT|UF_CRM_CAL_EVENT": "Y",
                        "TASKS_TASK|UF_CRM_TASK": "Y",
                        "TASKS_TASK_TEMPLATE|UF_CRM_TASK": "N"
                    },
                    "customSections": [],
                    "customSectionId": null
                }
            },
            "time": {
                "start": 1720201651.707909,
                "finish": 1720201654.748627,
                "duration": 3.040717840194702,
                "processing": 2.71589994430542,
                "date_start": "2024-07-05T19:47:31+02:00",
                "date_finish": "2024-07-05T19:47:34+02:00",
                "operating": 0
            }
        }
        

Returned Data

Name
type

Description

result
object

Root element of the response. Contains a single key type

type
type

Information about the created SPA

time
time

Information about the execution time of the request

Error Handling

HTTP status: 400, 403

{
            "error": "INVALID_ARG_VALUE", 
            "error_description": "entityTypeId is out of allowed range"
        }
        

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

INVALID_ARG_VALUE

entityTypeId is out of allowed range

Occurs when an invalid entityTypeId is passed

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

100

Could not find value for parameter

Occurs if the required parameter fields is not passed

400

0

Select a workplace where the SPA will be located

Occurs when isExternal = 'true', but customSectionId is empty

400

CREATE_DYNAMIC_TYPE_RESTRICTED

Maximum number of SPAs exceeded

Creating an SPA is restricted due to the plan

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