Skip to Content
CoursesAutomated Inbound04 Enrich on arrival

Enrich on Arrival

Outcome: an enrichment chain that runs on row creation and produces a person and company profile within your latency budget, with a defined path for the rows it cannot enrich.

Surface
Sync GTM app and MCP server
Level
Advanced
Uses
find_linkedin_from_work_email · linkedin_profile_enrich · enrich_organization
Credits
~2–3 per lead
Prerequisite
Lesson 03's webhook intake

The chain

An email is enough to build a full record.

Derive the domain

From the email. Free, and it is the company identifier.

Enrich the company

enrich_organization on the domain: headcount, industry, country, funding, LinkedIn URL. Cheap, and it is what the score mostly reads.

Resolve the person

find_linkedin_from_work_email to get a profile URL, then linkedin_profile_enrich for current title, seniority and history.

Verify the email

Cheap, and it prevents a follow-up bouncing.

Two to three credits, and a form fill with three fields becomes a complete record.


Order by what the score needs

Not every lead needs the full chain. Run company enrichment first — it is cheapest and carries most of the fit score — then decide whether person-level enrichment is warranted.

1. domain from email free 2. enrich_organization ~0.5 3. fit gate free 4. person resolution + enrich ~1.5 ← only above the gate 5. verify email ~0.3

On a high-volume form with a lot of unqualified traffic, that gate is the difference between a sustainable pipeline and one that costs more than the leads are worth.

Do not gate the follow-up on the fit score — gate the enrichment spend. Every inbound lead deserves a response; not every one deserves three credits of research. Those are different decisions and conflating them is how teams end up ignoring people who asked them a question.


Free-mail domains

A gmail.com address has no company behind it, so the chain above stops at step one.

SituationPath
Company name provided on the formResolve the domain from the name, then continue
No company, but a personal emailTry find_linkedin_from_personal_email
Neither resolvesRoute as unenriched — a human decides

Free-mail leads are not automatically low quality. Founders, consultants and people at companies with restrictive email policies all use personal addresses. Treat it as a different path, not a disqualification.


When enrichment misses

Roughly one in five leads will not enrich cleanly. The pipeline must still route them.

enrichment_status = complete | partial | failed complete → score, route, follow up normally partial → score on what exists, route with a flag failed → route to a human queue immediately

The failed path is the important one. A lead nobody can enrich is not a lead nobody should contact — it is a lead that needs a person to look at it, and it should reach that person faster than the automated ones, not slower.


The latency budget

Speed to lead is the point of this course, so track where the seconds go.

StepTarget
Submission → row createdUnder 5s
Company enrichmentUnder 10s
Person enrichmentUnder 15s
Score and routeUnder 2s
Follow-up sentUnder 60s total

If the full chain cannot complete inside your budget, send the follow-up on partial data rather than waiting. A fast, slightly generic response beats a perfect one four minutes later.


Do this now

Build the chain in cost order

Domain, company, gate, person, verify.

Add the fit gate before person enrichment

But not before follow-up.

Build the free-mail path

Company-name resolution, then personal-email lookup.

Add the three-state enrichment status

Route failed to a human queue

Immediately, not after the automated leads.

Measure each step’s latency

Confirm the total is inside budget

Or send on partial data.


Check your work

  • Company enrichment runs before person enrichment
  • The gate controls enrichment spend, not whether anyone responds
  • Free-mail leads have their own path
  • failed enrichment routes to a human faster, not slower
  • Total latency is measured against a written budget

Where this breaks

Blocking the follow-up on a slow or failed enrichment is the failure that defeats the purpose of the whole course. A lead who filled in a form and waited four minutes because a provider was slow has already opened a competitor’s tab. Set a timeout: if enrichment has not completed within your budget, route and respond on whatever data exists, and let enrichment catch up afterwards.


Further automation

The same chain works on any email-only list — newsletter subscribers, event registrations, historical form fills nobody enriched. Running it retrospectively over a backlog of bare addresses is one of the cheapest sources of qualified leads available, and it is the same build. See Waterfall Enrichment lesson 06.


Next lesson

05 — Form fill enrichment end to end, assembling the complete pipeline with its fallbacks.

Reference for this lesson: find_linkedin_from_work_email, linkedin_profile_enrich, enrich_organization, verify_email.