---
title: "Update a sales opportunity"
method: PATCH
path: "/crm/sales/opportunities/{opportunityId}"
tags: ["Sales CRM"]
---

# Update a sales opportunity

`PATCH /crm/sales/opportunities/{opportunityId}`

## Request

- Base URL: `https://platform-api.visitoai.com/m2m/v1`
- URL: `https://platform-api.visitoai.com/m2m/v1/crm/sales/opportunities/{opportunityId}`
- Auth: HTTP bearer

Requires `crm:sales:write`. Edit one field or stage, or restore AI control. Requires current revision; conflicts return 409. Closed opportunities cannot reopen. Uses the published sales CRM, not legacy lead-stage classification.

## Path parameters

- `opportunityId` string, required

## Request body

- SalesOpportunityPatch
  - `revision` integer, required
  - `fieldId` string
  - `value` unknown
  - `stageId` string
  - `restoreAi` boolean

## Response `200`

Success

- SalesOpportunityResponse
  - `opportunity` SalesOpportunity
    - `opportunityId` string, required
    - `leadId` string
    - `conversationId` string
    - `displayName` string
    - `channel` string
    - `version` integer
    - `revision` integer, required
    - `stageId` string
    - `stageLocked` boolean
    - `status` 'open' | 'won' | 'lost'
    - `summary` string
    - `values` object
    - `createdAt` string
    - `updatedAt` string
    - `closedAt` string
  - `activity` object[]

## Other responses

- `default`: Structured error

---

[API](https://skmtc.dev/visitoai/apis/visito-m2m-api.md) - [All operations](https://skmtc.dev/visitoai/apis/visito-m2m-api/llms.txt) - [OpenAPI document](https://skmtc.dev/visitoai/apis/visito-m2m-api/revisions/98377d35c234?raw)
