How to Design the Architecture of Your Customer Loyalty Software?
The architecture of customer loyalty software. How to build loyalty software? How to buy the right customer loyalty software?
How to Design the Architecture of Your Customer Loyalty Software?
If you want to launch a customer loyalty program, you will need a customer loyalty software. To find the right fit, there are various questions you need to ask yourself first.
- How to design a customer loyalty software? What are the design characteristics of an effective loyalty program software?
- How to implement a customer loyalty program software within your technology stack?
- Should I build or buy customer loyalty software?
- How to estimate the amount of work needed to build a loyalty platform?
- What are the features I should include in my loyalty platform?
- What are the requirements I should look at when choosing a customer loyalty platform provider?
- What are some obstacles on the road to designing and implementing a customer loyalty program?
In this article, we will try to help you answer some of these questions. We will list the most important features you should consider, when building or buying a loyalty platform. We will mention different requirements a customer loyalty platform should satisfy. We hope it will help you with planning out your own loyalty program architecture.
Table of contents:
- Non-technical requirements for a customer loyalty software
- Personalized incentives
- Rewards stacking
- Validation rules
- Start and expiry dates
- Loyalty program tiers
- Budget limits
- Distribution and communication
- Popular channels
- Scaling and maintenance
- Technical requirements for a customer loyalty software
- Customer touchpoints interface
- Programmable loyalty campaigns
- Authentication & monitoring
- Customer Support
- Legal requirements for a loyalty program software
Non-technical requirements for a customer loyalty software
Customer loyalty strategies differ from industry to industry, and often even within the same sectors. However, by creating business-agnostic customer loyalty software, we’ve seen some common patterns for requirements crystallising over time. The loyalty program architecture, based on our experience with 250+ clients, looks something like this:
Let's split it into separate loyalty program features and explain each one of them separately.
Personalized loyalty incentives
Based on our experience, every customer retention campaign that works relies on a personalized incentive.
A personalized incentive requires three features: reward catalog, eligibility, and timing.
Let’s start with the personalization of rewards. When you watch how the biggest brands fight to increase loyalty, you’ll notice they have a myriad of rewards in their reward catalog.
The reason for this is that, sometimes, a slight change in a deal’s reward can give an engagement campaign an unexpected backwind. That’s why it’s vital for your customer loyalty software to cover several types of promotional offers, including in your reward catalog:
- Free delivery – with the amount min. threshold.
- Free samples.
- Buy one, get one free – also “buy one, get one half-price” and the whole BOG family.
- Volume discounts – amount- (save X when you spend Y) and quantity-based (X% off selected items, product bundling).
- Gift cards – redeemable once or more.
- Cash payout (e.g., using loyalty card as a gift card and paying with it for the purchase or part of the purchase).
- Loyalty points as cash – points can be exchanged for the items above. The points amount could be calculated based on different parameters, like order volume, order value, historical orders value etc.
When your loyalty platform accepts many types of deals, your marketers get freedom to get the best ROI through experiments.
If you would like to learn more about loyalty personalization, give this piece a read.
Loyalty rewards stacking
To make your loyalty incentives even smarter, you should look for promotions stacking feature while auditing various customer loyalty program softwares. Why? Well, the stacking functionality lets you define allowed and forbidden discount combinations that give you even more space for loyalty program personalization. For instance, you can offer discounts and gift card credits as loyalty rewards. Depending on your business use case, you can allow or disallow using both for the same order. This way you can also define that some loyalty rewards should or shouldn't be combined with other active promotions, for instance, that a general 15% discount cannot be combined with 20% discount received via loyalty program membership. This way you can protect your loyalty budget more effectively.
The biggest problem with any incentive meant to turn first-time customers into loyal customers is the target mismatch. Shoppers who don’t need to be enticed redeem your rewards burning your loyalty program budget and eventually reducing your margins.
Splitting the audience into segments and treating them with appropriate rewards is already hard but important not only for the mismatch. Fraud is another danger. People always tend to outplay the system if they find out it’s possible. Having the right rewards for the right audience will help to prevent fraud.
An important reason for making your loyalty platform support targeted incentives is customer experience. Shoppers will only feel incentivized with a reward if it makes sense for them in the current context and when it dovetails with other engagement tactics you’ve launched earlier. If they sense SPAM, they won’t care about your campaign. Look at H&M rewards program to learn more about failed email marketing campaign.
Enough reasons for creating a reward eligibility engine, right?
So what parameters you might want to include into the reward validation system? Lots of them. There’s no silver bullet answer here — every business has different conditions, but several of them are used more than others. We’ve split them into 3 categories:
1) Customer attributes, purchases and reward redemption history
By making your customer loyalty program software aware of customer attributes and behavior, you can create segments and assign them to a particular campaign. To make it work, you should sync your CRM data. With this in place, every time the reward is being applied, the system checks if a customer is eligible to really get it. You could, for example, let your customers join your loyalty program only if they have purchased articles for at least 1000$ during the last year and they are located in the UK (validating the customers' purchase history and location).
2) Order structure and volume
You might want to grant the rewards based on the order structure and volume. You can achieve it by integrating your validation rules with the shopping cart engine.
Your loyalty software should be able to understand the content of the order and validate whether the customer can redeem it against an active reward campaign.
This way, you’ll give your marketers a helpful tool to apply up- and cross-selling tactics. For example:
- You get 20 loyalty points if you buy for more than $100.
- 10%-off coupon available only for iPhone X.
- A friend referral counts if the referred person spends at least $50.
3) Custom Events
You might want to reward your customers not only for their purchases but also for other activities that prove their loyalty to your brand. For example:
- A customer subscribed to the newsletter.
- A customer liked one of your social media profiles.
- A customer left a review for your product.
To be able to do that, you should have the possibility to add custom events to the earning rules of your loyalty program.
These three validation rules categories already account for a more manageable reward budget but there’s one more to be discussed.
Start and expiry dates for loyalty points
Calendar-driven promo campaigns like holidays, birthdates, or anniversaries are just a brilliant and natural way to entice customers throughout the year. To keep them manageable, you need to control the start date too.
The sense of urgency is one of the most fundamental factors for loyalty campaign success. The expiry date on coupons and loyalty points or the “time left” counter on the website push shoppers to take action.
It’s not enough to announce the expiry date in the marketing messages. You need to have a possibility to set up expiry dates in your loyalty program software, to make sure the rewards cannot be used after they expire. The mess caused by letting invalid reward redemptions flow grows exponentially with the number of loyalty campaigns you run.
This is why it’s good to think of start and expiry dates as a first-class citizen of your loyalty software.
Whatever incentive campaign you model, be it coupons, gift cards, loyalty points, or cart-level discounts, think of how to limit their lifespan – not only to save the marketing budget but also to keep your team from nasty database cleaning tasks.
The basic rule for loyalty rewards expiration – rewards earned on X expire on Y – is a must-have feature of your loyalty program.
You can also opt for a rolling expiration, for example:
The points should expire 2 years after the points are earned by the customer. You implement a logic covering 4 quarters in a year which requires to have an expiry date for points earned set as 2 years later, divided in a quarterly fashion. For example:
- Points from Jan 1, 2019 to March 31, 2019 expire on March 31, 2021
- Points from April 1, 2019 to June 30, 2019 expire on June 30, 2021
- Points from July 1, 2019 to Sept 30, 2019 expire on Sept 30, 2021
- Points from Oct 1, 2019 to Dec 31, 2019 expire on Dec 31, 2019.
You can make time limits more fine-grained by making redemption valid only in some hours or days of the week.
You could also create a kind of “happy hours” promotion with multiplying your rewards on certain days or during certain hours, for eligible purchases, in your loyalty program. That’s another way to motivate people to purchase due to a limited offer, without giving cashback right away.
If you are interested to learn more about happy hours campaigns, read this post.
Expiry dates are important for customers — the longer the rewards are active, the better. Your customer loyalty software should be able to control which rewards are valid for which period of time and possibly differentiate it based on the customer segment or the loyalty program tier the customer belongs to.
Ready to build personalized loyalty programs? Sign up for a free trial and improve your customer retention.
Loyalty program tiers
Apart from creating customer segments eligible for different promotions, you might want to create different loyalty program tiers. It can help make your loyalty program more interesting for the customers, adding a gamification effect to it. Loyal customers could be qualified to different loyalty tiers based on their purchases or other earning rules, like custom events.
Loyalty tiers could differ in various ways:
- The rewards available – offering some rewards only to higher tiers. For instance, you could be offering physical rewards for bottom tier, points for the second and cashback for the highest tier.
- The amount of the reward – offering different discounts to different tiers (5, 10, 15% off).
- Different earning rules – giving 1 point for a certain $ amount spent for the bottom tier, 1.5 point for the same $ amount for the middle tier and 2 points for the VIP tier.
- Expiry dates – for example VIP clients could have longer expiry dates for their rewards.
Your marketing should have an option to cap the number of rewards up-front. There are several ways to do so. Most of them are based on limiting customer actions and the cost of them:
- Number of redemptions per customer.
- Total redemptions for a given campaign (e.g., first 500 customers are eligible).
- Total discounted amount within a single campaign.
- Total order value within a single campaign.
You could also create limits for triggering points per earning rule (e.g., max 100 points for social media activity). It could help to manage your budget spent on building customer engagement and enticing purchases.
In some cases, loyalty program members can abuse criteria for getting points, and a program without limits can negatively affect your business's financial condition. That's why it is critical to limit how many times customers can be rewarded for the particular action in a specific timeframe.
Finally, a feature that saves a lot of hassle – a kill switch. If your loyalty campaign goes south for whatever reason, e.g., you noticed that some customers found a way to outplay your referral program or your coupons went viral among the wrong crowd. In this case, you should always be able to deactivate the related referral/promo/code or loyalty card without the need to exclude them manually in the codebase. The best loyalty program software out there lets your marketing team do this on their own.
Distribution and communication
We’ve said enough about securing your loyalty campaign. Equipped with customer rewards catalog, eligibility and timing rules, your loyalty strategy shield gives you and your marketing team confidence to act.
An important first step of promoting your loyalty program is clearly explaining its rules. Your customers should know why joining it will bring them value and be able to estimate its perks easily. One way to help with explaining your earning rules is adding a reward calculator to your loyalty program landing page that would showcase to customers their perks based on variables they can put, for example: frequency of shopping, average spending, custom events they are willing to perform and their frequency (e.g., reviewing your products, joining the newsletter). There is no clearer way to show what’s in it for them.
The next step? Putting the campaign in front of the customer’s eyes!
Let’s say your loyalty software can model and validate personalized incentives. Now it’s time to distribute them to customers.
New distribution channels are popping up (too) fast. This is why you have to treat this part of loyalty software with care during the planning phase. You can automate incentive delivery with three main solutions, each of them is more advanced and requires more software to work but also brings more value.
These are the main three incentive delivery options:
1) CSV export – allows you to download incentive details and upload them manually or programmatically to delivery channels e.g., send coupons as merge tags in the email.
2) Manual send out – enables marketers to send incentives to specific groups on demand, from a dashboard (e.g., send a push notification with a referral code to Berliners).
3) Real-time triggers – build real-time segments (remember eligibility rules?) and allow marketers to define conditions under which your loyalty software sends a contextual incentive automatically, e.g., customers who have spent more than $500 get an automated message about 10% off valid next weekend. This can be done for example using webhooks.
The last option is a pinnacle of marketing personalization. It ensures smooth roll-out of a loyalty campaign with virtually no maintenance in the future. However, it requires heavy machinery which takes care of syncing data from your CRM and recalculating customer segments on top of it.
Your incentivized messages already have higher visibility and enable higher customer engagement than regular SPAM. But even equipped with a reward, your message can get lost in the customer’s inbox. This is why you might want to implement a reminder workflow, allowing marketers to set up a series of follow-ups.
It’s worth preparing your loyalty system for popular channels your company might be using now, such as store website (banners), landing pages, customer cockpits, email, push notification, SMS, live chats, paid ads, invoices, shipping emails, influencers, and more. You should be able to brand the messages according to your company’s style guide and personalize them for each promotion. It saves a lot of time and resources if you can use a designer with built-in branding and personalization options instead of having to engage a designer and a developer each time you want to change your email HTML template or make a new landing page. This flexibility can turn out to be your competitive advantage, enabling you to act on recent events, competitors’ moves, and so on.
Tracking and reporting
How marketers can calculate and optimize the ROI of a loyalty program? By accepting and tracking reward redemptions, of course. This means your loyalty software should be able to, first, validate the reward usage and, second, inform which incentive has led to a particular order.
Code-wise, this means that the platform shouldn’t be tied to a few fixed reward types and values because your developers will be modifying this part every time the marketing team comes up with a new incentive idea.
Side note: This is actually the backstory of Voucherify. In one of the projects, we helped with the implementation of the rewards program. Small changes in reward eligibility turned out to be a pain in the neck for engineers. But they were crucial for business at the same time – so they had to be made. You can imagine these frowned faces when marketing comes to the dev team and says they want to slightly tweak the list of recipients of a current campaign, or that they want to exclude shoppers who have already redeemed the re-engagement coupon from the last month.
Now that we’ve defined features helping every department, we need to prove to management that they’re doing their jobs.
The person who’s interested the most in the performance of the loyalty campaigns is your CMO. Let’s see what report’s they would find useful:
- Total order value vs. discounted amount.
- Average order value when the discount is applied.
- Total balance on sold gift cards.
- Balance of the gift cards spending.
- Total number of loyalty points.
Also, the loyalty software should enable marketing leaders to compare revenue coming from engaged vs. regular shoppers. If you add the ability to filter out locations, customer segments, dates, partners, they’ll get a useful tool to calculate the promotional lift.
Or, even better, it should be able to deliver accurate numbers/charts according to some predefined formulas like “conversion rate” vs. “engaged conversion rate”.
They might also want to request regular email updates on how their customer strategy is doing.
Scaling and maintenance
An experienced PM knows that “The Launch” is often the easiest step. The real avalanche of requests slides off later on. Marketers and customer support agents will raid you with hordes of questions and issues to check/change/delete various data. And it’s OK, that’s how the market works.
But your role is to neutralize them and protect your team from tedious tasks. To do so, you need to gear up in features from the “self-serve” family.
The most obvious one is to let respective users control the loyalty campaigns on their own so that they can react right away. For instance:
- Deactivate the coupon when it’s overused, then
- change the validation rules of the campaign, then
- reactivate it.
It might be useful to do updates in bulk if the changes affect more customers.
Also, they should be able to get some insights into the performance of existing campaigns so they can plan the next ones better. This can be as easy as showing a simple dashboard with distributed/redeemed stats per campaign and global. Having such metrics accessible from a simple dashboard will reduce the number of walks of shame to the development team.
When it comes to customer support agents, they will love a single customer profile view, where they can trace the history of rewards redemptions. This was one of the most requested features from our customers. Alongside, they wanted to enable agents to apply redemptions on behalf of the customers, if they had some issues.
However, giving users more control has its downsides too. One of them is the higher chance to screw things up. If you care about data integrity and I know you do, you should think of a basic audit log showing you who did what and when.
You can also apply some level of self-service for loyalty program members. A customer cockpit view where they can see their loyalty points, referral status, rewards they’re eligible for, and where they can redeem them can empower them and reduce the load on your customer service. You’ll free up your support agents from answering tons of questions related to your rewards program and your marketing team will gain some space to entice your audience with even more personalized deals.
If your loyalty program covers several countries or affiliate partners, you might want to spread engagement campaigns between them. To achieve that, it’s reasonable to include multi-tenant architecture in the design phase. For instance, promo codes from tenant A shouldn’t be redeemable at B customer touchpoints and vice-versa. Or, the customers from Warsaw shouldn’t see banners offering 25% off discount for some of your products.
When your customer loyalty programs are big enough to require several (or even dozens) people to oversee them, you should think of adding fine-grained user roles.
Team members from customer service shouldn’t be able to launch new campaigns, but they should know how to assign an “apologize” coupon to a customer. Junior marketers shouldn’t be able to give 50% off discounts for the whole inventory, but they should be able to compile a performance report from A/B tested campaigns.
Speaking of abstraction, let’s talk about technical details. We’ve laid out a pretty solid feature set for a customer loyalty strategy that includes a decent level of personalization.
Technical requirements for a loyalty software architecture
On top of the reward engine we’ve just described, you should build a web API. Why? Because marketing channels change so often that you need to separate the reward program logic from the front-end. Otherwise, your work will become obsolete and won’t be of much use in the future. Let’s go through the list of useful API components for your loyalty management software.
If you are new to the API, we highly recommend you check out this article.
Customer touchpoints interface
Any channel needs three elements to fulfil the reward journey:
- Get reward details to display them to customers (nice-to-haves: filter by customer, filter by activity status).
- Mark a reward as published/assigned (useful for campaign success reports, e.g., # redeemed customer rewards vs. # notifications).
- Allow a customer to redeem the reward.
These three features should be reflected in API endpoints, so that you can connect engagement campaigns to mobile, web, IoT, display ads, live chat, or anything future will bring.
Programmable loyalty campaigns
Sometimes your team might want to personalize loyalty programs in response to external events. Real-life examples? If it’s raining, send out a 10%-off coupon to invite shoppers to buy online today. Or, if a competitor’s price drops, you show a discount too. To achieve this in the future without hassle, you might extend your API with endpoints to create, start, and stop campaigns programmatically using your loyalty software of choice.
But what if you’d like to orchestrate other parts of your e-commerce software based on what happens in your loyalty campaigns? For starters, you can think of a notifications queue the client application can subscribe to.
Events like a customer redeeming (or failing to redeem) a reward, creating/starting/stopping reward campaigns, or adding a customer to a rewards program are good triggers to start with. If you already know that your scale is growing and you’ll have a lot of external systems to work with, you might want to consider a full-blown webhook mechanism, with authentication and the retry policy.
Authentication & monitoring
Managing access will be way easier if you include separate API keys. You don’t have to write it from scratch, there are tools that handle this process end-to-end such as Apigee or Kong. They already include things like rate-limiters and audit logs which are essential if you want to keep your loyalty system easy to monitor, and thus secure.
Customer support can be refined with your customer loyalty strategy.The first step then is to help your agents ease complaining customers quicker than they can say "I'd like to speak to the manager". You can do that by creating a small customer success agent-focused view where they reimburse unhappy shoppers, e.g., assign a “sorry” coupon or add the equivalent of a loss in loyalty points.
You can also give CS agents insight into customers profiles. If she’s already a loyal customer who refers your brand a lot, you might want to serve her complaint with priority. A step up would be to leverage the API and to embed this functionality into your customer support software. Many of them have open platforms, thus allowing for building custom extensions. Imagine how sending a personalized “apologise” coupon code right in the live chat box can improve retention rates.
Sometimes your customers have problems with redeeming their rewards. The CS-focused view of your loyalty software should enable agents to apply them manually and retroactively – validating the order structure and customer attributes against your rules.
Legal requirements for a loyalty program software
One of the important things you must keep in mind is involving the legal department in making sure the data storage, processing, and all consents are compliant with the local and international laws. Keep in mind that they might not be the laws that apply to your company based on your location but the laws of the countries where your customers are located. This might be very complex if you have an international business online, with many customers coming from different countries. You have to comply with the majority of the rules. For writing terms and conditions and for defining technical requirements regarding data processing and data storage, we strongly advise you to get a knowledgeable law practitioner. In the long term, it’s cheaper than paying fines.
A quick checklist to get you started (that might not cover all points, depending on which market you are targeting!) of what you should have in mind when creating a loyalty program and choosing loyalty management software:
- Unfair and deceptive trade practices are very broadly defined in various countries. What it means for your rewards program is that customers must understand the rules of programs they participate in. Be careful when you write your terms and conditions, they need to be understandable not only for lawyers but mainly for your customers! Here’s an example of failing to do so – in 2013, the Missouri Attorney General settled a suit with Walgreens because, in part, its shelf tags were not clear about how to redeem points.
- Having an expiration date on gift cards might be prohibited in some countries/states. For example, Maine, USA prohibits having an expiry date on gift cards and requires businesses to give cashback in case the gift card can no longer be used.
- Many countries have different rules on data storage and processing, like the GDPR in Europe. Make sure you check which law applies to your business. One of the important pieces of information you need to provide to your customers is how to opt out from your marketing communication and how to request data deletion in case they do not want you to keep their personal data anymore. Where you store the data (a local server vs. a server abroad), data security, and whether you share the data with any other parties (even your contractors/suppliers) are other important parts of your agreement with the customer.
- Reserve the right to alter the terms and conditions of the loyalty program, including reserving the right to apply changes retroactively to benefits already accrued under the program.
- A loyalty program is a contract. Some businesses fail to realize that the promises you make in your program are enforceable. You make what’s called a “unilateral offer” by advertising your rewards program. Consumers accept your offer by performing according to the terms of your offer. Suppliers have a duty to ensure that the goods offered to consumers in loyalty programs are in stock. In most advertisements, you will hear the “while stocks last”, “subject to availability”, or “terms and conditions apply” at the end, which suppliers believe cover them if they are not able to satisfy the promises made. It might not be the case, depending on the local law.
- Consider tax implications if clients use their points/gift cards as payment. Will you collect tax for the full value or only the one they pay in cash for? Collect too little tax, and you’ll get hit with a bill and possibly penalties. Collect too much, and you risk a class-action lawsuit brought on behalf of your customers. A tax attorney can help you with defining the right approach.
- In Europe, due to the GDPR, you cannot just send marketing materials to the referred friend, as they have not given their consent (yet). The only workaround we are aware of is to send the information to the referred friend informing them that they have been referred and asking for consent for sending further communication. If no consent is given, you cannot contact them again. We recommend you consult with your legal advisor because the suggested approach is not explicitly stated in any law.
- Check if the name of your program is not a registered trademark. Consider registering yours, especially if it does not contain your brand name.
Those are just some of the points to keep in mind when building or buying a customer loyalty software. We strongly advise you to consult a legal/tax advisor on those and any other regulations that may affect your program before you launch it.
If you are currently looking for a customer loyalty software, Voucherify is the answer. Voucherify is a Headless, API-first Promotion Engine that allows you to launch personalized discount coupons, in-cart promotions, gift card campaigns, referral programs, loyalty programs and giveaway campaigns, in no time. Discover our features here.
Ready to build personalized loyalty programs? Sign up for free and awake loyalty in your customers.