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.
First: consent¶
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:
- Are the umlauts right?
- Is the status right?
- Are the people in the right group?
- 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.