# bizproc.workflow.template.list

URL: https://chugunov.pro/api-bitrix24/bizproc/template/bizproc-workflow-template-list/
Проверено на Битрикс24 REST API, обновлено 11.09.2026 (ревизия источника fb39d6c).
Источник: официальная документация Битрикс24 (bitrix-tools/b24-rest-docs, лицензия MIT, © Bitrix). Справочник независимый, официальной документацией не является.

Получить список шаблонов
Scope: `bizproc`
Кто может выполнять метод: администратор

## Описание

Метод получает список шаблонов бизнес-процессов, которые созданы в дизайнере.

Шаблоны роботов, настроенных на стадиях элементов CRM, смарт-процессов или в задачах, метод не возвращает. Такие шаблоны недоступны в REST API.

## Параметры

- `SELECT` `array` — необязательный. Массив содержит список [полей](#fields), которые необходимо выбрать.
  Можно указать только те поля, которые необходимы.
  Значение по умолчанию — `['ID']`
- `FILTER` `object` — необязательный. Объект для фильтрации списка шаблонов бизнес-процессов в формате `{"field_1": "value_1", ... "field_N": "value_N"}`, где
  - `field_N` — [поле](#fields) шаблона для фильтра
  - `value_N` — значение поля
  Перед названием фильтруемого поля можно указать тип фильтрации:
  - `=` — равно
  - `!` или `!=` — не равно
  - `<` — меньше
  - `<=` — меньше либо равно
  - `>` — больше
  - `>=` — больше либо равно
  Без префикса фильтр сравнивает значение на равенство. Название поля можно передавать в любом регистре
- `ORDER` `object` — необязательный. Объект для сортировки списка запущенных бизнес-процессов в формате `{"field_1": "value_1", ... "field_N": "value_N"}`, где
  - `field_N` — [поле](#fields) шаблона для сортировки
  - `value_N` — направление сортировки
  Направление сортировки может принимать значения:
  - `asc` — по возрастанию
  - `desc` — по убыванию
    
  Можно указать несколько полей для сортировки, например, `{NAME: 'ASC', ID: 'DESC'}`.
  Значение по умолчанию — `{ID: 'ASC'}`
- `start` `integer` — необязательный. Параметр используется для управления постраничной навигацией.
  Размер страницы результатов всегда статичный — 50 записей.
  Чтобы выбрать вторую страницу результатов, необходимо передавать значение `50`. Чтобы выбрать третью страницу результатов — значение `100` и так далее.
  Формула расчета значения параметра `start`:
  `start = (N - 1) * 50`, где `N` — номер нужной страницы

### Поля шаблона

- `ID` `integer` — необязательный. Идентификатор шаблона бизнес-процесса
- `MODULE_ID` `string` — необязательный. Идентификатор модуля по документу. Возможные значения:
  - `crm` — CRM
  - `lists` — универсальные списки
  - `disk` — диск
- `ENTITY` `string` — необязательный. Идентификатор объекта по документу. Возможные значения:
  CRM
  - `CCrmDocumentLead` — лиды
  - `CCrmDocumentContact` — контакты
  - `CCrmDocumentCompany` — компании
  - `CCrmDocumentDeal` — сделки
  - `Bitrix\Crm\Integration\BizProc\Document\Quote` — коммерческие предложения
  - `Bitrix\Crm\Integration\BizProc\Document\SmartInvoice` — счета
  - `Bitrix\Crm\Integration\BizProc\Document\Dynamic` — смарт-процессы
  Списки
  - `BizprocDocument` — процессы в ленте новостей
  - `Bitrix\Lists\BizprocDocumentLists` — списки в группах
  Диск
  - `Bitrix\Disk\BizProcDocument`
- `DOCUMENT_TYPE` `string` — необязательный. Тип документа. Возможные значения:
  crm:
  - `LEAD` — лиды
  - `CONTACT` — контакты
  - `COMPANY` — компании
  - `DEAL` — сделки
  - `QUOTE` — коммерческие предложения
  - `SMART_INVOICE` — счета
  - `DYNAMIC_XXX` — смарт-процессы, где XXX — идентификатор смарт-процесса
  списки:
  - `iblock_XXX` — информационный блок, где XXX — идентификатор информационного блока
  диск:
  - `STORAGE_XXX` — хранилище диска, где XXX — идентификатор хранилища
- `AUTO_EXECUTE` `integer` — необязательный. Флаг автозапуска. Может принимать значения:
  - `0` — без автозапуска
  - `1` — запуск на создание
  - `2` — запуск на изменение
  - `3` — запуск на создание и изменение
- `NAME` `string` — необязательный. Название шаблона
- `TEMPLATE` `array` — необязательный. Массив с описанием структуры действий шаблона
- `PARAMETERS` `array` — необязательный. Параметры шаблона
- `VARIABLES` `array` — необязательный. Переменные шаблона
- `CONSTANTS` `array` — необязательный. Константы шаблона
- `MODIFIED` `datetime` — необязательный. Дата последнего изменения
- `IS_MODIFIED` `boolean` — необязательный. Был ли изменен шаблон. Возможные значения:
  - `Y` — да, был изменен
  - `N` — нет
  Опция нужна для [типовых шаблонов](https://helpdesk.bitrix24.ru/open/5415841/) бизнес-процессов
- `USER_ID` `integer` — необязательный. Идентификатор пользователя, который создал или изменил шаблон
- `SYSTEM_CODE` `string` — необязательный. Системный код шаблона.
  Нужен для идентификации шаблонов типовых бизнес-процессов или шаблонов, созданных приложением

## Ответ

HTTP-статус: 200

```json
{
    "result": [
        {
            "ID": "525",
            "NAME": "Вывести время",
            "USER_ID": "503",
            "SYSTEM_CODE": "rest_app_5"
        },
        {
           "ID": "379",
           "NAME": "App template",
           "USER_ID": "503",
           "SYSTEM_CODE": "rest_app_5"
        }
    ],
    "total": 34,
    "time": {
        "start": 1737535822.539526,
        "finish": 1737535822.564579,
        "duration": 0.025053024291992188,
        "processing": 0.0019738674163818359,
        "date_start": "2025-01-22T11:50:22+03:00",
        "date_finish": "2025-01-22T11:50:22+03:00",
        "operating_reset_at": 1737536422,
        "operating": 0
    }
}
```

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

- `result` `array`. Корневой элемент ответа.
  Содержит массив объектов с информацией о шаблонах бизнес-процессов.
  Каждый объект содержит [поля](#fields) шаблона, указанные в параметре `SELECT`
- `total` `integer`. Общее количество найденных записей
- `time` `time`. Информация о времени выполнения запроса

## Ошибки

HTTP-статус: 400

```json
{
    "error": "ACCESS_DENIED",
    "error_description": "Access denied!"
}
```

- `ACCESS_DENIED` — Access denied!. Метод запустил не администратор

## Примеры запроса

### cURL (Webhook)

```bash
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"select":["ID","NAME","USER_ID","SYSTEM_CODE"],"filter":{"MODULE_ID":"lists","AUTO_EXECUTE":0},"order":{"ID":"DESC"}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/bizproc.workflow.template.list
```

### cURL (OAuth)

```bash
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"select":["ID","NAME","USER_ID","SYSTEM_CODE"],"filter":{"MODULE_ID":"lists","AUTO_EXECUTE":0},"order":{"ID":"DESC"},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/bizproc.workflow.template.list
```

### JS

```js
// callListMethod: Получает все данные сразу. Используйте только для небольших выборок (< 1000 элементов) из-за высокой нагрузки на память.

const parameters = {
    select: [
        'ID',
        'NAME',
        'USER_ID',
        'SYSTEM_CODE'
    ],
    filter: {
        MODULE_ID: 'lists',
        AUTO_EXECUTE: 0
    },
    order: {
        ID: 'DESC'
    }
};

try {
    const response = await $b24.callListMethod('bizproc.workflow.template.list', parameters);
    const items = response.getData() || [];
    for (const entity of items) { console.log('Entity:', entity); }
} catch (error) {
    console.error('Request failed', error);
}

// fetchListMethod: Выбирает данные по частям с помощью итератора. Используйте для больших объемов данных для эффективного потребления памяти.

try {
    const generator = $b24.fetchListMethod('bizproc.workflow.template.list', parameters, 'ID');
    for await (const page of generator) {
        for (const entity of page) { console.log('Entity:', entity); }
    }
} catch (error) {
    console.error('Request failed', error);
}

// callMethod: Ручное управление постраничной навигацией через параметр start. Используйте для точного контроля над пакетами запросов. Для больших данных менее эффективен, чем fetchListMethod.

try {
    const response = await $b24.callMethod('bizproc.workflow.template.list', parameters, 0);
    const result = response.getData().result || [];
    for (const entity of result) { console.log('Entity:', entity); }
} catch (error) {
    console.error('Request failed', error);
}
```

### Python

```python
from b24pysdk.errors import BitrixAPIError, BitrixSDKException

try:
    bitrix_response = client.bizproc.workflow.template.list(
        select=[
            "ID",
            "NAME",
            "USER_ID",
            "SYSTEM_CODE",
        ],
        filter={
            "MODULE_ID": "lists",
            "AUTO_EXECUTE": 0,
        },
        order={
            "ID": "DESC",
        },
    ).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}")

from b24pysdk.errors import BitrixAPIError, BitrixSDKException

try:
    bitrix_response = client.bizproc.workflow.template.list(
        select=[
            "ID",
            "NAME",
            "USER_ID",
            "SYSTEM_CODE",
        ],
        filter={
            "MODULE_ID": "lists",
            "AUTO_EXECUTE": 0,
        },
        order={
            "ID": "DESC",
        },
    ).as_list().response
    result = bitrix_response.result
    for item in result:
        print(item)
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}")

from b24pysdk.errors import BitrixAPIError, BitrixSDKException

try:
    bitrix_response = client.bizproc.workflow.template.list(
        select=[
            "ID",
            "NAME",
            "USER_ID",
            "SYSTEM_CODE",
        ],
        filter={
            "MODULE_ID": "lists",
            "AUTO_EXECUTE": 0,
        },
        order={
            "ID": "DESC",
        },
    ).as_list_fast(descending=True).response
    result = bitrix_response.result
    for item in result:
        print(item)
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}")
```

### PHP

```php
try {
		$result = $serviceBuilder
			->getBizProcScope()
			->template()
			->list(
				['ID', 'MODULE_ID', 'ENTITY', 'DOCUMENT_TYPE', 'AUTO_EXECUTE', 'NAME', 'TEMPLATE', 'PARAMETERS', 'VARIABLES', 'CONSTANTS', 'MODIFIED', 'IS_MODIFIED', 'USER_ID', 'SYSTEM_CODE'],
				[]
			);
		foreach ($result->getTemplates() as $template) {
			print("ID: " . $template->ID . "\n");
			print("MODULE_ID: " . $template->MODULE_ID . "\n");
			print("ENTITY: " . $template->ENTITY . "\n");
			print("DOCUMENT_TYPE: " . json_encode($template->DOCUMENT_TYPE) . "\n");
			print("AUTO_EXECUTE: " . ($template->AUTO_EXECUTE ? $template->AUTO_EXECUTE->value : 'null') . "\n");
			print("NAME: " . $template->NAME . "\n");
			print("TEMPLATE: " . json_encode($template->TEMPLATE) . "\n");
			print("PARAMETERS: " . json_encode($template->PARAMETERS) . "\n");
			print("VARIABLES: " . json_encode($template->VARIABLES) . "\n");
			print("CONSTANTS: " . json_encode($template->CONSTANTS) . "\n");
			print("MODIFIED: " . ($template->MODIFIED ? $template->MODIFIED->format(DATE_ATOM) : 'null') . "\n");
			print("IS_MODIFIED: " . ($template->IS_MODIFIED ? 'true' : 'false') . "\n");
			print("USER_ID: " . $template->USER_ID . "\n");
			print("SYSTEM_CODE: " . $template->SYSTEM_CODE . "\n");
			print("\n");
		}
	} catch (Throwable $e) {
		print("Error: " . $e->getMessage() . "\n");
	}
```

### BX24.js

```js
BX24.callMethod(
    'bizproc.workflow.template.list',
    {
        select: [
            'ID',
            'NAME',
            'USER_ID',
            'SYSTEM_CODE'
        ],
        filter: {
            MODULE_ID: 'lists',
            AUTO_EXECUTE: 0
        },
        order: {
            ID: 'DESC'
        }
    },
    function(result)
    {
        if(result.error())
            alert("Error: " + result.error());
        else
            console.log(result.data());
    }
);
```

### PHP CRest

```php
require_once('crest.php');

$result = CRest::call(
    'bizproc.workflow.template.list',
    [
        'select' => [
            'ID',
            'NAME',
            'USER_ID',
            'SYSTEM_CODE'
        ],
        'filter' => [
            'MODULE_ID' => 'lists',
            'AUTO_EXECUTE' => 0
        ],
        'order' => [
            'ID' => 'DESC'
        ]
    ]
);

echo '<PRE>';
print_r($result);
echo '</PRE>';
```

### Go

```go
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "bizproc.workflow.template.list", b24.Params{
	"SELECT": []string{"ID", "NAME", "USER_ID", "SYSTEM_CODE"},
	"FILTER": b24.Params{
		"MODULE_ID":    "lists",
		"AUTO_EXECUTE": 0,
	},
	"ORDER": b24.Params{
		"ID": "DESC",
	},
}, b24.WithIdempotent())
if err != nil {
	return fmt.Errorf("bizproc.workflow.template.list: %w", err)
}

// Ответ приходит как json.RawMessage — разберите его
// в структуру под форму ответа, показанную ниже на этой странице.
fmt.Printf("%s\n", res.Result)
```

Оригинал в официальной документации: https://apidocs.bitrix24.ru/api-reference/bizproc/template/bizproc-workflow-template-list.html
