Skip to main content
POST
JavaScript

Authorizations

Authorization
string
header
required

Authentication header containing API key (find it in dashboard). The format is "Bearer YOUR_API_KEY"

Body

application/json
app_id
string | null

ID of the CRM app to link. Pass null to unlink, which stops syncing. Changing it resets the sync cursor, so the next sync re-reads every contact from the new CRM.

custom_fields
object[]

Replaces the stored list. Names must be snake_case and cannot collide with a built-in contact field or start with contact/external. Removing a field that an analysis data mapping still targets is rejected — send crm_analysis_data_mappings in the same request to retarget or drop those mappings.

Maximum array length: 200
crm_analysis_data_mappings
object[]

Replaces the stored list.

Maximum array length: 200
contact_tags
string[] | null

Replaces the organization's available contact tags. Tags are trimmed and deduplicated. Omit to leave unchanged, or send null or an empty array to clear the list. Does not change tags already assigned to contacts.

Maximum array length: 1000
Required string length: 1 - 40
Pattern: \S
contact_columns_order
string[]

Preferred display order of contact fields, for clients that render contacts as a table. Not used by the API itself.

Maximum array length: 200

Response

Updated CRM config.

org_id
string
required
app_id
string

The connected CRM integration app ID.

last_sync_timestamp
number

Epoch milliseconds of the last successful sync.

custom_fields
object[]
crm_analysis_data_mappings
object[]
contact_columns_order
string[]

Preferred display order of contact fields, for clients that render contacts as a table. Not used by the API itself.

contact_tags
string[]

Tags available to contacts in this organization.

Maximum array length: 1000
Required string length: 1 - 40
Pattern: \S