Documentation menu

Behavioral segments

An audience filter can already match on contact fields — plan, city, signup date. Behavioral segments add a second axis: what a contact has actually done.

Behavioral conditions

Alongside a normal field condition, the audience filter builder offers a Behavior and a Commerce group with seven metrics: opened, clicked, submitted, purchased, RSVP'd, overall engagement score, and total revenue. Each one supports an optional "within the last N days" window, so you can build rules like:

  • Opened, but never clicked — a classic re-engagement segment.
  • Purchased more than once in the last 90 days — your repeat-buyer list.
  • Hasn't opened anything in 90 days — a churn-risk list.
  • Engagement score above a threshold — a rough "who's actually paying attention" ranking.

That engagement score decays with a 30-day half-life: an action's contribution to the score roughly halves every 30 days that pass since it happened, so an old burst of activity doesn't keep someone looking engaged forever. Actions aren't weighted equally either, since a purchase says a lot more about a contact's intent than an open does. A purchase counts for 10x an open, an RSVP for 6x, a form or quiz submit for 5x, and a poll vote or rating for 4x.

These combine with ordinary field conditions and with each other using the same AND/OR groups you already use for a block's visibility rules in the studio.

Purchase history

A connected Shopify or WooCommerce store adds a third, more granular group: Purchase history. Where the Commerce group's plain "purchased" and "total revenue" conditions look at a contact's all-time rollup, a purchase-history condition matches real order line items — a specific product, summed by amount or quantity, between two dates:

  • Bought 2+ units of a specific product in the last 90 days.
  • Spent over $50 on any product between two chosen dates — a seasonal-campaign win-back list.

Pick the product from a dropdown of everything MailInApp has seen in your synced orders (or type a product ID directly if the store hasn't synced any orders yet), a date range, amount vs. quantity, and the usual comparison and value. Order history only goes as far back as your store has synced. A store connected before this existed, or one with years of history, may need a one-time Backfill order history pull from Settings → Integrations before older purchases show up in a rule. Shopify backfills are capped to roughly the last 60 days unless Shopify has separately approved the app for full order history on your store; WooCommerce has no such cap.

Purchase-history rules are available for a manual send's audience filter and a recurring schedule's audience filter. They aren't evaluated inside the studio canvas or a journey's branch/goal step — same limitation the Commerce group's own metrics already have there.

Saving a segment

Building the same behavioral filter by hand every time you send isn't great, so the Segment picker above the audience filter lets you save one under a name and reuse it. A saved segment is a snapshot of the rule, not a live reference — the same "copy, not a link" approach as saving a project as a template. Editing the rule later doesn't retroactively change a send that already used it. Its displayed member count refreshes on demand and is display-only; the real match always happens fresh at send time.

Where segments show up

Anywhere an audience filter already exists: a manual send, a recurring schedule, and a journey's segment-entered trigger and branch step. A segment scoped to behavior costs one extra read per contact at evaluation time. That's negligible for a manual send, and only paid by a schedule or journey sweep when its filter actually uses a behavioral condition.

Your plan caps how many saved segments you can have — see pricing.