Lists and contacts
Collecting and grouping contacts, importing them, and letting people sign up themselves.
A contact is someone who can receive your newsletters. A list is a group of contacts. You always send to a list, never to individual contacts, so you need at least one.
One contact can sit in several lists. Someone can unsubscribe from one list and stay subscribed to another.
Lists#
You create them under Lists. A list has a name, and you immediately see how many contacts are in it and how many people have unsubscribed.
Two options are worth calling out:
- Test list. Send to a test list and the newsletter stays a draft afterwards instead of being marked as sent. That lets you do a real send to a small group without locking your newsletter.
- Hide the unsubscribe link. Only for lists with no legal obligation to offer one, such as messages to customers about their service or an internal list of your own band members. Recipients then cannot unsubscribe from that list themselves: the mail has no unsubscribe link, the mail client shows no unsubscribe button and unsubscribing from everything leaves the list alone. Only you can take someone off. For marketing mail an unsubscribe link is required by law. So do not use this to keep your unsubscribe rate down.
Per list you can also set a description in Dutch and English. That text appears as the heading above the signup form.
Adding contacts#
There are three ways.
By hand#
Under Contacts you add someone with an email address, first name and last name, and attach them to one or more lists.
Importing a CSV#
Upload a CSV with columns for email address, first name and last name. You first see how many valid addresses were found, and only then do you actually import.
While importing you choose which lists the contacts are attached to. Addresses that previously unsubscribed are skipped, so you cannot accidentally pull them back in. Afterwards you see exactly how many were added, how many were already there and how many were skipped.
Letting people sign up themselves#
The cleanest way, and the one that produces the best list. Every list has its own signup link that you can share anywhere.
Signing up uses double opt-in: someone enters their email address, gets a mail with a confirmation link, and only joins the list after clicking it. They can then optionally add their name. That way you know the address exists and that its owner signed up themselves.
The form on your own website#
To put the signup form on your own site there are three variants, all found on the list itself:
- Script. Paste the script tag where the form should appear. No styling is imposed, so your own CSS decides how it looks.
- Script in the head. For content management systems that do not allow script tags in the body. The first tag goes in your template's
head, the second where the form should be. - Iframe. A self-contained frame with a transparent background, so your own site's background stays visible.
On the iframe, change lang=nl or lang=en to pick the language.
Changing the styling#
With the script the form lands in your own page as plain HTML. It takes on your website's typeface and colours, and your own CSS can shape it any way you like. These are the classes you can style:
.listmailing-signup { } /* the whole block */
.listmailing-signup__heading { } /* the heading, with the list description */
.listmailing-signup__label { } /* the label above the input */
.listmailing-signup__input { } /* the email address input */
.listmailing-signup__button { } /* the signup button */
.listmailing-signup__message { } /* the message after signing up */
.listmailing-signup__message--success { } /* signed up */
.listmailing-signup__message--error { } /* something went wrong */
For example:
.listmailing-signup__input {
width: 100%;
padding: 0.6rem;
border: 1px solid #ccc;
border-radius: 6px;
}
.listmailing-signup__button {
margin-top: 0.5rem;
padding: 0.6rem 1.2rem;
background: #222;
color: #fff;
border: 0;
border-radius: 6px;
}
The iframe is a separate window, and your own website's CSS cannot reach into it. It takes the typeface, link colour and title colour you set under Appearance. If you want full control over the styling, use the script.
Who is on a list, and how they got there#
In the list overview, click the contact count of a list and the contacts overview opens with that list as its filter. Per person you then get the source, the date they subscribed and, if they left, the date and reason they unsubscribed. Those three columns only appear while you filter on a list, because outside one they mean nothing.
The source tells you how someone ended up on the list:
- Signup page: through the list's signup link, confirmed by mail.
- Form on your own site: through the script or the iframe on your own website, also confirmed by mail.
- Import: from a CSV file.
- Added by hand: added by you or a team member inside DJPage.
- Stayed subscribed after all: someone clicked the unsubscribe link and then chose to stay.
An unsubscribe carries the same kind of detail: the unsubscribe page, the unsubscribe button in the mail client, unsubscribing from everything, an undeliverable address, a spam complaint, or by hand.
Inside that list you can filter on source, and export the selection as a CSV including every date and reason. That gets you, in a few clicks, who signed up through the signup form and who unsubscribed from the mail.
Memberships from before September 2026 have no source and show as Unknown. That is not a mistake, the information simply was not recorded back then.
Managing contacts#
In the contacts overview you can search, sort and filter by list. This is the only contacts screen: filter on a list and it behaves as that list's member overview. Per contact you see which lists they are attached to, and you can toggle that. Hover a list label to see the status, the source and the date. If someone unsubscribed, it also names the reason they gave, when they picked one. Filter on a list and the source appears as its own column.
Unticking a list in the edit window unsubscribes that person from the list, with "Unsubscribed by hand" as the source. The membership is kept, with its source and signup date. Ticking the list again later leaves the unsubscribe in place. To subscribe someone again, click the list label in the overview.
Someone who unsubscribed from everything is unsubscribed from all your lists, with "unsubscribed from everything" as the source. If you later put them on a new list yourself, respect that choice: respecting an unsubscribe is not optional. Only lists with a hidden unsubscribe link stay as they were, because those are for messages your customers have to get anyway, such as about an outage or new terms.
Addresses that hard bounce or file a spam complaint are suppressed automatically. That protects your sender reputation, and with it whether your mail arrives at all.
Fixing a mistyped address#
A suppressed address stays suppressed, even after you correct it. That is deliberate: DJPage has no way of knowing whether the new address is any better than the old one, and another bounce costs you reputation again.
Open a suppressed contact and the top of the panel says why it is blocked and since when. If the address was undeliverable and you type a different one, the Lift the block tick box appears there. Turn it on and save, and the contact is a recipient again: the block goes, and the memberships the bounce put on hold are back on subscribed.
Only tick it if you are sure the new address is correct. If the contact left a list of their own accord before the address bounced, that stays as it was: it was about your mail, not about a typo.
For a spam complaint you are not offered that choice. That block belongs to the person rather than to the address, and someone who pressed "this is spam" wants no mail from you, whatever the address.
If you had already sent that person a newsletter and it bounced, that newsletter counts them in again under send to new contacts. They never received it, after all.
Filtering on status#
The Status column sums up, per contact, whether you can still mail them, and you can filter on it:
- Active: subscribed to at least one list.
- Unsubscribed: opted out. Filter on a list and it means that one list; filter on nothing and it means your whole page.
- Undeliverable: the address does not exist or refuses your mail for good. Suppressed automatically.
- Spam complaint: marked as spam. Suppressed automatically as well.
- Temporarily refused: the mailbox refused a delivery, because it was full or the server was down for a moment. Those addresses stay active and are not suppressed. We only show them, so you can see for yourself whether one keeps coming back. The count sits behind the status as a yellow label.
Opens and clicks#
If you sent a newsletter with open or click tracking on, the Opened / clicked column shows when someone last opened one of your newsletters, and below it when they last clicked a link. You can filter on who opened or clicked, and on who never did.
Read those filters with a pinch of salt. Never opened and never clicked also cover people who never received a newsletter from you, newsletters you sent without that tracking, and sends older than 180 days. Opens are an indication rather than an exact measurement anyway, because mail programs preload images or block them. A click is harder evidence than an open.
Open a contact and at the bottom you see the last newsletters that went to that address, with what happened to each one and when it was opened or clicked. We keep that history for 180 days; after that only the totals per newsletter remain.
Exporting data#
You can export the data of a single contact, or of all your contacts at once. The single-contact export is exactly what you need when someone files a subject access request under the GDPR, and it holds the subscribe and unsubscribe source per list. The send history is in there too, with what happened to each newsletter and which links the contact clicked.
The all-contacts export has an extra column naming the source per list. For more detail, such as the separate dates and the unsubscribe reason, filter on a list first and then export: the export follows your filters and gains that membership's columns.
Updated on 29 October 2026