Loyalty points balance management with Synerise

Every loyalty program based on the earn and burn process faces a major challenge in reducing the number of points earned by users.

Every loyalty program based on the earn and burn process faces a major challenge in reducing the number of points earned by users. This is due to mandatory financial provision set up for the whole value of virtual currency held in the accounts. Depending on the size and popularity of the program, we are talking about thousands or millions of euros / dollars.

There are two basic approaches to loyalty points cancellation:

  1. Setting up expiration date for each loyalty point earning event
  2. Regular batch cancellation for the entire database (mostly once a year) with specific business conditions

At this time, we will present the latter one which advantages over the first one are as following:

  • clarity of rules,
  • configuration flexibility,
  • easier communication and control.

But it also comes with some challenges, especially when you call yourself a modern digital company.

What are the main challenges?

  • First of all, you need to calculate the cancellation points for each user in your database, and this calculation should be done as close as possible to the cancellation itself - assuming you want to analyse your data in real time and not stop your business processes for days or weeks before the actual cancellation.
  • Secondly, the process should take as little time as possible - it's best to do this in a quiet part of the day which usually means a few hours at night. That's all you can afford to be transparent to your customers.
  • You need to specify and implement rules of cancellation – which points for which activities and in what timeframe should be considered in the process and which shall not.
  • The last thing is the ability to quickly send personalized communication to each user whose points have been taken away with information on the amount of the loss and, for example, a new personalized promotional offer that can mitigate a very likely initial dissatisfaction.

Let’s have a look how we can do it with Synerise.

Use case: batch cancellation of loyalty points for 5 million users within 6 hours, followed by communication send via email.


  1. Build a calculating expression, based on expression used for counting balance.

Thanks to the expressions logic, which allows us to use advanced mathematical rules for calculations in the user context, we can set up specific rules for counting points. For example, we can summarize all up-charging events, resign from cancelling points earned last month to be more user-friendly and not giving away points that the user has not had time to spend.

Such an expression is built of aggregates that sum up points in specific time intervals - each of them is separately configured and summed up at the end, for example:

2. Create a segment of users that needs to be included in the process based on the expression from the previous step that shows the number of points to be cancelled greater than 0 and some additional conditions if necessary:

Keep in mind that the segments in Synerise are dynamic and change in real time, so your information will always be up to date.

3. Create an analytical dashboard that will track the entire process in real time and show the final results.

Such a dashboard can be built of an initial segment, a segment of users who have completed the automation process, a segment of users that failed the process, the number of points cancelled, comparison of users on input and output, users who received a confirmation email, etc.

4. Prepare an automation workflow which will take care of the rest.

Such automation is triggered on a schedule (most likely at a certain night time) with the segment set in step 2. Then we need to lock users’ point balance (which will automatically expire after a configurable time) for the duration of the process so that they cannot change it by manually activating and deactivating promotions, completing quests, etc.

Before we proceed, we need to wait for an event that confirms the lock. If we do not receive such an event, we move users on the "fail" path and finish the journey. Later, we can easily find such cases, and both analyse the cause of the failure and collect them in the second round of the deletion process.

The next step is the client filter, in which we distinguish two types of customers: with currently active promotions and without. If customers do not have active promotions, we simply send them an event that deducts points from their point balance, so they complete their journey successfully. If they have such promotions, we will deactivate them beforehand (to add points "hidden" in these promotions but not yet redeemed to find the real balance), wait for the confirming event, send the event by subtracting points from the balance and then finish the journey.

Now having a point deduction event along with the number of these points, we can easily send a personalized campaign to the entire segment using jinjava inserts (https://help.synerise.com/developers/inserts/automation/,https://help.synerise.com/developers/inserts/email/ )

What is also crucial is the fact, that thanks to our real-time analytics based on expressions (https://help.synerise.com/use-cases/loyalty-programs/ ), the balance for each user changes at the time the user receives the event.

Summing up:

  1. The process takes just a few hours instead of days or even weeks.
  2. It can be fully automated with Synerise Automation Workflow, including personalized post-cancellation communication.
  3. Synerise analytics tools offer outstanding flexibility in terms of conditions configuration.
  4. You are able to monitor the process with custom-made dashboards.
  5. Such scenario can be easily duplicated and reconfigured the next time we need it.

All of that with synerise.com