Building targeted audiences in the Emails screen (licence expiry, tiers & packs)

Super Speedy Plugins

The Emails screen has an audience builder that lets you stack simple filters to reach exactly the right people — for example “everyone whose Scalability Pro licence has expired but who never bought a Pack”. This guide walks through the builder and finishes with two complete, copy-me examples.


Where it is

Go to SSE Emails > Emails > Compose New. In the Audience row, pick Build audience (filters).

You get two lists of filters:

  • Include filters combine using the Match dropdown at the top of the Include list:
  • ALL of these filters (AND) — a subscriber must match every Include filter to qualify. This is the default, and is what you want when each filter narrows a different attribute (e.g. owns this product and licence expiring soon and on this list).
  • ANY of these filters (OR) — a subscriber qualifies if they match at least one Include filter. Use this to reach owners of any of several products — e.g. owns Product X or Y or Z. (Three “Owns product” rows under ALL would mean owning all three at once, which is rarely what you want.)
  • Exclude filters always drop anyone who matches any of them.

So the mental model is: “match everyone who meets ALL (or ANY) of the Include rules, then remove anyone who matches an Exclude rule.” A common shape is ANY include + exclude: owns X or Y or Z, but not A, B or C.

As you add, change, or remove filters, the Recipients count updates live (e.g. “Recipients: 142 (158 matched, 16 opted out)”) so you always know how big the send will be before you commit.


Choosing a product

Several filters target a product. Just start typing the product name in the product box and pick it from the list — the builder stores the right product ID for you. You can also type the product ID directly (e.g. 6018) and pick the matching product — handy when you already know the ID. (The ID is shown in brackets next to each result, e.g. “Scalability Pro (#6018)”, and you can also read it from the product’s edit URL in WP Admin > Products…/post.php?post=6018&action=edit.)

Does choosing the product include all its licence tiers?

Yes. Choosing a product matches owners of every variation / licence tier of it — 1 year, lifetime, 5-site, unlimited, and so on. WooCommerce variations collapse to the parent product in the ownership data, so “Owns Scalability Pro” means “anyone who ever bought any Scalability Pro tier.” You do not need to pick each variation. To split yearly owners from lifetime owners, add a Licence tier filter (below).


The licence-aware filters

These read licence data (the renewal/expiry date and the tier) that SSE derives from your WooCommerce orders. On a freshly-updated site this data is filled in by running wp sse migrate licenses --commit once; after that, new orders keep it current automatically.

Owns product

Matches owners of a product. Two useful checkboxes:

  • Direct buyers only — only people who bought the product as a standalone purchase. This excludes anyone who only got it bundled inside a Pack.

Licence tier (yearly vs lifetime)

Filter the owners of a product by whether their tier is or isn’t lifetime. It reads the tier of their most recent direct purchase. Because upgrades only ever go one way (nobody downgrades from lifetime back to yearly), choosing is yearly (not lifetime) also reliably means “has never upgraded to a lifetime tier.”

Licence expiry window

Matches people whose licence renewal/expiry date falls inside a window relative to today. The from and to boxes are signed day offsets:

  • 0 = today
  • a negative number = that many days in the past
  • a positive number = that many days in the future

So:

  • Expired = to = 0, from = a big negative like -3650 (anything that lapsed in the last ~10 years up to today).
  • Lapsing soon (e.g. next 21 days) = from = 0, to = 21.
  • Recently lapsed or about to lapse = from = -365, to = 21.

The Product box on this filter is optional: enter a product ID to scope it to one product, or leave it blank to mean “an expiring/expired licence of any product.”

Lifetime tiers have no renewal date, so they’re never matched by an expiry window — which is exactly what you want when you’re chasing renewals.

Owns via pack/bundle

Matches anyone who owns a product through a Pack/bundle. You’ll almost always use it as an Exclude to remove Pack owners from a single-product offer. It’s worked out from each Pack’s actual contents, so when you create a new Pack it’s handled automatically — no configuration to keep in sync.


Example A — Expired Scalability Pro licence, never bought a Pack

Use this to nudge standalone Scalability Pro customers whose licence has lapsed, without bothering anyone who’s already on a Pack.

Include filters:

  • Owns product = Scalability Pro, with Direct buyers only ticked
  • Licence expiry window, product = Scalability Pro, from = -3650, to = 0

Exclude filters:

  • Owns via pack/bundle

Why it works:

  • The expiry window (to = 0) keeps only people whose Scalability Pro renewal date is on or before today — i.e. expired.
  • Lifetime Scalability Pro owners drop out automatically, because lifetime tiers have no renewal date.
  • Direct buyers only + Exclude: Owns via pack/bundle means Pack customers are left out — they should get a Pack-specific offer instead, not a single-plugin renewal.

Example B — Anyone with an expired licence who hasn’t renewed or upgraded (any product)

A broader win-back: everyone across your whole catalogue whose licence lapsed and who hasn’t come back.

Include filters:

  • Licence expiry window, product = (leave blank — any product), from = -3650, to = 0

Exclude filters:

  • Owns via pack/bundle

Why it works:

  • A renewal pushes the date into the future, so a date still in the past means they didn’t renew.
  • An upgrade to lifetime removes the renewal date entirely, so lapsed-with-a-renewal-date means they didn’t upgrade to lifetime either.
  • Exclude: Owns via pack/bundle covers the other kind of upgrade — moving to a Pack.

One nuance worth knowing: this matches per lapsed product. Someone who let one product lapse but renewed a different one will still match on the lapsed product. That’s usually the behaviour you want for a win-back, but it’s good to be aware of.


Before you send

  • Set the Category to “Product marketing” for product-upgrade emails. This makes the one-click unsubscribe link scoped to that product, rather than opting the person out of all marketing.
  • Use Preview to see the rendered email (and the live recipient count), then Send test to me to check it in a real inbox. Both render through the exact same engine as the real send, so what you preview and test is what gets sent.
  • Power users can switch the Audience type to Advanced (JSON segment query) for anything the builder doesn’t cover — but the two examples above (and most renewal/upgrade campaigns) are fully buildable with the filters.

Leave a Reply

Your email address will not be published. Required fields are marked *

×
1/1