12.03.2026 20:36

SetStages

[POST] .../v1/pipeline/setstages

Обновляет стадии CRM-воронки в режиме upsert.

Входные параметры

Название Тип данных Обязательность Описание
pipeline_id Int64 Обязательный ID воронки
stages Array of PipelineSetStage Обязательный Набор стадий для upsert
PipelineSetStage
Название Тип данных Описание
id Int64 ID стадии; если передан, обновляется существующая стадия, иначе создается новая
name String Название стадии
code String Внешний код стадии
sort_order Int32 Порядок отображения
is_start Boolean Признак стартовой стадии
is_terminal Boolean Признак терминальной стадии
is_success Boolean Признак успешного завершения
active Boolean Признак активности стадии

Ограничения:

  • Для каждой стадии с id проверяется принадлежность к pipeline_id.
  • Если id не найден в указанной воронке, возвращается ошибка валидации.
  • Если id передан, стадия обновляется.
  • Если id не передан, создается новая стадия.
  • Метод не деактивирует стадии массово.
  • Имена стадий должны быть уникальны в рамках воронки.
  • Для воронок Lead обязательны системные стадии с кодами new, won, lost.
  • Для Lead системные стадии нельзя удалить или деактивировать.
  • Для Lead системным стадиям нельзя изменять code.
  • Для Lead пользовательским стадиям нельзя использовать коды new, won, lost.
  • Для Lead системные флаги фиксированы:
    new -> is_start=true, is_terminal=false, is_success=false;
    won -> is_start=false, is_terminal=true, is_success=true;
    lost -> is_start=false, is_terminal=true, is_success=false.
  • Для пользовательских стадий Lead флаги is_start, is_terminal, is_success всегда сохраняются как false.
  • Для остальных сущностей (например, Deal) после применения upsert в воронке должна оставаться ровно одна стадия is_start = true и минимум одна стадия is_terminal = true.

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

{
  "pipeline_id": 1,
  "stages": [
    {
      "id": 6,
      "name": "Новая стадия 2",
      "code": "lead_stage_2",
      "sort_order": 30,
      "is_terminal": false,
      "is_success": false,
      "active": false
    },
    {
      "name": "Новая стадия 4",
      "code": "lead_stage_4",
      "sort_order": 40,
      "is_start": false,
      "is_terminal": false,
      "is_success": false,
      "active": true
    }
  ]
}

Выходные параметры

Название Тип данных Описание
result.row_affected Int64 Количество измененных строк
result.ids Array of Int64 ID измененных записей

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

{
  "ok": true,
  "result": {
    "row_affected": 3,
    "ids": [7]
  }
}

Пример ошибки

{
  "ok": false,
  "result": {
    "error": 1002,
    "description": "stages"
  }
}