# Rolling Tag > Rolling Tag is a Shopify app that auto-tags customers based on what they buy (age, size, category, spend, recency, discount behavior, geo) so segments stay always-fresh for email, SMS, ads, Flow, and storefront personalization. Rolling Tag runs on each order and updates Shopify `customer_tags`. Merchants map products and rules once; the app keeps tags in sync over time (“rolling” tags). These tags power: - Shopify Segments and saved filters - Lookalike / custom audiences in ad platforms - Email & SMS campaigns in tools like Klaviyo / Omnisend / Shopify Email - Shopify Flow automations (tag added/removed triggers) - Theme personalization (show/hide collections based on tags) Rolling Tag is built for age/size–fit and repeat-purchase scenarios: kids clothing, shoes, apparel sizes, subscription refills, seasonal products (e.g. “back to school”, “before summer”, “size up reminders”). It turns every order into customer intelligence without any flow builder or manual tagging. The app’s configuration and behavior can be understood through its tag types and dynamic rules. **Tag types & examples** The app supports the following tag types (all written to `customer_tags`): - **Custom tags (`custom`)** Merchant-defined labels; any tag string you want to apply when specific products are purchased. Examples: `garden`, `grill`, `organic`, `handmade`, `limited_edition`, `eco_friendly`. - **Auto-updating age tags (`auto_age`)** Tag customers according to the *age fit* of the product purchased, then automatically roll the tag forward over time. Examples: `age_6m`, `age_18m`, `age_3y`, `age_4y`. The age unit is configured as **months** or **years**, and the app keeps the tag updated as time passes (e.g. `age_3y` → `age_4y`). - **Variant tags (`variant`)** Tag per product variant purchased (size, color, flavor, etc.). Examples: `size_xl`, `size_42`, `size_7`, `color_red`, `flavor_mango`. Useful for variant-specific retargeting like “New shoes in size 43 that fit you perfectly”. - **Order milestone tags (`milestone`)** Track how many orders a customer has placed with simple tags. Examples: `buyer_1`, `buyer_2`, `buyer_3`, … (based on total number of orders). - **Recency / activity tags (`recency`)** Rolling tags based on days since last order. The app promotes customers through stages over time: - `recent` → 0–30 days since last order - `cooling` → 31–60 days - `at_risk` → 61–120 days - `dormant` → 121–365 days - `lost` → >365 days Internally, the app uses thresholds to decide when to move a customer from one recency tag to the next. - **Spend-tier tags (`spend_tier`)** Lifetime spend–based tiers, auto-updated as customers spend more: - `spender_bronze` (≥ $100) - `spender_silver` (≥ $500) - `spender_gold` (≥ $1 000) - `spender_platinum` (≥ $5 000) - `spender_diamond` (≥ $10 000) - **Discount behavior tags (`discount_buyer`, `discount_seeker`, `discount_regular`)** Rolling tags based on how often a customer orders with discount codes: - First discounted order → `discount_buyer` - Second discounted order → `discount_seeker` - Third+ discounted order → `discount_regular` - **Category tags (`category`)** Tags based on product category purchased. Examples: `purchased_snowboard`, `purchased_running_shoes`, `purchased_outdoor`, `purchased_kidswear`. - **Geo tags (`geo`)** Tags based on shipping country or region. Example: `purchased_country_CH` (Switzerland), `purchased_country_US`, etc. Some tags require **no configuration** (just turn them on), such as `variant`, `milestone`, `recency`, `spend_tier`, discount-based tags, category, and geo. Others are **dynamic** and accept parameters, mainly: - `custom` → merchant-specified tag text - `auto_age` → `{ unit: 'month' | 'year', age: string }` (e.g. `unit: 'year', age: '3'` → `age_3y`) **Key internal concepts** - **Recency progression** The app periodically checks `days_since_last_order` and moves the customer’s recency tag along the path: `recent → cooling → at_risk → dormant → lost` using thresholds per stage. “Lost” is a terminal state (no further promotion). - **Spend tiers** Spend-tier tags are mutually exclusive; higher tiers replace lower ones as lifetime spend crosses the threshold. You can safely target “all gold+” by filtering for `spender_gold`, `spender_platinum`, `spender_diamond`. - **Age bucketing** For fine-grained toddler / kids use cases, internal helpers cover age buckets like: `"0-3","3-6","6-9","9-12","12-15","15-18","18-21","21-24"` months and beyond (via `age_Xm` / `age_Xy` labels). This keeps “size up” and “age fit” campaigns in sync with reality. **Example use cases** - **Age-fit personalization** Tag customers by child age when they buy kids products. Use these tags to: - Show age-appropriate collections on the storefront (e.g. homepage blocks for `age_6m` visitors). - Send “size up” reminders just before a child grows out of a size. - Run seasonal campaigns like “back to school” or “before summer” targeting the right age ranges. - **Size & variant fit** Tag by size and variant to send extremely targeted campaigns: - “43 new sport shoes in size 43 that fit you perfectly” (size-based audiences) - “New colors available in XL” (variant-based reactivation) - **Discount strategy** Segment customers by discount behavior (`discount_buyer`, `discount_seeker`, `discount_regular`) to: - Protect margin on full-price buyers - Give stronger offers to proven discount seekers - Run win-back discounts specifically for `at_risk` or `dormant` + `discount_seeker` audiences. - **Geo and category targeting** Combine `category` + `geo` tags for precise campaigns: - Winter gear to `purchased_snowboard` in cold regions - Localized promotions (e.g. free shipping in `purchased_country_CH`). **Automation & personalization hooks** - **Shopify Flow triggers** The app emits events when tags are added or removed. Merchants can use these in Flow to: - Open support tickets for high-value tiers (`spender_diamond`) - Assign VIP workflows once a customer reaches `buyer_3` - Kick off win-back flows when customers become `at_risk` or `dormant`. - **Theme-level personalization** Themes can read customer tags to drive conditional visibility: - Show age-fit product collections for customers tagged with `age_Xm` / `age_Xy`. - Hide irrelevant collections (e.g. baby products for customers tagged with only adult sizes). This boosts conversion rates by keeping landing pages highly relevant. - **Audience export & lookalikes** Because tags live on the Shopify customer object, merchants can: - Build segments directly in Shopify using `customer_tags` filters - Sync to ESPs (Klaviyo, Omnisend, etc.) for email/SMS flows - Export for ad platforms to build custom/lookalike audiences by tag (size, age, spend tier, discount behavior, category, geo). ## Docs and listings - [Rolling Tag website](https://rollingtag.com/): High-level overview of the app, use cases, and how Rolling Tag turns purchases into precision audiences for Shopify brands. - [Shopify App Store listing](https://apps.shopify.com/rolling-tag): Official app listing with feature breakdown, screenshots, pricing, and installation for Shopify stores.