SetStage

[POST] .../v1/deal/setstage

Changes the stage of a CRM deal. Move an open deal to another stage in the same pipeline, including terminal won or lost stages when the deal should be closed. The method validates the deal, target stage and pipeline access, updates stage/status/close_date, records stage history and chat system messages, synchronizes the linked chat closed state, sends DealStageSet and, for terminal stages, DealClosed webhooks and notification cancellation, then returns row_affected with the deal id. The request body is required; id and stage_id must be positive and stage_id must belong to the deal pipeline. A terminal success stage sets status Won, a terminal non-success stage sets status Lost and a non-terminal stage keeps the deal Open. The caller must have CRM deal edit permission or CRM manage-all access; missing body, invalid ids, missing deal or stage, denied pipeline access, storage errors are returned as HTTP 200 ErrorResult.

Request Parameters

Name Type Required Description
comment String Optional Comment for the stage change.
id Int64 Required Deal ID.
stage_id Int64 Required New stage ID.

Request Example

{
  "id": 230,
  "stage_id": 34,
  "comment": "Proposal sent"
}

Response Parameters

Name Type Description
ok Boolean Indicates whether the request completed successfully.
result Update Update operation result.

Response Example

{
  "ok": true,
  "result": {
    "row_affected": 1,
    "ids": [
      230
    ]
  }
}