Overview
Every lead that enters your Salesforce instance arrives incomplete. A form fill gives you an email address and maybe a company name. Everything else that actually matters for routing, scoring, and personalization is missing: employee count, industry vertical, tech stack, funding stage, seniority level. Your reps either spend 10 minutes researching each lead manually, or they wing it with whatever scraps the form captured.
Clearbit (now part of HubSpot's data ecosystem) solves this by matching lead records against a database of 85+ firmographic, technographic, and demographic data points and writing them directly into Salesforce. When configured properly, a bare-bones form submission transforms into a fully enriched record before your sales team even sees it. The result is faster routing, more accurate lead qualification, and personalized outreach that starts from actual context instead of guesswork.
This guide walks through the complete Salesforce + Clearbit setup: choosing between native and AppExchange integrations, designing your field mapping architecture, configuring real-time versus batch enrichment, handling deduplication, and validating data quality at every step. Whether you are standing up enrichment for the first time or rebuilding a broken implementation, this is the technical reference you need.
What Clearbit Actually Enriches
Before diving into configuration, it helps to understand the scope of what Clearbit returns. The platform resolves records against two primary objects: Person (the individual) and Company (the organization). Each comes with a distinct set of attributes.
Person-Level Data Points
When Clearbit matches an email address to an individual, it can return:
- Identity: Full name, job title, seniority level, role classification (engineering, sales, executive, etc.)
- Social profiles: LinkedIn URL, Twitter handle, personal website
- Employment details: Current company, employment history indicators
- Location: City, state, country, timezone
Company-Level Data Points
Company enrichment is where Clearbit delivers the most depth:
- Firmographics: Employee count, estimated annual revenue, founding year, legal name
- Classification: Industry (SIC/NAICS codes), sector, sub-industry, market category
- Technology: Detected tech stack (CRM, marketing automation, analytics, hosting, frameworks)
- Funding: Total raised, last funding round, investor information
- Digital presence: Domain, Alexa rank, social media followers, content indicators
Clearbit's coverage is strongest for North American B2B technology companies. If your ICP skews toward SMB, EMEA, or non-tech verticals, expect lower match rates. Test a sample of 200-500 records from your actual database before committing to a full rollout. Teams running multi-provider enrichment often use Clearbit as one layer in a broader waterfall.
The practical value is not in any single data point. It is in getting 30-50 fields populated simultaneously from a single email address, turning a skeleton record into something your downstream automation can actually act on.
Native API vs. AppExchange: Choosing Your Integration Path
Clearbit offers two primary ways to connect with Salesforce, and the choice has downstream implications for flexibility, maintenance burden, and cost.
Option 1: Clearbit Native Salesforce Integration
The native integration is a managed package that installs directly into your Salesforce org. It handles field mapping through a point-and-click interface, manages API authentication, and provides built-in enrichment triggers.
| Aspect | Native Integration | Custom API Implementation |
|---|---|---|
| Setup time | 1-2 hours | 1-2 weeks |
| Field mapping | UI-based, limited customization | Fully custom, any logic supported |
| Trigger control | Predefined triggers (create, update) | Any Salesforce event, custom conditions |
| Transformation logic | Basic (picklist mapping) | Full Apex/Flow processing |
| Rate limit handling | Managed automatically | You manage queuing and retries |
| Maintenance burden | Low (vendor-managed updates) | Medium-high (you own the code) |
| Cost | Included in Clearbit plan | Development time + ongoing maintenance |
Option 2: Custom API Integration
Building directly against the Clearbit API gives you complete control. You write Apex callouts or use middleware (Make, n8n, Zapier) to call the Enrichment API, process the response, and write data back to Salesforce on your terms.
This path makes sense when you need to:
- Apply complex transformation logic before writing to Salesforce (standardizing titles, mapping industries to custom taxonomies)
- Combine Clearbit data with other enrichment sources in a single workflow
- Control exactly when enrichment fires based on custom business rules
- Route enriched data to multiple Salesforce objects simultaneously
Tools like Make or n8n offer a practical middle ground. You get the flexibility of custom API calls without writing Apex code. This is especially useful for teams that want to chain Clearbit with other enrichment providers or apply AI-based data transformation before CRM writeback.
Which to Choose
If Clearbit is your sole enrichment provider and your field mapping needs are straightforward, the native integration saves significant time. If you are building Clearbit into a broader multi-tool enrichment workflow, go custom from the start. Migrating from native to custom mid-stream is doable but painful.
Field Mapping Architecture
Field mapping is where most Clearbit implementations succeed or fail. A sloppy mapping creates data conflicts, overwrites valuable information, and makes your CRM less trustworthy rather than more.
The Dual-Field Pattern
The safest architecture uses dedicated enrichment fields alongside your standard Salesforce fields. Instead of writing Clearbit's job title directly to the standard Title field, write it to a custom Clearbit_Title__c field. This preserves whatever your reps or forms originally captured while making enriched data available for automation.
| Clearbit Field | Salesforce Standard Field | Enrichment Field | Merge Strategy |
|---|---|---|---|
| person.title | Title | Clearbit_Title__c | Enrich only if standard is blank |
| company.metrics.employees | NumberOfEmployees | Clearbit_Employees__c | Always write to enrichment field; overwrite standard if blank |
| company.category.industry | Industry | Clearbit_Industry__c | Map to picklist values; write to standard if valid match |
| company.tech | N/A | Clearbit_Tech_Stack__c | Always write (no standard equivalent) |
| person.geo.city | City | Clearbit_City__c | Enrich only if standard is blank |
| company.metrics.annualRevenue | AnnualRevenue | Clearbit_Revenue__c | Always write to enrichment field |
Merge Logic Options
Once you have both the original and enriched values, you need rules for which one wins. There are three common strategies:
- Enrichment fills gaps only: Only write to the standard field if it is currently blank. This preserves all existing data and treats enrichment as a gap-filler. Safest, but you miss corrections to outdated data.
- Enrichment always wins: Overwrite standard fields with enriched values on every run. This keeps data maximally fresh but risks overwriting intentional manual entries from reps.
- Conditional merge: Use a formula or Flow to compare values and apply business rules. For example, overwrite the title if the existing value is more than 180 days old, but never overwrite a value that was manually edited by a rep (tracked via field history).
The conditional merge is the most work to implement but produces the best results at scale. It respects human input while still benefiting from automated enrichment. For detailed patterns on setting this up, see our field mapping fundamentals guide.
Picklist Mapping Headaches
Clearbit returns free-text values for fields like Industry and Role. Salesforce often expects picklist values. You need a translation layer. For Industry, build a mapping table that converts Clearbit's taxonomy to your custom picklist. For values that do not map cleanly, route them to an "Other - Review" option so they surface for manual classification rather than silently failing.
Real-Time vs. Batch Enrichment Patterns
When enrichment fires matters as much as what it returns. The two primary patterns serve different use cases, and most production implementations use both.
Real-Time Enrichment
Real-time enrichment fires immediately when a lead is created or updated in Salesforce. The record hits Clearbit's API, gets enriched, and the data writes back within seconds. This is essential for:
- Inbound lead routing: You need enriched data to route leads to the right rep or queue. Without real-time enrichment, routing rules that depend on company size or industry will fail on new leads.
- Lead scoring: If your MQL-to-SQL scoring model uses firmographic signals, those signals need to exist when the scoring logic runs.
- Instant qualification: For high-velocity sales motions where speed-to-lead matters, you cannot wait for a batch job to tell you whether a new signup is a fit.
Clearbit's API typically responds in 1-3 seconds, but can take up to 10 seconds for cold lookups. If your routing logic runs synchronously, build in a retry mechanism or use Clearbit's webhook-based async enrichment mode so you do not block the lead creation flow.
Batch Enrichment
Batch enrichment processes records in bulk on a schedule. This pattern handles:
- Database backfill: Enriching your existing lead and contact database that predates the Clearbit integration
- Re-enrichment cycles: Refreshing data on records that were last enriched 60-90 days ago to catch job changes, company growth, and other updates
- Failed record retries: Re-processing records where the initial real-time enrichment returned no match (Clearbit may have added coverage since the last attempt)
Schedule batch jobs during off-peak hours to avoid hitting API rate limits during high-inbound periods. A typical pattern is a nightly job that processes up to 1,000 records, prioritized by lead score or recent activity.
Combining Both Patterns
The production-grade approach uses real-time enrichment for all new records and batch enrichment for maintenance. Track enrichment status with custom fields:
| Field | Type | Purpose |
|---|---|---|
| Enrichment_Status__c | Picklist | Values: Pending, Enriched, No Match, Failed, Stale |
| Last_Enriched_Date__c | DateTime | Timestamp of last successful enrichment |
| Enrichment_Source__c | Text | Which provider returned the data (useful if using multiple sources) |
| Enrichment_Match_Confidence__c | Picklist | High, Medium, Low based on match quality indicators |
Your batch job queries for records where Enrichment_Status__c equals "Pending", "Failed", or "Stale" (where Last_Enriched_Date__c is more than 90 days old). This ensures you are not wasting API calls on records that are already fully enriched.
De-Duplication Considerations
Enrichment creates a unique deduplication challenge. Before Clearbit, two records with different email addresses but the same company might look like they belong to different accounts. After enrichment, both records now have matching company domains, employee counts, and industry codes. This creates both an opportunity and a problem.
The Enrichment-Triggered Duplicate Problem
Common scenarios where enrichment surfaces or creates duplicates:
- Lead-to-Lead duplicates: Two form fills from the same person using different email addresses (work and personal). Clearbit enriches both with identical person data, making the duplicate obvious but not automatically resolving it.
- Lead-to-Contact duplicates: A new lead enters Salesforce, gets enriched, and now matches an existing Contact on the Account. Without duplicate detection logic, your reps may work the same person from two records.
- Company-level duplicates: Enrichment reveals that "Acme Corp" and "Acme Corporation" are the same company. Your Account deduplication rules need to catch domain-level matches.
Pre-Enrichment Deduplication
Run deduplication checks before enriching to avoid wasting API credits on records that should be merged. A simple pre-enrichment Flow can:
- Check if the email domain already exists on an Account in Salesforce
- Check if the email address matches an existing Lead or Contact
- If a match exists, merge or convert instead of enriching a new record
- If no match, proceed with enrichment
Post-Enrichment Matching
After enrichment, use the newly populated fields to run more sophisticated duplicate detection. Clearbit's company domain becomes a powerful matching key that catches duplicates your pre-enrichment checks missed. Build a scheduled Flow or report that flags records sharing the same Clearbit_Company_Domain__c but existing as separate Leads or Accounts.
For teams managing deduplication across multiple enrichment sources and tools, our RevOps deduplication guide covers the broader architecture.
Data Quality Validation
Enriched data is not automatically good data. Clearbit's coverage and accuracy vary by field, geography, and company size. Building validation into your enrichment pipeline prevents bad data from polluting your CRM and degrading downstream workflows.
Validation Rules to Implement
Add these checks to your enrichment processing logic, either in your Salesforce Flow or your middleware:
- Employee count sanity: Reject values of 0 or unrealistically high numbers (above 5 million). Flag values that contradict the existing NumberOfEmployees field by more than 10x in either direction.
- Revenue reasonableness: Cross-reference employee count against revenue. A 10-person company with $10 billion in revenue indicates a data error.
- Title standardization: Clearbit returns raw titles. Validate against a known list of title patterns or use an AI-powered classification to bucket into standard seniority levels.
- Geographic consistency: If a person's city is "San Francisco" but their timezone returns as "Asia/Tokyo," flag the record for review.
- Domain validation: Ensure the company domain returned matches the email domain or a known alias. Mismatches indicate a potential incorrect company match.
Building a Confidence Score
Not every enriched field deserves equal trust. Build a simple confidence scoring system based on:
| Signal | Confidence Impact |
|---|---|
| Email-to-company domain match | +High (strong identity signal) |
| LinkedIn profile confirmed | +High (verified person data) |
| Multiple data points consistent | +Medium (cross-validation) |
| Company domain matches but title seems wrong for company size | -Medium (possible stale data) |
| Free email domain (gmail, yahoo) | -High (person match unreliable) |
| Company data returned but no person match | -Low (partial enrichment) |
Store the confidence score on the record. This lets your lead scoring models weight enriched fields appropriately and gives reps a quick way to assess data reliability.
Monitoring Enrichment Health
Build a Salesforce dashboard that tracks enrichment quality over time:
- Match rate: Percentage of records that return any Clearbit data (target: 60-80% for B2B tech companies)
- Field fill rate: Per-field completion rates to identify which data points Clearbit covers well and where you have gaps
- Stale data percentage: Records where Last_Enriched_Date is more than 90 days old
- Validation failure rate: Records flagged by your quality checks, broken down by failure type
If your match rate drops below 50%, it is worth evaluating whether additional enrichment providers could fill the gaps Clearbit misses.
Common Implementation Pitfalls
After seeing dozens of Clearbit-Salesforce implementations, these are the mistakes that cost teams the most time.
Overwriting Rep-Entered Data
The number one complaint from sales teams: "Clearbit just overwrote the title I manually corrected." If your reps are updating records based on actual conversations, those updates are almost always more accurate than enrichment data. Build field-level protection that respects manual edits. Track last-modified-by on critical fields and skip enrichment overwrites when the last editor was a human user rather than an integration.
Enriching Everything Indiscriminately
Running Clearbit against your entire database sounds appealing until you get the bill. Enrichment credits are not free, and a large percentage of records in most Salesforce instances are old, irrelevant, or already disqualified. Pre-filter your enrichment queue using ICP criteria so you only spend credits on records that could actually become customers.
Ignoring the Lead-to-Account Relationship
Clearbit enriches Leads and Contacts, but much of the company data belongs on the Account object. If you are writing employee count and revenue to the Lead record but not syncing it to the corresponding Account (or creating one if it does not exist), you are fragmenting your data. Design your enrichment flow to handle the Lead-to-Account relationship explicitly.
No Enrichment Audit Trail
When something goes wrong, you need to know what changed, when, and why. Log every enrichment event with a timestamp, the fields updated, and the previous values. This is not optional at scale. Without an audit trail, debugging data issues becomes impossible and CRM hygiene degrades over time.
FAQ
A single enrichment request against the Combined API returns both Person and Company data in one call. If you use the Person and Company APIs separately, that is two calls per record. For most implementations, the Combined API is the right choice. Budget for one call per new record (real-time) plus one call per record per re-enrichment cycle (batch).
The API returns a 404 or a partial response with only the fields it could resolve. Your implementation should handle this gracefully: mark the record's Enrichment_Status as "No Match," leave existing field values untouched, and queue the record for a retry in 30-60 days. Clearbit continuously expands its database, so records that fail today may succeed later.
Both, but with different triggers. Enrich Leads on creation (real-time) to enable immediate routing and scoring. Enrich Contacts on a scheduled basis or when they are created via lead conversion. The enrichment logic should be the same; only the trigger and target object differ.
As of early 2026, Clearbit continues to operate as a standalone product with full Salesforce support. The API and Salesforce integration remain available. That said, teams with long-term concerns about vendor lock-in should design their enrichment architecture to be provider-agnostic, using dedicated enrichment fields and abstracted mapping logic that could swap in an alternative provider if needed.
For active pipeline records, 30-60 days catches job changes and company updates that impact deal velocity. For general database maintenance, 90 days balances freshness against cost. For dormant or low-priority records, 180 days is sufficient. Tier your cadence based on record value rather than applying a single schedule to your entire database.
Yes, and many teams do. The key is establishing a priority hierarchy and conflict resolution logic. Decide which provider is authoritative for each field type, and use the dual-field pattern to store each provider's output separately before merging into your canonical fields. This waterfall approach maximizes coverage while maintaining data lineage.
What Changes at Scale
Configuring Clearbit for a Salesforce instance with 5,000 leads is a project. Running enrichment across 500,000 records while keeping data consistent across your sequencer, marketing automation, and analytics platforms is a fundamentally different challenge.
The field mapping you carefully designed starts breaking when other tools write to the same fields. Your enrichment status tracking gets out of sync when records are updated from multiple sources simultaneously. And the biggest gap emerges when you try to use enriched data downstream: your sequencer needs the data in one format, your AI sequence builder needs it in another, and your reporting layer needs a third view entirely.
What you actually need is a context layer that sits between your enrichment sources and your execution tools, normalizing data from Clearbit, your CRM, product analytics, and engagement signals into a single unified view that every downstream system can consume.
This is what platforms like Octave handle. Instead of building custom sync logic between Clearbit, Salesforce, your sequencer, and your scoring models, Octave maintains a unified context graph that keeps enrichment data, engagement history, and qualification signals in sync across your entire GTM stack. When your personalization engine needs firmographic context, or your routing logic needs a real-time fit score, it pulls from a single source that has already reconciled data from every provider in your stack. For teams running enrichment at volume, it turns a brittle web of point-to-point integrations into actual infrastructure.
Conclusion
A well-configured Salesforce + Clearbit integration transforms your CRM from a data entry system into an intelligence layer that actively powers routing, scoring, and personalization. The 85+ data points Clearbit provides are genuinely valuable, but only if your field mapping, enrichment triggers, and data quality controls are built to handle real-world complexity.
Start with a clear implementation plan: choose native or custom integration based on your team's technical capacity and multi-tool needs. Design your field mapping with the dual-field pattern to protect existing data. Set up real-time enrichment for new records and batch enrichment for maintenance. Build deduplication checks into both ends of the pipeline. And instrument everything with status tracking and validation so you can monitor enrichment health over time.
The teams that get the most from Clearbit are the ones that treat enrichment as infrastructure, not a one-time project. Data decays, companies change, people switch jobs. A production-grade enrichment pipeline accounts for all of this and keeps your CRM continuously current without manual intervention.
