Create or update a contact
Creates a new contact or updates an existing one (upsert).
Lookup order:
- If
_idis provided, finds by ID. - Otherwise finds by first email address.
- If no match is found, creates a new contact.
Body formats — either native or legacy (capitalized keys) are accepted:
Native: firstname, lastname, email (string or array), phone (array of {number, type}),
typeId, contactType, isCompany, title, company, imageUrl, customFields
Legacy: "First Name", "Last Name", Email, "Mobile Phone", "Work Phone",
"Home Phone", "Contact Type", Title, Company
Returns the enriched contact with custom fields populated by their type definitions.
Authorizations
Body
Existing contact ID — when provided, updates that contact.
One or more email addresses.
Contact type ID.
Contact type name (alternative to typeId — resolved to an ID automatically).
Absolute URL to a JPG or PNG photo.
Map of custom field ID to value. Unknown field IDs are rejected.
Response
Contact created or updated.
MongoDB ObjectId of the contact.
Computed display name (first + last, or company name for org records).
Two-letter initials derived from first and last name.
CDN thumbnail URL for the contact's photo, or null if none.
Company name — populated when isCompany is true.