Cleaning an event lead list before it touches your CRM

The run order that works: consolidate, normalise, deduplicate, verify, tag, import. What to fix, what to reject, and why importing first is the expensive path.

CRMThe Karo team12 min read

A lead list from an event is the messiest data your CRM will receive all year. It arrives from three or four sources at once, it was captured standing up by people who were also trying to have conversations, and it is under time pressure because the follow-up window is already closing.

The temptation is to import it and tidy up later. Later never comes, and the tidying gets harder every day the records accumulate activity. This is the run order that avoids that, and the reasoning behind each step.

Why the order matters

Each step below makes the next one work. Doing them out of sequence means redoing them. Deduplicating before normalising, for example, misses every duplicate that differs only by letter case, and you will not notice until the second import.

01ConsolidateEvery source into one sheet, with a column recording which source each row came from.step 102NormaliseLowercase emails, trim whitespace, standardise phone formats and company suffixes.step 203DeduplicateMatch on email. Keep the richest row rather than the first one.step 304VerifyCheck the fields the extraction flagged as uncertain, not every field.step 405TagEvent name on every row, mapped to the campaign or source field your CRM uses.step 506Import onceOne file, one import, with a test batch of ten rows first.step 6
Six steps in this order. Reversing steps two and three is the most common mistake and it silently leaves duplicates behind.

Step 1: consolidate, and record where each row came from

Pull everything into one sheet: each staff member’s captures, the organiser export if you rented lead retrieval, any tablet form submissions, and the prize draw bowl if you ran one.

Add a source column. This takes thirty seconds and pays for itself repeatedly. It tells you which capture method actually produced usable leads, which is the only way to make a better decision about tooling next year rather than repeating the same setup out of habit. It also tells you which rows to trust when two sources disagree about somebody’s job title.

Step 2: normalise before you match anything

Normalising means making the same value look the same everywhere, so exact matching works. Four columns need it.

PROBLEMFIXEmailMixed case, trailing spacesLowercase and trimPhone+91, 0091, spaces, dashesStrip to digits, add country codeCompanyLtd, Ltd., Limited, Pvt LtdPick one form, apply everywhereNameALL CAPS from badge scansTitle case, keep original in a spare column
Four columns, four rules. The email row is the one that actually affects deduplication; the others affect whether the data is usable afterwards.

Do not overwrite the original values. Put the normalised version in a new column and keep the raw one, because when a phone number turns out to be wrong you will want to see what was actually printed on the card.

Company suffixes matter more than people expect. If half your rows say Northwind Logistics and half say Northwind Logistics Pvt Ltd, your CRM will create two company records, and every report that groups by account will be wrong in a way nobody notices for months.

Step 3: deduplicate on email

This is covered in depth in why your event lead import creates duplicate contacts, so the short version here: match on email, never on name, and treat generic addresses such as info@ and sales@ as company addresses rather than people.

When you find a duplicate pair, keep the row with the most context rather than the earliest one. Then copy anything unique from the other row into it before discarding. The row that arrived second frequently has the voice note and the event tag while the first has only a name and a company.

Step 4: verify selectively, not exhaustively

The instinct is to check every field on every row. On two hundred leads that is hours, so it does not happen, and the list gets imported unverified instead. Verify selectively.

Check three things: the fields your extraction flagged as low confidence, every email address that looks structurally odd, and any row where the company name and the email domain disagree. That last check catches a surprising number of misreads, because a card for Northwind Logistics with an email at a completely unrelated domain is usually an extraction error rather than a person using a personal address.

This is the entire argument for per-field confidence scoring. Without it you are choosing between checking everything and checking nothing, and in practice everyone chooses nothing.

Step 5: what to reject rather than fix

Not every row deserves rescuing, and deciding that deliberately is part of cleaning rather than a failure of it.

Reject rows with no email and no phone. There is nothing to contact them with. Keep the card image on file in case somebody recognises the name later, but do not put an uncontactable record into the CRM where it will inflate your counts.

Reject obvious non-leads. Students, job seekers, competitors, and the vendors who worked the aisle handing out their own cards. A polite reply is right; a place in the pipeline is not.

Quarantine anything you cannot read. Not reject, quarantine. Put unreadable captures in a separate tab with their card images attached. Somebody who worked the stand can often identify them in five minutes, and that five minutes is worth more than an hour of guessing at characters.

Record the rejections with a one-line reason. A lead marked rejected with a reason is useful six months later. A lead that silently never got imported is indistinguishable from one your process dropped, and you will never know which it was.

Step 6: tag, test, then import

Every row needs the event name in a column that maps to whatever your CRM uses for campaign or source. This is the step that decides whether you can answer the question the finance team will eventually ask, which is covered in the 48-hour playbook under measurement.

Then import ten rows first. Check that they landed where you expected, that the tag came through, that no field got mapped to the wrong place, and that the CRM did not create duplicates against records already present. Fix the mapping, then import the rest.

Ten rows takes two minutes and catches the mapping error that would otherwise affect two hundred. The field-by-field mappings for the common CRMs are on the HubSpot, Zoho and Salesforce guides.

