[POST] .../v1/pipeline/setstages
Обновляет стадии CRM-воронки в режиме upsert.
Входные параметры
| Название | Тип данных | Обязательность | Описание |
|---|---|---|---|
| pipeline_id | Int64 | Обязательный | ID воронки |
| stages | Array of PipelineSetStage | Обязательный | Набор стадий для upsert |
| Название | Тип данных | Описание |
|---|---|---|
| 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"
}
}