Architecture of customer loyalty software — a guide for product managers
How to find the right customer loyalty software? Which features does my loyalty program need? Architecture of a good loyalty program software.
Architecture of customer loyalty software — a guide for product managers
So you want to launch a customer loyalty program? I’d surely go for it too if I ran a B2C business — and bumped into the recent stats from Adobe:
“40% of revenue comes from returning or repeat purchasers, who represent only 8% of all visitors”.
To me, that’s enough to justify some serious investments in technology supporting this matter. But how to estimate this investment? What are some obstacles on the road to a well-oiled loyalty program? How to retain customers with capital “R”? This article tries to answer these questions from the PM’s point of view.
Table of contents:
- Customer loyalty trends
- The requirements a loyalty program should satisfy
- Features of a good loyalty program
- Personalized incentives
- Validation rules
- Start and expiry dates
- Loyalty program tiers
- Budget limits
- Distribution and communication
- Popular channels
- Scaling and maintenance
4. Engineering – a technical look into customer loyalty software
Customer loyalty trends
Customer retention (I wouldn’t say I like this word, but you know… SEO and stuff…) is getting more and more buzz these days. Millennials’ loyalty trends, or actually the lack of them, make it difficult to steer your audience towards repeat sales. To show you the problem is real, let’s put some data on the table:
At the same time, other studies confirm that a well-crafter loyalty program can be a useful tool to fix some of these obstacles:
If you’re curious about the ins and outs of this phenomena, go to Clint’s article where he compiled several studies and elaborates on them. If, in turn, you want to do what you’re paid to do as a PM — start building a loyalty program with the best customer loyalty software available — read on.
The requirements a loyalty program should satisfy
I am going to share all the tips we’ve faced while building and deploying our customer loyalty technology. I hope they will help you ship your loyalty program and satisfy your teams and your customers, of course! I know that 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 crystallized over time.
What are the deliverables of a loyalty program software? Let’s split the requirements into several categories based on the department they serve.
Let’s start with the most obvious stakeholder. Attracting new customers and enticing them to repeat purchases is their primary job. To be at the top of their game in the digital world, they have to tap into customer loyalty technology. So, to be precise — technology that enables marketing personalization with every current and future channel.
67% of consumers cite bad experiences as a reason for churn”, says article compiled by Vala Afshar, Chief Digital Evangelist at Salesforce.
But you don’t need any advanced research to know that great customer service leads to loyalty. And yes — your tech stack can support this too. In this chapter, you’ll explore how your CS agents can win customers back with immediate personal discounts.
Shipping technology that fulfils requirements from the customer-facing teams requires flexibility. When push comes to shove, and “production” contradicts plans and forecasts, your loyalty program software should fix the issues with an iteration or so. Also, new customer touchpoints popping up now and then should provide enough reason to keep your loyalty program architecture open for change.
No iterations on customer loyalty software are possible without proving that the company is cashing in on what you’ve shipped so far. Loyalty program metrics are a must-have. There’s more to that. For some projects, launching loyalty campaigns can be an important part of a strategy. In these cases, management might want to keep an eye on campaigns with bigger budgets and have fine-grained control over when the loyalty campaign is launched.
GDPR and upcoming security policies have an impact on how you process and store data. Naturally, your loyalty program, as any other customer-facing process, is affected and has to be planned with care.
There are many cross-cutting concerns your loyalty platform should support within an organization like training, documentation, FAQ, data exports, user management, new feature announcements, or system status. We’ll take a look at them too.
Features of a good loyalty program
We’ve said that to let marketers increase customer loyalty, you need to equip them with personalization capabilities. Over the last 3 years, we’ve been watching how our customers personalize their customer retention campaigns, and we’ve discovered the essential loyalty program features. Let us share them with you.
According to our experience, every customer retention campaign that works relies on a personalized incentive.
A personalized incentive requires 3 features: reward catalog, eligibility, and timing.
If you would like to learn more about loyalty personalization, give this piece a read.
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 — 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.
The biggest problems with any incentives meant to turn first-time customers into recurring ones 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.
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, purchase and reward redemption history
By making your loyalty program engine 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 1 year and they are located in the UK (validating the purchase history and location of the customers).
2) Order structure and volume
You might want to grant the rewards based on the order structure and volume, in other words, what and how much of it the customers are buying. You can achieve it by integrating your validation rules with the shopping cart engine.
Your loyalty system should be able to understand the content of an order and validate whether the customer can redeem it against an active reward campaign.
In 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, or
- this 10%-off coupon is available only for iPhone X, or
- 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 a 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
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 are the things that 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 the 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 auto-applied 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 — if it’s relevant to your business — 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. You 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 awake loyalty in your customers.
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. 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 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 with 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 enticing certain customer behaviours and budget spent on enticing purchases.
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 coupon went viral in the wrong audience. 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. Or better, your marketing team can do this on their own.
Distribution and communication
We’ve said enough about securing your loyalty campaign. Equipped with 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 the rules of the program. 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 the customers their perks based on variables they can input, for example: frequency of shopping, average spends, 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.
*Caveat: 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. We give you some hints on how to keep it open for change in the Engineering chapter.
You can automate incentive delivery with 3 main solutions, each of them is more advanced and requires more software to work but also brings more value.
These are the main 3 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 have already higher visibility than regular SPAM. But even equipped with a reward, it 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 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. You should be able to brand the messages according to your company’s style guide and personalizing them for each promotion. It saves a lot of time and resources if you can use some kind of 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 e-mail 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 can marketers calculate and optimize the ROI of a loyalty program? Simply — by accepting and tracking reward redemptions. This means your 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.
Sidenote: This is actually the backstory of Voucherify. In one of the projects we helped with as a software house 4 years ago, small changes in reward eligibility were 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 tell them 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.
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 jobs. 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, e.g.:
- 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, in case the changes affect more coupons/more customers.
Also, they should be able to get some insights into the performance into existing campaigns so that 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. It would be very useful for your Customer Service to access a 360 degrees customer profile where they could see all their activities, earned rewards, redeemed rewards, expired rewards to be able to support the customers in case of any issues/queries. Having such metrics accessible from a simple dashboard will reduce the number of trips to the developer team a lot.
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 had some issues being eligible.
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 — who did what and when.
You can also apply some level of self-service for customers. A customer cockpit view where they can see their loyalty points, referrals 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 loyalty 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 isolate 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 assign an “apologize” coupon for 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 etc.
You don’t have to implement roles from day one, but it’s wise to build in some abstraction to introduce them later on.
Speaking of abstraction, let’s talk about technical details. We’ve laid out a pretty solid feature set for a customer loyalty strategy which includes a decent level of personalization. I hope this term isn’t a black box anymore and that you can relate these requirements to your context.
Engineering – a technical look into customer loyalty software
Marketing personalization needs something more. 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 loyalty program logic from the front-end. Otherwise, you work will become obsolete and won’t be much use for 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 pieces to fulfil the reward journey — the ability to:
- 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 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.
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 a shopper to your brick-and-mortar stores. Or, if a competitor’s price drops under some value, 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 according to what happens in your loyalty campaigns? For starters, you can think of a notification 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 loyalty 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.
Authentification & monitoring
Speaking of partners, 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 success processes also can be refined with your customer loyalty strategy.
Remember one of the opening statistics? “67% of customer churn is preventable if the issue is resolved during the first interaction.“ The first step then is to help your agents ease complaining customers in next to no time. 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 extension. 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.
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 card spend
- 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 the 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 works for the company.
One of the important things a PM must keep in mind is involving the legal department in making sure the data storage, processing, and all consents they collect are compliant with the local 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 loyalty program is that customers must understand the rules of programs/schemes 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. (An example - Maine, USA prohibits having an expiry date on gift cards and requires businesses to give cash back in case the gift card can no longer be used.) Make sure you check the law about it.
- Privacy and data security - 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 loyalty 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 in case 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.
- Referral programs - contacting the referred friend. 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 to consult it 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; 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.
Ready to build personalized loyalty programs? Sign up for a free trial and awake loyalty in your customers.