How do I push enriched Clay leads into HubSpot?
The most direct way to push enriched Clay leads into HubSpot is Clay's built-in HubSpot integration. You connect your HubSpot account in Clay, then add a HubSpot action to your table as a new column. That column can create a contact or company, update one you already have, or look one up, and it runs on every row unless you give it a condition, such as only rows with a validated email. You map your Clay columns to HubSpot properties: first name, last name, email, job title, company name, and any other property your table can fill. If you'd rather not connect the two tools, export the table from Clay as a CSV file and bring it in with HubSpot's import tool, which matches contacts by email address and companies by domain, so existing records get updated rather than copied.
Either route moves records reliably. What it moves is the problem. A Clay table holds far more than a name and an email. It records which provider in the enrichment waterfall found each address, whether that address came back valid or catch-all, the funding round or job posting that made the company interesting, and often an AI research column that explains why the person fits. Mapping all of that takes work, so most teams map the basics and leave the rest in Clay. Once that table is cleared out or reused for the next campaign, the reasoning behind each lead is gone.
HubSpot can't fill the gap on its own. Its Original Source property records how a record arrived, such as through an import or an integration, but it can't say which Clay search the person came from or how confident the enrichment was. A rep who opens the contact sees an email address with no way to tell whether it's safe to send to, and no idea why the person was chosen.
The other problem is the same one every CRM import has. Whoever is in the table goes in, including the person who changed jobs since the enrichment ran and the contact at a company that already pays you. Unless you built a lookup column first, a Clay create action can also add a second record for a company HubSpot already tracks.
A good result, then, is a set of HubSpot records that carry their history with them: people who fit your ideal customer profile and still hold the role, attached to the right company, never duplicated, assigned to an owner, and holding the source, the email's confidence, and the reason they were added in places a rep will actually look.
Kite does that work for you. It qualifies the leads from your Clay table, decides where each piece of Clay's enrichment belongs in HubSpot, checks your CRM for records that already exist, and writes the contacts and companies with the research attached.
How to get started
Start by sharing your Clay leads with Kite and telling it what you want done:
"Here's our enriched Clay table of operations leaders at logistics companies. Add the ones who fit to HubSpot, keep the email status and where each email came from, and assign them to Marcus."
Kite is an AI marketer. It researches your business, builds a growth strategy, and ships the work that brings you new customers. By the time you ask, it already knows your ideal customer profile, your current customers, and your competitors from that research, so it can judge your Clay rows against a clear standard without a long brief. If a column in your table carries a judgment of its own, such as a lead score you built or an AI research column, tell Kite how much weight to give it.
Kite doesn't connect to your Clay workspace, so your rows reach it in one of three ways. You can export the table as a CSV file and share it in Slack where Kite is working. You can send the rows to a Google Sheet, using Clay's Google Sheets integration or an import, and connect your Google account so Kite can read it. Or, to make the handoff automatic, ask Kite to set up a workflow that starts from a webhook. Kite gives you a private web address for it, and an HTTP API column in your Clay table sends each finished row there, so every lead that completes enrichment starts a Kite run on its own.
You'll also need to connect your HubSpot account through OAuth so Kite can read and write your records. Adding records to your CRM is routine work, so Kite writes them and then tells you what it did. If you'd like to see the list before anything reaches HubSpot, say so in your request.
How Kite adds enriched Clay leads to HubSpot
What does Kite read from the Clay table?
Kite reads every row and column it receives, then works out what each column holds. A typical enriched Clay table carries a name, job title, company name, company domain, LinkedIn profile, and work email, plus enrichment columns such as headcount, industry, funding, technology used, and the output of AI research columns. Kite also picks out the columns that describe the enrichment itself: which provider returned the email, the validation result, and any score or qualification column your team built.
Kite treats those last columns as part of the lead, not as clutter. They're the evidence a rep needs later, and they're the reason this page exists. Kite also notes what the table doesn't say. A Clay row records what was true when the enrichment ran, so a table built a few months ago may describe roles people have since left, and an empty email cell is a gap for Kite to fill rather than a reason to drop the row.
Who is worth adding?
Kite decides who belongs in HubSpot by checking each row against your profile before it writes anything. First it confirms that the person still holds the role at that company, using their public profile or the company's own pages, and drops anyone who has moved on. Next it removes your existing customers, your competitors, and anyone who has opted out of hearing from you.
For the rows that pass, Kite fills what Clay left empty. When a row has no work email, Kite runs its own email search, which tries several providers in turn and verifies each address it finds. When a row already has an email, Kite checks that address rather than paying to find it again. It marks every result as verified, risky, invalid, or unverified, flags catch-all domains, and records a missing email as not found rather than guessing one. It includes only business details, so it leaves out personal email addresses and phone numbers.
Every lead who passes gets a fit score from one to five, with a one-line reason, such as "Director of operations at a 250-person freight company that just opened two warehouse sites." When the list runs past about fifteen people, Kite splits it into primary and secondary groups so sales knows where to start. If fewer people qualify than your table holds, Kite tells you how many it kept and why the rest fell short.
Where does each piece of Clay data go in HubSpot?
Kite decides where every useful Clay column belongs in HubSpot before it writes, because a detail that lands nowhere is a detail your team loses. It reads your contact and company properties first, including the custom ones your team created and the allowed options for each dropdown property, so each value goes into a property your team already uses, in a form HubSpot will accept.
Facts that someone will filter or report on become properties. Headcount, industry, and annual revenue go on the company. Job title, seniority, and the work email go on the contact. The details that tell a rep how much to trust the record also become contact properties: the email's verification status, the provider or source that supplied it, the date the data was enriched, and the fit score with its reason. When your account has no property for one of these, Kite can create it, and it can keep them together in a property group so your team finds them in one place on the record.
Longer reasoning goes into a note on the contact. Kite writes why the person fits, the recent event that makes now a good time to reach out, and the source behind each fact, including the summary from any AI research column in your table. A rep reads the note in the record's activity timeline, so the context survives long after the Clay table is gone.
Is this person already in HubSpot?
Kite searches your HubSpot account before it creates anything, so your CRM doesn't fill up with duplicates. HubSpot treats a contact's email address as its unique identifier, so Kite searches contacts by email, and it searches companies by domain.
When it finds an existing contact, Kite updates that record instead of creating a second one. It fills in properties that are empty and adds the new research as a note, and it leaves the owner and lifecycle stage your team already set as they are, so a contact sales is working doesn't get reassigned or pushed back to Lead by a fresh enrichment. When the company already exists, Kite attaches the new contact to it rather than adding a second company.
Creating the companies and contacts
Kite creates each new company first and then each contact, so every person arrives attached to their account. A new company gets its name, domain, website, industry, number of employees, annual revenue, and location. A new contact gets the following:
- First and last name
- Work email and its verification status
- Job title and seniority
- LinkedIn profile
- Company
- Owner
- Lifecycle stage, such as Lead
- The source of the data and the date it was enriched
- Fit score and its reason
Kite reads your list of HubSpot owners so it can assign each contact to the person you named or the right person on your team. It then links each contact to its company and adds the note described above. When you want sales to follow up, Kite creates a task for each contact's owner with a due date.
What Kite reports back
When the work is done, Kite posts a summary in the conversation where you asked. It says how many contacts and companies it created, how many existing records it updated, and which rows it skipped and why. It also reports how many rows from your table made the cut, how many of those have a verified work email, and which properties it created. The full list comes with it as a table, so you can scan it without opening HubSpot.
From there, Kite can draft a personalized outreach email for each primary lead, written from the research on their company. If you set up the webhook workflow, each new row Clay finishes runs through the same checks on its own, and Kite reports the results in the place the workflow names.
What the finished work contains
When Kite finishes, your HubSpot account holds a set of qualified leads that sales can work right away, each one carrying the context Clay gathered about it.
Contacts
Each person has their name, work email, title, seniority, LinkedIn profile, company, owner, and lifecycle stage.
Source and confidence properties
Each contact shows the email's verification status, where the data came from, when it was enriched, and the fit score with its reason, grouped together on the record.
Companies
Each account has its domain, website, industry, employee count, revenue, and location, with every contact Kite added linked to it.
Notes
Each contact has a note explaining why the person was added, the recent event that makes now a good time to reach out, and the sources behind the research.
Tasks
When you asked for follow-up, each owner has a dated task for their new contacts.
The summary
The conversation shows what Kite created, updated, and skipped, along with the full table of leads and the verification status of every email.
Common questions
Does Clay integrate with HubSpot?
Yes. Clay has a native HubSpot integration that you connect from your Clay workspace. It lets a Clay table create, update, and look up HubSpot contacts and companies, and it can pull HubSpot records into a Clay table so you can enrich the contacts you already have. You can also skip the connection by exporting a Clay table as a CSV file and importing it into HubSpot.
Can Kite pull leads straight from my Clay workspace?
No. Kite doesn't connect to your Clay workspace, so your rows reach it as a CSV export, through a Google Sheet, or through a Clay HTTP API column that sends each finished row to a Kite workflow. Everything after that, from qualifying the leads to writing the HubSpot records, happens without any further setup in Clay.
Does HubSpot enrich contacts on its own?
Yes. HubSpot's data enrichment can add company and contact details to records already in your account. It enriches records after they exist, so it doesn't decide who should be added or keep the reasoning from your Clay table.
Can Kite find and enrich leads for HubSpot without Clay?
Yes. Kite has built-in prospecting sources, so it can find companies that match your profile, find the right people at them, and find and verify their work emails without a Clay account. It then runs the same HubSpot checks and writes the records the same way.