Skip to main content

Import leads from a CSV file

How to Import CSV Files to lemlist Like a Pro πŸ“„

Updated over a week ago

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 ({{firstName}} 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.

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)

  • firstname

  • lastname

  • companyName

  • companyDomain

  • linkedinUrl

  • phone

  • picture

  • icebreaker

πŸ’‘ 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.

Screenshot

In your campaign, click Lead list, then click Import new leads.

Screenshot

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

Screenshot

Then click Continue.

Screenshot

βœ… 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.

Screenshot

Select the appropriate variable (for example, lastName for a surname column).

Screenshot

When everything is mapped correctly, click Continue.

Screenshot

πŸ’‘ 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.

Screenshot

Step 5: Configure enrichment & duplicate preferences, then import

Select any enrichment options you want to run (these may use credits).

Screenshot

In Manage duplicates, choose whether to skip leads that are already in your campaign (or across your team).

Screenshot

Then click Import leads.

Screenshot

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 .CSV and not an Excel CSV. Convert if necessary

  • Re-export as pure CSV from your spreadsheet app

  • Check file extension is .csv not .xlsx or .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 {{firstname}} instead of actual names

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 .CSV only

  • Ensure column names match lemlist variables

  • Verify your browser and file compatibility

Did this answer your question?