Для AI-агентов: markdown этой страницы — /docs-content/automation/workflows.md индекс документации — /llms.txt

Бизнес-процессы

Бизнес-процесс — это многошаговый сценарий, выполняемый над документом Битрикс24. В отличие от CRM-триггеров, которые мгновенно меняют состояние сущности, бизнес-процесс может включать паузы для ожидания внешних событий, ветвление по условиям, параллельные ветви и задержки. Типичные сценарии: цепочки согласований, автоматическая подготовка документов, уведомления по расписанию.

Жизненный цикл: запуск (start) → выполнение → просмотр экземпляров (list) → обработка приостановок через событие (event) или запись в журнал (activity-log) → завершение (terminate).

Bitrix24 API: bizproc.workflow.*, bizproc.event.*, bizproc.activity.* Скоуп: bizproc

Запустить бизнес-процесс

POST /v1/workflows/start

Запускает экземпляр бизнес-процесса по шаблону для CRM-сущности, элемента списка или другого документа Битрикс24. Документ задаётся одной из двух форм: типом и ID для сделки, лида, контакта и компании либо явным идентификатором документа Битрикс24 для остальных.

Поля запроса (body)

Передайте templateId и ровно одну форму документа. Тело с entityType или entityId вместе с documentId отклоняется кодом 400 CONFLICTING_PARAMS.

Поле Тип Обяз. Описание
templateId number да ID шаблона бизнес-процесса. Источник: GET /v1/bizproc-templates
entityType string нет Тип CRM-сущности: deal, lead, contact, company. Обязателен вместе с entityId, если не передан documentId
entityId number нет ID CRM-сущности. Обязателен вместе с entityType, если не передан documentId. Источник: GET /v1/deals, GET /v1/leads, GET /v1/contacts, GET /v1/companies
documentId array нет Документ Битрикс24 массивом из трёх непустых строк [модуль, класс, идентификатор]. Обязателен, если не переданы entityType и entityId. Модуль — crm, lists или disk. Идентификатор передаётся строкой: число в третьем элементе отклоняется. Значения для CRM и списков — в таблице ниже
parameters object нет Значения параметров шаблона. Набор полей определяется конкретным шаблоном в Битрикс24

Значения documentId по модулям:

Модуль Класс Идентификатор Пример
crm CCrmDocumentDeal, CCrmDocumentLead, CCrmDocumentContact, CCrmDocumentCompany Префикс типа и ID сущности: DEAL_5141, LEAD_12 ["crm", "CCrmDocumentDeal", "DEAL_5141"]
lists Bitrix\Lists\BizprocDocumentLists ID элемента обычного списка. Источник: GET /v1/lists/:iblockId/elements ["lists", "Bitrix\\Lists\\BizprocDocumentLists", "7147"]
lists BizprocDocument ID элемента процесса в ленте новостей, тип инфоблока bitrix_processes. Источник: GET /v1/lists/:iblockId/elements?iblockTypeId=bitrix_processes ["lists", "BizprocDocument", "7171"]

Класс — второй элемент documentType шаблона в ответе GET /v1/bizproc-templates, а iblockId для источника элементов — число из третьего элемента iblock_<id>. Передавайте класс как есть: у обычного списка и у процесса в ленте новостей модуль один, lists, а классы разные. Шаблоны читаются только ключом OAuth-приложения. Если запрос шаблонов передаёт select, включите в него moduleId и entity, иначе первые два элемента documentType придут как null.

Класс и идентификатор передаются в Битрикс24 без изменений. В JSON обратная косая черта в имени класса экранируется удвоением, как в примере для Bitrix\Lists\BizprocDocumentLists.

Примеры

curl — личный ключ

Terminal
curl -X POST https://vibecode.bitrix24.tech/v1/workflows/start \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"templateId":713,"entityType":"deal","entityId":5141}'

curl — OAuth-приложение

