Subscription-based discount amount promotion

In this tutorial, we will create a loyalty program that reduces a customer's subscription cost by a small amount each time they're billed. In short, the longer they are a customer, the larger the discount they receive.

We will build a loyalty program to categorize customers based on their loyalty (subscription) length and a cart promotion with multiple tiers to automatically enable discounts for predefined segments. 

Define Subscription metadata in the Product Metadata Schema.
Build a loyalty program.
Create a  Subscription paid  earning rule with a proper validation rule
Add loyalty reward – pay with points.  
Assign cards to customers and build segments
Build cart-level promotion.  
Apply discounts with API and remove loyalty points (customer unsubscribes).
Subscription diagram

Define the Subscription product

First, you need to define which product should be considered to apply the discount and count the subscription months. The quickest way is to add  a new metadata parameter to the Product object in the Metadata Schema. To find the Schema, click on your profile name and go to Project settings → Metadata Schema → Standard → Product.

From there, add new metadata. For example, create a mandatory parameter called Subscription with flag type. 

Subscription metadata

This solution ensures that you will be able to assign this metadata to any subscription you would like to offer to your customers. If you have a couple of different subscription options – each one of them can have this flag.


Build a loyalty program

The loyalty campaign will be used to track the number of subscriptions paid by every customer. From the Campaign Manager, create a new loyalty program by clicking Create.
Follow this link for a step-by-step guide on building loyalty programs in Voucherify.

During the creation of the campaign (second step), create a new earning rule, which will assign 1 point each time an order has been paid. This information will be used for counting how many months a user has been a subscriber.

Earning rule

To assure that the point will be assigned only when the customer will order the subscription, add the validation rule based on product metadata. You can do that by adding the following validation rule in the basic rules builder:
To learn more about validation rules, go here.

Validation Rule

Confirm the rule by clicking Add. Remember that after saving the rule, you can reuse it for other campaigns. During the creation of your loyalty program, you will also need to define one Reward. The Reward will be used to remove the customer’s points on his loyalty card if he wants to stop subscribing to your service.

You can add a Reward, which will be redeeming 1 point for each cent used during the redemption process.

Save the reward, and don't forget to click Add Reward . Otherwise, the reward won't be added properly.

Confirm the reward


Assign loyalty cards

We recommend assigning the loyalty card while setting up a new customer. You can assign loyalty cards using the following API method –

Follow our API documentation to learn more about loyalty API.

For test purposes, you can assign the card manually to a selected customer. Find the loyalty card you are interested in and hit Publish

Publish loyalty card


Split customers into several segments

Voucherify allows you to group your customer base into segments based on multiple conditions. In our case, each segment will group customers entitled to a different discount based on the number of months they have been a subscriber. While defining a segment, you can add a couple of conditions that the customers must match to be in that segment. In your case, we should add conditions regarding the number of points on the loyalty card.

Customer Segment

The customers will be assigned to the segments automatically.

For more details regarding segment creation, go here

Build cart-level promotions

The cart promotions will automatically enable different discounts based on the segment the given customer is in. This feature will be used when redeeming the discount. When creating the campaign, you can set several tiers/discount levels.

Cart promotion

Go here for more details on creating cart-level promotions.

That’s it. You have all the building blocks of the campaign set up.


Apply discounts with API and remove loyalty points (customer unsubscribes)

Before charging for the subscription, use this API to verify the discount value. You will need to use this API to retrieve the ID of the promotion tier for your customer. 

If your customers will be ready to make an order, use this API to create an order and apply the discount to it.

Customer unsubscribed scenario

If a customer wants to unsubscribe from your service, the best solution would be to redeem a customer's reward to remove loyalty points from their account.

We had already defined the reward in one of the previous steps. You will need to get the ID of the reward by using the following API.

When you get the reward ID, use this API method in the redeem reward request. 

Since we had defined a reward, where 1 point equals 1 cent, the amount used in the POST body can be set to 100, which will redeem 100 months worth of points.

API call

Still need help? Contact Us Contact Us