Skip to main content

How to run tiered bonus points campaigns by order value

Set up spend-based bonus point tiers in Shopify Flow so customers earn different point amounts based on cart value.

Written by Stuart Chaney
Updated today

How to run tiered bonus points campaigns by order value

If you want to reward higher cart values with bigger point payouts, tiered bonus points campaigns are a reliable approach.

Example structure:

  • Orders up to $50 earn 250 bonus points

  • Orders from $51 to $150 earn 500 bonus points

  • Orders above $150 earn 1000 bonus points

This guide shows how to build that setup with Shopify Flow and Rivo actions.


✨ Shopify controls Flow availability by Shopify plan. Confirm eligibility in Shopify’s Flow documentation.




Before you start

Decide whether you want this campaign to appear in your customer-facing “Ways to Earn” list:

  • Option A: Quick campaign setup — Use Add Points in Shopify Flow. This is fastest and works well for short promotions.

  • Option B: Customer-visible earning method — Use Add Points for a Custom Action so the campaign can map to a named earning method in your loyalty program.

For Option B, first set up your custom action in Rivo, then use the exact same action name in Flow.

For custom action setup, see Getting Started with Custom Actions.




Set up a tiered campaign with Shopify Flow

  1. In Shopify admin, open Flow and click Create workflow.

  2. Choose an order-based trigger (for example, an order event).

  3. Add conditional branches for your value tiers, such as:

    • Tier 1: order subtotal is less than or equal to 50

    • Tier 2: order subtotal is greater than 50 and less than or equal to 150

    • Tier 3: order subtotal is greater than 150

  4. In each branch, add one Rivo action:

    • Use Add Points for a fast, campaign-style setup

    • Or use Add Points for a Custom Action if you want the campaign tied to a specific custom earning method

  5. Set the points amount per branch (for example: 250 / 500 / 1000).

  6. Make sure the workflow sends a valid customer identifier (customer email or Shopify customer ID).

  7. Turn the workflow on and place test orders across each tier.




Recommended tier logic (to avoid stacking)

Use mutually exclusive ranges so each order only matches one tier.

Example:

  • Tier 1: subtotal <= 50

  • Tier 2: subtotal > 50 and subtotal <= 150

  • Tier 3: subtotal > 150

If your ranges overlap, a single order can qualify for more than one branch depending on how your Flow is built.




Using custom actions for a cleaner customer experience

If you want customers to understand why they received bonus points, custom actions are usually easier to explain.

Suggested setup:

  1. Create one custom earning method in Rivo for each tier (or one shared campaign action name, depending on your structure).

  2. In Flow, use Add Points for a Custom Action and pass the exact action name from Rivo.

  3. Keep action names consistent and simple so your team can maintain campaigns easily.

  4. If needed, set earning frequency limits on the custom action to control how often each customer can earn from that campaign.




Campaign best practices

  • Run it as a limited-time event to create urgency.

  • Announce it in email/SMS and onsite messaging so customers understand the tier thresholds.

  • Use clear threshold language like “Spend $151+ and earn 1000 bonus points.”

  • Test all branches before launch using draft/test orders at each threshold.

  • Plan your campaign end date so bonus payouts stop exactly when expected.

For a scheduled multiplier-style campaign, see Bonus Campaigns.
For full Flow setup details, see Integrating with Shopify Flow.




FAQ

Can I run tiered order-value bonus points without Shopify Flow?

If you need strict “if-this-range-then-that-points” logic, Shopify Flow gives you the most control.

Should I use “Add Points” or “Add Points for a Custom Action”?

Use Add Points for speed. Use Add Points for a Custom Action when you want the campaign tied to a named earning method and easier to explain in your program structure.

My custom action is not awarding points in Flow. What should I check first?

Confirm the custom action name in Flow exactly matches the action name in Rivo.

How do I prevent customers from earning the same campaign reward too often?

Use frequency limits on the custom action and keep tier conditions mutually exclusive.

Did this answer your question?