Skip to content

Quick Answer: To import a lead list into a CRM without duplicates, standardize the CSV headers, map each field to the exact CRM column, remove blank and malformed rows, then dedupe on phone number and zip code before uploading. Most CRMs match imports on exact text, so cleaning happens before the upload, not after.

A lead list only pays off once it lives inside the tool your sales team opens every morning. Tools like ExtractData export business records — name, phone, address, website, rating, and email — pulled from Google Places and cross-referenced against Yelp, but that file still has to land in a CRM without turning one dentist's office into three separate leads. This guide walks through the mapping, cleaning, and dedupe steps that make an import usable instead of a mess you spend next week untangling.

What file format does your CRM expect for a lead list import?

A lead list is a spreadsheet or CSV file of business records assembled so a sales or marketing team can contact each one in order. Almost every CRM — HubSpot, Salesforce, Pipedrive, Close, Zoho — accepts a plain CSV for bulk import: one header row naming each field, then one row per lead below it.

Save the file as UTF-8 CSV, not native Excel format. A stray character encoding mismatch is one of the most common reasons an import silently drops accented business names or turns a phone number into scientific notation.

  • Keep one business per row — never combine two locations into one cell
  • Use a single header row with plain field names, no merged cells
  • Split address into street, city, state, and zip columns instead of one block of text
  • Store phone numbers as text, not a number field, so leading zeros and formatting survive

Most CRMs also cap a single import file, often somewhere between 10,000 and 50,000 rows depending on plan tier, so a county-wide list built from several searches may need to be split into batches rather than uploaded as one file. Check the CRM's own import documentation for its current limit before a large push, since the number moves between platforms and plans.

How do you map CSV columns to the right CRM fields?

Field mapping is the step where most imports actually break. A CRM does not guess that your column called biz_name means the same thing as its own Company Name field — you tell it, once, during the import wizard.

The table below shows how a typical exported field lines up across three common CRMs. Names vary slightly by platform, but the underlying data is the same.

Exported fieldHubSpotSalesforcePipedrive
Business nameCompany nameAccount NameOrganization
PhonePhone NumberPhonePhone
WebsiteWebsite URLWebsiteWeb address
EmailEmailEmailEmail
RatingCustom propertyCustom fieldCustom field

Ratings and review counts rarely have a native CRM field, so create a custom property for them once rather than dropping the data on the floor every import.

How do you clean a lead list before you import it?

Cleaning happens before the file reaches the CRM, not after. A CSV import matches text exactly, so trailing spaces, inconsistent capitalization, or a stray comma inside an address field can create a lead that looks fine to a human and imports as broken data to the CRM.

Run through this checklist on every export before you upload it:

  1. Delete fully blank rows and rows missing both a phone number and an email
  2. Trim leading and trailing whitespace from every text field
  3. Standardize phone format to one pattern, such as (555) 555-5555
  4. Confirm every website URL includes https:// so the CRM treats it as a link
  5. Flag rows with no email as phone-only leads instead of deleting them

For a deeper walkthrough of catching stale phone numbers and closed listings before they ever reach this stage, see how to verify business data before you import it.

How do you catch duplicate leads before they hit your CRM?

Duplicates creep in three common ways: the same business appears under two name variants, a chain's individual locations get treated as one account by mistake, or overlapping searches (dentists and orthodontists in the same zip code) pull the same office twice.

A CSV import matches on exact text, so “ABC Plumbing LLC” and “ABC Plumbing” become two separate leads unless you standardize the name first. Matching on phone number is more reliable than matching on business name, because a phone number rarely changes format between sources while a name might.

ExtractData's free tier cross-references every Google Places result against Yelp automatically, which flags a meaningful share of these overlaps before you ever download the file. Create a free account to see how a pre-checked export compares with a raw scrape.

Which spreadsheet formulas find duplicates and bad data fast?

Before any file reaches the CRM, a spreadsheet pass catches most problems in minutes. A COUNTIF formula on the phone number column flags any number that appears more than once, which is a faster duplicate signal than comparing business names by eye.

