Disclaimer: Tool capabilities, pricing tiers, and API behaviour referenced in this article are based on publicly available information and user-reported data as of April 2026. Platform features and pricing change frequently. Always verify current details directly on each vendor’s website before making a purchase or implementation decision. This article is for informational purposes only and does not constitute professional sales or revenue operations advice.
Editorial note: Automaiva selects and recommends tools based on independent research and real-world testing. We have no paid relationships with any vendor mentioned in this article.
A lead enrichment workflow is the single highest-leverage ops improvement available to most B2B SaaS teams — yet the majority either skip it entirely or build it wrong and wonder why their outbound performance does not improve.
The Real Cost of Skipping Enrichment
The average B2B SaaS lead arrives with a name, an email address, and almost nothing else. No company size. No industry. No tech stack. No intent signal. Without enrichment, your sales rep spends 20 to 40 minutes researching each lead before writing a single word of outreach — time that compounds across hundreds of leads per month into a significant ops cost your revenue model is silently absorbing. A properly built lead enrichment workflow runs the moment a lead enters your system, fills in company data, scores the lead against your ICP, routes it to the right rep, and creates the first follow-up task — all before the rep opens their CRM. This guide shows you exactly how to build that workflow using Clay, HubSpot, and Make or n8n, with the full implementation logic at every step. Figures based on aggregated user-reported data and may not reflect all team experiences.
Here is what a broken lead enrichment process looks like in practice. A founder fills out your demo request form on a Tuesday afternoon. The lead lands in HubSpot with their name and work email. Your SDR sees it Wednesday morning, opens a new browser tab, searches the company on LinkedIn, checks their website for employee count, looks for the tech stack on BuiltWith, pastes the findings into the CRM contact record, then writes a personalised intro based on what they found. Forty minutes later, they send the first email.
Meanwhile, two competitors who run enrichment automatically sent their first touchpoints within four minutes of the form submission — while the lead’s intent was still fresh. The research your SDR just spent 40 minutes doing was completed by an API call that cost less than a cent and took six seconds.
This is not a hypothetical gap. It is the operational difference between SaaS sales teams that scale and ones that plateau — and it is almost entirely an automation problem, not a hiring problem.
About this guide: The Automaiva team mapped lead enrichment workflows across B2B SaaS teams from pre-seed through Series B, identifying the implementation patterns that produce consistent data quality and the failure points that produce enriched-looking records with useless or inaccurate data. All tool behaviour and pricing is sourced from vendor documentation as of April 2026.
Table of Contents
- The Lead Enrichment Problem Most SaaS Teams Do Not Know They Have
- What a Properly Built Enrichment Workflow Actually Does
- The Tool Stack: What You Need and Why
- The Full Workflow Logic: Trigger to Task in Six Steps
- Step-by-Step Implementation: Build It in Make or n8n
- How to Build ICP Scoring Into the Workflow
- Lead Routing Logic: Round-Robin, Territory, and Score-Based
- Handling Bad Data: What to Do When Enrichment Returns Nothing
- The 4 Most Common Enrichment Workflow Mistakes
- Frequently Asked Questions
The Lead Enrichment Problem Most SaaS Teams Do Not Know They Have
Most B2B SaaS teams believe they have a lead quality problem when they actually have a lead data problem. The leads are often qualified — the data arriving with them just does not say so. A lead from a 200-person SaaS company with a Salesforce integration and a recent funding round is an excellent lead for most B2B SaaS products. But if all you have in your CRM is their first name and a Gmail address, your SDR has no way to know that — and no way to write outreach that reflects it.
Lead enrichment solves this by pulling structured data about a lead’s company from external sources the moment the lead enters your system — before a human ever sees the record. Company size, industry, technology stack, funding stage, LinkedIn employee count, website traffic estimate, and in some cases direct intent signals from tools like Bombora or G2 — all of it appended to the CRM contact record automatically, in seconds, at a cost per lead that is a fraction of a cent compared to the $8 to $15 of SDR time spent doing the same research manually. Figures based on aggregated user-reported data and may not reflect all team experiences.
What a Properly Built Enrichment Workflow Actually Does
A properly built lead enrichment workflow does six things automatically, in order, every time a lead enters your system — whether that lead came from a form submission, a cold email reply, a LinkedIn connection, a product signup, or a webinar registration.
1. It identifies the lead’s company from their email domain. A work email address contains the company domain. An enrichment API — Clay, Clearbit, or Apollo — uses that domain to identify the company and pull structured firmographic data: company name, industry, employee count, annual revenue estimate, headquarters location, and funding information.
2. It appends that firmographic data to the CRM contact record. Company size goes into the Company Size field. Industry goes into the Industry field. Funding stage goes into a custom field. Every piece of structured data lands in a specific, queryable CRM field — not in a notes box that nobody searches.
3. It pulls the lead’s LinkedIn profile data where available. Job title, seniority level, years in current role, and previous companies all help your SDR understand the person behind the email address and write outreach that references their actual context rather than a generic template.
4. It scores the lead against your ICP definition. Company size matches your target range: +10 points. Industry matches your top verticals: +15 points. Tech stack includes a tool your product integrates with: +20 points. Funding round in the last 90 days: +25 points. The score lands in a custom CRM field and determines what happens next.
5. It routes the lead to the right sales rep. High-score leads go to your most senior SDR. Mid-score leads go into a round-robin pool. Low-score leads go into a nurture sequence rather than a sales queue. The routing happens automatically based on the score — no manual triage required.
6. It creates the first follow-up task. A CRM task is created and assigned to the routed rep with the lead’s enriched data pre-populated in the task description. The rep opens their task queue in the morning and finds a list of leads already researched, scored, and ready for personalised outreach — not a list of names they need to investigate before they can write a single word.
The Tool Stack: What You Need and Why
You do not need an expensive, specialised platform to build this workflow. The full implementation uses tools most B2B SaaS teams already have or can access on free or low-cost tiers.
| Role in the workflow | Tool option A | Tool option B | Best for |
|---|---|---|---|
| Lead capture (trigger) | Typeform or Tally (form) | HubSpot native form | Any source that fires a webhook or creates a CRM record on submission |
| Enrichment API | Clay (most data sources, AI-powered) | Apollo or Clearbit/Breeze | Clay for maximum data depth. Apollo for teams already using it for outbound. Clearbit for HubSpot-native teams. |
| CRM (data destination) | HubSpot | Pipedrive or Attio | HubSpot for teams with existing workflows. Attio for teams that want API-first flexibility. |
| Automation layer | Make (visual, no-code) | n8n (code-optional, self-hostable) | Make for ops teams. n8n for teams with a developer or technical founder. |
| Notification layer | Slack | Email via HubSpot | Slack for immediate rep notification. HubSpot email for task-based teams. |
The minimum viable stack for a team with no existing automation infrastructure: A HubSpot free account as the CRM, Apollo’s free enrichment tier for company data, and Make’s free plan to connect them. This covers the core workflow — trigger, enrich, update CRM, create task — at zero monthly cost for under 1,000 leads per month. Upgrade paths are clear and cheap as volume grows.
The recommended stack for a growth-stage team: Typeform or Tally for lead capture with webhook triggers, Clay for enrichment (access to 75-plus data sources and AI-powered field filling), HubSpot for CRM with custom ICP scoring properties, and Make Core at $10.59/month as the automation layer. Total tool cost outside HubSpot and Clay: under $15/month for most teams at this stage.
The Full Workflow Logic: Trigger to Task in Six Steps
Before touching any tool, map the logic on paper. This is the exact sequence the workflow follows for every lead that enters the system.
| Step | What happens | Tool responsible | Output |
|---|---|---|---|
| 1. Trigger | New lead submits form or is created in CRM | Typeform webhook or HubSpot contact created trigger | Name, email, source field passed to automation layer |
| 2. Enrich | Email domain sent to enrichment API | Clay, Apollo, or Clearbit API call | Company name, size, industry, tech stack, funding, LinkedIn URL returned as structured JSON |
| 3. Score | ICP score calculated from enrichment output | Make router or n8n IF node with scoring formula | Numeric ICP score (0 to 100) and tier label (Hot, Warm, Cold) |
| 4. Update CRM | Enrichment data and score written to CRM contact and company record | HubSpot Update Contact module | Fully populated contact record with ICP score visible to rep |
| 5. Route | Lead assigned to correct rep or sequence based on score | Make router with score-based branching | HubSpot owner field updated. Sequence enrolled if applicable. |
| 6. Notify | Rep notified in Slack with lead summary. CRM task created. | Slack module plus HubSpot Create Task module | Rep receives enriched lead summary in Slack within 60 seconds of form submission |
Total elapsed time from form submission to rep notification: under 90 seconds on Make with a webhook trigger. Under 4 minutes on Zapier with a 2-minute polling trigger on the Professional plan. This is the gap your competitors are exploiting if you are still doing this manually or running on time-delayed polling.
Step-by-Step Implementation: Build It in Make or n8n
The implementation below uses Make as the automation layer because its visual scenario builder makes the routing logic readable and maintainable by non-technical ops team members. The same logic applies directly to n8n — the nodes are named differently but the flow is identical.
Step 1: Set up your webhook trigger. In Make, create a new scenario and add a Webhooks module as your trigger. Select Custom Webhook and copy the generated webhook URL. In Typeform (or whichever form tool you use), go to the form’s Connect settings and paste the Make webhook URL as the delivery endpoint. Test the connection by submitting a test entry — Make should show the incoming payload with all form fields visible. If you are using a HubSpot native form, use the HubSpot module in Make with the Contact Created trigger instead of a webhook.
Step 2: Extract the email domain. Add a Tools module after your trigger. Use the Text Parser function to extract the domain from the email address field — everything after the @ symbol. Store this as a variable called company_domain. This domain is what the enrichment API will use to look up the company. Do not send the full email address to the enrichment API — the domain lookup is more reliable and returns cleaner firmographic data than person-level lookups for most B2B use cases.
Step 3: Call the enrichment API. Add an HTTP module and configure it to call your chosen enrichment API with the company_domain variable. For Clay, use the Clay API endpoint with your API key in the header. For Apollo, use the Organizations Enrich endpoint. For Clearbit, use the Company API. Map the JSON response fields — company name, employee count, industry, tech stack array, funding amount, LinkedIn URL — to named variables in your scenario. Add an error handler to this module to catch cases where the API returns null or an error, routing those leads to a fallback path rather than stopping the scenario.
Step 4: Calculate the ICP score. Add a Router module with branching logic based on the enrichment output variables. Build your scoring formula as a series of conditions. A simple but effective scoring structure for most B2B SaaS products looks like this: employee count between 50 and 500 adds 20 points; industry matches your target list adds 20 points; tech stack includes your key integration trigger adds 25 points; funding round in last 180 days adds 20 points; job title includes decision-maker keywords adds 15 points. Store the total as an icp_score variable and add a conditional branch that labels scores above 60 as Hot, scores between 30 and 60 as Warm, and scores below 30 as Cold.
Step 5: Update the HubSpot contact record. Add a HubSpot Update Contact module. Map each enrichment variable to its corresponding HubSpot contact property. Map the icp_score variable to a custom HubSpot property you have created called ICP Score. Map the tier label to a custom property called Lead Tier. If the company does not yet exist in HubSpot, add a HubSpot Create Company module before the contact update and associate the company to the contact. This ensures your company-level reporting is accurate and your reps can see the full company context without switching tabs.
Step 6: Route the lead and create the task. Add routing branches based on the Lead Tier variable. For Hot leads: update the HubSpot contact owner field to your most senior SDR, enrol the contact in your Hot Lead sequence, and send a Slack notification to that rep’s direct message channel with the enriched lead summary formatted clearly — company name, size, industry, ICP score, and a direct link to the HubSpot contact record. For Warm leads: assign via round-robin to your SDR pool using a Make data store that tracks the last assigned rep. For Cold leads: enrol in a long-form nurture sequence and skip the Slack notification. Finally, add a HubSpot Create Task module for Hot and Warm leads that creates a follow-up task assigned to the routed rep with a due date of the same business day.
How to Build ICP Scoring Into the Workflow
ICP scoring inside an enrichment workflow is not a one-size-fits-all formula. The scoring weights that work for a developer tools company targeting CTOs at 100 to 500 person SaaS companies are completely different from those that work for a sales enablement tool targeting VP Sales at enterprise accounts. Before building the scoring logic, you need to define your ICP in quantifiable terms that the enrichment API can actually return.
The four enrichment-compatible ICP dimensions most B2B SaaS teams use:
Company size by employee count. This is the most reliable enrichment field — employee count data from LinkedIn and company databases is generally accurate within a 20 percent margin. Define your sweet spot in specific employee ranges rather than vague tiers: 50 to 200 employees scores maximum points. 200 to 500 employees scores partial points. Outside those ranges scores zero. This specificity makes the scoring formula deterministic rather than subjective.
Industry vertical. Enrichment APIs return industry classifications from LinkedIn’s standard taxonomy. Build a list of your top 5 converting industries from your CRM historical data, then map those to the LinkedIn industry field values the API returns. Exact matches score full points. Adjacent industries score partial points. Everything else scores zero. Update this list quarterly as your conversion data matures.
Technology stack signals. Clay and Clearbit both return technology stack data for most companies with a web presence — which marketing tools, CRM platforms, support tools, and infrastructure they use. For SaaS products that integrate with specific platforms, tech stack matching is often the highest-signal ICP dimension available. A lead whose company uses Salesforce is worth more to a Salesforce-native product than one using HubSpot, regardless of size. Weight accordingly.
Funding and growth signals. Recent funding rounds, particularly Series A and B, correlate strongly with technology buying intent — newly funded companies are actively building and expanding their stacks. Enrichment APIs including Clearbit and Clay return funding data with round type and date. Score recent funding rounds (within 180 days) heavily if your product is positioned for growing teams.
Lead Routing Logic: Round-Robin, Territory, and Score-Based
Lead routing is where most enrichment workflows break down — not because the logic is complicated, but because teams try to implement routing rules in their CRM instead of their automation layer, creating a split-brain system where the automation assigns one owner and the CRM rule assigns another.
Keep routing logic entirely in your automation workflow. The CRM receives the routing decision as a completed fact — the owner field is already set before the record is fully updated — rather than attempting to apply its own rules after the fact.
Round-robin routing in Make: Use a Make Data Store with a single record containing the index of the last assigned rep. Each time a Warm lead is routed, the workflow reads the current index, assigns the rep at that index position from your rep list array, increments the index, and writes it back to the Data Store. This gives you true round-robin assignment without any external dependency.
Territory-based routing: If your sales team is organised by geography or vertical, add a Router module that branches on the enriched industry or country field before the owner assignment step. Each branch assigns to the rep responsible for that territory. Update the routing rules in the Make scenario — not in the CRM — so the logic is visible, testable, and maintainable in one place.
Score-based routing: The simplest and most effective routing model for early-stage SaaS teams. Hot leads above your threshold score go to your strongest closer. Warm leads go into round-robin among your SDR pool. Cold leads go into nurture automation with no rep assigned. As your team grows, layer territory rules on top of the score-based foundation rather than replacing it.
✓ Routing rules that work reliably
- Single source of truth — routing logic lives only in the automation workflow, never split between workflow and CRM
- Deterministic conditions — score above X goes to rep A, always, with no human override in the loop
- Data Store round-robin — stateful assignment that survives scenario restarts without losing position
- Fallback path — every routing branch has a default outcome so no lead is ever left unassigned
- Slack confirmation — every routing decision generates a notification so reps know they have a new lead immediately
✗ Routing approaches that create problems
- Split logic — automation assigns owner A, CRM assignment rule overwrites with owner B, creating a conflict nobody tracks
- Manual triage step — any human approval step in the routing path eliminates the speed-to-lead advantage of automation
- Score-only routing with no fallback — leads that score exactly on a boundary or return null scores get stuck with no owner
- Static rep lists — hardcoded rep assignments in the workflow break silently when team members are added or leave
- No notification to rep — routed leads that do not generate a Slack alert are frequently missed for hours
Handling Bad Data: What to Do When Enrichment Returns Nothing
No enrichment API returns complete data on every lead. Consumer email addresses, very small companies, recently founded companies, and companies with minimal web presence frequently return partial or null enrichment results. A workflow that has no handling for null enrichment data either breaks on those leads or creates CRM records with blank fields that look enriched but contain nothing useful.
Build three fallback paths into your enrichment step, not one:
Partial enrichment path. The API returns some fields but not all — for example, company name and industry are populated but employee count and tech stack are null. Route this lead through the scoring formula using only the available fields. A partial score is better than no score. Flag the contact record in HubSpot with a custom property called Enrichment Status set to Partial so your ops team can run a weekly report on partially enriched leads and manually supplement the missing fields for high-priority accounts.
Zero enrichment path. The API returns no data at all — the domain does not match any known company. This typically indicates a personal email address, a very new company, or a misspelled domain. Route these leads to a separate HubSpot list called Unenriched Leads. Assign them to a junior SDR or virtual assistant for manual research rather than your top closers. Do not create a task in the primary sales queue — create a research task instead.
API failure path. The enrichment API call itself fails — timeout, authentication error, or rate limit. This is a workflow failure, not a data quality problem. Route these leads to a buffer list and trigger a retry after a 15-minute delay. If the retry also fails, send a Slack alert to your ops channel and route the lead to the zero enrichment path. Never let an API failure silently discard a lead — the lead is still real even if the enrichment data is unavailable.
The 4 Most Common Enrichment Workflow Mistakes
Mistake 1: Enriching at the wrong moment. Most teams build enrichment to run when a lead is manually added to a sequence — which means enrichment happens hours or days after the lead first entered the system. The correct trigger is the moment the lead is created, not the moment a rep decides to act on it. Enrichment-on-creation gives reps context before they even open the record. Enrichment-on-sequence-enrollment gives them context after they have already made a routing decision without it.
Mistake 2: Mapping enrichment data to the wrong CRM fields. Enrichment APIs return structured JSON with specific field names. If you map the company size field to HubSpot’s Number of Employees property, your existing HubSpot reports and list filters that reference that property will work correctly. If you create a custom text field called Company Size and paste the number in as a string, none of your number-based filters will query it correctly. Always map enrichment output to the correct field type in your CRM — numbers to number properties, dropdowns to dropdown properties with matching option values.
Mistake 3: Over-enriching and slowing down the workflow. Clay gives you access to 75-plus data sources. Clearbit returns dozens of fields per company. The temptation is to pull everything available and store it all in the CRM. In practice, reps use 4 to 6 enrichment data points when writing outreach — company size, industry, tech stack, recent news, funding, and job title. Every additional API call adds latency to your workflow and cost to your enrichment bill. Define exactly which fields your reps actually use, enrich only those fields, and revisit the list quarterly rather than enriching everything speculatively.
Mistake 4: Not monitoring enrichment match rates. Your enrichment workflow will return a match rate — the percentage of leads for which the API returns meaningful data. A healthy match rate for a B2B SaaS tool targeting mid-market companies is typically 70 to 85 percent. If your match rate drops below 60 percent, either your lead source is generating consumer or personal email addresses, your enrichment provider’s database coverage does not match your target market, or your domain extraction logic is broken. Build a weekly report in HubSpot that counts leads by Enrichment Status property. This report tells you immediately when match rates degrade before the problem compounds across hundreds of leads.
Frequently Asked Questions
What is lead enrichment and why does it matter for B2B SaaS teams?
Lead enrichment is the process of automatically appending company and contact data to a lead record the moment it enters your system — pulling firmographic data like company size, industry, technology stack, and funding stage from external databases using the lead’s email domain. It matters for B2B SaaS teams because it eliminates manual research time (typically 20 to 40 minutes per lead), enables ICP scoring before a rep touches the record, and improves first-touch personalisation by giving reps context before they write a single word of outreach. Figures based on aggregated user-reported data and may not reflect all team experiences.
Which enrichment tool is best for B2B SaaS — Clay, Apollo, or Clearbit?
Clay is the most powerful for teams that need maximum data depth — it aggregates 75-plus data sources and uses AI to fill fields that single-source APIs miss. Apollo is the best choice for teams already using Apollo for outbound prospecting, because enrichment is included in existing Apollo plans and the integration with your contact database is native. Clearbit (now Breeze, part of HubSpot) is the best choice for HubSpot-native teams — it enriches contacts directly within HubSpot without requiring an external automation layer. The right choice depends on your existing stack, not on which tool has the most features.
How long does it take to build a lead enrichment workflow from scratch?
A first-time build of a complete enrichment workflow — trigger, enrich, score, update CRM, route, notify — takes 3 to 5 hours in Make for an ops team member with prior Make experience and API credentials already set up. A developer building the same workflow in n8n typically completes it in 2 to 3 hours. Budget an additional hour for testing with real lead data to confirm enrichment fields map correctly to CRM properties. The full build is a one-day project, not a multi-week initiative.
What should I do when the enrichment API returns no data for a lead?
Build three fallback paths: partial enrichment (some fields returned, others null) routes the lead through scoring with available data and flags the record for manual supplementation; zero enrichment (no data returned) routes the lead to an unenriched list for manual research by a junior SDR; API failure (the call itself errors) triggers a retry after 15 minutes and routes to the zero enrichment path if the retry also fails. Never let a null enrichment result silently discard a lead — the lead is real regardless of whether the enrichment data is available.
Can I build a lead enrichment workflow without a developer?
Yes — Make’s visual scenario builder handles the complete workflow logic described in this guide without writing a single line of code. The only technical step is reading the JSON response from the enrichment API and mapping field names to your scenario variables, which Make’s module interface handles visually. A non-technical ops team member who is comfortable with Make’s interface can build and maintain this workflow independently. n8n requires more technical comfort — particularly for the scoring formula and routing logic — but is still buildable without a full developer if the person has basic programming familiarity.
How do I calculate ICP score in an automation workflow?
Define your ICP dimensions in quantifiable terms that the enrichment API can return — employee count range, industry classification, technology stack matches, and funding signals. Assign point values to each dimension based on how strongly each correlates with conversion in your historical CRM data. Build the scoring formula as a series of conditional checks in your automation layer (Make router or n8n IF node) that add points to a running total based on which conditions are met. Store the total as a numeric CRM property. Update the scoring weights quarterly as your conversion data matures — a scoring formula that is never revisited gradually drifts out of alignment with your actual ICP as your product and market evolve.
What is the best CRM for storing enrichment data from an automation workflow?
HubSpot is the most practical choice for most B2B SaaS teams because its property system supports all standard enrichment data types (numbers, dropdowns, dates, multi-select), its native lists and reports can filter on any enriched property immediately after creation, and its workflow engine can trigger sequences based on enriched property values without requiring a separate automation tool. Attio is the best alternative for teams that want API-first flexibility and a more modern data model — its custom object architecture makes it easier to store complex enrichment data structures without workarounds. Pipedrive is a workable option for smaller teams but its custom field limitations make storing full enrichment datasets more cumbersome at scale.
Pricing note: All pricing information referenced in this article is accurate as of April 2026 and subject to change. Always verify current pricing on each vendor’s official website before making a purchase decision.
More from Automaiva
- SaaS Automation Breaking in Production? 5 Silent Failure Modes and How to Fix Them (2026)
- Clay vs Apollo vs Instantly vs Smartlead for B2B SaaS Outbound 2026
- Zapier vs Make vs n8n: Which Automation Tool Pays for Itself Fastest? (2026)
- folk vs HubSpot vs Pipedrive vs Attio: Which CRM for B2B SaaS Teams? (2026)
- SaaS Automation Challenges: 7 Problems and Their Fixes
Written by the Automaiva Editorial Team
