При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Добавить новую воронку crm.category.add», разберем архитектурные особенности и предоставим готовые к интеграции примеры кода.
Добавить новую воронку crm.category.add
> Scope: crm
>
> Кто может выполнять метод: любой пользователь с административным доступом к разделу CRM
Метод создает у типа объекта CRM с идентификатором entityTypeId новую воронку (направление).
Параметры метода
Названиетип | Описание |
|---|---|
| entityTypeId [ integer][1] | Идентификатор системного или пользовательского типа сущности CRM для которой будет создана новая воронка |
| fields [ object][1] | Значения полей (подробное описание приведено ниже) для добавления новой воронки в виде структуры: |
Параметр fields
Названиетип | Описание |
|---|---|
| name* [ string][1] | Название воронки. Каким может быть название: — длина не может быть больше 255 символов— не может быть пустым — не может состоять только лишь из пробелов, табов и так далее По умолчанию равно |
| sort [ integer][1] | Индекс сортировки. Не может быть отрицательным. Если передать в По умолчанию имеет значение |
| isDefault [ boolean][1] | Является ли воронка, воронкой по умолчанию. Может иметь значения: — Y — да, является— N — нетПо умолчанию равно В сделках поле Ограничения на изменение поля Если для имеющегося смарт-процесса отключен показ направлений в интерфейсе, то работа с направлениями через rest все равно возможна |
Примеры кода
Создать новую воронку по умолчанию в смарт-процессе с entityTypeId = 1152.
- cURL (Webhook)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"entityTypeId": 1152, "fields": {"name": "Новая воронка по умолчанию", "sort": 50, "isDefault": "Y"}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.category.add- cURL (OAuth)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"entityTypeId": 1152, "fields": {"name": "Новая воронка по умолчанию", "sort": 50, "isDefault": "Y"}, "auth": "**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.category.add- JS
try
{
const response = await $b24.callMethod(
'crm.category.add',
{
entityTypeId: 1152,
fields: {
name: 'Новая воронка по умолчанию',
sort: 50,
isDefault: 'Y',
},
}
);
const result = response.getData().result;
console.info(result);
}
catch( error )
{
console.error(error);
}- PHP
try {
$response = $b24Service
->core
->call(
'crm.category.add',
[
'entityTypeId' => 1152,
'fields' => [
'name' => 'Новая воронка по умолчанию',
'sort' => 50,
'isDefault' => 'Y',
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
// Нужная вам логика обработки данных
processData($result);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error adding category: ' . $e->getMessage();
}- BX24.js
BX24.callMethod(
"crm.category.add",
{
entityTypeId: 1152,
fields: {
name: "Новая воронка по умолчанию",
sort: 50,
isDefault: 'Y',
},
},
(result) =>
{
if (result.error())
{
console.error(result.error());
}
else
{
console.info(result.data());
}
}
);- PHP CRest
require_once('crest.php');
$result = CRest::call(
'crm.category.add',
[
'entityTypeId' => 1152,
'fields' => [
'name' => "Новая воронка по умолчанию",
'sort' => 50,
'isDefault' => 'Y',
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';Обработка ответа
HTTP-статус: 200
{
"result": {
"category": {
"id": 5,
"name": "Новая воронка по умолчанию",
"sort": 50,
"entityTypeId": 1152,
"isDefault": "Y"
}
},
"time": {
"start": 1718116794.208887,
"finish": 1718116794.666272,
"duration": 0.4573848247528076,
"processing": 0.1496260166168213,
"date_start": "2024-06-11T16:39:54+02:00",
"date_finish": "2024-06-11T16:39:54+02:00",
"operating": 0
}
}Возвращаемые значения
Названиетип | Описание |
|---|---|
| result [ object][1] | Корневой элемент ответа. Содержит объект category с информацией о воронке |
| time [ object][1] | Объект, содержащий в себе информацию о времени выполнения запроса |
Объект category {#category}
Названиетип | Описание |
|---|---|
| id [ integer][1] | Идентификатор воронки (направления) |
| name [ string][1] | Название воронки |
| sort [ integer][1] | Индекс сортировки |
| entityTypeId [ integer][1] | Идентификатор системного или пользовательского типа, к которому принадлежит воронка |
| isDefault [ boolean][1] | Является ли воронка, воронкой по умолчанию |
| originId [ string][1] | Идентификатор источника данных. Существует только в cделках |
| originatorId [ string][1] | Идентификатор элемента в источнике данных. Существует только в cделках |
| isSystem [ boolean][1] | Является ли воронка системной. Существует только в смарт-процессах |
| code [ string][1] | Псевдоним для системных воронок. Существует только в смарт-процессах |
Обработка ошибок
HTTP-статус: 160, 400
{
"error": "NOT_FOUND",
"error_description": "Смарт-процесс не найден"
}Возможные коды ошибок
| Код | Описание | Значение |
|---|---|---|
NOT_FOUND | Смарт-процесс не найден | Возникает при некорректных значениях entityTypeId |
ENTITY_TYPE_NOT_SUPPORTED | Entity type {entityTypeName} is not supported | Возникает, если объект CRM не поддерживает воронки |
ADDING_DISABLED | Добавление системной категории запрещено | Возникает при попытке создать системную воронку в смарт-процессах |
ACCESS_DENIED | Доступ запрещен | Возникает, если у пользователя недостаточно прав для добавления воронки |
0 | Field ‘NAME’ is required | Возникает, если не передано обязательное поле name |
0 | Default client category does not support updating default state | Возникает при попытке создать воронку по умолчанию для контактов или компаний |
- [](./crm-category-update)
- [](./crm-category-get)
- [](./crm-category-list)
- [](./crm-category-delete)
- [](./crm-category-fields)
- [](../../../../tutorials/crm/how-to-add-crm-objects/how-to-add-category-to-spa)
[1]: ../../../data-types.md
💡 Экспертное мнение и рекомендации
Практические рекомендации:
- При написании кастомных компонентов для «Добавить новую воронку crm.category.add» всегда разделяйте бизнес-логику и представление (шаблон).
- Используйте отладку SQL-запросов через конструкцию
$wpdb->last_queryили стандартный трекер Битрикса, чтобы контролировать нагрузку.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru