Create a new contact or update an existing one. Contacts are identified by email or cnvContactId. If the contact exists, its fields are updated; if not, a new contact is created.
Your Conversion API key. Found in Settings > Integrations in the dashboard. Format: sk_live_<key_id>_<secret>.
The contact's email address. At least one of email or cnvContactId is required. When both are provided, cnvContactId identifies the contact and email updates the contact's email address.
"jane@example.com"
The Conversion contact ID. Use this to identify an existing contact by its internal ID instead of email. At least one of email or cnvContactId is required.
"a1b2c3d4-e5f6-7890-abcd-ef1234567890"
The contact's email subscription status. System-managed statuses (BOUNCED, COMPLAINED, etc.) cannot be set through the API.
SUBSCRIBED, UNSUBSCRIBED, NO_STATUS A map of contact field keys to values. Keys must match existing field definitions in your Conversion account.
{
"first_name": "Jane",
"last_name": "Smith",
"job_title": "VP of Marketing"
}A map of company field keys to values for the contact's associated company.
{
"company_name": "Acme Corp",
"industry": "Technology"
}When true, restricts the operation to updates only. Returns a contact_not_found error if no existing contact matches the provided identifier.
When true, syncs the contact to the connected CRM (e.g., Salesforce) if the contact does not already have an external CRM record.
When true, prevents overwriting existing non-empty field values. New values are only written to fields that are currently empty or unset. Useful for enrichment workflows.
Contact upserted successfully.