How to import leads into your CRM.
A practical walkthrough for getting a lead list into HubSpot, Salesforce or Pipedrive without duplicates, failed rows or missing fields: clean the file, meet each CRM's required fields, map the columns, and tag where every lead came from.
1. Before you import
Most failed CRM imports fail for the same few reasons: a required field is empty, the same person appears twice, a column is mapped to the wrong property, or accented names turn into garbled characters. Every one of these is cheaper to fix in a spreadsheet than inside the CRM, where a bad import means bulk-editing or deleting hundreds of records.
So treat the import as three separate jobs:
- Prepare the file: one row per record, clean values, no duplicates.
- Match the file to the CRM: every required field present, every column mapped to the right property.
- Label the import: a lead source value so you can report on it and undo it if something goes wrong.
This guide uses QuickExtract CSV exports as the example, but the same steps apply to any lead list. If you haven't exported yet, the Sales Navigator to CSV and Google Maps to CSV guides show how.
Decide the record type first. People (a named lead with a job title) belong in Contacts, Leads or Persons. Businesses with no named person, such as Google Maps results, are usually better imported as Companies or Organizations. Mixing the two in one import makes mapping harder.
2. Clean and dedupe the file
Open the CSV in Excel or Google Sheets. QuickExtract CSVs are UTF-8 with a byte order mark, so Excel shows accented names correctly when you double-click the file. Then work through this checklist.
Filter to rows you can actually use
In the QuickExtract dashboard, the With email tab shows only rows that have an email. Selecting from that tab before you export saves a cleanup step. If you need rows without an email too (for example, companies you plan to research later), export them as a separate file so they don't fail an email-based import.
Normalize the values
- Emails: lowercase and trim them. In a spare column,
=LOWER(TRIM(D2))does both; paste the results back as values. - Names: trim stray spaces with
=TRIM(A2). Leave capitalization alone unless it is clearly wrong;PROPER()breaks names like “McDonald” or “van der Berg”. - Websites and domains: keep one format. The Domain column already holds the bare domain (for example
acme.com), which is what most CRMs use to match companies. - Empty or placeholder cells: clear cells that contain things like “N/A” or “-” unless you mean them, so they don't overwrite real data later.
Remove duplicates
Dedupe on the field the CRM will use to match records. For people that is almost always the email address; for companies it is the domain.
- Excel: select the data, then Data → Remove Duplicates, and tick only the Email column (or Domain for company files).
- Google Sheets: Data → Data cleanup → Remove duplicates, with the same column choice.
Also check the file against the CRM. Export the emails of existing records, then use =COUNTIF(Existing!A:A, D2)>0 to flag rows that are already there. You can drop them, or keep them and let the CRM update the existing records, depending on whether you want the new data to overwrite the old.
Inside QuickExtract, Sales Navigator leads are already deduplicated by LinkedIn ID: scraping the same search again updates existing rows instead of adding copies. Duplicates in a CSV usually come from combining several exports by hand.
3. Required fields per CRM
Each CRM has a small set of fields an import can't do without. Rows missing them are skipped or rejected, so check these before anything else.
| CRM and record | What it needs | How it matches duplicates |
|---|---|---|
| HubSpot contact | An email address. HubSpot uses email as the unique identifier for contacts, so treat it as required. | |
| HubSpot company | A company name, and ideally a company domain name | Company domain name |
| Salesforce lead | Last Name and Company. Both are required on the standard Lead object. | Optional matching on email, name or Salesforce ID in the Data Import Wizard |
| Pipedrive person | A name | Pipedrive offers to merge duplicates during import |
| Pipedrive organization | An organization name | Organization name |
Your own CRM may have extra required fields added by an admin, such as a region or an owner. Download a sample import template from the CRM, or try a five-row test file first, to find out before you upload hundreds of rows.
4. Map QuickExtract columns
A QuickExtract CSV has 37 columns, shared by every source so you can combine files. Not every column is filled for every source. The ones you will map most often are below.
| QuickExtract column | HubSpot | Salesforce (Lead) | Pipedrive |
|---|---|---|---|
| First name | First name | First Name | Person – First name |
| Person – Email | |||
| Business | Company name | Company | Organization – Name |
| Category | Job title (Sales Navigator) or Industry | Title (Sales Navigator) or Industry | Person – Job title (Sales Navigator) or a label |
| Website | Website URL | Website | Organization – Website |
| Domain | Company domain name | Website, or skip | Organization – Website, or skip |
| Phone (Google Maps) | Phone number | Phone | Person or Organization phone |
| Address (Google Maps) | Street address | Street | Organization – Address |
| Place URL | Custom property, such as Source URL | Custom field | Custom field |
| Source group | Custom property | Custom field or Description | Custom field or label |
Sales Navigator rows are laid out differently. The lead's company is in Business, the job title is in Category, and the Sales Navigator profile link is in Place URL. There is no Last name column, so add one yourself if your CRM requires it (Salesforce does).
Adding a Last Name column
You have two practical options:
- A placeholder. Add a Last Name column and fill it with a value your team agrees on, such as “Unknown”. Reps replace it when they first work the lead. This is quick and keeps the import moving.
- Real surnames. QuickExtract shows each lead's full name in the dashboard. If you have full names in a column, split off the surname with
=TRIM(MID(A2,FIND(" ",A2&" ")+1,100)), which returns everything after the first space (“Priya Shah” → “Shah”).
Map unused columns to “Don't import” rather than inventing properties for them. You can always import a second file later to add fields.
5. Import into HubSpot
- Go to Contacts (or Companies for business-only files) and click Import.
- Start an import from a file on your computer, choose one file and one object, and pick Contacts or Companies.
- Upload the CSV. HubSpot suggests a property for each column; check every suggestion against the mapping table above.
- Choose whether to create new records only, or create and update existing ones. Updating existing contacts is matched by email.
- Name the import clearly, for example “QE · Sales Navigator · VP Sales SaaS US · Oct”. You can find and review it later under the Imports list.
Contacts without an email are a common reason for skipped rows. Step-by-step screens and tips are in Sales Navigator to HubSpot and Google Maps to HubSpot.
6. Import into Salesforce
- Add the Last Name column described above, and make sure every row has a Company (the Business column).
- Open Setup and search for Data Import Wizard, then launch it.
- Choose Leads, then “Add new records” (or “Add new and update existing records” if you want matching).
- If you match, choose Email as the matching field so existing leads are updated instead of duplicated.
- Upload the CSV, then on the mapping screen map each column. Unmapped columns are ignored.
- Set Lead Source in the wizard or include it as a column (see section 8), then start the import and check the result email for errors.
More detail is in Sales Navigator to Salesforce.
7. Import into Pipedrive
Pipedrive imports people and organizations from the same file and links them for you, which suits QuickExtract exports well: map First name and Email to the Person, and Business, Website and Address to the Organization.
- Open the import option (Import data → From a spreadsheet).
- Upload the CSV.
- Map each column to a Person field or an Organization field. Make sure every row has a person name or an organization name, depending on what you're importing.
- If you also want leads or deals created, map a title for them; otherwise import only people and organizations.
- Review the duplicate handling options before you confirm.
See Sales Navigator to Pipedrive for the full walkthrough.
8. Tag the lead source
Three months from now someone will ask where a lead came from and whether that source is worth more time. Tag it on the way in, because it is tedious to reconstruct later.
- Add a source column before importing, filled with one value for the whole file, for example
QuickExtract – Sales NavigatororQuickExtract – Google Maps. - Keep the detail in a second column. QuickExtract's group names (like “VP Sales · SaaS · US”) make a good campaign or list detail value.
- Map it to the right field. Salesforce has a standard Lead Source picklist; add your value to the picklist first. In HubSpot, create a custom property (HubSpot sets its own Original Source automatically). In Pipedrive, use a custom field or a label.
- Keep the link back. Map Place URL to a custom field. For Sales Navigator rows it opens the lead's profile; for Google Maps rows it opens the place.
9. Worked example: 300 Sales Navigator leads into Salesforce
Say you scraped a Sales Navigator search for heads of sales at software companies into a group called “Heads of Sales · SaaS · UK” and want the leads with emails in Salesforce.
- In QuickExtract, open the group, switch to the With email tab, select all, and export CSV. Suppose 300 rows come out.
- Open the file. Lowercase and trim the Email column, then remove duplicates on Email.
- Insert a Last Name column and fill it with “Unknown” (or real surnames if you have them).
- Insert a Lead Source column with
QuickExtract – Sales Navigator, and a Source Detail column with the group name. - Run a five-row test through the Data Import Wizard. Map Business → Company, Category → Title, First name → First Name, Email → Email, Website → Website, Place URL → a custom LinkedIn URL field.
- When the test looks right in Salesforce, delete the five test leads and import the full file with matching on Email.
The same file goes into HubSpot with no Last Name column needed, because HubSpot only needs the email.
10. Skip the CRM step: send to Quickprosp
If the reason you're importing is to email the list, you may not need the CRM step at all. QuickExtract connects natively to Quickprosp, the cold email platform from the same company. Connect it once with your API key, then:
- Save leads to Quickprosp lists, one list per extraction run.
- Leads you've already sent to are skipped, so nobody gets the same first email twice.
- Add leads straight to a campaign, or enroll them in an automation from step 1.
HubSpot, Salesforce and Pipedrive are supported through CSV import, as described above; there is no direct push to those CRMs. See Integrations for everything that connects.
CRM import questions.
Why did my HubSpot import skip rows?
The usual cause is contacts without an email address, or an email that HubSpot considers invalid. Filter to rows with an email before exporting, and import business-only rows as Companies instead.
Why does Salesforce reject my Sales Navigator leads?
Salesforce leads need a Last Name and a Company. The QuickExtract CSV has no Last name column, so add one before importing, and make sure the Business column is mapped to Company.
Can QuickExtract push leads straight into my CRM?
No. HubSpot, Salesforce and Pipedrive work through CSV import. The native integration is with Quickprosp, for cold email.
Will accented names import correctly?
QuickExtract exports CSV as UTF-8 with a byte order mark, so names like “José” or “Zoë” stay intact in Excel and in CRM importers that read UTF-8.
Should the email column hold company or person emails?
It holds the best email found: a free company email such as hello@, or a verified person email if you bought one. For named contacts in a CRM, person emails are usually what you want.
Build a list that imports cleanly.
Extraction and company emails are free. Verified person emails cost $29 for 2,000, and you pay only when a valid one is found.