Importing and exporting are the two main ways to move contact data in and out of Lettr in bulk. Use import when bringing contacts in from another tool, a spreadsheet, or your own system. Use export when you want a snapshot of your audience for backup, external analysis, or migration.Documentation Index
Fetch the complete documentation index at: https://docs.lettr.com/llms.txt
Use this file to discover all available pages before exploring further.
Importing Contacts from CSV
The CSV import flow is a guided, multi-step process designed to handle messy real-world files — including ones without header rows, with mixed column orders, and with extra columns that don’t map cleanly to Lettr fields.Before You Start
A bit of preparation saves time:- Define your custom properties first. If you want to import data like
first_name,plan, orsignup_date, create those properties in Audience → Properties before importing. The import flow can then map your CSV columns directly to existing properties. - Have your file ready. A CSV with one contact per row. The only column the import truly needs is the email address; everything else is optional.
- Decide how you want to handle duplicates. If a contact in your CSV already exists in your audience, you can either skip them entirely or update them with the new values from the file.
The Import Flow
Upload the file
Go to Audience → Imports → New import and select your CSV. The file is uploaded directly to secure storage. There’s no hard size limit imposed by the UI, but very large files (many millions of rows) may take longer to process.
Map columns
Lettr reads the first few rows of your file and asks you to map each column to a Lettr field. The choices are:
- Email — required, exactly one column
- Status — optional; if a column contains values like
subscribedorunsubscribed, you can map it here. Otherwise contacts are imported assubscribed - Property name — map a column to any of your defined custom properties
- Ignore — skip the column entirely
Pick options
Choose how duplicate emails are handled:
- Skip — existing contacts in your audience are left untouched. New emails are added
- Update — existing contacts have their properties (and status, if mapped) overwritten with the CSV values
AI-Assisted Column Mapping
For CSVs from common sources, Lettr can suggest a complete column mapping with one click. The AI looks at the column names (or their content if there’s no header) and proposes mappings to your existing properties. You always get a chance to review and adjust before continuing.What Happens After an Import
- All imported contacts immediately appear on the Contacts page
- Topic memberships set in the import step are applied. Opt-in topics defined for your team are also automatically attached, just as they would be for any new contact
- Segments re-evaluate their match counts in the background
- Contacts from the import don’t generate per-contact entries in the activity log (the import uses a faster bulk path) — but any later edits to those contacts log normally
Importing does not check your marketing plan’s contact limit. If your import would push you over your limit, the contacts will still be added, but you won’t be able to send campaigns until you upgrade your plan or remove enough contacts to fit. Check Billing for plan details.
Tips for Clean Imports
Validate before importing
Validate before importing
Even basic format validation in a spreadsheet (filtering out obviously malformed addresses) saves you from a flood of bounces later. Lettr only bulk-validates the structure of email values — it does not verify whether an inbox actually exists.
Use Update for refreshes, Skip for first loads
Use Update for refreshes, Skip for first loads
On your first import of a list, Skip prevents any unintended changes to existing contacts. On a recurring refresh (for example, syncing customer data from your CRM weekly), Update keeps property values fresh.
Map status thoughtfully
Map status thoughtfully
If your source system tracks unsubscribes, map a column to Status so those contacts come in as
unsubscribed and won’t be emailed. If you don’t have status data, leave it unmapped — new contacts default to subscribed.Prefer many small imports over one giant one
Prefer many small imports over one giant one
Large imports work, but breaking up data into chunks (per cohort, per source) makes it easier to spot mistakes before they affect your full audience.
Exporting Contacts to CSV
Exporting produces a CSV file of your contacts that you can download from your email. Exports respect any filters you have applied on the Contacts page, so you can export a subset of your audience without first creating a list.How to Export
Filter your contacts (optional)
On the Contacts page, apply any filters you want — search by email, filter by status, list, topic, or segment.
Start the export
Open the Export menu and start the export. The job runs in the background; you don’t have to wait on the page.
What’s in the Export
The CSV contains one row per matching contact. Columns include the email address, status, every custom property defined for your team, and the timestamps for when the contact was created and last updated.Limits
- Each user can run up to 20 exports per hour
- Download links expire 1 hour after the export becomes ready. You can re-run the export if you need a fresh download
Next Steps
Contacts
Set up custom properties to populate during import
Lists
Attach imported contacts to a list
Double Opt-In
For sign-up forms, prefer double opt-in over imports