Trade show lead list cleanup: import the CSV in 8 steps
Expect 2 to 3 hours to clean and import each trade show lead list. An event-heavy team does that 30 to 50 times a year.
What does trade show lead list cleanup involve?
Most of your time goes to lookups, spread across 8 steps. Expect 2 to 3 hours to clean and import each trade show lead list. An event-heavy team does that 30 to 50 times a year. That’s 60 to 150 hours a year of your skilled operations time on one procedure. It’s why so many RevOps teams build their own tools for it, as build vs. operate describes.
The estimate comes from 2 revenue operations teams working a real list. One runs the process in a spreadsheet; the other keeps a 21-page standard operating procedure for it. Both processes come down to the same 8 steps, and both teams named the same step as the one that eats the afternoon.
“Just doing the list imports are so challenging. Takes a long time.”
A marketing operations manager at a software company above $200M ARR, running 200+ events a year, on the list-import workload
What does the raw file look like?
Different every time. Each organizer sends you whatever its registration system holds, under its own column names.
| List | Typical fields | Typical problems |
|---|---|---|
| Pre-show registration list | Name and company, sometimes title | Often no email; some organizers remove names and send only title and company |
| Post-show scan export | Name, company, title, email, and phone, as the organizer approved them, plus any qualifiers your reps entered | Only the people you scanned; notes fields mostly empty |
| Sponsor or partner list | Display name and email, sometimes a postal address | Names unsplit, personal email addresses, no company field |
How do you clean and import the list?
- Standardize the file. Map the organizer’s columns to your standard fields. Split display names. Trim whitespace, fix casing, and make company names consistent. Keep one row per person, and add a source column to every row: which show, which list, which date.
- Resolve every row to a company domain. This is the bottleneck. A registration under a personal email address hides the employer, and both teams said it happens constantly. Your team finds the domain from the company name, the postal address, prior records, or a manual search, one row at a time. Most of the 2 to 3 hours goes here.
- Deduplicate against your CRM. Match on email first, then on name plus company to catch the contact who already exists under a different address. Check that each address is deliverable before you create anything; a malformed address that reaches your CRM throws off account matching.
- Match contacts to accounts and classify them. Put every row in 1 of 6 buckets: new (no CRM record), existing (in the CRM, never engaged), working (live outreach, no deal), selling (open opportunity), re-engage (a lapsed relationship with no owner), or exclude (out of ICP, competitors, vendors, staff, suppressed). On one team’s typical list, roughly 5 to 10 percent fell into exclude and 40 to 45 percent was net-new. The rest already existed in the CRM in some state. Hold anything you can’t classify in a review pile, and keep it out of your sequences until your team checks it.
- Enrich in a waterfall. Check what you already know first: the CRM, prior imports, prior scans. Then resolve and verify cheaply. Only then send what’s left to a paid provider. One team measured roughly a 40 percent email match from its first-pass provider on a pre-show list. That’s why both teams run at least 2 providers in sequence. Track coverage and quality separately; a found email is worth less than a verified one.
- Split active from cold outreach. Send contacts on accounts with an open opportunity to the deal owner, in an active sequence. Send net-new contacts to your SDRs, in a cold sequence, and customers to the account team. Each group gets its own file, owner, and sequence settings; the team with the 21-page SOP keeps them as separate import files. If your SDRs qualify by phone before enrolling anyone, keep that step manual.
- Attribute to the campaign. Put source, source detail, campaign, and direction on every row at import. Make the sourced vs. influenced call there too: net-new rows are event-sourced, and rows on open opportunities are event-influenced. Both teams kept their attribution rules in a separate spreadsheet and checked it every time. Set the rules once and apply them at import. Rebuild attribution 3 weeks later, and you lose track of event pipeline.
- Import, notify, and start the clock. Upload the files, notify sales and customer success, and record the timestamp. From here, watch attempt rate: the share of imported leads that get a first touch, and how fast.
Step 5 assumes you have an enrichment provider at all. Plenty of otherwise mature teams do not.
“We actually don’t have a good way to enrich contacts at all right now.”
A director of performance marketing at a B2B software company around $25M ARR, on the state of enrichment when she inherited the events seat
One team works to these service-level targets:
| Stage | Pre-show list | Post-show list |
|---|---|---|
| List arrives | 10 to 12 days before the show | 1 day after the show |
| Import complete | 7 days before the show | 2 days after the show |
| Outreach begins | 1 day after import | 1 day after import |
Why does your RevOps team end up building this?
Because the work is repetitive and rule-based, and it doesn’t have a clear owner. Your events manager runs the show and rarely sees the cleanup. At one company, the events manager and the RevOps lead name entirely different problems with the same events. Only the RevOps lead brings up the list cleanup.
When in-person GTM work crosses teams and lives in neither team’s system, it falls to whoever it annoys most. Sooner or later, that person opens a low-code tool on a weekend.
One revenue operations lead sketched an internal tool for the standardization and matching steps, then watched it lose the priority fight to revenue work. Months later, they shipped a version of it that cleans event files and feeds an enrichment waterfall at production quality.
Each of these builds pinpoints a gap, and each stops in the same place. It serves the person who built it, who maintains it on stolen evenings. It never reaches your reps, who have to work the list once it lands.
That boundary is what build vs. operate is about. A personal script can clean the file. Your team still has to hand the clean list to 3 teams with owners attached. Then you need to see whether each owner works it, and remember all of it at the next show.
Judge any tool you evaluate on that part. Import the list into FieldXM, and FieldXM’s lists and enrichment matches each contact to an account and its owner. Then see who worked each lead in FieldXM’s accountability reports, and start next year’s show from this year’s scans.
If you keep doing this by hand, at least keep the source column and the attribution rules. The record of 50 imports is worth more than the 150 hours it cost.
Go deeper
- Build vs. operate: why the tools your operators build are right, and why they stop at the team boundary.
- Sourced vs. influenced attribution: the 2 buckets you sort each row into at import.
- Attempt rate: the follow-up metric you watch from the moment the list lands.
Part of
- Your best people already built a worse version of thisRead the longer piece this post builds on.
More from the field guide
- How to get a conference attendee list (or build one)Find out why organizers rarely share the full attendee list, what you can get as a sponsor, and how to build your pre-show view from lists you already own.