Terminal
curl -X POST https://vibecode.bitrix24.tech/v1/workflows/start \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"templateId":713,"entityType":"deal","entityId":5141}'

JavaScript — личный ключ

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/workflows/start', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    templateId: 713,
    entityType: 'deal',
    entityId: 5141,
  }),
})
const data = await res.json()
console.log(data.data.workflowId)

JavaScript — OAuth-приложение

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/workflows/start', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    templateId: 713,
    entityType: 'deal',
    entityId: 5141,
  }),
})
const data = await res.json()

Поля ответа

Поле Тип Описание
success boolean true при успешном запуске
data.workflowId string Уникальный идентификатор запущенного экземпляра бизнес-процесса

Пример ответа

HTTP 201 Created

JSON
{
  "success": true,
  "data": {
    "workflowId": "69f0c2d5ade389.22457798"
  }
}

Пример ответа при ошибке

400 — в одном теле переданы обе формы документа:

JSON
{
  "success": false,
  "error": {
    "code": "CONFLICTING_PARAMS",
    "message": "Pass either { entityType, entityId } OR { documentId }, not both. Pick the shape that matches your target document namespace."
  }
}

Ошибки

HTTP Код Описание
400 MISSING_PARAMS Не передан templateId
400 MISSING_PARAMS Не передан documentId, а форма CRM неполная: нет entityType или entityId
400 CONFLICTING_PARAMS entityType или entityId переданы вместе с documentId
400 INVALID_DOCUMENT_ID documentId — не массив, в нём не три элемента, один из элементов пустой или не строка
400 INVALID_DOCUMENT_ID Модуль в documentId не crm, lists и не disk
400 INVALID_ENTITY_TYPE entityType не deal, lead, contact и не company. Для других документов используйте documentId
401 MISSING_API_KEY Не передан заголовок X-Api-Key
401 INVALID_API_KEY Ключ не опознан: такой строки на платформе нет
401 TOKEN_MISSING У ключа нет подключённых токенов Битрикс24
401 TOKEN_EXPIRED Пользовательская сессия OAuth истекла — повторите авторизацию через /v1/oauth/authorize
403 SCOPE_DENIED Ключу не хватает скоупа bizproc
403 BITRIX_ACCESS_DENIED Битрикс24 отказал в доступе
409 BIZPROC_MODULE_NOT_ENABLED Бизнес-процессов на портале нет: модуль не входит в тариф либо выключен в настройках портала. Попросите администратора портала включить бизнес-процессы — до этого метод отвечает так же при любом числе повторов
422 BITRIX_ERROR Шаблон с указанным templateId не найден. В message — Template not found
422 BITRIX_ERROR Класс в documentId не совпадает с типом документа шаблона. В message — Template type and DOCUMENT_ID mismatch!
422 BITRIX_ERROR Документа с идентификатором из третьего элемента documentId нет: документ не существует или вместо его ID передано другое значение, например iblock_<id> из documentType шаблона. В message — Wrong DOCUMENT_ID!
429 RATE_LIMITED Превышен лимит запросов. Повторите через 1–2 секунды
502 BITRIX_UNAVAILABLE Битрикс24 недоступен

Полный список общих ошибок API — Ошибки.

Известные особенности

  • Один шаблон — несколько экземпляров. Один и тот же templateId можно запустить для разных сущностей одновременно. Каждый запуск получает отдельный уникальный workflowId.
  • Повторный вызов запускает ещё один экземпляр. Запрос с тем же телом не отклоняется и не возвращает уже запущенный процесс: каждый ответ 201 означает новый экземпляр над тем же документом. Если запрос мог дойти, но ответ потерян, перед повтором проверьте список запущенных процессов. В нём видны только активные экземпляры: процесс, который уже завершился, туда не попадает. Завершённые экземпляры не возвращает ни один метод API Вайбкод, поэтому пустой список не доказывает, что запуска не было.

Смотрите также