How do you plan CRM properties before importing your contacts?
Start by listing every column in your spreadsheet, deciding which ones deserve a CRM property, and choosing the right property type for each. Then pick a unique identifier, standardize dropdown values, and add source and last-checked fields. Finally, run a small test import before moving everything. Planning first takes an afternoon and saves months of cleanup.
This tutorial is for one specific situation: a small B2B team that has been tracking contacts in Google Sheets or Excel and is now moving into HubSpot. The steps apply to most CRMs, but I use HubSpot as the example because it is where many small teams land.
I set up CRMs as part of building go-to-market systems, and the first import is where most long-term data problems begin. Free-text fields that should have been dropdowns, duplicate contacts, and columns nobody understands all trace back to an import done in a hurry.
Why does the first import matter so much?
The first import sets the shape of your data for years. Every workflow, report, and lead score you build later will read the properties you create now. If a field is the wrong type or has messy values, every system built on top inherits the mess. Fixing it later means rewriting automations, not just cleaning cells.
Spreadsheets forgive sloppiness. A column called "Status" can hold "hot," "Hot lead," and "call back Tuesday" without complaint. A CRM can technically do the same, but reports and filters will treat each spelling as a different value. Your pipeline report will lie the moment those values hit it.
The goal of planning is to make the CRM stricter than the spreadsheet, in the places that matter. Strictness is what makes filtering, routing, and reporting reliable later.
Step 1: How do you inventory your spreadsheet columns?
Copy every column header into a new sheet and add four columns beside it: what the field means, who uses it, how often it is filled in, and whether a report or automation will need it. This inventory shows you which columns are real data and which are leftover notes nobody reads anymore.
Be ruthless here. Columns that are mostly empty, or that one person used for a project two years ago, probably should not become CRM properties. Every property you create adds a little clutter to every record view. Fewer, well-defined fields beat many vague ones.
For columns you keep, write a one-sentence definition. "Lead status: where this contact sits in the team's qualification process, set by the owner." That sentence becomes the property description in HubSpot, which helps every future teammate understand what they are looking at.
Step 2: Which property type should each field use?
Use dropdowns for anything you will filter or report on, dates for anything time-based, numbers for anything you will add up, and single-line text only for genuinely free-form values like names. The type decides what you can do with the data later, so choose it for the report you want, not the spreadsheet you have.
Industry, lead source, lifecycle status, and region should almost always be dropdowns. Free text in these fields breaks segmentation. Company size often works better as a dropdown of ranges than as an exact number, because people rarely know the exact headcount and ranges are what you will segment on anyway.
Dates deserve special care. A column like "Last contacted" in a spreadsheet is often typed inconsistently. Convert it to a real date format before import, or the CRM will reject it or store it as text you cannot sort.
Step 3: What should your unique identifier be?
For contacts, use email address. HubSpot's knowledge base says it automatically deduplicates contacts using email addresses and companies using domain names. It also warns that if your import has no Email property or other unique identifier, each row becomes a new contact record. Missing emails are the fastest route to duplicates.
Before importing, sort your sheet by email and remove duplicates there. Decide what to do with rows that have no email. Often the right call is to import them separately, or not at all, rather than let them create orphan records you cannot match later.
HubSpot also supports the Record ID property for matching records you are updating, and its knowledge base says you can create up to ten custom properties per object that require unique values. If you have an ID from another system, like a billing or product database, a unique custom property can keep the two in sync. If you ever need to clean up after the fact, my guide on merging duplicate CRM contacts without breaking automations covers the safe way.
Step 4: How do you standardize dropdown values?
For every column that will become a dropdown, list all the distinct values currently in the spreadsheet, then map each one to a clean final option. "SaaS," "Software," and "saas co" all become "Software." Do this mapping in the spreadsheet with a find-and-replace or a lookup column before you import anything.
Keep dropdown options short and mutually exclusive. If two options overlap, people will pick differently and your reports will split. Five to eight options is usually enough for fields like industry or lead source. Add an "Other" option, then check it monthly to see whether a new category deserves its own value.
Write the final option list into your inventory sheet. That list becomes the source of truth when you create the property in HubSpot, and it gives you something to point at when someone asks to add a new value later.
Step 5: Which fields should you add that your spreadsheet never had?
Add a lead source field, an original import batch label, and a last-verified date. Lead source tells you where the contact came from. The batch label lets you find and fix every record from one import if something goes wrong. The last-verified date tells you how fresh the contact data is.
The batch label is the one I insist on. Something simple like "Import Oct 2026 legacy sheet" lets you build a list of exactly those records in seconds. If the import went wrong, you can update or remove them as a group instead of hunting one by one.
The last-verified date matters for outbound. Contacts age quickly, and a spreadsheet rarely records when anyone last checked an email or job title. I explain why that field earns its place in how to tell if your contact data has gone stale. Leave it blank for records you have not verified rather than guessing.
Step 6: How do you run a safe test import?
Import twenty to fifty rows first, chosen to include the messiest cases: missing fields, odd values, and duplicates. Check how each record looks in HubSpot, confirm the dropdowns mapped correctly, and look for any rows that created duplicates. Fix the mapping, delete the test batch, and only then import the full file.
During the test, open a few records and read them like a sales rep would. Is the owner set? Does the lifecycle status make sense? Is the company associated correctly? Problems that look small on twenty records become hours of work on two thousand.
Once the test passes, import the rest in one batch with the batch label applied. Then build one saved view or list that shows the imported records, so you can review them over the next week as the team starts working in the CRM.
What should you do after the import?
Lock down the structure you just built. Limit who can create new properties, document each field's meaning, and set required fields where they matter. Then build your first simple automation or score on top of the clean data, and watch for gaps in the first month that point to missing properties.
Required fields at the right moments help a lot. For example, requiring lead source when a contact is created stops new gaps from forming. Keep the requirements few, or reps will fill fields with junk just to save the record.
With clean properties in place, a simple lead score becomes possible. My walkthrough on building a three-property lead score in HubSpot is a good first project. If you want help planning your CRM structure before your first import, or cleaning one that went wrong, reach out. Let's chat.
Get found, cited and the back office automated
Let's make your site the source AI engines quote and wire up the systems behind it.
Read more blogs
Let's get your website found and cited by AI
Tell me what you're working on, whether AI search is skipping your product, your back office is buried in manual work, or you need a build that does both.