Skip to main content
PUT
Update person
Required scope: CRM_WRITE

Partial update

This endpoint performs a partial update — only the fields you include in the request body are modified. Omitted fields are left unchanged. All fields from the create endpoint are accepted and optional. custom_attributes is accepted too. Only the keys you send change.

Unlinking a company

Send company_id as an empty string ("") to remove the person’s association with their current company.

Custom attributes

custom_attributes sets the values of your custom fields. Create the field first, then use its key here.
  • Send null for a key to clear its value.
  • Keys you leave out are not changed. {}, or leaving out custom_attributes, changes nothing.
  • An unknown or archived key returns 400 CUSTOM_ATTRIBUTE_KEY_UNKNOWN. A value of the wrong type returns 400 CUSTOM_ATTRIBUTE_VALUE_INVALID. In both cases param is custom_attributes.<key>.
  • The whole request is validated before anything is written, so a rejected request changes nothing.
  • The response always includes custom_attributes, {} when the person has none. Archived attributes and empty values are left out.
  • Values are also synced to your connected CRMs that create contacts. A value on an attribute that is synced from a CRM can be overwritten by the next CRM sync.

Example

This sets lead_source and clears budget. Any other custom attribute is untouched.

Authorizations

Authorization
string
header
required

Path Parameters

id
string
required

Person ID (e.g., "per-abc123")

Example:

"per-abc123"

Body

application/json

Request body for updating a person. Only provided fields will be updated.

name
string | null

First name

last_name
string | null

Last name

job_title
string | null

Job title

website
string | null

Website URL

address
string | null

Postal address

numbers
string[] | null

Phone numbers (replaces all existing numbers)

emails
string[] | null

Email addresses (replaces all existing emails)

company_id
string | null

ID of the company to associate with

custom_attributes
object | null

Values for the person's custom attributes, keyed by attribute key. TEXT takes a string, NUMBER a finite JSON number (numeric strings are rejected), BOOLEAN a JSON boolean, DATE a YYYY-MM-DD string or ISO datetime, and DROPDOWN an option key or label (case-insensitive). Send null to clear a value; keys you omit are left untouched, and {} or omitting the field changes nothing. An unknown or archived key, or a value of the wrong type, rejects the whole request with CUSTOM_ATTRIBUTE_KEY_UNKNOWN or CUSTOM_ATTRIBUTE_VALUE_INVALID.

Example:

Response

Person updated

data
object

A person in the CRM