Mailchimp Tags and Groups in CSV Imports: Comma-Separated Without the Breakage
Mailchimp imports tags from a single column labeled Tags, with a comma between each tag in the cell. The catch: because that cell already contains commas, the raw CSV must wrap it in double quotes, or the CSV parser reads each tag as its own field and shifts your entire row. That one quoting rule is what breaks most naive exports. Groups work differently again. This guide covers the exact tag and group format Mailchimp expects, and how it handles duplicates, unsubscribed contacts, and email syntax errors.
This is the tags-and-groups formatting angle specifically. If your import is failing for broader reasons, such as missing an email column or a whole file rejected, that is a different problem covered elsewhere. Here we focus on the mechanics of getting tags and groups to land correctly.
How does the Mailchimp Tags column actually work?
In your spreadsheet, you create one column labeled Tags. For each contact, you list every tag that applies to them in that single cell, separated by commas. Mailchimp reads the whole cell, splits it on commas, and applies each piece as a separate tag. If a tag does not already exist in your audience, Mailchimp creates it during the import. So a cell reading vip, newsletter, q3-webinar becomes three tags on that contact.
Two hard limits are worth knowing before you build the file. Tag names must be 100 characters or fewer; anything longer gets truncated on import. And emojis cannot be imported at all, so replace any emoji tags with plain text first or they will be dropped.
So far this sounds simple, and inside a spreadsheet program it looks fine. The breakage happens one layer down, in the raw CSV text, where a comma means something to the file format itself.
Why does my Tags column shift into the wrong columns?
A CSV uses commas to separate fields. Mailchimp also uses commas to separate tags inside the Tags cell. Those two meanings collide. When the Tags cell holds multiple comma-separated tags, the entire cell has to be enclosed in double quotes so the CSV parser treats it as one field instead of several. When an export skips those quotes, every comma inside the tag list is read as a new column boundary, and the extra tags spill into whatever columns come next.
Here is the same row done wrong and right. In the broken version, the unquoted tag list turns one field into three, so the row now has more values than there are headers and everything after Tags is misaligned.
WRONG - Tags cell not quoted, commas leak into new columns
email_address,first_name,tags
jane@example.com,Jane,vip,newsletter,q3-webinar
What the CSV parser sees: 5 fields for a 3-column header.
Mailchimp keeps "vip" as the tag; "newsletter" and
"q3-webinar" land as stray unmapped columns.RIGHT - Tags cell wrapped in double quotes = one field
email_address,first_name,tags
jane@example.com,Jane,"vip,newsletter,q3-webinar"
The CSV parser sees 3 fields.
Mailchimp splits the quoted cell into three tags:
vip / newsletter / q3-webinarThe quoting is invisible inside Excel or Google Sheets. A cell shows vip, newsletter, q3-webinar with no quote marks on screen, and the program adds the quotes automatically when it writes the CSV. The problem is exports and scripts that build the CSV text directly and forget to quote fields that contain commas. Always open the raw .csv in a plain text editor to confirm the Tags cell is wrapped in double quotes before importing.
The tag-with-a-comma edge case
Sometimes a single tag genuinely needs a comma inside it, like a tag literally named Monday, Wednesday. Because Mailchimp treats commas as tag separators, you have to enclose that one tag in double quotes so the comma is kept as part of the name rather than splitting it into two tags. Mailchimp's own example is the tag "Monday, Wednesday". This nests awkwardly with CSV quoting, so unless you truly need commas inside a tag name, the cleaner fix is to rename the tag, for example monday-wednesday, and avoid the whole problem.
Tags vs. groups: which one are you importing?
Tags and groups look similar in a spreadsheet but behave differently, and mixing them up is a common reason an import does not sort contacts the way you expected.
The practical difference:
- Tags are for internal organization based on what you know about a contact, such as job title, event attended, or lead source. You apply them; contacts never see them. They live in one Tags column.
- Groups are audience categories that contacts often self-select through signup forms, such as interests or preferences. They are structured under a named group category you define in Mailchimp.
- A tag is created automatically on import if it does not exist. A group category and its group names generally need to exist in your audience before you import into them.
The column format differs too. For groups, you label the column to match your group category name in Mailchimp, and list each contact's group names in the cell. To put a contact in more than one group, separate the group names with a comma and a space. That trailing space after the comma is the detail people miss when they copy the tags format over to groups.
Groups example - column header matches the group category name
email_address,first_name,Interests
jane@example.com,Jane,"Webinars, Product updates"
joe@example.com,Joe,Webinars
Multiple groups: comma AND a space between names.
The cell still needs quoting because it contains a comma.How do I apply one tag to an entire import?
If every contact in the file should get the same tag, such as spring-2026-list, you do not need a Tags column at all. During the import flow, Mailchimp lets you apply a tag to the whole import in one step, and it attaches that tag to every contact in the file. Use a Tags column only when tags vary per contact. Trying to hand-build a Tags column where every row repeats the same value is just more surface area for a quoting mistake, so let the import-wide tag option handle the uniform case and reserve the column for the rows that differ.
How Mailchimp handles duplicates, unsubscribes, and bad emails
Even a perfectly formatted tags column will not save contacts that Mailchimp refuses to touch. Knowing these rules up front stops you from chasing tags that were never applied because the contact itself was skipped.
What happens to each type of row on import:
- Existing subscribers get updated, not duplicated. If an address is already in the audience, Mailchimp matches on email and updates that profile, including adding your new tags rather than creating a second record.
- Unsubscribed and cleaned contacts are not re-imported and their profiles cannot be updated by an import. If someone unsubscribed, importing them again will not resubscribe them or apply new tags. Contacts who opted out must re-subscribe through a signup form; only manually unsubscribed contacts can be resubscribed by you.
- Bounced (cleaned) addresses already in the audience are also skipped. Re-importing does not revive them.
- Invalid email syntax is rejected. An address missing part of the domain, like john@aol with no .com, is treated as a syntax error and left out.
- Misspelled common domains are blocked. Mailchimp screens for typos of major providers and removes them, so joe@gamil.com or jane@yhoo.com will not import.
Extra spaces are a quiet killer here. A space before, after, or in the middle of an address can turn an otherwise valid email into a rejected syntax error. Trimming whitespace from the email column before you import removes a whole class of silent drops.
One European-spreadsheet trap: some programs save CSVs using semicolons instead of commas as the field separator. Mailchimp expects commas, so a semicolon-delimited file will not parse correctly and your tags will not split. If your export used semicolons, convert the delimiter to commas before importing.
Cleaning a messy tag list before you import
Real tag columns are rarely tidy. They come out of a CRM export or a hand-maintained sheet with inconsistent casing (VIP, vip, Vip all meaning the same thing), stray spaces after commas, duplicate tags in the same cell, and the occasional emoji. Mailchimp will faithfully create a separate tag for each spelling variant, so VIP and vip become two different tags cluttering your audience. Normalizing before import keeps the tag list clean on the other side.
A pre-import checklist for tags and groups:
- Confirm the tag column header is exactly Tags, and group columns are named to match their group category.
- Pick one casing convention and apply it to every tag (lowercase is the safest default) so variants collapse into a single tag.
- Trim leading and trailing spaces from every tag and from the email column.
- Remove duplicate tags within the same cell so a contact does not carry the same tag twice.
- Standardize the separator: a plain comma between tags, and a comma plus a space between group names.
- Replace or delete emojis in tag names, and shorten any tag over 100 characters.
- Open the finished .csv in a plain text editor and verify that any cell containing commas is wrapped in double quotes.
- Delete rows with obviously broken emails (missing .com, misspelled domains) so you are not surprised when they silently drop.
Doing this by hand across thousands of rows is where mistakes creep back in. A dedicated cleaning pass is faster and repeatable. PipeSheets is built for exactly this kind of prep: upload the export, trim whitespace across all columns, use case transform to force tags to a consistent lowercase, and standardize null values so empty tag cells do not import as literal text. You can preview the before-and-after with detected column types before you download, so you see the tag column is clean before it ever reaches Mailchimp.
PipeSheets exports a proper UTF-8 CSV with correct quoting, which means fields that contain commas come out wrapped in double quotes automatically, without the leading-zero and encoding mangling that Excel introduces. Save the sequence of steps as a reusable pipeline and every future export from the same source gets the same clean, correctly quoted tags column with one click.
The short version
Put all of a contact's tags in one Tags column, comma-separated, and make sure that cell is double-quoted in the raw CSV so the commas do not shift your columns. Use groups, with a comma and a space between names, when contacts belong to named audience categories, and apply a single import-wide tag instead of a column when the tag is the same for everyone. Remember that existing subscribers are updated in place, while unsubscribed, cleaned, and syntactically invalid addresses are skipped no matter how good your tags are. Normalize casing, trim spaces, and dedupe the tag list first, and the import lands clean the first time.
Related guides
- Why Your Mailchimp Contact Import Fails (and How to Fix It)Mailchimp is strict about how your contact file is formatted. Here's what triggers "we can't upload that file type," the five issues that quietly break imports, and how to clean your list before you upload.
- CSV File Opens in One Column in Excel? Here's the FixWhen a CSV opens with every value crammed into the first column, the delimiter and your regional settings disagree. Here's how to fix it in minutes.
- How to Convert Excel (XLSX) to CSV UTF-8 Without Losing DataSaving an Excel file as CSV is easy to get wrong — the default option mangles accents and drops leading zeros. Here's how to export a clean UTF-8 CSV that imports anywhere.
- Mail Merge From Customer Exports: Cleaning Names, Addresses, and Salutations at ScaleA raw customer export is never merge-ready. Here is how to split names, build a salutation with a safe fallback, normalize addresses, and drop undeliverable rows before you print 500 letters.
Try the automated solution
PipeSheets can fix these issues automatically. Clean your first file free.
Clean Your CSV