
Clay Data Enrichment + HubSpot Integration: The Complete Guide
Table of Contents
- Step 1: Start Clay-HubSpot Integration with a Clean Contact Pull
- Step 2: Clay Data Enrichment for HubSpot. Without Overwriting Good Data
- Step 3: Use Clay Enrichment to Tag Campaigns in HubSpot for Attribution
- Step 4: Build Revenue Reports from Clay-HubSpot Integration Data
- Step 5: Attribute Revenue to Clay Enrichment Using HubSpot Campaigns
What if you could trace every closed deal back to the exact list that sourced it?
Well with the right Clay-HubSpot setup, you can.

Most teams use these tools for enrichment and outreach, but few connect the dots all the way to revenue. This guide will show you how to turn your Clay-HubSpot integration into a closed-loop system that tracks performance from first touch to closed-won.
Step by step, you’ll learn how to:
- Pull live, filterable contact data from HubSpot into Clay
- Enrich leads with LinkedIn, Clearbit, Dropcontact, and more—without overwriting good data
- Push clean updates back into HubSpot using HubSpot ID-matching and blank-field protection to avoid overwriting clean CRM data
- Tag every contact with a campaign name to enable attribution
- Build funnel reports that track MQLs, SQLs, and deals from each outbound workflow
- Attribute real pipeline and revenue to specific campaigns and lists
No more guessing which lists worked. No more disconnected tools. Just clear, trackable results.
👀Watch: Before we dive into the how, here’s a quick take on how to evaluate your needs with Clay, and where it makes the biggest impact on funnel performance. 👇
Step 1: Start Clay-HubSpot Integration with a Clean Contact Pull
Before you do anything in Clay, you need to start with good data. And that means pulling contacts straight from HubSpot.
This keeps everything clean, connected, and trackable. You’ll know exactly who you're enriching, and you won’t risk creating duplicates or overwriting good info.
Why is this step important?
If you skip this and just upload a cold list:
- You might create duplicate contacts in HubSpot
- You could overwrite clean data with incomplete info
- You’ll lose visibility into where leads came from
Integrating HubSpot with sales tools like Clay can save sales teams an average of 4 hours per rep each week, simply by avoiding manual exports and keeping CRM records synced automatically.
But, when you import contacts from HubSpot:
- You work with up-to-date records
- You use HubSpot IDs, which keep everything matched
- You keep your CRM organized and your reporting accurate
Reminder: If the HubSpot ID is missing, Clay won’t update the record, it will return a failed status for that row unless you’ve explicitly added a “Create Contact in HubSpot” step.
Here’s how to do it (step by step)
- In Clay, open your table
- Click the + Add button
- Search for “HubSpot”
- Choose “Import objects from HubSpot”
- Select the object you want, usually Contacts, but Clay also supports Companies, Deals, and custom objects if your workflow requires it.
If you haven’t connected your HubSpot account yet, Clay will ask you to log in.
Once you choose your object (like Contacts), you’ll see a few options.
Here’s what they mean:
- List to pull from (optional): You can pull in all contacts, or just a specific list (like “MQLs with no owner”)
- Exclude empty properties: This hides blank fields to keep your Clay table clean
- Include read-only properties: This adds fields like “Original Source” or “HubSpot Owner”. You can’t change these, but they help with filtering later
When to use a list
Let’s say you only want to enrich leads who:
- Filled out a form
- Don’t have a job title
- Haven’t been contacted yet
In HubSpot, you’d create a smart list for that. Then in Clay, you’d pull in just that list so you’re not enriching people who already have clean data.
This saves time, keeps your CRM clean, and avoids burning through enrichment credits.
Here’s what a good setup looks like:
- You build a list in HubSpot called “MQLs Missing Job Title”
- You import that list into Clay
- You enrich the contacts (job title, LinkedIn, company info)
- Then you update only those fields back in HubSpot
Now those contacts are complete, enriched, and ready for sales to follow up.
In one sample sync, Clay was able to enrich 76% of HubSpot contacts missing LinkedIn profiles, 109 out of 143, making it one of the fastest ways to complete partial records at scale.
What to remember
- Always pull data from HubSpot, not a spreadsheet
- Use a filtered list to narrow it down
- Make sure each contact has a HubSpot ID so updates work
- Exclude empty fields so your table is easier to manage
- Bring in read-only fields if you want extra filtering info (like source or owner)
Once your contacts are in Clay, and tied to real HubSpot records, you’re ready for enrichment.
Step 2: Clay Data Enrichment for HubSpot. Without Overwriting Good Data
Now that your data is in Clay, let’s clean it up.
The real magic of Clay is what happens after import: enrichment.
But if you enrich recklessly, without matching contacts to their real HubSpot IDs, you’ll risk overwriting good data, creating duplicates, or sending junk back into your CRM.
This step shows how to enrich contacts in Clay and push clean updates back into HubSpot, without breaking anything.
Why does this matter?
Your CRM is only as good as the data inside it.
So if you:
- Update the wrong records
- Send partial or blank values
- Overwrite clean fields with worse ones…
…your reports, handoffs, and automations all suffer.
How to Enrich and Update Step-by-Step in Clay
- Add an Enrichment
- Click the “+” above a column → Search “LinkedIn,” “Clearbit,” “Dropcontact,” or “Clay AI”
-
- Choose the enrichment you want (e.g. job title, domain, email, etc.). Clay leverages integrations with over 75 data providers for waterfall enrichment, ensuring up to 95% coverage on key fields like email and phone number—even when individual sources come up short.
- Choose the enrichment you want (e.g. job title, domain, email, etc.). Clay leverages integrations with over 75 data providers for waterfall enrichment, ensuring up to 95% coverage on key fields like email and phone number—even when individual sources come up short.
- Run the enrichment
- Clay will automatically detect what field (like name or domain) to use as the input
-
- You can also manually set the lookup field for more control
- You can also manually set the lookup field for more control
-
- Choose Object Type = Contact
-
- Match using HubSpot Object ID (from your import in Step 1)
-
- Map fields carefully (e.g. update “Job Title” only if the enriched version is not blank)
-
- Turn ON “Ignore blank values”
- Filter the table to a few test rows or duplicate the table to isolate a test batch
-
- Run the update and check the results in HubSpot before applying changes to all rows.
What “Ignore Blank Values” Actually Does
Clay-native setting in the “Update Object” action
When this toggle is ON, Clay skips any field that has a blank value, so you don’t accidentally erase something in HubSpot.
Example:
- Contact A has a job title in HubSpot = “Head of Product”
- If enrichment fails, the cell may be blank, say “Not Found,” or contain a placeholder like “Employee”. Always filter for false positives before pushing updates.
- With “Ignore Blank Values” ON → HubSpot keeps “Head of Product”
- With it OFF → Clay replaces it with blank (not good)
Best Practices (Not Required, But Smart)
These aren’t enforced by Clay, but they’ll save you headaches:
- Add a column that flags records ready for update
Example: “Title Enriched = Yes” → then filter Clay to only update those rows - Use HubSpot’s read-only fields for logic
Like Last Modified Date or Original Source to skip recent updates or internal leads - Label your enrichment columns clearly
Rename columns like Job Title (LinkedIn) → Clay Enriched Job Title
What to remember
- Use enrichment sources inside Clay like LinkedIn, Clearbit, or Dropcontact
- Match updates using HubSpot Object ID — this ensures the right record is updated
- Turn on “Ignore blank values” so you don’t overwrite clean data
- Test small before updating in bulk
Step 3: Use Clay Enrichment to Tag Campaigns in HubSpot for Attribution
You need to know where each lead came from and that means giving every contact in your Clay table a tag that tells you what campaign or list they’re part of.
If you don’t do this, you’ll lose track of which campaigns are working and which aren’t.
Why does it matter?
Let’s say someone books a meeting.
Can you answer:
- Did they come from your eComm list?
- Was it the “VP of Ops” workflow?
- Did that campaign even work?
Without a campaign tag, you won’t know.
Businesses using campaign tagging in their CRM report a 36% higher customer retention rate, thanks to more personalized follow-ups and better handoffs across teams.
Tagging each contact in Clay lets you:
- See where they came from
- Report on each campaign’s results
- Prove what’s driving meetings and revenue
How to do it in Clay
1. Add a column for the campaign name
In your Clay table, create a new column.
Call it something like:
- Clay Campaign
- Workflow Name
- Outbound List
Then add a clear name to that column, something that identifies the campaign:
- ecomm_founders_q2
- vp_ops_list_march
- webinar_followup_april
Just type it once and drag it down to apply to the whole column.
2. Send that value into HubSpot
Now use the Update Object in HubSpot action (just like in Step 2).
- Match by HubSpot Contact ID
- Map your new column (Clay Campaign) to a custom contact property in HubSpot (you’ll need to create this if it doesn’t exist yet)
- Turn on “Ignore blank values” so you don’t erase anything important
Now each contact in HubSpot will show exactly which Clay campaign they came from.
What happens next
Once that tag is in HubSpot, you can:
- Build lists like “All contacts from the VP Ops campaign”
- Report on how many turned into meetings or deals
- Track revenue by campaign
- Create follow-up workflows just for that group
Example: You tag 500 contacts with vp_ops_list_march. Later, you see that 3 deals closed from that list. Now you know that campaign worked, and you can do more of it.
What to remember
- Always tag your contacts before sending them to HubSpot
- Use a clear, specific name for each campaign
- Push it into a contact property using Clay’s Update Object
- Use that tag in HubSpot to report, build lists, and track ROI
Once your contacts are tagged, you’re ready to track how they move through your funnel.
👀Watch: Wondering why this kind of system-building matters more than ever? Here’s a quick look at the broader trends driving Clay’s growth and why tagging, enrichment, and connected systems are no longer optional. 👇
Step 4: Build Revenue Reports from Clay-HubSpot Integration Data
Once your contacts are in HubSpot, it’s time to track how they move through your funnel. Did they convert? Did sales follow up? Did any become customers?
This step is all about using HubSpot’s lists and reports to see how your Clay-sourced contacts are performing, from lead to revenue.
Why does this matter?
Clay helps you generate great leads. But if you don’t track those leads in HubSpot, you’ll never know:
- Which campaigns actually drive MQLs or SQLs
- Which lists convert to pipeline
- How much revenue your outreach creates.
How to Track Clay Campaigns in HubSpot
1. Create a filtered list in HubSpot
Use the campaign tag you pushed from Clay (e.g. Clay Campaign = ecomm_founders_q2) to build a contact list in HubSpot.
This list is your baseline. Every contact in this list came from a specific Clay workflow.
2. Use that list in reports and dashboards
Now plug that list into HubSpot reports to track:
- Funnel progress (Lead → MQL → SQL → Deal)
- Conversion rates at each stage
- Pipeline created by that group
- Speed to first touch after enrichment
Example: You imported and enriched 500 contacts in Clay. You tagged them with webinar_followup_april. In HubSpot, 120 of those became MQLs, 25 were worked by sales, and 3 deals were created.
Now you can say: that Clay list influenced $X in pipeline.
3. Use custom properties for even more filters
Want to get more specific?
Add filters like:
- Lifecycle stage
- Date added to HubSpot
- Source (Original Source, UTM, etc.)
- Assigned rep or region
You can also filter by whether they were enriched, engaged, or added to a deal.
Funnel Metrics to Watch
Once you’ve tagged and tracked your contacts, here are a few key metrics to look at:
- Contact → MQL conversion rate
- MQL → SQL rate
- SQL → Deal created
- Average time from contact created to first activity
- Deals created / closed from each campaign
These numbers help you decide which Clay workflows are worth scaling and which ones need work.
What to remember
- Always tag Clay contacts so you can track them in HubSpot
- Build a list for each campaign or outbound motion
- Use that list in funnel reports to track performance
- Watch for drop-offs and wins at each stage
With funnel tracking in place, you’re ready for the final piece: attributing real pipeline and revenue to your Clay workflows.
Step 5: Attribute Revenue to Clay Enrichment Using HubSpot Campaigns
The final step is the most important: proving that your Clay-sourced contacts led to real revenue.
This step shows how to tie your outbound efforts to results using HubSpot reporting, associations, and campaign fields you set up earlier.
Why does this matter?
Your exec team, board, or sales leader doesn’t care how many leads you enriched.They care about:
- How many turned into deals
- How much pipeline was created
- How much revenue closed
And if you can’t prove that Clay campaigns helped… your work doesn’t get the credit it deserves.
CRM integrations deliver an average ROI of $8.71 for every dollar spent, an 871% return, making them one of the highest-yielding investments in the sales tech stack.
How to Attribute Revenue to Clay
1. Make sure contacts are associated with deals
For attribution to work, the contacts you pushed from Clay must be linked to deals in HubSpot.
There are 3 ways to do this:
- Sales creates a deal and auto-associates the contact
- A HubSpot workflow creates the deal and links it
- Clay can push associations using the “Create Association in HubSpot” action. Just make sure you match both the Contact and Deal using their HubSpot Object IDs. Clay needs both to create the link correctly.
2. Use your campaign tag field to filter
This is the field you set in Step 3 (like Clay Campaign Source = ecomm_founders_q2).
Now you can:
- Build a report or dashboard that shows:
- Number of deals created from each campaign
-
- Total pipeline generated
-
- Closed-won revenue
- Use attribution reports like:
- Deals by contact property
-
- Attribution touchpoints
-
- Revenue by HubSpot campaign (requires Marketing Hub Enterprise and proper UTM tracking)
3. Slice by funnel stage, rep, or source
Want to go deeper? Layer filters to answer:
- Which campaigns drove deals fastest?
- Which reps closed the most Clay-sourced deals?
- What’s the average deal size by list?
These insights help you optimize everything: messaging, targeting, even routing rules.
What to remember
- No deal association = no attribution
- Your campaign field from Clay is the key to filtering
- Use HubSpot’s reporting tools to break it down by campaign
👀Watch: Hear how one SDR used Clay not just to hit quota, but to build better systems, evolve their role, and shape how modern GTM teams work. 👇
Now You Know What’s Working and Can Prove It
If you've gone through all 5 steps, then you know how to build a system that tracks every Clay lead, every enrichment, every HubSpot update, straight through to pipeline and revenue.
Now when someone asks, “What’s actually working?”
You won’t point to clicks. You’ll point to closed-won.