What good looks like afterwards

A cleaned event list has four properties, and you can check all of them in about a minute.

BEFORE CLEANINGRows247 from 4 sourcesUnique peopleUnknownContactableUnknownEvent attributableNoCannot be measured or trustedAFTER CLEANINGRows198, deduplicatedUnique people198, matched on emailContactable191, seven quarantinedEvent attributableEvery rowCan be reported on and followed up
Illustrative numbers. The point is that after cleaning, every count is a number you can defend, which is what makes the show measurable at all.

The drop from 247 to 198 is not a loss. It is the difference between the number people report and the number that was ever real, and finding it before the import is considerably better than discovering it during a pipeline review.

Doing this when the list is not yours

Marketing operations teams frequently clean a list they did not capture, handed over by a sales team that has already left for the next show. That changes the job, because you cannot resolve ambiguity from memory.

Three rules make it survivable. Never guess at a field you cannot verify: leave it blank and flag the row, because a blank is honest and a guess is a bounce. Never discard a row without recording why, since the person who captured it may well ask. And send the quarantine tab back to whoever worked the stand within twenty-four hours, while they can still identify the unreadable ones.

It also helps to agree the handover format before the show rather than after. A shared sheet with agreed columns costs nothing to set up and removes an entire category of argument about whether a field was captured or lost.

Automating the parts worth automating

Most of this run order is mechanical, which raises the obvious question of what to automate. The honest answer is: the normalising, and almost nothing else.

Lowercasing emails, trimming whitespace, standardising phone formats and unifying company suffixes are deterministic rules. Write them once as spreadsheet formulas and reuse them every show. That is fifteen of your thirty minutes gone, permanently.

Deduplication is semi-automatable: matching on email is a formula, but deciding which of two rows to keep needs a human, because the richer row is not identifiable by any rule you can write. Verification cannot be automated at all, which is the entire point of a confidence score narrowing what needs looking at.

Be wary of tools that promise to clean event data end to end. The steps that need judgement are exactly the steps where a wrong automated decision is invisible, and an invisible wrong decision in a lead list is considerably more expensive than fifteen minutes of your time.

The mistake that costs the most time

If there is one habit worth changing, it is treating cleaning as a task that happens after the show rather than as part of the show.

A list cleaned on the Monday after a Friday close is far harder to clean than one cleaned on the Friday evening, because the ambiguities are no longer resolvable. Which of these two rows is the real email? Who is the person with no company name? Was this row the person who asked about pricing or the one who wanted a job? On the night, somebody knows. By Monday, nobody does, and the honest options narrow to guessing or discarding.

The version that works is twenty minutes each evening rather than ninety minutes the following week. It is less total time, it produces a better list, and it means the follow-up described in the 48-hour playbook can actually start on time rather than waiting on data work.

The counter-argument is always that the team is exhausted after a show day. That is true, and twenty minutes of tidying while the details are still fresh is genuinely easier than ninety minutes of forensic reconstruction when they are not.

The short version

Consolidate every source into one sheet with a source column. Normalise emails, phones, company suffixes and names before matching anything. Deduplicate on email, keeping the richest row. Verify only the flagged fields and the structurally odd ones. Reject uncontactable rows and obvious non-leads with a recorded reason, and quarantine what you cannot read. Tag every row with the event, test ten, then import.

The whole thing takes about thirty minutes for a typical show, and it is the difference between a lead list your sales team trusts and one they quietly stop opening. If you want the export to arrive already deduplicated, tagged and carrying the voice transcript, the CSV export does that, and 20 free scans covers a first event.

Frequently asked questions

How long should cleaning an event lead list take?+

About thirty minutes for a typical two hundred lead show, provided you do it in the right order. It takes considerably longer if you deduplicate before normalising, because you end up doing the deduplication twice.

Should I clean the data in a spreadsheet or in the CRM?+

In a spreadsheet, every time. A CSV is reversible and a bad import is not. Once records exist in the CRM and start accumulating emails and tasks, fixing them becomes a merge project rather than an edit.

What should I do with leads I cannot read at all?+

Quarantine them in a separate tab with the card images rather than rejecting them. Somebody who worked the stand can usually identify several in a few minutes, which beats guessing at characters or discarding a real lead.

Is it worth keeping the original values when normalising?+

Yes. Put normalised values in new columns and keep the raw ones, because when a phone number bounces you will want to see exactly what was printed on the card rather than what your formatting rule produced.

How many leads should I expect to lose in cleaning?+

Commonly twenty to thirty percent, between duplicates, uncontactable rows and obvious non-leads. That is not a loss, because those were never leads. It is the gap between the number that gets reported and the number that was ever real.

Do I need to normalise company names?+

If you report by account, yes. Mixed suffixes such as Ltd, Limited and Pvt Ltd create separate company records for the same organisation, and every account-level report is then quietly wrong in a way nobody catches for months.

What is the single most important cleaning step?+

Tagging every row with the event before import. Everything else affects data quality, but the tag is what determines whether you can ever answer the question of what the show actually produced.

Keep reading