A canvas mail sack standing upright, its neck gathered by a braided drawcord and heaped over with folded letters, a blank luggage tag hanging from the cord
Email campaigns5 min read

What does my mailing list import report mean?

You have handed bernard your files and pressed Read my files and show me the report. Nothing has been written. This page is what every line of that report means, in the order it appears.

The prompt

“Read my ActiveCampaign files for [my site] and take me through the report line by line before anything is imported.”

Signed in, Get my prompt fills in your site for you. Otherwise press Copy and fill in the [bracketed] parts. First time? Connect your AI to bernard once: Use your own AI (opens in a new tab).

The headline

One sentence with four numbers:

N addresses go on your do-not-email list first. M people become contacts, K of them with the permission you confirmed. J rows could not be read.

Read it as a sanity check against what you exported. If you exported a thousand unsubscribes and the first number is nought, you have loaded the wrong file or labelled it as the wrong thing.

“First” is not a figure of speech. Those addresses are written before the first contact exists, so there is no moment during the import at which somebody who left you is reachable.

Who goes where, and why

Under the headline is one line per reason, largest group first. There are six:

  • unsubscribed on ActiveCampaign and their address bounced on ActiveCampaign. Both go on your do-not-email list. The first can never be lifted by you; a no belongs to the person who said it.
  • on your ActiveCampaign exclusion list. Also do-not-email. These are the ones that would otherwise have looked reachable, because ActiveCampaign lets somebody be Active on a list and excluded at the same time.
  • active on a list whose permission you confirmed. A contact, with a permission record naming the list and the date.
  • active on a list you did not confirm permission for. A contact, with no permission record. Honest, and always available.
  • never confirmed their subscription on ActiveCampaign. A contact, no permission. These are the people who started signing up and stopped.

If one address appears with two reasons anywhere in your files, the strictest wins. An address that is Active on one list and Unsubscribed on another is suppressed.

Duplicates and rows that would not read

Then a line counting addresses that appear in more than one file, and the rows bernard could not read. The unreadable ones are listed with their file and row number so you can go and look. They are never imported and never silently repaired.

The commonest cause is a stray comma or a missing address in a row that looks fine in a spreadsheet.

Tags

Every tag bernard found, and what each one becomes. Your ActiveCampaign tags come across as they are, and each list you named becomes a tag of its own so you can still find that group afterwards. You can rename any of them here, or clear the box to drop one. What happens to my lists and tags when I bring my list across? covers what to keep.

Custom fields

For each ActiveCampaign custom-field column, bernard proposes one contact field: its type worked out from the values (a date if 9 in 10 values look like dates, a number if 9 in 10 look like numbers, otherwise text), with an example value and how many people have a value in it. Up to 50 fields are proposed; any beyond that are listed with the reason they are left out. Ask Bernard to rename or leave out a proposed field before you approve the import.

The import fills the field for anyone it adds, and for anyone who was already a contact, without ever overwriting a value you had already set. If you undo the import, only the values it filled are removed, and a value you changed after the import stays as you left it; the fields themselves stay, and you can archive one if you no longer want it.

One column does not become a field: ActiveCampaign’s “Company” becomes the contact’s organisation, not a custom field.

The permission sentence

Then the line that matters most:

Permission you bring over is recorded on each contact and you can see it there. It joins your campaign audience 48 hours after this import finishes, and your first campaign afterwards is capped at 200 of the people it brought.

This is not a caveat about your files. It is the timetable bernard follows for every import, stated on purpose. When can I email the people I just imported? explains the wait, the cap, and what happens if somebody complains.

What does not come with you

A short list, always the same, so you read it before you decide rather than discover it in a month: automations with their triggers, branches and goals; dynamic segments, lead scores and deal scores; contact notes, which ActiveCampaign does not export at all; who opened or clicked which campaign; site tracking, the plugin, landing pages, SMS and integrations; and your ActiveCampaign sending records.

If any line there is the reason you pay for ActiveCampaign, stop and read Move my mailing list from ActiveCampaign again.

Approving it

Import exactly this runs the plan you just read and nothing else. Change a tag name, tick a list, or add a file, and the report becomes stale: bernard throws it away and asks you to read the new one. That is deliberate. The thing you approved has to be the thing that runs.

Afterwards you get the same report again, built from what actually happened. The two should agree. If they do not, bernard says so, and Undo a mailing list import is one click away.

Limits

Bernard reads up to 20 files at a time and up to 5,000 rows in total. Past that it refuses the upload rather than reading part of it, because a half-read list is the one outcome that would let a suppression go missing. Split a bigger list into more than one import and do the do-not-email files in every one.

Questions people ask

Has anything been written when I am reading this?
Nothing at all. No contact, no permission record, no do-not-email entry. The report is produced from your files in memory and thrown away if you walk off. Writing only starts when you approve this exact report.
The headline says fewer people become contacts than there are rows in my files. Why?
Three usual reasons, and all three are in the report. The same address in two files is one person. An address the do-not-email side names is suppressed rather than made a contact. And a row bernard could not read is listed by file and row number and skipped.
What does ‘active on a list you did not confirm permission for’ mean?
That you left a list unticked at the permission step. Those people still become contacts with their tags; they carry no permission record. It is a perfectly good answer, and it is the right one for any list you cannot account for.
The custom fields list is full of things I did not make.
That is normal for a list export. ActiveCampaign includes its own columns, such as List name, Status, Date Subscribed, IP Address and User Agent, and bernard proposes one contact field for each column it does not recognise, up to 50, with the rest listed with the reason. You can rename or leave out a proposed field before you approve the import.
Why does the report say my audience count will not move straight away?
Because it will not, not immediately. Permission you confirm is recorded and readable on every contact, and it starts counting towards your audience 48 hours after the import finishes. Your first campaign after that reaches at most 200 of the people that import brought.
I changed a tag name. Why did the Import button disappear?
Because the report on screen is now a report of something else. Your approval names one exact plan, so bernard makes you read the new report before it will accept a new approval. Read it again and the button comes back.
I imported and the second report does not match the first.
Bernard says so in plain words rather than hiding it, and the usual cause is a row that failed to save. Undo the import, check the file, and read the report again.
What happens to a value I changed after the import if I undo it?
It stays as you left it. Undo removes only the values the import filled that nobody has touched since, and the undo report says how many it kept because you changed them. One limit: for an import made before 14 October 2026, a change made before that date cannot be told apart from the import’s own value, so undo removes it.

Next