HomeDatabasesBy StateIndustriesPricing FAQContact Us View Sample Data
HomeBlog › How to Import a CSV Into Your CRM
Sales Prospecting

How to Import a CSV Contact List Into Your CRM (Salesforce, HubSpot, Zoho, Pipedrive)

August 10, 2026 17 min read Sales Prospecting

Every sales team eventually ends up with a spreadsheet full of contacts that needs to live somewhere other than a spreadsheet. Maybe it's a list you bought, one you scraped from a trade show badge scanner, or a fresh export from a business database. Whatever the source, the file itself is almost always a CSV, and the destination is almost always a CRM. The gap between those two things, a flat file and a working pipeline, is where a lot of good data quietly gets ruined.

This guide walks through the actual import process for the four CRMs most small and mid-size sales teams use: Salesforce, HubSpot, Zoho CRM, and Pipedrive. It covers the real file size and record limits for each platform, which fields are required, how each system handles duplicates, and the specific errors you're most likely to run into. None of this is theoretical: these are the same steps and limits you'll see the moment you open the import screen.

1. Why CSV Import Still Matters

It would be easy to assume that in 2026, with native integrations and Zapier connecting almost everything, nobody manually imports CSV files into a CRM anymore. In practice, CSV import is still one of the most-used features in every major CRM, for a simple reason: not every data source has an API connection, and not every list lives inside a connected tool.

Purchased business databases, conference attendee lists, referral lists a partner emails you, contacts pulled from a public directory, or leads collected at a booth all tend to arrive as a spreadsheet. CSV import is the universal adapter that gets that data from "a file on your desktop" to "a record your sales team can call, email, and track." It's also usually faster than building a one-off integration for data you're only going to load once.

The problem isn't that CSV import is outdated. The problem is that most people treat it as a five-minute task (drag file, click import, done) when the fifteen minutes spent preparing the file beforehand is what actually determines whether the import produces usable records or a mess of duplicates, blank fields, and broken formatting that someone has to clean up later.

2. Preparing Your CSV Before You Import

These rules apply no matter which CRM you're importing into. Get the file right once, and the platform-specific steps in the next sections go smoothly.

Use one header row, and make it match what you expect to map

Your CRM reads the first row as column headers and everything below it as data. If your export tool added a title row above the actual headers, or a blank row anywhere in the file, remove it. Keep header names short and specific. "Company Name" and "Contact Email" map more predictably than generic labels like "Name" or "Info."

Encode the file as UTF-8

