Loyalty points balance management with Synerise

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.

Main assumptions

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 - Regular batch cancellation.


The main advantages of this method as following:

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


It also comes with some challenges, especially when you call yourself a modern digital company. The main challenges is:

  • 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.

Configuration and detailed description

Let’s have a look how we can configuration regular batch cancellation with Synerise.

In our case, client have to create batch cancellation of loyalty points for 5 million users within 6 hours, followed by communication send via email. To meet all assumptions listed before, we have to prepare a list of needed elements which will be described below:

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.

Create segment 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.

Such automation is triggered on a schedule (most likely at a certain night time) with the segment set in step.

Automation include:

  • 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.
  • create 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.

5. Optional create personalized campaign

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.

What is also crucial is the fact, that thanks to our real-time analytics based on expressions, the balance for each user changes at the time the user receives the event.


The process is highly efficient, taking only hours compared to traditional methods that can span match more time. With Synerise Automation Workflow, the entire procedure can be automated and then monitoring thanks to custom dashboards. Additionally, the established scenario can be easy configuration, effortlessly replicated and adjusted for future needs.