Clay Integration

Push enriched contacts from Clay into crmzero via HTTP API

Use Clay's HTTP API integration to push enriched contacts directly into crmzero. Map your Clay columns to the crmzero contact schema, configure merge strategies, and keep your CRM automatically up to date as your Clay tables populate.

Prerequisites

API Key

Get a crmzero API key from Admin → API Keys

Clay Table

A Clay table with enriched contact data

Endpoint URL

https://crmzero.ai/api/v1/contacts

Setup Guide

1

Add HTTP API Action

In your Clay table, click + Add Enrichment or + Add Action and search for "HTTP API". Select it to add a new HTTP API column.

Name it something descriptive like "Push to crmzero" so your team knows what it does.

2

Configure Method & Endpoint

Method

POST

Endpoint

https://crmzero.ai/api/v1/contacts
3

Set Headers

Expand the Headers section and add two key-value pairs:

HeaderValue
AuthorizationBearer crm_xxxxxxxxxx
Content-Typeapplication/json

Replace crm_xxxxxxxxxx with your actual API key. Keep it secret — anyone with the key can create contacts in your CRM.

4

Configure the Request Body

In the Body section, build a JSON object that maps your Clay columns to crmzero fields. Use Clay's / shortcut to insert column values dynamically.

json
{
  "firstName": "/first_name_merge",
  "lastName": "/last_name_merge",
  "email": "/Email Address",
  "city": "",
  "state": "",
  "country": "/Country",
  "location": "/Location",
  "warmth": "engaged",
  "contactStatus": "active",
  "lifecycleStage": "prospect",
  "company": {
    "name": "/company_merge",
    "domain": "/domain",
    "jobTitle": "/Title"
  },
  "socials": [
    {
      "platform": "linkedin",
      "profileName": "/LinkedIn Username",
      "profileUrl": "/LinkedIn URL"
    }
  ],
  "tags": ["Clay Import"],
  "mergeStrategy": {
    "default": "fill_blanks"
  }
}
Column references like /first_name_merge are placeholders — Clay will replace them with the actual column value for each row. Use Clay's / autocomplete to insert your own column names.
crmzero FieldTypeClay ColumnNotes
firstNamestring/first_name_mergeUse Clay's merge column for best results
lastNamestring/last_name_mergeUse Clay's merge column
emailstring/Email AddressRequired — used for deduplication
citystringLeave blank or map to a city column
statestringAuto-normalized (e.g. 'CA' → 'California')
countrystring/CountryAuto-normalized (e.g. 'US' → 'United States')
locationstring/LocationFree-form location (e.g. 'Tiaret, Tiaret, Algeria')
warmthstring"engaged"Or 'cold'. Default: engaged
contactStatusstring"active"active, not_interested, do_not_contact, unsubscribed
lifecycleStagestring"prospect"prospect, customer, marketing_qualified, etc.
company.namestring/company_mergeAuto-creates account if it doesn't exist
company.domainstring/domainLinks contact to domain record
company.jobTitlestring/TitleContact's role at the company
socials[].platformstring"linkedin"linkedin, twitter, etc.
socials[].profileNamestring/LinkedIn UsernameHandle or username
socials[].profileUrlstring/LinkedIn URLFull profile URL
tagsstring[]["Clay Import"]Tag names or IDs — additive only
5

Enable "Remove empty values"

At the bottom of the HTTP API configuration, toggle Remove empty values to ON. This ensures Clay won't send blank fields to crmzero, which prevents accidentally overwriting existing data with empty strings.

This is especially important when using fill_blanks merge strategy. Without it, empty Clay columns could overwrite existing CRM data.

6

Test & Run

Click "Try on 5 rows" to test the integration with a small sample. Check the response for each row:

201Created

New contact was created in crmzero

200Updated

Existing contact was merged with new data

Once satisfied, click "Save" and run the column on all rows.

Tips & Best Practices

Use Clay merge columns

Clay's merge columns (e.g. first_name_merge) combine data from multiple enrichment sources into a single clean value. Always prefer these over raw source columns.

Tag your imports

Add a tag like "Clay Import" or "Clay - Q1 List" to easily identify and track contacts that came from Clay.

Start with fill_blanks

The fill_blanks merge strategy is the safest default. It won't overwrite data your team has manually entered in the CRM.

Include domain when possible

Mapping company.domain helps crmzero link contacts to domain records and enables automatic domain enrichment.

See Also