SystemBuilder | Build Your Online Business with Systeme.io

How to Import a CSV List into Systeme.io Without Losing Tags

Importing a CSV into Systeme.io is a few clicks. But if you don't prepare the file correctly, your tags either vanish or get applied to the wrong people—and you won't notice until a campaign goes to the wrong segment.

Systeme.io CSV import screen showing Tags column mapped to Tags data type for preserving individual contact tags during migration

Here is the exact process to keep every tag intact, plus the one mapping step most people skip.

👉 Import your tagged list into a free account here

Why This Tag Problem Happens

Systeme.io's importer gives you one batch tag field during upload, not a column that reads individual tags per contact . That means if your CSV has a "Tags" column with different values for each row, the importer may ignore it unless you map it correctly.

The root issue is that tag data lives in the file, but the importer needs to be told where it is. If you skip the column mapping step or assume the batch tag is enough, every contact ends up with the same generic label instead of their original segments.

Step-by-Step Fix for Importing Without Losing Tags

Step 1: Create Your Tags in Systeme.io First

Before you upload anything, go to CRM > Contacts and manually create every tag that appears in your CSV . The importer can create tags on the fly, but pre-creating them prevents typos and duplicate variations.

Step 2: Format the Tags Column in Your CSV

Open your CSV in Excel or Google Sheets. Confirm you have a single column named "Tags" where each contact's tags are separated by commas (e.g., lead-magnet, webinar-attended, customer).

If your old platform exported tags across multiple columns, consolidate them into this one column before importing.

Step 3: Clean the List Before Upload

Remove duplicates and hard bounces. Systeme.io's own migration guidance warns that a high bounce rate can damage your sender reputation before you've sent a single campaign .

If you can't spot bad addresses, run the file through a verification service like NeverBounce or ZeroBounce.

Step 4: Upload the CSV and Apply a Batch Tag

Go to CRM > Contacts > Import contacts. Select your delimiter (comma, semicolon, or pipe) and upload the file .

In the "Select the tag you want to assign" field, apply a batch tag like migration-batch-1. This is separate from the individual tags in your column—it's a safety net so you can identify the entire import later .

Step 5: Map the Tags Column (The Critical Step)

Click Next. On the mapping screen, you'll see each column from your CSV next to a dropdown menu for the data type .

Find the column named "Tags" and set its data type to "Tags." If you leave it as "Ignore" or map it to a custom field, the individual tags will not be applied to each contact.

Step 6: Verify Before Clicking Import

Systeme.io shows a preview of how the first few rows will be mapped. Check that:

  • The email column is set to Email
  • The first name column is set to First name
  • The Tags column is set to Tags

If anything is mismatched, fix the dropdown before importing.

Step 7: Check the Results After Import

After the import completes, open a few contact records. Confirm that each contact has both:

  • The batch tag you applied during upload
  • The individual tags from their CSV row

If the individual tags are missing, you'll need to delete the imported contacts and repeat the process with the Tags column mapped correctly.

👉 Import your cleaned, tagged list for free here

The Easiest Way to Avoid This Issue Moving Forward

The simplest way to preserve tags is to map the Tags column explicitly during import and verify with a test contact before importing the full list.

Systeme.io's free plan includes 2,000 contacts, which is enough to test the import process with a small batch first. If the tags come through correctly, import the rest.

The honest limit: the importer does not merge duplicate tags or clean messy tag names. If your CSV has "Lead" and "lead" as separate values, you'll get two separate tags. Standardize your tag names in the CSV before uploading.

Common Mistakes to Avoid

Leaving the Tags Column Unmapped

If the Tags column is set to "Ignore" or "Custom field" instead of "Tags," the individual tags won't apply. The batch tag is not a substitute for per-contact tagging.

Using the Batch Tag as the Only Tag

A batch tag like "migration" tells you where contacts came from, not who they are. If you skip the Tags column mapping, every contact loses their original segmentation.

Importing Without Creating Tags First

The importer can create new tags, but typos in your CSV become permanent tags. Create the tags manually first so you catch spelling errors before they multiply.

Forgetting to Respect Unsubscribed Status

If your CSV contains unsubscribed contacts, Systeme.io can import them—but you must mark them as unsubscribed after import using More actions > Unsubscribe from marketing emails . Otherwise, you risk emailing people who opted out.

Not Testing with a Small Batch

A three-contact test import takes two minutes. A full import with broken tags takes an hour to clean up. Test first.

Frequently Asked Questions

Why did my tags disappear after importing?

The Tags column was likely not mapped to the "Tags" data type during the column selection step. The batch tag field only applies one tag to everyone; individual tags require the column mapping .

Can I import different tags for different contacts in one CSV?

Yes. Put each contact's tags in a "Tags" column, separated by commas, and map that column to the Tags data type during import.

Does Systeme.io create tags automatically during import?

Yes, but it's safer to create them first. Auto-created tags inherit whatever spelling is in your CSV, including typos.

What happens to unsubscribed contacts in my CSV?

They can be imported, but they must be marked as unsubscribed after import. Systeme.io will not automatically detect their status from a standard CSV column .

Conclusion

Importing a CSV without losing tags comes down to one mapping step: setting your Tags column to the "Tags" data type.

Create the tags first. Clean the list. Apply a batch tag for tracking. Map the Tags column. Verify with a test contact. Then import the full list.

Systeme.io's free plan lets you test the entire process with up to 2,000 contacts before committing to a paid tier. If the tags come through correctly, you're ready to import the rest.

Your segments are the difference between relevant emails and spam complaints. Don't lose them in the upload.

👉 Start importing your tagged list for free today

Importing your email contacts safely keeps your subscriber database fully active. If you are also looking to transition your entire website architecture over to save on hosting fees, check out my step-by-step breakdown on Can You Move a WordPress Blog Over to Systeme.io?.

Thoughts? Leave a comment