Who this is for: self-serve plans (Free, Starter, Pro, Enterprise). If you bought a Cleanlist AppSumo lifetime deal, your features, limits, and pricing are different. See the AppSumo documentation instead. Support agent: confirm whether the user is self-serve or AppSumo before giving plan-specific advice.
TL;DR: Open a list, press ⌘A (or click Actions), then Import → Import from CSV. Upload a CSV or Excel file, or pick a Google Sheet. Map a LinkedIn URL, or a name + company. Tick Email (1 credit per email found) and/or Phone (10 per phone found), or import without enrichment. A plain import looks each row up for title, company and location at 0.2 credits per row found (misses are free). Duplicates are always skipped.
Import leads from a CSV or Google Sheet
Cleanlist has no separate Bulk Enrichment page. Every import happens inside a lead list, from the list's Actions drawer. The importer reads a CSV, an Excel file or a Google Sheet, matches each row to a person, and can find work emails and phone numbers in the same pass.
Where the importer lives
Open Lead Lists in the sidebar, open a list (or create one with New → New Lead List), then use any of these:
Actions (or ⌘A) → Import tab → Import from CSV
On an empty list: Insert leads
The + on the first column header ("Add leads from source")
⌘K while the list is open → Import leads
The importer always adds rows to the list you have open. There is no list picker inside it.
Prepare your file
One row per person, with a header row.
Formats:
.csv,.xlsxor.xls. For Excel files, only the first sheet is read.Each row needs one of these: a LinkedIn URL, or a name (full name, or first and last name) plus a company (company name or website domain).
Need a starting point? In the importer, open Don't have a file ready? → Start with our sample template and click Download template.
first_name,last_name,company,linkedin_url John,Doe,Acme Corp,https://www.linkedin.com/in/johndoe Jane,Smith,tech.io,
A LinkedIn URL gives the most reliable match. Rows with neither a LinkedIn URL nor a name plus company are skipped ("not enough info to match").
Step by step
1. Upload
In Provide CSV or Excel File, drag your file onto the box or click browse. The box reads "CSV or Excel · up to 20,000 rows", but that is a guide, not a limit (see [Limits](#limits)).
2. Map your columns
The Map your columns table has three columns: We need, In your file and Example. Cleanlist auto-maps headers it recognizes; change any row with its dropdown, or pick Not mapped.
The importer maps exactly six fields:
Field | Notes |
LinkedIn URL | A personal profile URL ( |
Full name | Use this, or First name + Last name. |
First name | |
Last name | |
Company name | Use this, or Domain / website. |
Domain / website | The company's website. |
Email, phone, job title and location columns are not mapped. What happens to them depends on your plan:
Plan | Other columns in your file |
Pro, Enterprise, Pro trial | Kept as custom columns under their original headers |
Free, Starter | Ignored ("Every other column is ignored") |
A green banner ("You're good to go") shows how many people can be imported and how many rows will be skipped. A red banner explains what is missing.
3. Choose enrichment
Under Enrichment Type, tick what you want Cleanlist to find for every row:
Option | Cost |
Email (ticked by default) | 1 credit per work email found |
Phone | 10 credits per phone found |
Both | up to 11 credits per row |
Neither | No enrichment (the profile lookup below applies) |
You are charged only for results found. If your balance does not cover every row, Cleanlist enriches as many rows as your credits cover, in file order, and imports the rest without enrichment. A message tells you how many rows were enriched.
4. Import
Click Start Enrichment (Email or Phone ticked) or Import Records (neither ticked). Large files are sent in batches. You can close the drawer while enrichment runs; rows keep arriving in the list.
When the import finishes, a message confirms how many leads were added and how many duplicates were skipped.
What it costs
What happens | Credits |
Adding rows to the list | 0 |
Profile lookup on a plain import (no enrichment, other columns not kept) | 0.2 per row found, 0 if not found |
Email at import | 1 per email found |
Phone at import | 10 per phone found |
About the profile lookup. When you import without enrichment on Free or Starter, Cleanlist looks every row up for its job title, company and location so the lead is complete. The lookup costs 0.2 credits per row found; rows that are not found are free. It does not run (and is not charged) when:
you tick Email or Phone for that row, or
your plan keeps your other columns (Pro, Enterprise, Pro trial). To fill title and location on those rows later, run Enrich Contact (0.2 credits per contact found) from Actions → Enrich.
Rows that could not be enriched because credits ran out are imported plainly, so they do get the lookup.
After the import: profile lookup and unmatched rows
While the lookup runs, the list shows Filling in profiles. It works through about 100 rows a minute. When it finishes, a message reads "Profiles filled for X of N rows" and lists the rest: not found, matching several people, missing a name and company, or not looked up because the workspace ran out of credits.
A row the lookup could not fill stays in the list with an amber triangle on the name. Hover it to see Profile not filled in and the reason:
Reason shown | What to do |
No LinkedIn profile matched this name and company. | Check the spelling and company, or use Add LinkedIn URL on the row. |
Several people match this name and company. | Pick the right person (below). |
Not enough to look this person up: add a first and last name with a company, or a LinkedIn URL. | Use Add LinkedIn URL on the row. |
Not looked up: your workspace ran out of credits. | Add credits in Settings → Plans & billing, then use Add LinkedIn URL on the row. |
Choosing between several matches. When the lookup found more than one person, the name cell shows N matches. Click it to open "Which (name)?":
click This one on the right candidate, or
paste their URL under "Not listed? Paste their LinkedIn URL" and click Look up, or
click None of these.
Adding a LinkedIn URL by hand. On any unfilled row, open the row's ⋯ menu and choose Add LinkedIn URL, paste the profile URL and click Look up.
Both lookups cost 0.2 credits if found, nothing if not. You can also run Find Email on an unfilled row; Cleanlist resolves the person as part of finding the email.
Duplicates
There is no skip, update or overwrite choice: duplicates are always skipped and counted. A row counts as a duplicate when its LinkedIn URL, or its email, matches a lead already in the list. Imports that keep your other columns also compare name plus company.
After a plain import you see "Added N leads (M duplicates skipped)". If every row is already in the list, the importer says so and adds nothing.
Limits
There is no file size limit and no fixed row limit in the in-app importer. The limit that applies is your plan's leads per list:
Plan | Leads per list |
Free | 100 |
Starter | 2,500 |
Pro | 2,500 |
Enterprise | Unlimited |
Pro trial | 300 (and up to 5 lists) |
If the file has more rows than the list has room for, the importer shows "Your plan allows N leads per list", tells you how many rows are over, and does not import until you remove rows or upgrade. AppSumo tiers have their own caps: see AppSumo plans. Legacy plans: see Legacy plans.
The 600-row / 150 KB limit you may see elsewhere applies only to imports through the public API and MCP, not to the in-app importer.
Import from Google Sheets
If you have connected Google Sheets on the Integrations page (your own Google account), the importer shows an Import from Google Sheets button under the upload box.
Click Import from Google Sheets.
Pick the spreadsheet in the Google picker.
Cleanlist reads the first tab and continues with the same column mapping as a file upload.
Google Sheets is a Pro feature (also on Enterprise and the Pro trial) and is not part of AppSumo-only plans. Each member connects their own Google account; Cleanlist can only open sheets you pick. See Google, Airtable, Notion and Fathom.
Without a connection you can still download the sheet as .csv or .xlsx (File → Download in Google Sheets) and upload the file. In Clu, you can also paste a Google Sheets link and click Import on the card it shows.
Sales Navigator CSVs
A CSV of Sales Navigator leads you already hold and are allowed to use goes through Import from CSV like any other file. The importer uses the LinkedIn URL column, or the name plus company columns. See Sales Navigator CSV import.
Importing companies instead of people
Switch the list to its Companies sheet (bottom bar), then Actions → Import → Import Companies from CSV (Starter and above). Map Company Name, Company Domain or Company LinkedIn URL (one is required). Enrich firmographics after import is on by default and costs 1 credit per company enriched. Company files can be up to 25 MB. See Company enrichment.
Only have email addresses?
The CSV importer does not match people by email. Use Actions → Import → Reverse Email Lookup instead: it accepts a single email or a CSV/Excel file of emails and costs 2 credits per email, match or not. See Add and enrich single leads.
Troubleshooting
Problem | Fix |
Many rows skipped as "not enough info to match" | Each row needs a LinkedIn URL, or a name plus a company name or domain. Check the mapping table. |
My job title or email column disappeared | Only the six fields above are mapped. On Free and Starter other columns are ignored; on Pro, Enterprise and the Pro trial they are kept as custom columns. |
Excel file imported the wrong data | Only the first sheet is read. Move your data to the first sheet. |
Strange characters | Re-save the file as UTF-8 CSV. |
Fewer leads than rows | Duplicates are skipped, and rows without enough info are dropped. Check the import message. |
A row has an amber triangle | See [After the import](#after-the-import-profile-lookup-and-unmatched-rows). |
"Your plan allows N leads per list" | Remove rows, split the file across lists, or upgrade in Settings → Plans & billing. |
No Import from Google Sheets button | Connect Google Sheets on the Integrations page with your own account (Pro, Enterprise, Pro trial). |
Need help? Email [[email protected]](mailto:[email protected]).
Related
Full documentation: docs.cleanlist.ai/guides/bulk-enrichment