Every lead, enriched before the call.
ivee's sales team was calling leads off blank records. No company name, no headcount, no idea what the business in front of them actually needed — the rep found out who they were talking to during the call itself. The leads were fine. The context around them was missing. I rebuilt the front of the funnel around enrichment: every lead captured, qualified, routed and enriched with company context before it reaches a rep. Built in three weeks. £25,000 a month in net new revenue.
They built our entire CRM from scratch in three weeks — leads route and log themselves now, and we run it day-to-day without them.
The problem
The leads were arriving. What was missing was everything a rep needs to know before picking up the phone — and a system to keep it that way.
The sales team was calling blind. Company name, headcount and the prospect's own answers about how their team used AI all came up blank on the contact record at call time. The rep opened the call learning who they were talking to — which is the difference between a discovery call and a qualified one.
Context was being thrown away on capture. Leads who filled the form with a personal email but typed their company name had that company silently discarded. Hundreds of enrichable leads were arriving as anonymous individuals.
No routing by account size. Submissions were sorted and assigned by hand, so the biggest inbound opportunities queued behind the smallest and reached whoever happened to pick them up.
Dirty, duplicated history. Thousands of records with inconsistent phone formats, duplicate companies, blank company fields and mismatched team-size values — so even the data that existed couldn't be trusted or segmented.
Nothing carried between touchpoints. Calls weren't logged against contacts, so whatever a rep learned on the first call was gone by the second.
What I built
Enrichment first — everything else exists to make sure the rep never opens a blank record again.
Enrichment for every shape of lead. Website URL, work email, personal email with a company named, personal email with nothing — each route resolves to a company record and attaches headcount, sector and the prospect's own stated AI usage. A rep now opens a lead already knowing the size of the business and what it said it needed. This is the part that moved revenue.
Company context recovered, not just captured going forward. 492 company records were created from historical leads who had used a personal email but named their employer — data that was previously discarded at capture — plus ~540 more personal-email leads linked to named companies, and company size and AI-usage backfilled across the base. The sales team got an enriched history, not just an enriched future.
Routing by account size. Leads are assigned to the right owner by headcount band the moment they arrive, split across two tracks — sales-assisted (11+ employees) and self-serve — so the accounts worth a conversation reach the person who should be having it.
A purpose-built Attio workspace. Objects for People, Companies, Deals and Products; a named-stage pipeline from lead to verbal agreement; custom attributes mapped to the data the team actually uses.
Capture that never duplicates. An n8n workflow that creates or updates the right record on every submission — idempotent via email and domain matching — normalises phone numbers to international format, captures UTM attribution, and filters out partial responses.
A calling stack that logs itself. Completed calls fire a webhook that pulls the transcript, matches the caller to the right person record and posts it as a note automatically. Historical calls were backfilled so no context was lost.
A full migration and cleanup. ~1,412 people and ~706 companies re-uploaded with corrected mappings; 191 outdated team-size values corrected; 1,083 phone numbers validated; duplicates removed via purpose-built run-once workflows — so the enriched fields could actually be segmented and trusted.
A handover the team could actually use. A live walkthrough plus a technical reference covering architecture, attributes, routing logic, the automation node-by-node, the API reference, import formats and troubleshooting — plus a data-fix report explaining the blank-company root cause and its permanent fix.
How I built it
Around the real workflow, not a template. Pipeline stages and routing rules match how ivee's team actually sells, which is why nobody had to be trained out of their own process.
Self-cleaning, never duplicating. Email and domain matching means the data stays clean on its own instead of degrading every time someone re-runs an import.
Root cause, not patches. When company fields came back blank, the historical data was repaired and the live automation was rebuilt so the problem couldn't recur.
Iterated to correctness. The integration went through fourteen versions as edge cases surfaced, each one verified against live data before handover.
Built without engineering time. No tickets, no sprint capacity, no dependency on ivee's product team — the whole system was built and shipped from outside the roadmap.
What it changed
£25,000 a month in net new revenue. The same inbound, worked by the same team — with the difference that a rep now knows the size of the account and what it asked for before the call starts, and the accounts worth a conversation reach the right person on arrival.
Reps open a lead already briefed. Company, headcount and stated need are on the record at call time rather than discovered during it, so the first call does qualification work instead of introductions.
Hundreds of dead leads came back to life. The personal-email leads that used to arrive as anonymous individuals now carry a company — including retroactively, across the existing base.
Nothing depends on somebody remembering. Capture, routing, de-duplication, enrichment and call logging all run without a human in the loop.
| Deliverable | Status |
|---|---|
| Attio workspace build — objects, pipeline, fields, views | Delivered |
| Typeform → Attio live integration, tested end to end | Delivered |
| Historical lead import, mapped and QA-checked | Delivered |
| Calling stack integrated — Aircall, transcripts auto-logged | Delivered |
| Invoice tracking inside the CRM | Delivered |
| Walkthrough call and reference documentation | Delivered |
The build people notice is the CRM. The one that paid for itself is enrichment — making sure every lead reaches a rep already carrying the company, the headcount and the thing the prospect said they needed. Same leads, same team, £25,000 a month in net new revenue. And the team runs the whole system day-to-day with no ongoing dependency on me: build the machine, then leave it with the people who use it.
If leads arrive and nobody can say what happened to them, start here.
Thirty minutes. No brief required. We'll work out where your customer lifecycle is losing money and whether it's a problem I can fix — and if it isn't a fit, I'll tell you inside the first ten minutes.