crm.type.add
Создать новый пользовательский тип
Описание
Метод создает новый смарт-процесс.
Параметры
fields
object
обязательный
Значения полей (подробное описание приведено ниже) для добавления нового смарт-процесса
Параметр fields
title
string
обязательный
Название смарт-процесса
entityTypeId
integer
необязательный
Идентификатор создаваемого смарт-процесса. Если не передавать данное поле, то оно будет сгенерировано автоматически.
Стоит учитывать, что:
1. Данный параметр является уникальны. Не получится создать два смарт-процесса с одинаковыми entityTypeId
2. Значение entityTypeId обязано быть в одном из двух диапазонов:
- четным целым числом, которое больше или равно 1030
- в диапазоне от 128 до 192
relations
object
необязательный
Объект, содержащий в себе связи к другим сущностям CRM. Структура описана ниже
isUseInUserfieldEnabled
boolean
необязательный
Включено ли использование смарт-процесса в пользовательском поле
linkedUserFields
object
необязательный
Набор пользовательских полей в которых должен отображаться данный смарт-процесс. Структура описана ниже
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.*
Связи relations
parent
relation[]
необязательный
Элементы CRM, которые будут привязаны к данному смарт-процессу
child
relation[]
необязательный
Элементы CRM, к котором будет привязан данный смарт-процесс
Привязка к пользовательским полям
CALENDAR_EVENT
boolean
необязательный
Событие в календаре
TASKS_TASK
boolean
необязательный
Задачи
TASKS_TASK
boolean
необязательный
Шаблоны задач
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"fields":{"title":"Смарт-процесс","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":"Смарт-процесс","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
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame, ISODate } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
// Shape of the payload returned in result (match the "response handling" section of the page)
type TypeResult = {
type: {
id: number,
createdBy: number,
entityTypeId: number,
isCategoriesEnabled: string,
isStagesEnabled: string,
isBeginCloseDatesEnabled: string,
isClientEnabled: string,
isUseInUserfieldEnabled: string,
isLinkWithProductsEnabled: string,
isMycompanyEnabled: string,
isDocumentsEnabled: string,
isSourceEnabled: string,
isObserversEnabled: string,
isRecyclebinEnabled: string,
isAutomationEnabled: string,
isBizProcEnabled: string,
isSetOpenPermissions: string,
isPaymentsEnabled: string,
isCountersEnabled: string,
createdTime: ISODate,
updatedTime: ISODate,
updatedBy: number,
title: string,
relations: {
parent: Array<{ entityTypeId: number, isChildrenListEnabled: string, isPredefined: string }>,
child: Array<{ entityTypeId: number, isChildrenListEnabled: string, isPredefined: string }>,
},
linkedUserFields: Record<string, string>,
customSections: unknown[],
customSectionId: number | null,
},
}
try {
const response = await $b24.actions.v2.call.make<TypeResult>({
method: 'crm.type.add',
params: {
fields: {
title: "Smart Process",
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,
},
],
},
},
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info('Created smart process id:', result.type.id, 'entityTypeId:', result.type.entityTypeId)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function addCrmType() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'crm.type.add',
params: {
fields: {
title: "Smart Process",
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,
},
],
},
},
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info('Created smart process id:', result.type.id, 'entityTypeId:', result.type.entityTypeId)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', addCrmType)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.crm.type.add(fields={
"title": "Documents",
"code": "documents",
"isCategoriesEnabled": "Y",
"isStagesEnabled": "Y",
"isClientEnabled": "Y",
"isLinkWithProductsEnabled": "Y",
"isMycompanyEnabled": "Y",
"isDocumentsEnabled": "Y",
"isAutomationEnabled": "Y",
"isBizProcEnabled": "Y",
"entityTypeId": 2024,
"isBeginCloseDatesEnabled": "Y",
"isObserversEnabled": "Y",
"isRecyclebinEnabled": "Y",
"isSetOpenPermissions": "Y",
"isSourceEnabled": "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,
},
],
},
}).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print('Ошибка Bitrix API', f'error: {error.error}', f'error_description: {error.error_description}', sep='\n')
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
try {
$response = $b24Service
->core
->call(
'crm.type.add',
[
'fields' => [
'title' => "Смарт-процесс",
'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: "Смарт-процесс",
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' => "Смарт-процесс",
'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>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "crm.type.add", b24.Params{
"fields": b24.Params{
"title": "Смарт-процесс",
"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": b24.Params{
"CALENDAR_EVENT|UF_CRM_CAL_EVENT": "true",
"TASKS_TASK|UF_CRM_TASK": "true",
},
"relations": b24.Params{
"parent": []b24.Params{
{
"entityTypeId": 1,
"isChildrenListEnabled": "true",
},
{
"entityTypeId": 2,
"isChildrenListEnabled": "true",
},
{
"entityTypeId": 31,
"isChildrenListEnabled": "true",
},
},
"child": []b24.Params{
{
"entityTypeId": 3,
"isChildrenListEnabled": "true",
},
{
"entityTypeId": 4,
},
},
},
},
})
if err != nil {
return fmt.Errorf("crm.type.add: %w", err)
}
// Метод заворачивает ответ в объект с ключом "type".
raw, ok := b24.Unwrap(res.Result, "type")
if !ok {
return fmt.Errorf("в ответе нет ключа type")
}
var item struct {
ID b24.ID `json:"id"`
CreatedBy int `json:"createdBy"`
EntityTypeID b24.ID `json:"entityTypeId"`
IsCategoriesEnabled string `json:"isCategoriesEnabled"`
IsStagesEnabled string `json:"isStagesEnabled"`
IsBeginCloseDatesEnabled string `json:"isBeginCloseDatesEnabled"`
}
if err := json.Unmarshal(raw, &item); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println(item.ID, item.CreatedBy)
Ответ
HTTP-статус: 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": "Смарт-процесс",
"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
}
}
Возвращаемые данные
result
object
Корневой элемент ответа. Содержит единственный ключ type
type
type
Информация о созданном смарт-процессе
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": "INVALID_ARG_VALUE",
"error_description": "entityTypeId is out of allowed range"
}
| Код | Описание | Значение |
|---|---|---|
400 |
INVALID_ARG_VALUE |
entityTypeId is out of allowed range |
400 |
ACCESS_DENIED |
Доступ запрещен |
403 |
allowed_only_intranet_user |
Действие разрешено только интранет-пользователям |
400 |
100 |
Could not find value for parameter {fields} |
400 |
0 |
Выберите рабочее место, в котором будет находиться смарт-процесс |
400 |
CREATE_DYNAMIC_TYPE_RESTRICTED |
Превышено максимальное количество смарт-процессов |

