Skip to main content
PATCH
Patch Contact
Partial update — only fields present in the body are changed (exclude_unset), so omitting a field leaves it untouched, but explicitly passing null clears it. Field semantics are the same as Create, plus department, which isn’t accepted on create — this endpoint and a CSV import are the two ways to set it. account_id, if provided, is validated to belong to the caller’s organization the same way as on create. This endpoint does not accept stage — use Respond, Disqualify, or Convert to move a contact through the funnel.
Unlike the funnel-action endpoints, this one does not check that contact_id exists before patching. A PATCH matching no row (nonexistent id, or a different organization’s contact under RLS) is still a “successful” PostgREST update of zero rows, so the response is 200 {} rather than a 404.

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.

Response

The updated contact row (same shape as Create’s response), or {} if contact_id didn’t match a row — see note above.

Errors

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

contact_id
string
required

The contact's id.

Body

application/json
account_id
string | null

Link to a different account (must belong to the caller's organization), or null to unlink.

first_name
string | null

Given name.

last_name
string | null

Family name.

email
string | null

Contact's email address.

title
string | null

Job title.

department
string | null

Department/team name. Not accepted on creation — set it via PATCH or by mapping a column to it in a CSV import.

phone
string | null

Phone number.

linkedin_url
string | null

LinkedIn profile URL.

company
string | null

Free-text company name for an unlinked contact.

company_domain
string | null

Company's email domain, used for search/enrichment.

source
string | null

Origin tag for this record.

notes
string | null

Free-text notes.

owner_id
string | null

Logto user ID of the owning rep.

Response

Successful Response

The response is of type Response Patch Contact Route Contacts Contact Id Patch · object.