Skip to content

CSV Import

Import subscribers in bulk from CSV files — whether you're migrating from another email platform or uploading a list from a spreadsheet.

Importing from the Dashboard

  1. Go to Subscribers in your app's dashboard
  2. Click Import
  3. Choose your CSV file
  4. Select the provider format (or let MailJawn auto-detect it)
  5. Optionally check "Treat as new subscribers" to trigger welcome automations
  6. Click Import

Tip

Leave "Treat as new subscribers" unchecked for migrations. This prevents welcome emails from going out to people who already know your product.

Supported Formats

Sendy Export

If you're migrating from Sendy, export your subscriber list and upload the CSV as-is. MailJawn recognizes Sendy's column format automatically.

Sendy Column MailJawn Field Notes
Email email Required
Name name Display name
Optin Time subscribed_at / first_seen Original signup date. Format: YYYY/MM/DD, HH:MMAM/PM
Status status Mapped: active, unsubscribed, bounced, complained
Last activity last_seen Most recent engagement
Country custom_fields.country Stored as custom field
Country code custom_fields.country_code Stored as custom field
Confirm Time custom_fields.confirm_time Stored as custom field

The Joined column is also accepted as an alias for Optin Time.

Generic CSV

For any other source, use these column names:

Column MailJawn Field Required
email email Yes
name name No
subscribed_at subscribed_at / first_seen No

Note

Column matching is case-insensitive, so Email, email, and EMAIL all work.

Auto-Detection

MailJawn inspects your CSV headers and automatically selects the right provider format. If it finds Sendy's signature columns (Email, Name, Optin Time, Status), it uses the Sendy mapping. Otherwise, it falls back to the generic format.

Import Results

After import, you'll see a summary:

Stat Meaning
Created New subscribers added
Updated Existing subscribers whose data was refreshed
Skipped Rows with missing or invalid email addresses
Suppressed Emails on your suppression list — these are not imported

How Updates Work

When a CSV row matches an existing subscriber (same email), MailJawn merges the data:

  • Name is overwritten if the CSV provides one
  • Dates use smart merging: first_seen keeps the earliest date, last_seen keeps the latest
  • Status is overwritten if the CSV provides one
  • Custom fields are merged additively (new keys are added, existing keys are updated, unmentioned keys are preserved)

Welcome Automation Control

By default, CSV imports do not trigger welcome automations — this prevents sending welcome emails to subscribers you're migrating from another platform.

To enable automations for an import:

  1. Check the "Treat as new subscribers" checkbox before importing
  2. Only newly created subscribers receive the welcome series (updates are always silent)

Warning

If you're migrating a large list, import first with automations off, then enable your welcome automation afterward. This ensures the backfill guard prevents old subscribers from receiving welcome emails.

API Bulk Import

You can also import subscribers programmatically:

POST /api/v1/projects/{project_id}/subscribers/

Send a JSON array of subscriber objects:

[
    {"email": "alice@example.com", "name": "Alice"},
    {"email": "bob@example.com", "name": "Bob"}
]

This endpoint requires an API key with subscribers:write scope. Welcome automations are never triggered for API bulk imports.


See also: Integrations > REST API for the full API reference.