Docs

Series

Automated multi-step journeys: contacts enter through triggers, flow through messages, timed waits, condition branches and actions, and leave via exit rules — with a goal to measure whether the sequence worked.

Overview#

Open Outbound → Series. A series is a graph of steps, not a single blast: "when someone signs up, send a welcome email; if they haven't opened it in 3 days, send a reminder; either way, continue with the tips sequence" is one series with one branch.

A series is draft until you press Set live. Going live publishes a snapshot of the graph: contacts already flowing through keep following the version they entered on, so editing a live series never strands anyone mid-step — republish to apply changes to new entrants. A live series can be paused (no new entries, runs hold) and archived.

Series messages come out of the same monthly outbound-message pool as campaigns, and going live or enrolling contacts is blocked once the pool is exhausted (see the Outbound overview for plan limits).

Entry rules#

A series can have up to 5 entry points; a contact matching any of them starts a run:

Entry pointFires when
Enters a segmentA contact starts matching a saved segment — the workhorse trigger for lifecycle sequences.
Is createdA new contact appears — widget identification, import, or the API.
A date attribute comes upN days before or after a date stored on the contact (a plan renewal, for example). The offset can be up to a year either way.
ManuallyYou enroll a contact or a whole segment by hand — for one-off runs over an existing list.

Re-entry controls whether a contact who finished the series can enter again; when enabled, a minimum gap in days keeps repeat runs apart.

Steps, waits and branches#

StepWhat it does
MessageSends the contact an email, a chat message, an in-app post (announcement), or a push notification over the channels you pick. Delivered by the same machinery as campaigns, with the same variables and skip rules.
WaitPauses the run for a fixed time — from 5 minutes up to 180 days.
Wait untilWaits for a condition to become true, up to a timeout — with two outgoing paths: condition met and timed out. "If they don't open the email within 3 days, remind them" is a wait-until on opened with a 3-day timeout.
BranchChecks a condition right now and splits into yes / no paths.
ActionChanges the contact — set an attribute, or unsubscribe them from campaigns.
EndExplicitly finishes a path.

Conditions — shared by Wait until, Branch, exit rules and the goal:

  • Opened a message — the contact opened one of the messages sent earlier in this run. Only opens that happen after the wait starts count, and the builder only offers messages that are actually sent before the step.
  • Is in a segment — matches a saved segment right now.
  • Attributes match — any contact-attribute rule set (all / any matching).
  • Can be reached by — the contact has an email address, or a device with push enabled.
  • Is unsubscribed — opted out of campaigns.
  • Random share (A/B) — a stable random percentage split: a given contact always lands on the same side of the same split.

Branches can merge back together — both sides of "reminded or not" can continue into one shared tail instead of duplicating it. Loops are not allowed: the builder rejects a graph where a path circles back on itself.

Wait until conditions are re-checked about every 30 minutes — an email open is noticed at the next check, not the exact second it happens.

Exit rules and the goal#

Exit rules (up to 5) pull a contact out of the series early. Before each step the engine checks every rule; a match ends the run immediately. Typical use: "exit anyone who enters the Paying customers segment" — no more trial-nurture emails after they convert. Contacts who unsubscribe or disappear also stop receiving series messages.

The goal is a condition plus a window of 1–365 days: a contact who matches it within the window after entering counts as a conversion. The goal never changes what the series does — it exists purely so the report can tell you whether the sequence achieves what it was built for.

Stats and runs#

Each series tracks:

  • Entered / Active / Completed / Exited / Goals — the top-line funnel.
  • Per-step counters — how many runs passed each step, split into sent/ok, skipped, failed, and for branches the yes / no / timed-out outcomes, so you can see exactly where contacts flow.
  • The runs list — every contact's run with its status (running, waiting, done, failed), current step, next wake-up time and end reason.

Limits#

LimitValue
Steps per series60 (longest path 30 steps deep)
Condition steps16 branches / wait-untils per series
Entry points / exit rules5 each
Wait duration5 minutes to 180 days
Live series30 per workspace

These caps are safety rails — a runaway graph is the fastest way to send one contact forty emails. If you hit them, split the sequence into two series chained by a segment.

Workspaces that built series before the graph builder shipped may still see older linear series (a straight message / wait / tour list) alongside the new ones. They keep running as-is and can be converted into the new builder — conversion produces an equivalent graph without branches.