Skip to main content

Scheduled overview

In short

A Scheduled campaign fires on a recurring cadence instead of a member event. Today: every day at a chosen time. It walks through the matching audience and runs actions on each tick — the home for birthday and anniversary campaigns. For one-shot pushes use Future Campaign; for event-driven use Rule.

A Scheduled campaign wakes up on the schedule you set, walks through the members who match its audience, and runs its actions against them.

info

Today, Scheduled is mostly used for member-attribute-date campaigns — birthdays in particular. The product vision is to grow this into a general surface for planning and automating any timed engagement (longer cadences, weekly/monthly patterns, arbitrary recurring engagement), but in the current release the supported frequency is every day at a specific time. Longer intervals (every 30 / 60 / 90 days) appear in the dropdown but aren't active yet.

This page is the map for the Scheduled kind. Most of the shape is shared with Rule; this page focuses on the differences and on the problem Scheduled is uniquely good at today.

What makes something a Scheduled campaign

Three properties define it and separate it from the other four campaign kinds:

  • Schedule-triggered. A Scheduled campaign starts because a moment on the clock arrived, not because a member did something. Contrast with Rule (event-triggered) and Future Campaign (also date-driven, but one-shot instead of recurring).
  • Uses a narrower action set than Rule. Scheduled exposes the subset of actions that fit the birthday / timed-engagement use case it currently serves — not the full 9-action menu a Rule has. As the kind expands toward the broader "any timed engagement" vision, the action set is likely to grow; today it's pared down to what a birthday campaign realistically needs. See the Actions catalog for the full Rule menu, and treat Scheduled's picker as the current intersection of that menu with what's useful at a scheduled moment.
  • The audience is the whole filter. Because there's no triggering event to key off, whichever members you target on the audience tile are the members the campaign runs against on each tick. If you want to narrow the run further — "only members with X tag and Y balance" — you do it in the audience, not in a step-2 conditions block the way you would on a Rule.

When to reach for Scheduled

Pick a Scheduled campaign when the answer to "what starts it?" is a date the member carries with them — a birthday, a join anniversary, a renewal day — rather than an event they cause. The pattern is always the same: the campaign wakes up daily, and the audience narrows each run to "the members for whom today is the relevant date."

The canonical example:

  • "Send a birthday gift to members whose birthday is today, every day at 10am." → Scheduled, Every day at 10:00, audience narrowed to Birthday Day & Month = Execution day and month.

Compare:

  • If the cadence is "once, on a specific date" rather than recurring, use Future Campaign instead — same action set, no recurrence.
  • If the trigger is a member event (purchase, tag change, coupon entry), use a Rule.
  • If you want a silent discount applied at the register instead of a scheduled action, use a Deal (identified members) or POS Deal (any shopper).
info

Birthdays and anniversaries live here. There is no Birthday trigger in the Rule catalogue — member-attribute dates like birthday, join anniversary, and "has it been a year since last visit" are surfaced through the audience on a daily Scheduled campaign, not through a trigger on a Rule. See the Birthday gift playbook for the worked pattern.

Anatomy of a Scheduled campaign