If your list includes accented characters, non-English names, or was exported from an older system, save the file as UTF-8 (or "CSV UTF-8" in Excel's save dialog). Without it, names like "José" or "Müller" can turn into garbled symbols during import, a problem that's invisible until after hundreds of records are already in the system.

Don't let spreadsheet software mangle your data

Excel and Google Sheets both auto-format cells based on what they look like. A ZIP code that starts with a zero (like Massachusetts' 02116) gets the leading zero stripped unless the column is formatted as text. Phone numbers can get converted to scientific notation. Long ID numbers get rounded. Before you export the final CSV, format columns like ZIP code, phone number, and any ID field as Plain Text, not Number or General.

Split combined fields

If your source list has a single "Contact Name" column, split it into First Name and Last Name before importing. Every CRM in this guide maps to separate first/last name fields, and combined names either fail to map cleanly or get dumped entirely into one field, which breaks personalization tokens in email and mail-merge templates later.

Standardize state, country, and date formats

Use two-letter state abbreviations (CA, not California or Calif.), a consistent country format, and one date format throughout the entire column. CRMs assume a single format per import and will misread anything that switches between MM/DD/YYYY and DD/MM/YYYY partway through the file.

Deduplicate the file itself first

Don't rely entirely on your CRM's dedupe logic to catch every duplicate. Sort by email address and remove exact repeats before you upload. It's faster to catch in a spreadsheet than to untangle after 10,000 records have already been created.

Person cleaning and formatting a CSV spreadsheet of business contacts before importing into a CRM
Cleaning column formatting, headers, and encoding before you import saves far more time than fixing bad records after the fact.

3. Importing a CSV Into Salesforce

Salesforce offers two import paths, and picking the right one matters. The Data Import Wizard is built into every Salesforce edition and handles up to 50,000 records per import for Leads, Contacts, Accounts, Solutions, Campaign Members, Person Accounts, and custom objects, at no extra cost and with no install required. For anything larger, Data Loader is a free desktop application that supports millions of records but requires more manual field mapping and a bit more comfort with the tool.

For a typical purchased contact list, the Data Import Wizard is almost always the right choice. Here's the process:

  1. Open Setup, then Data Import Wizard (search "Data Import Wizard" in Setup's Quick Find box).
  2. Choose the object. Select Leads, Contacts, or Accounts depending on what you're importing. If you're not sure which fits your workflow, Leads are the standard choice for a purchased or unqualified list that a sales rep needs to work before it becomes a Contact tied to an Account.
  3. Choose "Add new records" unless you're updating existing ones, in which case Salesforce lets you match on Salesforce ID, Account Name + Site, or email.
  4. Upload your CSV. The Wizard only accepts CSV, not XLSX, so export your file in that format first.
  5. Map your fields. The wizard auto-maps columns with names that closely match existing Salesforce fields. Anything it can't confidently match, you assign manually from a dropdown. Unmapped columns are simply not imported, so double check nothing important got skipped.
  6. Review and start the import. Salesforce processes the import as a background job and emails you when it's done, along with an error log for any rows that failed.

The one field you cannot skip: Last Name is required for both Leads and Contacts, and Leads also require a Company value. Rows missing either will fail with a clear error in the results log rather than importing with blank fields.

On duplicates, Salesforce's default matching during import checks Leads by Name only, and Contacts by Name and Email together, so two contacts with the same name but different email addresses will both get created unless you have custom duplicate rules configured under Setup's Duplicate Rules section.

4. Importing a CSV Into HubSpot

HubSpot's import tool is one of the more forgiving ones to work with, largely because its field-mapping screen shows you a live preview of your data next to each proposed match. File limits scale with your plan: free CRM users can import files up to 20MB and 500,000 rows per day (larger files simply take multiple days to fully process), while Starter, Professional, and Enterprise subscriptions raise that to 512MB per file and up to 10 million rows. Every plan caps import files at under 1,000 columns, which is rarely a real constraint outside of heavily customized instances.

  1. Go to CRM, then Import from the main navigation, then click "Start an import."
  2. Choose "File from computer" and select whether you're importing one object (Contacts) or multiple associated objects (Contacts and Companies together, for example) in a single file.
  3. Upload your CSV, XLSX, or XLS file. HubSpot requires the file contain only one sheet, so if you're working from a multi-tab Excel workbook, export just the relevant tab.
  4. Map each column to a HubSpot property. HubSpot suggests matches automatically based on header names, and you can create a new custom property directly from this screen if a column doesn't have a home yet.
  5. Review the import summary showing how many new records will be created versus how many existing records will be updated, then confirm.

HubSpot requires at least one of three fields to create a contact record: First Name, Last Name, or Email. In practice, importing without an email address is rarely useful since email is also HubSpot's default matching key for identifying duplicates. Two rows with the same email will be treated as the same contact and merged rather than duplicated.

One HubSpot-specific advantage: if your file includes both contact and company data, you can associate them during the same import (for example, linking each contact to their employer's company record) instead of running two separate imports and manually connecting them afterward.

Where your source list matters

The quality of the import depends entirely on the quality of the source file. A database with clean, standardized company and industry fields imports far more predictably than a scraped or manually assembled list. For background on how industry codes like SIC and NAICS should be structured for clean CRM mapping, see our guide to SIC and NAICS codes.

5. Importing a CSV Into Zoho CRM

Zoho CRM's import limits are the most plan-dependent of the four platforms in this guide. The Free Edition caps imports at 1,000 records with a 5MB file size limit. Paid tiers scale up from there: the Standard edition allows 10,000 records per batch, Professional allows 20,000 per batch, and Enterprise allows 30,000 per batch. If your list is larger than your plan's batch limit, you'll need to split the file into multiple imports.

  1. Go to the module you're importing into (Leads, Contacts, Accounts, or a custom module) and select Import from the actions menu.
  2. Upload your CSV file and choose whether to import as new records, update existing ones, or both (Zoho calls this last option "Insert and Update").
  3. Set your matching field for dedupe, typically Email for People-type modules. This determines how Zoho decides whether an incoming row is a new record or an update to an existing one.
  4. Map columns to fields on the mapping screen. Zoho shows a sample of your actual data next to each field so you can confirm the mapping looks right before committing.
  5. Assign an owner for the imported records, either a single user or split by a rule, and start the import.

Zoho keeps an import history log showing exactly how many records were created, updated, or skipped due to errors, with the ability to download a report of failed rows and why they failed, useful for catching formatting issues you'll want to fix before a second attempt.

6. Importing a CSV Into Pipedrive

Pipedrive caps CSV and Excel imports at 50,000 rows and a 50MB file size, with no hard limit on the number of columns. Because Pipedrive is built around deals and pipeline stages rather than just contact records, its import wizard asks you to choose what you're importing (People, Organizations, Deals, or Activities) and handles each slightly differently.

  1. Go to Settings, then Import Data and choose "From a spreadsheet."
  2. Select what you're importing. People (individual contacts) and Organizations (companies) are the most common starting points for a new list.
  3. Upload your file. Pipedrive's mapping tool attempts to auto-detect columns based on header names and typical data patterns, flagging anything it can't confidently match.
  4. Review the mapping row by row. Pipedrive shows a preview of the first several rows of actual data so you can verify names, emails, and phone numbers landed in the right fields.
  5. Choose how to handle duplicates: merge with existing records, skip them, or create new ones regardless of matches.
  6. Confirm and run the import. Pipedrive processes smaller files almost instantly; larger ones near the row limit can take several minutes.

If your list includes both People and Organizations in one spreadsheet (a common layout when contacts and their employer are in the same row), you can import Organizations first, then People, then link them by matching the organization name field, or use a properly structured two-file import if your data source can export them separately.

Sales team reviewing newly imported contact records in a CRM dashboard after a CSV import
Once contacts are properly imported and mapped, they're ready for territory assignment, sequencing, and outreach.

Start With a Cleaner List in the First Place

A well-structured source file makes every import in this guide faster and more accurate. The USCompaniesList database includes standardized company, contact, and industry fields across 134M+ records, built to map cleanly into any CRM.

Get the Full Database — $499

7. Import Limits Compared

The numbers below are each platform's own published limits as of 2026. Free and entry-level tiers are shown separately from paid tiers where the gap is significant.

CRMRecord LimitFile Size LimitRequired Field(s)
Salesforce (Data Import Wizard)50,000 / importVaries by row widthLast Name (+ Company for Leads)
HubSpot (Free)500,000 / day20MBFirst Name, Last Name, or Email
HubSpot (Paid tiers)10,000,000512MBFirst Name, Last Name, or Email
Zoho CRM (Free)1,0005MBVaries by module
Zoho CRM (Enterprise)30,000 / batchVaries by planVaries by module
Pipedrive50,00050MBVaries by object

Source: each platform's own current help documentation for CSV/spreadsheet import (Salesforce Help, HubSpot Knowledge Base, Zoho CRM Help, Pipedrive Support). Limits are set by the vendor and subject to change, so always confirm current limits in your account's import screen before a large import.

8. Common Import Errors and How to Fix Them

Most import failures fall into a small set of repeat offenders. Here's what they usually mean and how to fix them.

"Required field is missing"

A row is missing a value your CRM treats as mandatory: Last Name in Salesforce, or all three of First Name/Last Name/Email in HubSpot. Filter your source file for blanks in those columns before re-uploading, or fill in a placeholder value if the record is still useful without it (for example, using the company name as a stand-in Last Name for a generic "info@" contact).

Garbled special characters

Names or addresses showing symbols like "é" instead of "é" almost always mean the file wasn't saved as UTF-8. Re-save the export with UTF-8 encoding and re-import. Most CRMs won't retroactively fix already-imported garbled text, so this one's easier to prevent than to clean up after.

Phone numbers or ZIP codes missing leading digits

This happens when Excel or Sheets treated the column as a number instead of text before export. Reformat the column as Plain Text in your spreadsheet tool, re-enter the affected values if the leading digits were already stripped, and re-export.

Duplicate records created instead of updated

Usually means your matching/dedupe field wasn't set correctly during import, or the values in that field don't match exactly (extra whitespace, different capitalization, or a typo in the email domain). Trim whitespace and standardize casing in your source file before importing, and double-check which field each CRM is using to match. It's a setting you choose, not something automatic in every case.

Import stuck or timing out on a large file

If you're near a platform's row or file size limit, split the file into smaller batches rather than pushing right up against the ceiling. A 45,000-row file into Pipedrive's 50,000-row limit, for instance, leaves no room for error if the count is slightly off after cleaning.

Date fields importing incorrectly

Almost always a US (MM/DD/YYYY) versus international (DD/MM/YYYY) format mismatch. A date like 03/04/2026 is ambiguous without knowing which format the system expects. Standardize every date column to a single, unambiguous format (ISO 8601, YYYY-MM-DD, is the safest choice) before importing.

9. Field Mapping Cheat Sheet

If you're importing a standard business database export, these are the most common source columns and where they typically belong in each CRM:

Source ColumnSalesforceHubSpotZoho CRMPipedrive
Company NameAccount NameCompany nameAccount NameOrganization name
Contact NameFirst/Last NameFirst/Last nameFirst/Last NamePerson name
EmailEmailEmailEmailEmail
PhonePhonePhone numberPhonePhone
Industry / SIC / NAICSIndustryIndustryIndustryCustom field
Employee CountEmployeesNumber of employeesEmployeesCustom field
Street AddressMailing StreetStreet addressStreetCustom field
StateMailing StateState/regionStateCustom field

Pipedrive's flexibility around custom fields for company-level data (industry, employee count, address) is worth planning ahead for, since Deals and People are its core objects and some company-attribute data needs a custom field built before the import rather than mapping to something native.

10. After the Import: Dedup, Enrichment, and Assignment

Getting the records into the CRM is the halfway point, not the finish line.

Run a duplicate check after the fact, not just during import. Even with careful matching settings, records that were slightly different (a nickname versus a formal first name, a typo in a company name) can slip through as separate entries. Most CRMs have a built-in dedupe/merge tool worth running as a second pass a day or two after a large import.

Assign ownership immediately. Unassigned leads sit untouched. Whether you're splitting a new list by territory, industry, or round-robin, set ownership rules before the import if your CRM supports it, or run an assignment step immediately after.

Tag the import batch. Add a custom field or list membership noting the source and import date ("USCompaniesList batch, August 2026") before you lose track of where a batch of records came from. This matters later for measuring which lists actually convert, and for compliance recordkeeping if you're ever asked to show where a contact's information originated.

Check compliance before you start emailing. A properly imported record is not automatically a record you're clear to email or call under every applicable law. For a full breakdown of what's required, see our guide on whether it's legal to buy and use email lists, and our guide on email marketing best practices with a purchased database.

For a broader look at the full process of building a prospect list before it ever reaches the CRM import stage, defining your ideal customer profile, sourcing data, filtering by industry and geography, and cleaning the list, see our complete guide to building a B2B prospect list from scratch.

Key takeaway

The import wizard itself is rarely where things go wrong. Bad results almost always trace back to an unprepared file: missing required fields, inconsistent formatting, or no plan for how duplicates should be handled. Clean the file first, understand your CRM's specific limits and required fields, run a small test batch before the full import, and assign and tag records immediately afterward so the list is actually usable the same day it lands.

Frequently Asked Questions

Common Questions About CSV Import Into a CRM

Clean the file first: one header row, consistent columns, UTF-8 encoding, and no merged cells if it started as an Excel file. Then use your CRM's built-in import wizard rather than a third-party tool for a first pass. Map every column to an existing field before you click import, run a small test batch of 20-50 rows to confirm the mapping and dedupe behavior work as expected, and only then import the full file.
The most common causes are a missing required field (Last Name in Salesforce, or all three of First Name/Last Name/Email missing in HubSpot), inconsistent encoding that turns special characters into garbled text, a header row that doesn't match what the wizard expects, extra blank rows or columns at the end of the file, and file size or row-count limits being exceeded for your specific plan tier.
Yes. The Data Import Wizard is included in every Salesforce edition at no extra cost and handles up to 50,000 records per import for Leads, Contacts, Accounts, and Solutions. Larger imports require Data Loader, which is also free but requires a local install and more manual field mapping.
Plain UTF-8 encoded CSV with a single header row, one value per cell (no line breaks inside a cell), consistent date formatting throughout the file, and no merged or blank header cells. Every CRM in this guide also accepts XLSX, but CSV avoids formatting issues that spreadsheet software sometimes introduces, like auto-converting phone numbers or zip codes into numbers and stripping leading zeros.
Deduplicate the file itself before uploading, using email address as the primary match key since it's the most reliable unique identifier. Then rely on your CRM's built-in dedupe matching during import: Salesforce matches Contacts on Name and Email, HubSpot matches on Email by default, Zoho lets you choose the matching field per module, and Pipedrive flags exact matches on email or the field you designate during the import mapping step.
HubSpot and Pipedrive are generally considered the most straightforward for non-technical users, with drag-and-drop column mapping and clear error messages. Salesforce's Data Import Wizard is simple for standard objects but gets more complex with custom fields or objects. Zoho CRM sits in between, with a guided mapping screen but stricter limits on the free tier.

Ready to Access 134 Million+ US Business Records?

Download all three databases today. One payment, instant access, lifetime usage. Start building your B2B pipeline with the most comprehensive US business database available.