Skip to content
AI AutomationFeatured

AI Lead Enrichment Workflow for a Media/Sales Team

Reps spent hours researching every lead on raw lists that held little more than a name and a company. Outreach was slow, personalization inconsistent, and good leads went stale before anyone reached them.

Industry

Media/publishing business with an outbound sales team

Role

AI automation consultant — pipeline design, enrichment build, prompt design, documentation and handover

Impact

Lead research that used to take a rep an afternoon of tab-switching now takes a few minutes of review, and a new list goes from raw CSV to live outreach the same day.

01 - Problem

The problem

The team worked from purchased and traded lists, and each lead usually arrived as a name, a company, and little else. Before sending a single email, a rep opened a dozen tabs — company site, LinkedIn, recent coverage — to find an angle. Each lead took several minutes, a list of a few hundred took days, and every rep researched their own way, so personalization quality swung wildly. Because research was slow, leads went stale, and when the team fell behind they sent generic blasts that hurt reply rates and risked the sending domain. With no single source of truth, the same lead got researched twice or hit by two sequences.

The instinct was 'just have AI write the emails.' But the real problem was upstream: thin, unstructured data, and no automation survives bad inputs. So we fixed the structure first — one lead base, defined statuses, a clear definition of 'enriched' — then built the AI automation workflow on top.

02 - System Flow

How the system moves

  1. Raw leads land

    CSV import into Airtable

  2. Pipeline triggers

    n8n watches for new records

  3. Firmographics enriched

    Clay enrichment waterfall

  4. AI research drafted

    OpenAI summaries and angles

  5. Confidence scored

    flags set on every output

  6. Review gate

    low-confidence held for reps

  7. Outreach queued

    Smartlead sequence via API

  8. Status synced

    results written back to Airtable

03 - Build

What I built

A structured Airtable lead base

Every imported list normalizes into one Airtable table with defined fields: source, owner, status, enrichment fields, contact history. Imports are deduplicated against existing records and past sends, so each lead exists once with one status. Unglamorous, but the pipeline only works because every lead has a single record the rest of the system can trust.

Firmographic enrichment in Clay

Clay does the lookups reps did by hand: domain, company size, industry, location, verified title, and signals like funding or hiring. I built it as a waterfall — cheaper sources first, gaps fall through to the next provider. Fields that cannot be verified stay empty instead of guessed; empty is honest, and the next step handles it.

AI research summaries with confidence flags

An OpenAI step takes only the verified Clay fields plus scraped page content and returns a short summary and two or three personalization angles in a structured format. The prompt allows 'insufficient data' as a valid answer, and every output carries a confidence flag tied to how much real source material backed it. Low-confidence output never sends automatically — that rule is what made the team trust the system.

n8n orchestration and error handling

n8n is the glue: it watches Airtable, calls Clay and OpenAI in batches, respects rate limits, retries transient failures, and writes everything back. Anything that fails twice lands in an error queue with a readable reason instead of silently dropping a lead. Plain API integration work, but it is the difference between automation the team can depend on and a demo that breaks in week one.

Smartlead routing with a human review gate

High-confidence leads queue automatically into the matching Smartlead sequence; low-confidence ones land in an Airtable review view where a rep approves, edits, or rejects in seconds. Sequence status and replies sync back so nobody gets double-contacted. I documented the whole system — prompts, field definitions, a failure playbook — and handed it over with a walkthrough so the team runs and adjusts it without me.

04 - Impact

Business impact

  • Research that took a rep an afternoon per batch now takes a few minutes of reviewing flagged records.

  • New lead lists go from raw CSV to live outreach the same day instead of sitting in a backlog.

  • Personalization quality is consistent across the team instead of depending on who did the digging.

  • Confidence flags catch weak data in review instead of letting it reach a prospect's inbox.

  • One Airtable base replaced scattered spreadsheets, ending duplicate research and double-contacted leads.

  • Reps now spend their time on replies and calls — the work that closes — instead of copy-paste research.

05 - Edge Cases

What had to be handled

  • Leads with no findable company domain skip enrichment and land in a 'needs manual research' view rather than generating AI output built on guesses.

  • Common-name mismatches are caught by cross-checking title and company before any enriched data is accepted onto the record.

  • When source material is thin, the AI returns 'insufficient data' instead of inventing details, and the lead is flagged for human review.

  • Duplicates — already in the base or already contacted in Smartlead — are caught at import, so nobody gets the same sequence twice.

  • Clay and OpenAI rate limits are handled with batching and retries in n8n, and an alert fires when enrichment credits run low so the pipeline never stalls silently.

  • Leads outside the team's target profile are disqualified before enrichment, so credits are never spent on records that would never be contacted.

06 - Improvements

What I would improve next

  • Feed Smartlead reply outcomes back into the prompt layer so angles improve based on what actually gets responses.

  • Add per-segment prompt variants — the same structure does not fit both a publisher contact and a brand-side marketer.

  • Build a small reporting dashboard on the Airtable base showing enrichment cost, pass rate, and review-queue volume per list.

  • Add a data source or two to the Clay waterfall so fewer leads fall through to the manual-research queue.