Google Sheets' built-in Remove Duplicates tool checks entire rows, not single columns, so two leads with different notes fields will not be flagged even if every other field matches — run COUNTIF on phone or email first, then use Remove Duplicates as a second pass on rows that are truly identical. Google documents the exact behavior of this feature in its Sheets support article on removing duplicates.

In Excel, the equivalent is the Remove Duplicates button under the Data tab, which lets you choose which columns must match exactly for a row to count as a duplicate.

How do you keep an imported list from going stale?

Business data drifts. A phone number gets ported to a new provider, a business moves three blocks over, or a location closes and the listing lingers online for months. An import that was accurate in January can be wrong by summer.

Re-verify a list on a fixed schedule rather than only when a rep complains about a bad number — quarterly is a reasonable default for most local-business territories, tighter for fast-turnover categories like restaurants. A refresh does not mean re-importing every row again; pull a new export for the same zip codes and trades, then compare it against the existing CRM records so only the changed or new rows move through the mapping and dedupe steps a second time. Once a refreshed list is clean, the next step is deciding how it enters your outreach cadence; see how to turn a business lead list into a sales pipeline for that handoff.

How do you avoid re-contacting a business you already called?

The fix is a suppression list, not a longer memory. Before merging a new export into the CRM, filter out any phone number or domain that already exists as a contacted record, and tag the outcome (no answer, not interested, closed-won) so a future import respects it automatically instead of dialing the same office twice.

The honest objection here is time: merging and deduping a list by hand does take a real afternoon, especially past a few thousand rows. There is no shortcut that removes review entirely — a pre-cross-referenced export cuts the obvious overlaps, but a human still has to make the judgment call on close matches. Budgeting that review time into the campaign plan beats discovering it mid-import.

The bottom line

Map fields once, clean every export the same way, and dedupe on phone number before it reaches the CRM — in that order. Skipping the cleaning step to save an hour usually costs the sales team a week of confused follow-ups later. Compare ExtractData's plans to see which tier fits how often your team needs a fresh, pre-checked export.

Frequently asked questions

What is the fastest way to check for duplicate leads in a CSV file?

Run a COUNTIF formula on the phone number column in Google Sheets or Excel to flag any number that appears more than once. This catches duplicates faster than scanning business names by eye, since names vary in spelling and abbreviation while phone numbers usually stay consistent across sources.

Should I dedupe a lead list by phone number or business name?

Phone number is the more reliable match key. Business names vary between sources because of abbreviations, punctuation, and suffixes like LLC, so two records for the same business can look different even though the phone number is identical.

How often should I re-import an updated lead list into my CRM?

Quarterly is a reasonable default for most local-business categories, since phone numbers, addresses, and open-or-closed status drift over months. Fast-turnover categories like restaurants benefit from checking sooner, especially before a new outreach push.

Can I merge two CSV exports without creating duplicate CRM records?

Yes, if you standardize both files the same way first, then match rows on phone number or website domain rather than business name before uploading. Sort and compare in a spreadsheet before the merge, not after it is already inside the CRM.

Does removing duplicates in Excel or Google Sheets delete the whole row?

Yes, both tools delete the entire duplicate row, keeping only the first occurrence. Choose carefully which columns must match before running the tool, since matching on every column will miss duplicates that differ only in a notes or timestamp field.

What CRM field should a business phone number map to during import?

Map it to the CRM's primary phone field, such as HubSpot's Phone Number or Salesforce's Phone, and store it as text rather than a number field so formatting and leading digits are not stripped during the import.

Reviewed by the ExtractData Team — lead-generation and business-data guidance, updated August 2026.

Start extracting business data today

5 free searches daily. No credit card required.

Start extracting data free →

Related Articles

Aug 25, 2026

How to Turn a Business Lead List Into a Sales Pipeline

A raw export of businesses in a zip code is not a pipeline until you rank it. Here is how to segment by rating and review count, spot dead listings before you call, and route the first touch so outreach hits the right business first.

Read →