Flows in Adapty Mail
A flow turns a saved campaign into scheduled deliveries. It binds a trigger event (a user’s subscription state) to a segment (which users qualify) and the campaign they receive. Adapty Mail evaluates every flow whenever a matching event fires — no polling, no cron, no manual launch.
Triggers
Adapty Mail ships with three fixed triggers, each with its own flow view under Flows:
- Never purchased: Users who signed up but haven’t purchased yet.
- Expired: Subscriptions that have ended.
- Refunded: Purchases that got refunded.
Triggers are not configurable — you can’t create custom triggers or extend the list.
The All Users segment
Adapty Mail ships with a built-in All Users segment that has no filters — every user in the project qualifies. It’s most useful in flows as a catch-all row, serving anyone not matched by a more specific segment above it. All Users can’t be edited or deleted. See Segments for the full rundown.
Priority
Each trigger view holds a list of segment → campaign (or segment → A/B test) rows, ordered by priority. When a user hits the trigger, Adapty Mail:
- Walks the rows top to bottom.
- Sends the campaign in the first row whose segment matches.
- Stops. Later rows are not evaluated for that user.
Order matters. A broad segment placed above a narrower one swallows every user who would otherwise match the narrower row.
To reorder, drag the handle on the left of any row — the backend reassigns priority numbers 1, 2, 3… based on the saved order.
The All Users row, if present, must be last (lowest priority). The backend rejects saves where All Users isn’t in the final slot — it would otherwise swallow every user before more specific segments get a chance to match.
Content types
A row can deliver either a single campaign or an A/B test:
- Campaign: Sends one campaign to everyone who matches the segment.
- A/B Test: Wraps two or more campaigns with configurable weights, routes incoming users across them randomly, and tracks per-variant metrics. See A/B testing.
Lifecycle
Flow rows have no draft state. A row is live the moment you save it — from that point on, users who hit the trigger and match the segment are routed to its campaign.
- Create a row: Starts delivering immediately on save.
- Edit a row: The change applies to users who hit the trigger from then on. Users already mid-sequence continue with the previous configuration.
- Delete a row: New users stop entering the sequence. Users already mid-sequence may continue receiving their scheduled emails — there’s no automatic cancellation.
A/B test rows follow their own lifecycle (draft → live → finished) controlled separately from the row itself. See A/B testing.