Update deal
Deals
Update deal
PATCH /deals/ — update fields on an active object
PATCH
Update deal
Endpoint
/deals/{dealId}Authentication: Bearer JWT Path parameter:
dealId — object ID
Query parameters
Comma-separated list of additional property names to include alongside the default set for this object type (e.g.
?properties=phone). Names already in the default set are not duplicated. Invalid or disallowed property names return 400.Request body
The body is a JSON object with a singlefields property. Each key inside fields is a field internal_name (the same names returned in GET responses, not nested under fields in the response).
Only include keys you want to change. Omitted fields keep their current values.
| Key | Description |
|---|---|
fields | Required. Map of internal_name → value for this object type. |
fields.external_id | Optional. External identifier for sync with outside systems. |
fields.
Default response fields
200 returns the updated object using the default property set:| Property | Description |
|---|---|
id | Internal object ID |
deal_name | Custom or system field (flat on the object) |
pipeline | Custom or system field (flat on the object) |
deal_stage | Custom or system field (flat on the object) |
deal_owner | Assigned owner email |
external_id | External identifier (nullable) |
archived | false when active; ISO timestamp when archived |
created_at and updated_at are always included in every response (ISO 8601 UTC), even when not listed above. When an object is archived, archived_by is also included automatically.Errors
| Status | When |
|---|---|
400 | Missing dealId, invalid properties, invalid JSON, validation failure, or forbidden system field |
401 | Missing account context |
404 | Object not found |
409 | Object is archived — cannot update |
409 | Duplicate active record (unique key collision) |
Authorizations
Bearer JWT with valid account context.
Path Parameters
Object identifier
Query Parameters
Comma-separated additional property names to include alongside defaults (e.g. phone). Invalid or disallowed names return 400.
Body
application/json
Write payload for POST create and PATCH update. Keys inside fields match field internal names returned in GET responses.
Field values keyed by internal_name. Custom account fields use the same key names.
Response
Updated
Assigned owner email
Example:
"jane@example.com"
false when active, or ISO timestamp when archived
