Clean CSVs for ActiveCampaign imports
ActiveCampaign keys a contact on its email address, and it charges you by how many contacts you keep. That combination makes a messy import expensive twice over: duplicate rows inflate the contact count you pay for, and a malformed address either fails validation or lands as a second record for a person you already had. Sigmera cleans the export before any of that happens. There is no connected app and no API key here — you fix the file on your own machine, in a browser tab, then run ActiveCampaign's own import with data that already matches the shape it expects.
How it works
- 11. Export the list from wherever it livesPull the contacts out of the CRM, form tool, e-commerce platform, or spreadsheet that currently holds them. A CSV is ideal; an .xlsx works too, because the conversion happens in the browser. Nothing about this step involves ActiveCampaign yet.
- 22. Clean the file in your browserOpen the file in Sigmera and run the passes the list needs: drop duplicate email addresses, normalise the address column, split the name field into first and last, standardise phone numbers to E.164. The file is read into the tab with client-side JavaScript — it is never uploaded to a server, and there is no copy of your contact list anywhere but your own device.
- 33. Download the cleaned CSVExport the finished file. Previewing every result is free and unlimited; downloading a finished file is the step that counts against a plan. What lands in your downloads folder is a plain CSV with one contact per row and the columns already named the way you want to map them.
- 44. Import it with ActiveCampaign's own importerUse the platform's import flow and map the columns to contact fields — email, first name, last name, phone, tags, and any custom fields you use. Because the file was cleaned first, the mapping step is where you make decisions rather than where you discover problems.
- 55. Re-run the same passes on the next exportThe cleanup is a sequence, not a one-off: deduplicate, fix emails, split names, standardise phones, export. Running it in the same order on every new list keeps the contact count you pay for honest and keeps personalisation from breaking on a blank last name.
Common ActiveCampaign clean-ups
ActiveCampaign's plans are sized by contact count, so every duplicated row you import is a line item. The trouble is that a list assembled from two or three sources — a webinar signup, a form export, an old spreadsheet someone kept — almost never announces its duplicates. The same person appears once as sarah@acme.com and once as Sarah@Acme.com, or twice with the same address and different capitalisation of their name. Removing them after the import means finding them inside the platform, one merge at a time; removing them before it is a single pass over the file.
- Load the exported file into the duplicate remover
- Deduplicate on the email column, not the whole row — a differing job title should not save a duplicate contact
- Check the preview of what would be dropped before you commit to it
- Download the deduplicated CSV and import that file instead
Email is the one property ActiveCampaign requires — every other field on a contact is optional. That makes the address column the single point of failure for the whole import. ActiveCampaign's own API documentation spells out what counts as valid: at least one character before the @, an @ separating the local part from the domain, and a dot in the domain with at least two letters after it and no special characters. Exports break those rules quietly — a trailing space picked up from a form field, a stray character pasted out of a mail client, a row where someone typed their name into the email box.
- Load the file into the email column cleaner
- Lowercase and trim the address column in one pass so casing and stray whitespace stop producing near-duplicates
- Review the rows it flags as genuinely malformed rather than merely untidy
- Fix or drop those rows, then download the cleaned CSV
A contact in ActiveCampaign has separate first_name and last_name properties. Most exports hand you neither — they hand you a single Name or Full Name column, because that is how the form that collected it was built. If you import that as-is you get either a first name holding somebody's entire name, or a blank last name across the whole list, and every piece of personalisation you send afterwards inherits the mistake. Splitting the column by hand is where the edge cases bite: two-word surnames, suffixes, and the rows written "Last, First" instead of "First Last".
- Open the name splitter and load the export
- Point it at the column holding the whole name
- Choose whether the source reads "First Last" or "Last, First", and whether you want a middle-name column
- Check the preview rows where a suffix or a compound surname appears
- Download the CSV with first and last name as separate columns
A contact record carries a phone property alongside the email, and it is the field that decides whether SMS works later. Phone columns arrive in whatever shape the source system used: (312) 555-0134 from one CRM, 0312 555 0134 from a European form, 3125550134 with the leading zero already eaten by a spreadsheet. E.164 — the ITU standard format of a plus sign, a country code, and the national number with no spaces or punctuation — is the one shape that stays unambiguous across all of them. Getting there by formula means guessing a country code per row.
- Load the file into the phone number cleaner
- Set the default country for rows with no international prefix
- Convert the column to E.164 and review the rows it could not resolve
- Download the CSV with a phone column that reads the same way in every row
The list is often not a CSV at all — it is an .xlsx with three tabs, a header row that starts on row 4, and a couple of columns nobody needs. ActiveCampaign's importer wants a comma-separated file with one contact per row, so the workbook has to be flattened first. Saving as CSV from a spreadsheet application is where leading zeros vanish from postcodes and long account numbers turn into scientific notation, because the application applies its own type guessing on the way out.
- Load the workbook into the Excel to CSV converter and pick the sheet that holds the contacts
- Confirm the header row is the one being read as column names
- Check that identifiers with leading zeros survived the conversion as text
- Download the CSV, then run the deduplication and email passes over it
Sources
Frequently asked questions
- Does Sigmera connect to my ActiveCampaign account?
- No, and that is deliberate. There is no OAuth connection, no API key, and no sync. Sigmera cleans the exported file on your own machine and hands you a CSV; ActiveCampaign's own importer does the importing. Nothing is granted access to your account and nothing is sent to a third party.
- What is the only field ActiveCampaign actually requires?
- The email address. ActiveCampaign's API documentation for its bulk contact import lists email as the one required property — first name, last name, phone, tags, and custom fields are all optional. That is why the email column is worth cleaning before anything else: it is the field the whole record hangs on.
- Why do duplicates matter more here than in other tools?
- Because ActiveCampaign prices by contact count. A duplicate is not just an untidy record — it occupies a slot on your plan and can receive the same campaign twice. Deduplicating on the email column before the import is the cheapest place in the whole process to catch them.
- Do I need to split my name column before importing?
- If you want personalisation to work, yes. A contact stores first_name and last_name as separate properties, so a single Full Name column has to be split somewhere. Doing it in the file is safer than doing it afterwards, because fixing it later means re-importing over records you have already created.
- What format should phone numbers be in?
- E.164 is the format worth standardising on: a plus sign, the country code, and the national number with no spaces, dashes, or brackets. It is the ITU's international numbering standard, which is why it survives a hand-off between systems that each format numbers differently. A column mixing (312) 555-0134 and 0312 555 0134 will not.
- Can I import an Excel file directly?
- The importer expects a comma-separated file, so a workbook has to be flattened first. Convert it in the browser rather than saving as CSV from a spreadsheet application — that is the step where leading zeros disappear from postcodes and long account numbers get rewritten as scientific notation.
- Is uploading a contact list to a cleaning tool a GDPR problem?
- It creates one you then have to account for. A service that receives personal data on your behalf is a processor you have to contract with and document under Article 28. Sigmera processes the file inside your browser, so the names, addresses, and phone numbers never leave your device — there is no transfer, and so no processor to name.
- How large a file can I clean this way?
- There is no server-side row cap, because there is no server. The practical limit is your device's memory, and a list of tens of thousands of contacts is unremarkable on a normal laptop. Note that ActiveCampaign's own API import is capped separately — up to 250 contacts per bulk request and a payload under 400,000 bytes — but that limit applies to the API, not to the CSV you clean here.