Skip to content

Bringing subscribers over from another system

From another newsletter tool, from a spreadsheet, from a shop system. The technical part is done in twenty minutes. The more important part is the question that comes before it.


The import writes no consent record. The plugin does not know what was consented to, or when — it cannot know.

For every imported address you need proof that the person consented to receiving mail. Sort that out before the import:

Where the list comes from What you need
From another newsletter tool with double opt-in The export of the sign-up data with dates. Keep it
From a shop system, with a „newsletter" tick box on the order The order date and the wording of the tick box at the time
From a spreadsheet, grown over years Probably nothing. Read on below
Bought or „collected" No basis. Do not import

If you have no proof

The honest route is to import the list with status 1 (waiting for confirmation) and to ask for confirmation through the bulk action Send opt-in mail again.

You will lose addresses in the process — often half. The ones that stay will hold up, and your deliverability gets better rather than worse: a list half made up of people who do not remember signing up produces spam complaints.

This is not legal advice. But it is the route on which you sleep soundly afterwards.

Keep the proof, even though it does not travel into the plugin. A folder with the old system's export and a date will do.


Preparing the file

The easiest way to the right header row

Export first. Newsletter → Subscribers → CSV export gives you a file with exactly the header the import expects. Replace the rows below it with your data.

The columns

Column
email Required
title Salutation, „Herr" or „Frau" — the text as it appears in the form
vname, name First and last name
strasse, plz, ort Rarely needed
status 0 inactive · 1 waiting for confirmation · 2 active
optin_time Time of confirmation, YYYY-MM-DD HH:MM:SS
groups IDs of the groups, comma-separated
uf_<number> one per subscriber variable
email;title;vname;name;status;optin_time;groups
anke.brandt@post.test;Frau;Anke;Brandt;2;2024-03-14 10:22:01;1,3
jens.kern@mail.test;Herr;Jens;Kern;2;2024-05-02 08:11:47;1

Three traps, all three common

The character set. Save as UTF-8. Excel offers „CSV UTF-8 (comma delimited)" for that. With the wrong encoding, umlauts arrive in the database as ä, and that can only be straightened out by hand afterwards.

The separator. The semicolon out of the box. Your file has to use the same, or you change it under General.

The status. If the column is missing, every new subscriber gets 0, i.e. Inactive — and therefore never a newsletter.

Create the groups first

The groups column holds IDs, not names. Create the groups under Newsletter → Groups and note the numbers from the Id column.

If everyone is to go into the same group, leave the column out and choose it during the import.


The import

Five rows first

Make a file with five addresses and import that first.

Newsletter → Subscribers → CSV import

Setting For the trial run
Existing e-mail addresses Overwrite
Target groups Comma-separated in the „groups" column, or Specify manually
CSV source file Your file

Then check the subscriber list:

  1. Are the umlauts right?
  2. Is the status right?
  3. Are the people in the right group?
  4. Are the columns mapped correctly, or is the city in the last name field?

Then the rest

Make a database backup first. An import cannot be undone.

What distinguishes the three group options

Choice Existing groups
groups column are replaced
Specify manually are replaced
Specify manually (add groups) stay, the chosen ones are added

On the first import that makes no difference. On the second it does.


After the import

1. Check

Where What for
Subscriber list, Unassigned If a lot of people sit there, the group assignment did not arrive
Status filter Active Does the number match your expectation?
Open a few entries Are the fields where they belong?

2. Prepare the first issue

Do not send the normal newsletter straight away. The first mail to a list you have taken over should say why it is coming:

You are receiving this mail because you signed up for our newsletter. We have moved to a new sending system; nothing changes about the content or the frequency. If you no longer want it, unsubscribe below with one click.

That costs a few unsubscriptions and saves you spam complaints — and spam complaints cost deliverability for everyone else too.

3. The first issue in portions

If the list is large and has not been used for a long time, many addresses lead nowhere. A flood of undeliverable mail all at once is a bad sign to the recipient's mail server.

  • Switch on bounce processing beforehand.
  • Send the first issue group by group over several days if there are several thousand addresses.
  • Look at the bounces after every group.

4. Clean up

After the first issue: Keeping the list clean.


The special case of wpShopGermany

If the sister product runs in the same installation, there is an interface from the shop side — you do not need the CSV detour. Look in the wpShopGermany documentation or ask in the forum.