Skip to main content

Milestone based rewards

A milestone based program runs on the milestone you set, an optional condition for who qualifies, and the reward customers earn at each milestone. The main advantage of this program type is that you can set multiple milestones in one program and set exactly which order number or purchase amount you want to reward the customers in and how much reward they should receive for the same. To create a new program, follow the below steps:

  1. Navigate to Loop admin > Loyalty > Programs, then click Create program.

  2. Name: Similar to order based rewards, you can start by setting an internal name for your reward program. This name won't be visible to your customers.

  3. Choosing the milestone type

    To set what the program tracks, click Select milestone type and pick the milestone you want to reward, then click Add. The milestone type decides what customers work toward, and there are two options.

    • Order milestones: Tracks the number of orders a customer completes, such as 5 or 10 orders.

    • Total customer spent: Tracks the total amount a customer has spent.

  4. Adding a condition: To control who qualifies for the reward, use the If step, where you can add conditions that narrow down which customers the program applies to. This step is optional. If you leave it empty, the program runs for all customers. If you add a condition, only customers who meet it will earn the reward, which is useful when you want to reward a specific group rather than everyone.

  5. Setting the milestone target: Under Milestone 1, set the target customers need to reach. For an order milestone, this is the completed order count, such as 5. For total spent, this is the spend amount, such as $500.

  6. Milestone reward: Under Milestone benefit, choose how the reward is calculated when a customer reaches the milestone. Milestone based programs support two reward types.

    • Fixed amount: A set number of points or credit when the milestone is reached.

    • Percentage: A percentage based reward when the milestone is reached.

    Once you pick a reward type, enter the amount in the Reward value field below it. The unit matches the reward type, so a percentage reward takes a percentage value and a fixed reward takes set points.

  7. Adding more milestones: To reward customers at more than one target, click Add another milestone and set the target and reward for each. This lets you build a series of goals within the same program, such as $10 at the 5th order and $25 at the 10th.

  8. Setting points expiration: To control how long earned points stay valid, use the Points expiration step. Changes to this setting apply only to points earned going forward, so points your customers have already accumulated are not affected. You have three options for when points expire:

    • As per store preference: Inherits the global points expiry set in Preferences, in the Points actions section.

    • Never expires: Points stay valid indefinitely.

    • After certain period of time: Points expire after a duration you set.

  9. Set the Status to Active, then click Save.

How it works for your customers

For a milestone based program, every order moves the customer closer to their next milestone. The program tracks their progress in the background and credits the reward the moment they reach a target.

They can see how close they are to their next milestone in the customer portal, along with the reward waiting at each level. Once a milestone is reached, the reward is added to their loyalty balance, which they can apply as a discount at checkout or in the customer portal.

This visible progress is what pulls customers toward placing the next order and reaching the next reward.

FAQs

What happens to a customer's milestone progress if I change the milestone target?

Changes to a program apply going forward, so customers keep the progress they have already made. If you raise a target after a customer has passed the old one, review the change carefully, since it affects how the next reward is calculated.

Did this answer your question?