Every Scheduled campaign has the same three-part shape:

  • A schedule — the Specific time tile on step 2. Frequency + start time. Today the only usable frequency is Every day; a start time sets when the daily run fires.
  • An audience — the Apply to members tile on step 2, reached from the To registered members default. Either All registered members or Specific members narrowed by attributes (the attribute picker here is the same surface a Rule's audience uses). For a Scheduled campaign, the audience does double duty: it's both the "eligible members" filter and the equivalent of a trigger's conditions — since there's no event to narrow, any filtering you want lives here.
  • One or more actions — from the Scheduled-specific action menu (a subset of the 9-action set, fitted to the birthday / timed-engagement use case). Actions can be stacked (all run together per qualifying member) or split into cases (first matching case wins per member).

The Scheduled wizard

Four steps, same shape as every other kind.

Step 1 — Campaign details

Name, kind (Scheduled), description, initial state. The description field is especially useful for Scheduled campaigns because a recurring campaign's why isn't visible in the audience / actions themselves — park "this is the monthly statement email, retire after Q4 re-platform" here so future-you can find it.

Step 2 — When (the schedule + audience)

Step 2 for a Scheduled campaign is two tiles side by side:

  • To registered members — opens the Apply to members picker. Choose All registered members or Specific members and build an attribute condition (for the birthday pattern, Birthday Day & Month equals Execution day and month). This is the real filtering surface on a Scheduled campaign, not a conditions block below.
  • Specific time — opens the Apply at dates and times picker. Pick a frequency (today: Every day) and a start time. Start date is also available for when the recurrence should begin.

A useful framing: on a Rule, step 2 answers "which events should fire this?". On a Scheduled campaign, step 2 answers "at each daily run, which members should this apply to?" — and both tiles work together to answer it.

tip

Don't try to do birthday-filtering in the schedule tile. The schedule is about cadence and time-of-day, not about "only when today is someone's birthday". The birthday filter goes in the audience — something like Birthday Day & Month equals Execution day and month. The schedule just says "every day at 10am"; the audience narrows the daily run to the members for whom today is their birthday.

Step 3 — Actions

Pick one or more actions from the Scheduled-specific action menu — a subset of the 9-action set shaped around the birthday / timed-engagement use case. The mechanics mirror Rule's step 3: actions can be stacked (all run together per qualifying member) or split into cases (first matching case wins per member).

What's on the picker is narrower than Rule's menu — not every Communication / Assets / Membership action that makes sense on a purchase event makes sense on a birthday run, and the Scheduled picker reflects that. See the Actions catalog for the full set a Rule exposes, and treat the Scheduled picker as the current subset the kind supports today.

Step 4 — Preview

Read-only summary. Save commits the campaign. If the state on step 1 was Draft, the campaign is saved as a draft and won't fire on its next scheduled tick until you flip it to Active from the list view.

Lifecycle

Three states — Active, Draft, Paused — and what happens to missed ticks

Same three states as Rule:

  • Active — the campaign fires on its schedule.
  • Draft — saved but not firing. Use while configuring.
  • Paused — temporarily not firing.
warning

A Scheduled tick that would have fired while the campaign was Paused is lost — there's no catch-up run when you resume. If a birthday campaign is paused on a Tuesday, the members whose birthday fell on Tuesday don't get backfilled when you reactivate on Wednesday. Plan pauses around this: avoid long pauses on campaigns whose timing is load-bearing (birthdays, statement day, weekly re-engagement).

Editing an Active Scheduled campaign takes effect on the next tick — changes don't retroactively affect prior ticks.

Testing a Scheduled campaign before going live

4-step pattern using a test-user tag and a near-future schedule slot

Because the minimum cadence today is daily, there's no "fire now" shortcut. The pattern:

  1. Tag yourself and a teammate with something like test-user.
  2. Build the campaign with state Draft, audience narrowed to tag = test-user (plus whatever birthday or attribute condition you're testing), schedule set to a time in the next few minutes.
  3. Flip to Active and wait for the scheduled time. Verify the run hit the test members and the actions landed correctly.
  4. Widen the audience to the real target population and set the schedule to the production time of day.

If you also want to test the date-matching (e.g. Birthday Day & Month equals Execution day), set the test member's birthday to today for the duration of the test.

Tag the test member before the daily fire time

Daily Scheduled campaigns evaluate the audience at the configured fire time and don't reconsider members tagged later that day. If your campaign fires at 09:00 and you add the test-user tag (or set a member's birthday to today) at 10:00, that member will not receive the run until the next day. Apply tags / set test attributes before the daily slot, or push the campaign's scheduled time to a slot a few minutes ahead so the upcoming run picks them up.

Scheduled vs Future Campaign

Both are date-driven; the differences are recurrence and the action set each exposes:

  • Scheduledfires repeatedly on a cadence (today: daily). Uses a subset of the 9-action set, fitted to its birthday-focused use case.
  • Future Campaignfires once, at a specific moment (now or future). Uses the full 9-action set a Rule would.

If you catch yourself setting up a Scheduled campaign with an end-date a week out, it was probably a Future Campaign — the one-off is easier to reason about than a Scheduled campaign that needs to be retired.

Gotchas

6 things that commonly trip people up
  • Daily is the only supported frequency today. The dropdown shows Every 30 / 60 / 90 days options, but they aren't active — picking one won't produce the cadence the label implies. If you need a non-daily pattern right now, you don't have one; model it as a Rule with a date condition if the shape allows, or wait for the cadence menu to broaden.
  • The action menu is narrower than Rule's. Scheduled today exposes a subset of actions fitted to birthday-style campaigns — not the full 9-action set. If you open step 3 expecting the whole Rule menu and find an action missing, that's why; don't look for it, it's not hidden.
  • The audience is doing the real filtering. Unlike a Rule, where step-2 conditions filter the triggering event, a Scheduled campaign has no event — so any "only fire for members who meet X" logic has to live in the audience (or in a step-3 case condition). Don't go looking for event-shaped conditions; they aren't there.
  • Pauses drop runs silently. A Scheduled campaign paused over a holiday doesn't backfill the days it missed. If the campaign is driving member-visible comms (birthday gifts in particular), a dropped day is a member who never got theirs — and there's no way to resurrect it later.
  • Schedule + audience is the whole model. There is no "only run if at least N new members joined this week" or similar meta-condition. The campaign fires every day at its scheduled time; it's the audience that decides whether a given day's run touches 0 members or 10,000.
  • Scheduled campaigns don't respond to member events. A member who joins today won't be immediately caught by a daily campaign until the next scheduled run. If you want instant reaction to a join event, use a Rule on Joins the program instead of (or alongside) a Scheduled campaign.