Update a Deal
value, close_date, and geo_scope are special: sending an explicit null clears the column and still counts as a change; for every other field, sending null is treated the same as omitting it (no-op).
Owner reassignment isn’t possible here. owner_id is not a field on this endpoint’s body, so it’s dropped before validation — a request whose only key is owner_id reaches the handler with nothing to update and returns 400. A deal’s owner is fixed to its creator at creation; no endpoint on this router reassigns it.
Auth
Requires a CRM manage scope and an active organization on the token. Any*:manage scope qualifies — in practice contacts:manage, deals:manage, companies:manage, or activities:manage.
Side effects
- If
stage_idchanges: dispatches aDealUpdateWorkflow(Temporal) that logs the stage-change activity and evaluates AI next-actions/contact-promotion off the request path, and records astage_changeanalytics event. - Classifies and enqueues notification events for changes to
stage_id,value, orclose_date. (owner_idis also a notifiable field, but it isn’t part of this endpoint’s body — see above.)
Response
The updateddeals row — same fields as the deal object, but raw columns only (no account/stage embeds); use Get a Deal for the enriched shape.
Errors
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The deal's id.
Body
New deal name.
New deal value; explicit null clears it.
Move the deal to this pipeline stage.
New expected close date, YYYY-MM-DD; explicit null clears it.
ISO 4217 currency code.
Free-text origin of the deal.
Contact id of the internal champion.
Free-text notes.
Manual win-probability override, 0-100.
Reason code recorded when closing the deal.
Free-text notes recorded when closing the deal.
Actual close date, YYYY-MM-DD.
Replace the deal's tag list.
Deal's geographic scope; explicit null clears it.
local, regional, international Analytics-only hint for how the stage was changed; never persisted as a deal column.
kanban_drag, detail_dropdown, stage_bar, ai_assistant, api Response
Successful Response