Upsert Synced Contact
Create or update a contact from a CRM or another external source
source.key and externalId is the durable sync identity. The first request can define the source, its fields, and the contact in one operation. Later requests can omit fields unless the source schema changes.
Define fields
Field keys use lowercase snake case. Supported types aretext, number, boolean, date, enum, url, email, and phone.
Define the system field keys before sending their top-level values:
nameusestextemailusesemailphone_numberusesphone
attributes must have a field definition owned by the same source. Dates use ISO 8601 datetime strings. Enum values must match one of the field’s enumOptions.
Apply sparse updates
Omitted contact properties and attribute keys remain unchanged. Send an explicitnull to clear a top-level value or attribute. The API does not treat missing contacts as deletions.
Link another source
Usematch.email or match.phoneNumber to attach a new external identity to an existing contact. Match values are lookup-only and do not update the contact.
A match succeeds only when the value identifies one contact. Ambiguous matches, or email and phone resolving to different contacts, return 409 Conflict.
Use with Zapier
Create a Webhooks by Zapier action that sends aPOST request to:
Authorization: Bearer YOUR_API_KEY and Content-Type: application/json headers, then map the CRM fields into the request body shown in the example.Authorizations
Body
Stable contact identifier from the external source.
1 - 1000Field definitions owned by this source. Include them when first used or when labels, descriptions, or enum options change. Define name, email, and phone_number before sending their corresponding top-level values.
Contact name. Omit to leave unchanged or send null to clear it.
1 - 255Contact email. Omit to leave unchanged or send null to clear it.
Contact phone number. Omit to leave unchanged or send null to clear it.
1 - 255Values for non-system fields defined by this source. Values must match their field type. Omit a key to leave it unchanged or send null to clear it.