Lists & campaigns

Lists & campaigns

How you build an audience and send to it: lists and segments hold your subscribers, signup forms grow them, and campaigns and autoresponders do the sending.

Mailing lists & segments

A mailing list is a group of subscribers with default sender settings. Each subscriber has standard fields (email, name, status) plus any custom fields you define, so you can store anything you want to personalize or target on.

A segment is a saved filter on a list, for example "subscribers in the last 30 days" or "anyone whose email domain is example.com." Segments let you target a campaign at a slice of a list without maintaining separate lists. Build them from rules combined with and/or logic; see the segments API for the full operator list. A segment can include unsubscribed or bounced people, which is handy for reports and exports, but campaigns and autoresponders only ever send to active members.

A segment can also take a portion of the list, for example 10% of it. The people in that 10% are picked at random, but the pick is stable: it's based on a key, and the same key always picks the same people.

A/B tests

An A/B test sends 2 or 3 versions of an email campaign to part of your list, then sends the best one to everyone else. To set one up:

  1. Start a new campaign and choose A/B test as the send type.
  2. On the Content step, give each version a name, a subject and its content. Use Add version for a third.
  3. On Review & send, choose how much of the list is in the test, how many hours to wait, and how the winner is picked: most clicks, most opens, or by you. A tie goes to version 1.

Set the test size to 100% for a plain split, where everyone gets one of the versions and there's no winner.

Once it's sent, the campaign page shows how each version is doing and when the wait ends. You can pick a winner there at any point while the test is running. On a test that picks its own winner, doing so ends it early. If you chose to pick the winner yourself, you have 7 days after the wait ends. After that, the people still waiting don't get the campaign.

Split tests across separate campaigns

If you'd rather run each version as its own campaign, use portions instead:

  1. Create campaign A with a custom audience, add the rule In a portion of the list, and set it to 0 to 10%. Copy the key shown next to the rule.
  2. Create campaign B the same way, paste the same key, and set it to 10 to 20%.
  3. Send both, and compare their results once the opens and clicks are in.
  4. Send the better version to 20 to 100%, again with the same key.

Because the ranges don't overlap and the key is the same, nobody receives more than one of the three. You can do the same with saved segments instead of custom audiences.

Signup forms

Signup forms collect new subscribers straight into a list. Create a form for a list in the console, then share its hosted link or embed it on your site. When someone submits it, they're added to the list.

A form can require double opt-in: the new subscriber gets a confirmation email and only joins once they click the link. This keeps your list clean and is a good default for marketing mail. Whether confirmation is required is set on the form.

Campaigns & autoresponders

There are two ways to send:

  • Campaigns: a one-time send to a list, segment, or custom audience. You write the content, pick the audience, and send now or schedule it. A campaign can also be an A/B test. See the campaigns API.
  • Autoresponders: automated messages that fire on a trigger rather than a manual send. Use them for welcome series, date-based reminders (e.g. a renewal a few days before a date field), or follow-ups based on whether someone opened or clicked a previous message. Each autoresponder has a trigger and an optional delay (immediate, or after minutes/hours/days/weeks/months). See Autoresponder triggers.

Autoresponder triggers

The trigger decides when an autoresponder sends:

TriggerSends
When a subscriber joins the listAs soon as someone is added to the list, or after your delay.
When a campaign is opened, clicked or sentWhen that happens to a campaign you choose.
When an autoresponder is opened, clicked or sentThe same, for another autoresponder. Use it to build a series.
When an autoresponder is not opened or not clickedWhen a set time has passed since an earlier autoresponder was delivered, and the subscriber still hasn't opened or clicked it.
Based on a date fieldOn a date stored for each subscriber, such as a renewal date.
Manual trigger via APIOnly when you trigger it through the API.

The campaign or autoresponder you follow has to be on the same mailing list as the new autoresponder. Open, click and sent triggers fire for whatever happens while your autoresponder exists and is active. That includes an open or a click on an email sent before you created it. A "sent" trigger only counts deliveries made after that.

For a click trigger, any link counts by default. You can pick specific links instead, from the ones in the email you're following, and then only clicks on those count. A link that contains a merge tag is different for each subscriber, so it can only be counted as "any link".

Not opened and not clicked

Here the delay is how long to wait for the open or the click, for example "If not opened within 4 hours". The follow-up goes out as soon as that wait ends, counted from when the earlier email was delivered. Both emails have to be email, not SMS. A few things to know:

  • Apple Mail Privacy Protection opens emails automatically, and those count as opens. That makes "not clicked" the more reliable choice.
  • If open or click tracking is off, everyone counts as not having opened or clicked.
  • Only emails sent after you created the autoresponder count.

Date-based autoresponders

Choose a custom field of type date, either one of the list's own fields or a global one. Then choose:

  • Days before or after: from 365 days before to 365 days after, or 0 for the day itself.
  • Repeat: every year on that month and day, or once on the exact date.
  • Send at: the hour it goes out, in New York time.

Each subscriber's date needs to start with the year, month and day (YYYY-MM-DD). Subscribers with no date, or a date in another format, are skipped. Date-based autoresponders have no separate delay, because the date and hour already say when they send.

Unsubscribe links

Gmail and Yahoo expect bulk mail to offer two ways to unsubscribe: a one-click option in the mail app, and a visible link in the email itself. BlacklistGuard handles both for every campaign and autoresponder.

  • One-click unsubscribe is added to every campaign and autoresponder email automatically. Mail apps like Gmail show it as an Unsubscribe button next to your name.
  • A visible link is up to you to place, wherever you like, with a merge tag. {{.UnsubscribeURL}} drops in a ready-made Unsubscribe link, and {{.UnsubscribeLink}} gives you the bare address to use in your own link, like <a href="{{.UnsubscribeLink}}">Stop these emails</a>. Every built-in template already has one in its footer.

If an email goes out without either tag, we add a simple Unsubscribe link at the bottom for you. That happens for the HTML and the plain-text version separately, and for every version of an A/B test. The review step tells you when it's going to happen.

You can turn the automatic link off under Settings in the console. If you do, make sure every campaign and autoresponder carries its own link, because mailbox providers may treat bulk mail without one as spam.

ℹTest emails you send from the editor don't get the automatic link, so don't worry if a test arrives without one. It's added when the campaign or autoresponder really sends. Transactional email sent through the API or SMTP is never changed.

Suppression

A suppression list holds addresses that should never be emailed. Unsubscribes and addresses that bounce because they can't receive mail are added automatically. So are people who report your mail as spam through a feedback loop. You can also add your own addresses or import a CSV. Suppression can apply globally or be scoped to a specific list or segment. See the suppression API to manage entries programmatically.