# Mixed milestone

{% hint style="info" %}
This feature is available for **Advanced** and **Ultimate** plans
{% endhint %}

### What is "Mixed Milestone"?

Mixed Milestone lets you build a **sequential customer journey** where each step can have a different action type. Instead of a single repeated action (e.g., "place 5 orders"), you can design experiences like:

> "Place 3 orders → Write 2 reviews → Refer 1 friend"

Customers must complete each step **in order** before moving to the next. This creates a sense of progress, enforces healthy engagement habits, and drives behaviors that matter to your business.

### Why use Mixed Milestone?

| Problem with single-type milestones        | How Mixed Milestone solves it            |
| ------------------------------------------ | ---------------------------------------- |
| Customers can skip steps or game the order | Enforces sequential completion           |
| 3 separate programs feel disconnected      | One unified journey on the storefront    |
| No sense of "where am I in the journey?"   | Clear step-by-step progress indicator    |
| Difficult to guide post-purchase behavior  | Design: buy → review → refer → buy again |

### How to set up a Mixed Milestone

{% embed url="<https://youtu.be/-fCFzfL8gCI>" %}

{% stepper %}
{% step %}
**Go to Milestone**

From the Joy admin, choose **Reward programs** → **Milestones** → click **Add rule**
{% endstep %}

{% step %}
**Select "Mixed milestone" as the Type**

In the **Type** dropdown, select **Mixed milestone**.

You'll see a description: *"Create a journey with multiple action types. Customers complete each step sequentially to earn rewards."*
{% endstep %}

{% step %}
**Set up Rule Information**

Fill in:

* **Rule name** — e.g., "Loyalty Journey"
* **Start date / End date** — optional date range for the program
  {% endstep %}

{% step %}
**Add milestone steps**

Each step in a Mixed milestone has its own action type. Click **Add milestone** to add steps.

For each step, configure:

1. **Step type** — choose from:
   * Number of orders
   * Amount spent
   * Earned points
   * Number of reviews
   * Number of referrals
   * Subscription cycles
2. **Target value** — how many of the action is required (e.g., 3 orders)
3. **Step description** — shown to customers on the storefront (e.g., "Place your 3rd order")
4. **Reward** — what the customer earns when completing this step (points, discount, free gift, store credit, free shipping)
5. **Reward logic** — choose how rewards are given:
   * **Grant all rewards** — customer receives all rewards for this step automatically
   * **Customer picks** — customer chooses from the available rewards (set how many they can pick)

{% hint style="info" %}
You can **drag and drop** steps to reorder the journey. The order matters — customers must complete steps from top to bottom.
{% endhint %}
{% endstep %}

{% step %}
**Configure order requirements (if applicable)**

If any step uses **Number of orders** or **Amount spent**, you can set:

* **Minimum order requirement** — optional minimum spend or quantity per order
* **Anti-cheat** — prevent customers from gaming the system with quick refunds
  {% endstep %}

{% step %}
**Save and activate**

Click **Save** to apply your changes, then **Turn on** to activate the program.

Customers will see the journey on your storefront with their current progress highlighted.
{% endstep %}
{% endstepper %}

### Mixed milestone step types

| Step type           | Example target    | Notes                                                                                                                  |
| ------------------- | ----------------- | ---------------------------------------------------------------------------------------------------------------------- |
| Number of orders    | 3rd order         | Requires minimum order settings if enabled                                                                             |
| Amount spent        | $500 total        | Cumulative across orders                                                                                               |
| Earned points       | 1,000 points      | Based on total earned points                                                                                           |
| Number of reviews   | 2 reviews         | Product reviews submitted                                                                                              |
| Number of referrals | 1 referral        | Successful referrals who make a purchase                                                                               |
| Subscription cycles | 3rd billing cycle | Requires Shopify Flow connected. [Learn more →](https://help.joy.so/reward-programs/milestone/subscription-milestones) |

### Reward options per step

Each step can offer one or more rewards:

| Reward type             | Description                                 |
| ----------------------- | ------------------------------------------- |
| **Points**              | Bonus points added to customer balance      |
| **Store Credit**        | Cash credit applied to the customer account |
| **Discount Amount**     | Fixed dollar discount on next order         |
| **Discount Percentage** | Percentage off on next order                |
| **Free Shipping**       | Free shipping on next order                 |
| **Free Gift**           | A specific product added to the cart        |

{% hint style="info" %}
If you select **Store Credit** as a reward for any step, you'll be prompted to grant store credit access permissions. This is a one-time grant that applies across all programs.
{% endhint %}

### Tips for designing effective journeys

* **Start easy** — put lower-friction actions first (orders before reviews)
* **Increase value as steps progress** — bigger rewards for harder steps
* **Keep it short** — 3–5 steps is ideal; too many steps reduce completion
* **Use descriptions** — clear step descriptions help customers understand what to do next
* **Test from the customer's view** — use the Joy widget preview to see how the journey looks on your storefront

### Need help?

Contact us via the live chat widget in your Joy admin, or email us at <hi@joy.so>.
