Importing Subscribers
Whether you’re migrating from another email platform or bringing in a list you’ve built over time, Broadcast makes it straightforward to import your subscribers and get sending fast. This guide covers everything from preparing your file to verifying a successful import.
Why Import?
Most teams don’t start from zero. You might be switching from Mailchimp, ConvertKit, or another provider. You might have a spreadsheet of customers from your CRM, event attendees, or leads from a landing page tool. Importing lets you bring all of those contacts into Broadcast so you can start reaching them right away without re-collecting signups one by one.
Preparing Your File
Broadcast accepts CSV (comma-separated values) and TSV (tab-separated values) files. Before uploading, make sure your file meets these requirements:
- Include a header row – the first row must contain column names
- Save as UTF-8 – this ensures special characters (accents, symbols) import correctly
- One subscriber per row – each row represents a single contact
Supported Columns
| Column | Required | Description |
|---|---|---|
email |
Yes | The subscriber’s email address. This is the only required field. |
first_name |
No | Subscriber’s first name, used for personalization in emails. |
last_name |
No | Subscriber’s last name. |
tags |
No | Comma-separated tags to assign (e.g., “customer,newsletter”). |
subscribed_at |
No | When the subscriber originally signed up, in ISO 8601 format (e.g., 2025-06-15T10:30:00Z). If omitted, the import date is used. |
You can also include custom data columns. During the mapping step, you’ll be able to assign any extra columns to custom data fields that are stored as flexible key-value data on each subscriber.
Example CSV
email,first_name,last_name,tags
[email protected],John,Doe,"customer,newsletter"
[email protected],Jane,Smith,"prospect"
[email protected],Bob,Johnson,""
[email protected],Sarah,Williams,"customer,vip"
Keep your file clean: remove blank rows, fix obvious typos in email addresses, and strip out any columns you don’t need. A tidy file means a smoother import.
Step-by-Step Import Process
1. Navigate to Import
Go to Subscribers in the main navigation, then click the Import button in the top-right area of the page.
2. Upload Your File
Click the upload area or drag and drop your CSV or TSV file. Broadcast reads the file and detects your columns automatically.
3. Map Your Columns
You’ll see a mapping screen where each column from your file is matched to a Broadcast field. Broadcast auto-maps common column names (like “email” and “first_name”), but you can adjust any mapping manually. Columns you don’t want to import can be set to “Skip.”
4. Preview Your Data
Before committing, Broadcast shows you a preview of the first several rows as they’ll appear after import. Check that:
- Email addresses are in the correct column
- Names look right and aren’t swapped
- Tags are formatted the way you expect
- Custom data fields are mapped to the right keys
5. Start the Import
Once everything looks good, click Start Import. Broadcast begins processing your file immediately.
Import Options
Tag Assignment
You can apply one or more tags to every subscriber in the import. This is useful for tracking where contacts came from. For example, tag an imported batch as “migrated-from-mailchimp” or “webinar-jan-2026” so you can segment them later. These tags are applied in addition to any tags specified in the file itself.
Duplicate Handling
When an email address already exists in your subscriber list, Broadcast gives you two options:
- Skip – the existing subscriber is left untouched. No data is overwritten. This is the safe default if you’re unsure.
- Update – the existing subscriber’s fields are updated with the values from the import file. Empty fields in the file will not overwrite existing data, so you won’t accidentally blank out information.
Status Defaults
All imported subscribers are added as active by default, meaning they’ll receive your broadcasts and sequence emails. If you need to import unsubscribed contacts for record-keeping, you can manage their status after import from the subscriber detail page.
Background Processing and Progress
Imports run in the background, so you don’t need to keep the page open or wait for large files to finish. Here’s what to expect:
- Small files (under a few hundred rows) typically complete in seconds
- Large files (thousands or tens of thousands of rows) process progressively. You can monitor progress on the import detail page, which shows how many rows have been processed, how many succeeded, and how many were skipped
- You can keep working – navigate away, send broadcasts, manage other subscribers. The import continues in the background and you’ll see the results when you come back
Post-Import Checklist
After your import finishes, take a few minutes to verify everything landed correctly:
- Check your subscriber count – go to the Subscribers page and confirm the total matches what you expected
- Verify tags – filter by the tags you applied during import to make sure they’re attached to the right contacts
- Spot-check individual records – open a few subscriber profiles to confirm names, custom data, and other fields look correct
- Send a test broadcast – create a quick test broadcast targeted at your imported segment. Send a test email to yourself to confirm everything is working end-to-end before launching a real campaign
Troubleshooting Common Issues
Invalid Email Addresses
Rows with malformed email addresses (missing “@”, invalid domains, etc.) are skipped during import. After the import completes, check the summary for a count of skipped rows. If many rows were skipped, review your source file for formatting problems.
Encoding Issues
If you see garbled characters (e.g., “José” instead of “Jose”), your file likely isn’t saved as UTF-8. Open it in a text editor or spreadsheet application and re-save with UTF-8 encoding. In Excel, use “Save As” and select “CSV UTF-8” from the format dropdown. In Google Sheets, downloading as CSV produces UTF-8 by default.
Missing or Unrecognized Headers
Broadcast requires a header row. If your first row contains data instead of column names, the import can’t map fields correctly. Add a header row with descriptive names like email, first_name, last_name, and re-upload.
Large Files Taking Too Long
Files with tens of thousands of rows are processed in batches. If an import seems stuck, refresh the import detail page to check the latest progress. Very large imports (100,000+ rows) may take several minutes. If you’re importing extremely large lists, consider splitting them into multiple files of 50,000 rows each.
Best Practices
- Clean your list before importing – remove known bounces, spam traps, and inactive addresses. A clean list protects your sender reputation from day one.
- Only import opted-in contacts – importing people who never signed up leads to spam complaints, bounces, and deliverability problems. Make sure every contact on your list gave explicit consent to receive emails from you.
- Tag by source – use tags to record where each group of subscribers came from. Tags like “website-signup”, “tradeshow-2026”, or “product-launch” make it easy to build segments and analyze performance by audience source later.
- Start with a small batch – if you’re importing for the first time, try a test batch of 10-50 rows. Verify the mapping and results before uploading your full list.
- Keep a backup – save a copy of your original file before making any edits. If something goes wrong during cleanup, you’ll have the original to fall back on.
Import via API
Prefer to automate your imports? The Broadcast API lets you add subscribers programmatically with a simple POST request. This is ideal for real-time integrations where new contacts should flow into Broadcast as they sign up on your website or app.
Ready to organize your imported subscribers? Learn about Segments to create targeted groups for your campaigns.