Learning Objective
By the end of this guide, you'll know how to format CSV files correctly, map columns to lemlist variables, handle import preferences, and troubleshoot common upload errors.
Why This Matters
CSV import is how most teams add leads at scale. A properly formatted CSV with correct variable mapping ensures your personalization works ( actually shows names), your emails reach the right addresses, and enrichment adds valuable data. Poor formatting means broken personalization, failed imports, and wasted time fixing errors lead-by-lead.{{firstName}}
Prerequisites
Before you start:
A CSV file with your lead data (email addresses required)
Basic understanding of spreadsheet structure (rows = leads, columns = data fields)
A campaign created where you'll import the leads
Understanding CSV Structure
What lemlist needs:
Row 1: Column names (email, firstName, companyName, etc.)
Row 2+: Lead data, one lead per row
Required column: email (every lead must have one)
Optional columns: Any additional data for personalization
π‘ Critical rule: First row = column names, not data. If your first row contains an actual email address, lemlist treats it as a column name and skips that lead.
Step-by-Step Guide
Phase 1: Format Your CSV File
Step 1: Structure your data
Open your spreadsheet (Google Sheets, Excel, etc.)
Ensure:
Row 1 contains column names only
No spaces in column names (especially for URLs)
Each row has an email address (required)
No empty rows between leads
Step 2: Use standard lemlist variables
Lemlist auto-maps these standard variables:
email(required)firstnamelastnamecompanyNamecompanyDomainlinkedinUrlphonepictureicebreaker
π‘ Match these names exactly for automatic mapping. Use the CSV template as a formatting guide.
Step 3: Add custom variables (optional)
For data beyond standard fields, add custom columns with any names you want (e.g., City, Blog, etc.)
π‘ No spaces in column names: Especially critical for URLs.
Step 4: Export as CSV
In Google Sheets: File β Download β Comma-separated values (.csv)
In Excel: File β Save As β CSV (Comma delimited)
β οΈ Important: Use pure CSV format, not "Excel CSV" or other variations.
Phase 2: Import into Lemlist
Step 1: Open the import interface
Go to Campaigns, then open the campaign you want to import leads into.
In your campaign, click Lead list, then click Import new leads.
Step 2: Upload your file
Option A: Click in the upload area and select your CSV file
Option B: Drag and drop your CSV file into the upload area
Then click Continue.
β Success indicator: File name appears with lead count detected
Step 3: Map variables
Lemlist displays your columns and suggests mappings:
Auto-mapped columns: Standard variables like email, firstname, lastname are automatically recognized
Unmapped columns: Custom columns or misspelled standard variables need manual mapping
For each unmapped column:
lemlist will show the column name from your CSV
You can map it to an existing lemlist variable, OR
Create a Custom Variable for unique data (e.g.,
City,Blog)
To adjust a mapping, open the variable type dropdown and select the correct lemlist variable.
Select the appropriate variable (for example, lastName for a surname column).
When everything is mapped correctly, click Continue.
π‘ Best practice: Use lemlist's default variables when possible: email, firstname, lastname, companyName, companyDomain, linkedinUrl, phone, picture, icebreaker.
Step 4 (optional): Select AI column use cases
If prompted, choose which AI actions you want to apply to your imported columns (for example, cleaning first names), then click Continue.
Step 5: Configure enrichment & duplicate preferences, then import
Select any enrichment options you want to run (these may use credits).
In Manage duplicates, choose whether to skip leads that are already in your campaign (or across your team).
Then click Import leads.
Step 6: Verify import success
After import completes:
Check the lead count increased in the Lead list
Review a few leads to confirm data is mapped correctly
Test personalization variables in email preview
β Success checklist:
Lead count matches the expected number
Personalization variables display correctly
No error messages about failed imports
Troubleshooting
Issue: CSV file won't upload
Root cause: Wrong file format, browser compatibility, or file encoding issues
Fix:
Browser Compatibility: Use Chrome or another updated browser instead of Safari
File Format: Ensure your file is a pure
.CSVand not an Excel CSV. Convert if necessaryRe-export as pure CSV from your spreadsheet app
Check file extension is
.csvnot.xlsxor.xls
Issue: "Emails are required" error
Root cause: No column mapped to the email field, or the email column is empty for some leads
Fix:
Emails Are Required: Every row must have an email address, as it serves as the unique ID in lemlist
Ensure you have a column with email addresses
Map that column to the "email" variable
Remove rows without email addresses
Issue: Personalization shows instead of actual names{{firstname}}
Root cause: firstname column not mapped correctly, or firstname data is empty
Fix:
Return to Lead list, check a few leads, does the firstname field have data?
If empty: firstname wasn't mapped during import. Re-import CSV and map correctly
Field Matching: Map your CSV fields to the appropriate lemlist variables
Issue: Custom variables not appearing in email editor
Root cause: Custom variables created during import but not yet available in the template editor
Fix:
Refresh the campaign page
Custom variables should now appear in the variable dropdown
Check spelling matches exactly
Issue: Only partial leads imported
Root cause: Some leads were duplicates or had missing/invalid emails
Fix:
Check import summary message, explains why some were skipped
Review skipped leads, fix issues, re-import if needed
Optimization Tips
Use the CSV template - Download lemlist's CSV template to start with the correct structure.
Test with small batch first - Import a small number of leads as a test before your full list. Verify mapping works correctly.
Clean data before import - Remove empty rows, fix email typos, standardize formatting. Cleaning in spreadsheet is faster than fixing in lemlist.
Match standard variable names - Use lemlist's default variables exactly as listed to enable auto-mapping.
Keep files organized - Use meaningful names for custom variables to simplify mapping.
Use enrichment strategically - Enable enrichment options only when you need additional data insights, as they may use credits.
FAQs
Can I use custom variables?
Yes! Add unique data for personalization (e.g., blog URLs or company info). Lemlist supports unlimited custom variables.
What's the best way to avoid import errors?
Use the CSV template as a guide
Test your import with a small file first
Ensure the first row contains column names
Avoid spaces in column names
Why isn't my CSV importing?
Double-check the format: pure
.CSVonlyEnsure column names match lemlist variables
Verify your browser and file compatibility












