Skip to main content
PATCH
Update a CRM record relation
Adds or removes individual IDs from a relation or user attribute on a CRM record. Unlike Patch, which replaces the entire array, this endpoint performs surgical add/remove operations — existing linked IDs not mentioned in the request are untouched.

Path parameters

Request body

Rules:
  • At least one of add or remove must be present and non-empty.
  • The same ID cannot appear in both add and remove in the same request.
  • Passing an ID in add that is already linked is a no-op (not an error).
  • Passing an ID in remove that is not linked is a no-op (not an error).

Attribute types that support this endpoint

Passing this endpoint for a text, number, select, or any non-relation attribute returns an error. Use Patch for those. Your orders object has a relation attribute called products that links to the products object. To add two products to an order:

Example: swap a linked record

Remove one product and add a replacement in a single request:
To remove products, pass their IDs in remove:

Example: assign a team member to a deal

Your deals object has a user attribute called owners. To assign a team member:

Finding the attribute slug

Relation attribute slugs are defined when the attribute is created. You can look them up via GET /v2/crm/objects/{slug} — look for attributes with type: relation or type: user and use their key field as attributeSlug.

Update Relation vs. PATCH

Use PATCH /relation when you need additive or subtractive changes. Use PATCH /{recordId} when you want to set the exact final state of a relation (replacing whatever was there before).

When to use this endpoint

  • Add a linked record — a user picks a related product, company, or person to attach.
  • Remove a linked record — a user detaches a relation without affecting others.
  • Assign / unassign owners — add or remove team members from a user-type attribute.
  • Incremental sync — when your source system sends delta events (“product X was added to order Y”) rather than full state.

Authorizations

Authorization
string
header
required

Path Parameters

objectSlug
string
required

Slug of the custom CRM object.

recordId
string<uuid>
required

UUID of the record to update.

Body

application/json
attributeSlug
string
required

Key of the relation or user attribute to modify.

Example:

"products"

add
string[]

IDs to add to the relation.

Example:
remove
string[]

IDs to remove from the relation.

Example:

Response

OK

success
boolean
Example:

true

status
integer
Example:

200

record
object

A record for a custom CRM object.

Last modified on June 11, 2026