A registration sign at a convention centre
All articles

Registration & check-in

Importing a guest list that actually holds up

A messy guest list import causes problems hours later at the door. Here is how to clean a CSV once so it holds up when it matters.

The CheckInHub team 7 min read

Photo by Daniel Romero on Unsplash

Almost every check-in problem at the door can be traced back to the guest list, and almost every guest list problem can be traced back to the import. The list comes from three different sources, gets merged in a hurry, and the mess only shows up when a guest is standing in front of you and their name is spelled two different ways across two columns. The fix is not heroics at the desk. It is doing the boring work of cleaning the list once, properly, before it ever reaches the door.

A guest list that holds up is one where every row is a real, complete, unique person, with the fields the system needs and nothing it does not. That sounds obvious. The reason it is worth writing down is that the typical exported list is none of those things.

Where guest lists go wrong

The data is rarely wrong in dramatic ways. It is wrong in small, quiet ways that each cost a few seconds at the door and add up to a slow desk. The usual suspects are familiar to anyone who has imported a list under time pressure.

  • Duplicate rows, because the same person registered twice or appeared on two source lists.
  • Names split awkwardly, with first and last names in one column for some rows and two for others.
  • Email addresses with trailing spaces, capital letters or obvious typos.
  • Empty rows, header rows repeated halfway down, and a stray total at the bottom.
  • Inconsistent formatting, where one export uses commas and another uses semicolons.

None of these stop an import outright. They just quietly degrade it, so the version you load is slightly wrong in ways you will not notice until the desk is busy.

Clean the list before you import it

The single most valuable habit is to treat the CSV as a draft until you have checked it, not as a finished file because a system produced it. Open it, look at it, and run through a short set of checks every time.

CheckWhat you are looking forWhy it matters at the door
HeadersOne clean header row, sensible column namesThe import maps columns correctly the first time
DuplicatesRepeated names or emailsOne person, one record, no confusion at check-in
Required fieldsName and email present on every rowNobody arrives as a blank or partial record
WhitespaceLeading and trailing spaces in key fieldsSearches match instead of silently failing
EncodingAccents and special characters intactNames display correctly on badges and screens
Stray rowsTotals, notes, blank lines, repeated headersThe count is the count, with nothing phantom in it

It takes ten minutes and it is the highest-value ten minutes in your whole setup. A list that passes these checks imports cleanly, searches reliably and produces correct badges, which is most of what a calm door needs.

A clean import is a quiet door three hours later; a messy one is a queue you will not understand the cause of.

Decide what you actually need to keep

There is a temptation to import everything, every column the source system happened to export, on the basis that more data is better. It is not. Every field you bring in is a field you are now responsible for under GDPR, and most of it does nothing at the door.

Keep what check-in needs: a name, a way to find the person, and the handful of fields that drive your day, such as ticket type, table number or session. Leave behind the marketing flags, the internal notes and the fields from a system that has nothing to do with this event. A leaner list is faster to work with and easier to defend if anyone ever asks what you hold and why. This is the same discipline behind what attendee data you should, and shouldn't, keep, applied at the point of import rather than after the fact.

Match on something stable

When you import, the system needs a way to recognise the same person across updates, so a second import does not create a duplicate or overwrite the wrong record. Match on something stable and unique. An email address is usually the best available key, as long as you have cleaned it. A name alone is not enough, because two guests will share one, and one guest will appear under two spellings.

Getting the match key right is what lets you import a list, send out passes, then import an updated list a week later without unpicking a mess. It is also what makes counting people in trustworthy, because each scan resolves to exactly one record. If the numbers have to mean anything, the underlying records have to be unique, which is the foundation of counting people in, and trusting the number.

Test the import before you trust it

A clean file is necessary but not sufficient. Before you rely on the list, import it and check a sample by hand. Pick a few names you know and search for them the way the desk will. Confirm the badge prints correctly. Confirm a guest with an accent in their name displays properly. Confirm a duplicate you expected to be merged was actually merged.

This test is the difference between finding a problem the night before, when you have time to fix it, and finding it at the door, when you do not. It takes a few minutes and it converts a list you hope is right into a list you know is right.

The payoff is a door that does not surprise you

The work of a good import is invisible by design. Nobody at the event will ever know you spent ten minutes cleaning a CSV. What they will notice is that the desk found their name immediately, the badge was correct, and the line moved. That is the whole return: a door that behaves exactly as expected, with no surprises that trace back to a row you never checked.

CheckInHub imports a CSV, maps your columns, flags duplicates and lets you test against real records before the day, so the list you walk in with is the list you can trust. Spend the ten minutes on the file. It is the cheapest insurance the front door has.

Keep reading

More from the CheckInHub team