Projects:Loyalty Programs/Functional Documentation
Introduction
What is a loyalty program?
Loyalty programs are structured marketing strategies designed by merchants to encourage customers to continue to shop at or use the services of businesses associated with each program.
Loyalty programs encourage shoppers to return to stores where they frequently make purchases. Some of the incentives may include advanced access to new products, additional discounts or sometimes free merchandise.
In loyalty programs:
- A single customer can be subscribed to different programs
- Programs can have different categories, which are levels where the user will be categorized
- Earn rules allow to earn points based on the processing of transactions
- Burn rules allow to burn points into different outputs (money, cheques, discounts, gifts, ...) depending of the burning mechanism/algorithm
- Category rules will allow user to move from one level to another based on a defined mechanism/algorithm
Objectives of the document
The main objective of this document is to describe the different windows that are used to configure and manage loyalty programs. Definition of earning and burning rules will follow the same structure as Discounts and Promotions: main types defined at system level and configurations applied to to them by the user.
Loyalty Program Management
Earn Rule Type
- Earn rules allow to earn points based on the processing of transactions
- Earn rule types are defined at System Level and can not be modified by a regular user
- Fields of new Earn rule type window:
- Search Key
- Name
- Active
- Description
Burn Rule Type
- Burn rules allow to burn points into different outputs (money, cheques, discounts, gifts, ...) depending of the burning mechanism/algorithm
- Burn rule types are defined at System Level and can not be modified by a regular user
- Fields of new Burn rule type window:
- Search Key
- Name
- Active
- Can Be Executed Manually: the rule will define if allowed to execute manually or not
- Can Be Executed In Scheduled Process *: the rule will define if allowed to execute in scheduled process or not
- Description
Category Rule Type
- Category rules will allow user to move from one level to another based on a defined mechanism/algorithm
- Category rule types are defined at System Level and can not be modified by a regular user
- Fields of new Category rule type window:
- Search Key
- Name
- Active
- Description
POS Terminal Type
- POS terminal types will allow or not the subscription process
- Fields to be added to existing POS Terminal Type window:
- Can Subscribe to Loyalty Programs
Loyalty Program
- Regular users can add as many loyalty programs as required
- Fields of Loyalty program window:
- Organization *: will define the sub-tree of organizations the program will apply to
- Search Key
- Name
- Active *: to be taken into account when displaying a list of programs to be selected in a drop-down list (for instance, in WebPOS, don’t display inactive programs)
- Exclusive *: will indicate whether the loyalty program is exclusive or not, meaning if:
- The user is already subscribed to another loyalty program, she will not be able to subscribe to an exclusive program
- The user is already subscribed to an exclusive loyalty program, she will not be able to subscribe to another program
- Start Date *: date of start of the loyalty program. To be taken into account when displaying a list of programs to be selected in a drop-down list (for instance, in WebPOS, don’t display not started programs)
- End Date: date of end of the loyalty program. To be taken into account when displaying a list of programs to be selected in a drop-down list (for instance, in WebPOS, don’t display expired programs)
- Member Identifier Sequence *: list of document sequences in order to select the one to apply to the Member ID of the program
- Description
- Fields of Statuses tab of Loyalty program window:
- Sequence Number *: allows to order the list of statuses
- Default *: only 1 Status record can be Default per Loyalty program
- Name *: name of the statuses
- Can Earn Points *: flag that indicates if a customer subscribed to the loyalty program and in this status can earn points
- Can Burn Points *: flag that indicates if a customer subscribed to the loyalty program and in this status can burn points
- Description
Categories
- Programs can have different categories, which are levels where the user will be categorized
- User can define as many categories per program as she wants, but only one can be default
- Fields to be added to new Categories tab of new Loyalty program window:
- Name
- Default *: user can define as many categories per program as she wants, but only one can be default
- Level *: indicates the hierarchy of categories, in integer number, that is unique per program
- Active
Earning rules configuration
- Earn rules allow to earn points based on the processing of transactions
- User can define as many earning rules per program category as she wants, and all will apply (if active and start and ending date correspond)
- Same rule can apply for different categories with different configuration values
- For each earning rule, a configuration is applied with values to be set to parameters specific to the type selected for the rule
- Fields to be added to new Earning rules tab of new Categories tab of new Loyalty program window:
- Type of Earn Rule *: list of earn rule types defined at system level
- Name *
- Active *
- Start Date *: date of start of the earn rule. To be taken into account when applying the rule.
- End Date: date of end of the earn rule. To be taken into account when applying the rule.
- Included Organizations *: allows to indicate included/excluded organizations for the earn rule:
- All excluding defined (default value)
- Only those defined
- Fields to be added to new Organization tab of new Earning rules tab of new Categories tab of new Loyalty program window.
Category rules configuration
- Category rules will allow user to move from one level to another based on a defined mechanism/algorithm
- User can define as many categories rules per category as she wants
- Fields to be added to new Category rules tab of new Categories tab of new Loyalty program window:
- Type of Category Rule *: list of category rule types defined at system level
- Name *
- Active *
- Start Date *: date of start of the category rule. To be taken into account when applying the rule.
- End Date: date of end of the category rule. To be taken into account when applying the rule.
- Fields to be added to new Configuration tab (1 record only) of new Category rules tab of new Categories tab of new Loyalty program window:
- Required points for level change *: number of points needed for the category rule to upgrade the user to a new level
Burning rules configuration
- Burn rules allow to burn points into different outputs (money, cheques, discounts, gifts, ...) depending of the burning mechanism/algorithm
- Burn rules are common to all categories, so they are defined below Program not below Category: this means that all points of the user for a loyalty program are burned equal, no matter the category
- User can define as many burn rules per program category as she wants, and the ones to apply will depend on priorities and if next rules apply or not
- For each burning rule, a configuration is applied with values to be set to parameters specific to the type selected for the rule
- Configuration tab will be visible only when “Can Be Executed Manually” is checked.
- Fields to be added to new Burning rules tab of new Loyalty program window:
- Type of Burn Rule *: list of burn rule types defined at system level
- Name *
- Active *
- Start Date *: date of start of the burn rule. To be taken into account when applying the rule.
- End Date: date of end of the burn rule. To be taken into account when applying the rule.
- Can Be Executed Manually: Indicates if the rule can be applied when burning points manually. Can be modified only if Can Be Executed Manually = Y for the rule type. Configuration tab will be visible only when “Can Be Executed Manually” is checked
- Can Be Executed In Scheduled Process: Indicates if the rule can be used when points are burned manually (via the Burning Run process). Can be modified only if Can Be Executed In Scheduled Process = Y for the rule type
- Included Organizations *: allows to indicate included/excluded organizations for the burn rule:
- All excluding defined (default value)
- Only those defined
- Fields to be added to new Organization tab of new Burning rules tab of new Loyalty program window
Conversions
- Conversions window allows to define the monetary value of a point to apply to burn rules
- Different conversions can be defined for different start dates: conversion to be applied is the one with most recent start date when burning (with conversion start date <= burn date)
- Fields to be added to new Conversions window:
- Currency *
- Active *
- Start Date *
- Price of Point *: indicates value (in the currency defined) of 1 point burned
Burning Points Processes
Burning points is the action of converting points into different outputs (money, cheques, gift cards,... ) which can be then used by the customer. Points are burned by applying a set of Burning Rules to the points already earned by the customer.
There are two ways of burning points:
Manually
It is possible to select several lines of Earned Points and click on the Burn Points Process button. This will open a Parameters window allowing to choose a single Burn Rule. The list of available Burn Rules will be defined by the Start/End dates, the Can Be Executed Manually flag.
Burning Run Process
It will be possible to schedule a new Process (through the Process Request window) to execute the Burning Process periodically. This process will read the configuration of each Burn execution from a new Burn Run window.
Burn Run (Traitement de burn) records will define the following information:
- The Program for which the Burn Run is defined
- The Date in which the Burn Process is executed
- The Date limit until which transactions (earned points) will be considered to be burned.
A subtab to define which Burn Rules will be executed. The list of available Burn Rules will be defined by the Start/End dates, the Can Be Executed In Scheduled Process flag. Each Burn Rule defined here will have a priority, which will define the order in which Burn Rules will be evaluated.
Additionally, each Burn Rule will have its configuration tab for the specific Burn Run.
Burn Run records by default will be created in pending/non-ready mode, meaning that by default a Burn Run configuration cannot be used by the Burn Run Process. A simple process button will be used to set the Burn Run as ready and usable by the scheduled process.
Copy Configuration process will be available to create a new Burn Run based on a previous Burn Run.
Simulate button will allow to launch a simulation of the Burn Run configured.
- Fields to be added to new Burn run window:
- Loyalty Program *
- Burn Date and Time *: indicates when the Burn will happen
- Burn Execution Limit: indicates date limit until which transactions (earned points) will be considered to be burned
- Status (Draft (Brouillon)/Pending (En attente)/Running (En cours)/Executed (Complet)) *: status of the execution of the Burn Run
- Set Ready *: button to change Status from Draft to Pending (Soumettre). Ability to Set Draft again from Pending (Annuler). No button available when status is Executed (Complet)
- Copy Configuration *: button to duplicate a Burn run. The Burn run is copied into a new one with Burn Date and Time = Now and ready = N and Status = Draft with the same Burning rules and Configurations.
- Simulate *: button that allows to simulate a Burn Run
- Fields to be added to new Burning rules tab of new Burn run window:
- Priority *: priority of the rule, unique number per Burn run
- Burn Rule *: active and valid burn rule of the program selected for the ** Burn run (taking into account the Start/End dates and the Can Be Executed In Scheduled Process flag), unique per Burn run
- Log: log of the burn rule execution
- Fields to be added to new Burned points tab of new Burn run window:
- Date and Time of Burn *: date and time of the burn execution
- Event *: indicates the event that lead to the burning of points, can be filled with the burn rule name
- Log: log of the point burn execution
- Burned Points *: number of points burned
Subscriptions
- Subscriptions can be both a stand-alone window or a tab of Loyalty Program window or a tab of Business Partner window
- Main tab is Subscription, where the customer is actually subscribed: user can create a new record or see records of subscriptions created using WebPOS
- Subscription log is the tab where the changes in statuses for the customer subscribed are logged.
- Cards is the tab where cards associated to loyalty programs are logged
- Fields to be added to new Subscriptions window:
- Loyalty Program *: loyalty program the customer is subscribed to
- Category *: category of the customer in the loyalty program
- Active *
- Customer *
- Date and Time of Subscription *
- Member ID *: unique member ID per customer and loyalty program.
- Store: organization/store the customer subscribed in if done via WebPOS
- POS Terminal: indicates the POS Terminal where customer has been subscribed, if done via WebPOS
- Currency *: currency of the organization/store the customer subscribed in if done via WebPOS
- Total points available *: sum of all available points (balance) for this loyalty program
- Status *: current status of the customer in the loyalty program
- Description
- Change Status *: button to move customer between statuses in the program. Statuses are defined in the tab Statuses of Loyalty program window. Each change in status is logged in Subscription log. Status proposed in the pop-up opened by the button are all the active statuses for the loyalty program, except the current status of the customer
- Fields to be added to new Subscription log tab (read-only) of new Subscriptions window
- Initial Status *
- Final Status *
- OK *: indicates whether the process of status change finished OK or KO
- Date and time *
- Description
- Fields to be added to new Cards tab of new Subscriptions window
- Active *: only 1 card can be active for a subscription
- Card Number *
- Emission Date *
- Expiration Date
Earned Points
- Earned points shows the historical data of earned points by a customer subscribed to loyalty program
- Burning of Points shows the points already burned for the earn transaction
- Earned points is located under Subscriptions window
- Earned points show data automatically calculated by earning processes: Manual = N in this case, and these records can not be modified
- Earned points can be entered manually in this window: Manual = Y for this case, and can not be edited but can be deleted if the record is not associated to burning events
- Fields to be added to new Earned Points tab of new Subscriptions window:
- Earn Rule *: earning rule that lead to the gain of points
- Active *
- Date and Time of Earn *
- Earned Points *: total points earned during the earning calculation
- Available Points *: points earned during the earning calculation that have not been burned yet = total points - points burned
- Card: card active at the time of earning the points. Allows to track points earned with each of the cards available for the customer in the program (see Cards tab)
- Event *: description of the event of earning points
- Log (description) *: description logged by the earning algorithm
- Manual *: read-only checkbox defaulted to Y when adding a manual entry
- Burn Points *: button to burn the selected earned points record if available points > 0 (display logic applies). This button is also available in list/grid mode and allows to select different earned points records (even if some are available points > 0). When selecting it, a popup with a drop-down list is displayed with the available, active and valid burn rules defined for the program (taking into account the Start/End dates and the Can Be Executed Manually flag of the Burn Rules): only 1 Burn Rule record of the drop-list can be selected.
- Fields to be added to new Burning of Points tab (read-only) of new Earned Points tab of new Subscriptions window
- Burned Points *
- Date and Time of Burn *
- Burning *: shows the description logged by the burning algorithm
Burned Points
- Burned points shows the historical data of burned points by a customer subscribed to loyalty program
- Origin of Points shows the origin of the points for the burn transaction
- Burned points is located under Subscriptions window
- Fields to be added to new Burned Points tab (read-only) of new Subscriptions window:
- Burn Rule *: earning rule that lead to the gain of points
- Active *
- Date and Time of Burn *
- Burned Points *: total points burned during the earning calculation
- Event *: description of the event of burning points
- Log (description) *: description logged by the burning algorithm
- Fields to be added to new Origin of Points tab of new Burned Points tab (read-only) of new Subscriptions window
- Points *
- Origin *: shows the description logged by the earning algorithm
Loyalty Program Subscription
WebPOS Loyalty Subscription Icons
- Icons of different colors will indicate the loyalty program subscription status of the customer:
- Standard Openbravo:
- No icon if the customer is not subscribed to any loyalty program
- Red:
- when customer subscribed to an exclusive loyalty program which is inactive (inactive or expired)
- when customer subscribed to several programs, and all of them inactive (inactive or expired)
- Gray:
- when customer subscribed to an exclusive loyalty program which is active (not expired)
- when customer subscribed to several programs, and all active
- Orange: when customer subscribed to several programs, some active and some inactive
- Custom Skins can overwrite the default icons and colors of base Openbravo module
- Icons will be clickable. When clicking icons they will open the Customer Card window or selection, depending on where they are shown: behavior will be consistent with current clicking of Customer Name
* A subscription will be considered inactive if:
- The subscription itself if defined as active = ‘N’
- The associated program is defined as active = ‘N’
- The associated program is expired.
WebPOS New Subscription
- Subscription via WebPOS is subject to:
- Terminal Type of the WebPOS terminal allowing or not to start a subscription to loyalty programs
- Preferences and roles that allow the user to do the subscription action in WebPOS
- New subscription sets the status to the default value defined in the program, if any: otherwise takes the lowest sequence number status
- Subscription can only happen for an already existing customer (editing customer), not when creating a new one
- Subscription can be started in 3 places in WebPOS:
- In Customer Card, with New Loyalty Card icon “+”: this opens the Loyalty Program Subscription popup to start the process.
- If customer is already subscribed to an exclusive program which is active and not expired, display in this same popup the message “Customer is already subscribed to an exclusive loyalty program and can not be subscribed to a new one”
- In customers search list, by clicking the 3 points icon with text “Loyalty Program Subscription”: this will open the Customer Card with direct open of the Loyalty Program Subscription popup to start the process, as stated above. Same check of exclusive program applies.
- In Manage Loyalty Cards popup, with New Loyalty Card button: this opens the Loyalty Program Subscription popup to start the process.
- In Customer Card, with New Loyalty Card icon “+”: this opens the Loyalty Program Subscription popup to start the process.
- 1st step in Loyalty Subscription popup, if customer can subscribe to a new program, is a drop-down list is presented in order to select the program: only active and not expired programs are presented in the list (not excluding the ones the customer is already subscribed to, message will be displayed).
- 2nd step after selecting the loyalty program is to fill the required and optional fields for the program.
- Loyalty Program is informed in read-only mode
- In base module Member ID field will be presented populated and will be read-only
- When clicking Save on this second step:
- Record is saved in Subscription table, with:
- Loyalty Program
- Category (default category for the program)
- Subscription date and time: now.
- Subscription status: the default status for the program, or the lowest in sequence if no default status
- Store: store of the WebPOS
- POS Terminal: terminal of the WebPOS
- Currency: currency of the store of the WebPOS
- User is moved directly to the Loyalty Subscription Info popup (where Loyalty Name, Member ID, Status and Date of Subscription are informed)
- Since there is no Status change since it is a creation, no record is added in Subscription Log window
- Record is saved in Subscription table, with:
- If user clicks Cancel in this second step, no info is recorded in Backoffice
WebPOS Subscription Search
- When searching for customers in WebPOS, a filter by loyalty program will be made available:
- Regular text search field has to be able to find the customer if we introduce the Member ID. If a loyalty program card containing the member ID has been scanned, the value should be informed here for easier search.
- Advanced Filter:
- Loyalty program: drop-down list of all available loyalty programs (including inactives and expired)
- Member ID: text field to search by Member ID (Loyalty ID).
- Fields and filters must be added to RCU to retrieve customers based on new loyalty fields: loyalty program name and member ID (see Integrations specs)
WebPOS Loyalty Subscription Info View
- All the programs the customer is subscribed to are viewed from the regular WebPOS Customer Card: clicking on it, Manage Loyalty Cards popup displays with a line for each loyalty subscription plus the New Loyalty Card button.
- Subscription info can be viewed but NEVER edited in webPOS: back office operations are required for changing, for instance, the status.
- In the Customer Card, each program customer is subscribed is informed:
- If only 1 program: name of the loyalty program and value of the field Member ID and Status are displayed
- If more than 1, - X records - text is displayed, being X the number of programs (no matter the status active or not) the customer is subscribed to
- In both cases, when the field value is clicked, a pop-up Manage Loyalty Cards displays with a line for each loyalty subscription plus the New Loyalty Card button.
- On clicking each of the records, a popup with the Loyalty Subscription Info is displayed with following read-only values:
- Loyalty Program
- Member ID
- Subscription Date
- Subscription Status
- In the Loyalty Subscription Info popup, apart from the fields described above, buttons will be displayed (each button is explained in next sections, some display logics apply):
- Cancel (X icon to close)
WebPOS Add Points
Loyalty Points for a subscriber can be added manually from WebPos in 2 ways.
- From 'Add Points' menu.
- From 'Add Loyalty Points' button from 'Last Activity'
'Add Points' menu will be available only when the loyalty features is enabled for the touch point type.
Adding Loyalty Points has 4 steps,
- Select Customer
- Select Subscription
- Enter Number of Points
- Select Reason
On Completing each step, selected value will be displayed under step name and step background will be changed to green to show the step is completed. Once a step is completed, next step will be loaded.
Customer
- By default customer selected in the current ticket will be pre-filled in this step.
- But it can be changed selecting the 'Customer' step again.
- Customers can be searched and selected from customer selector.
- Default customer will not be loaded if anonymous customer is selected in current ticket.
Subscription
- On selecting the 'Customer', available subscriptions for the selected customer will be listed.
- For subscription to be listed it should comply with the following,
- Subscription category should have ‘Manual EARN Rule’ configured in Earn Rules.
- Subscriptions must be in a status which can EARN points.
- If the customer has only one subscription, then it will be auto selected and moved to next step.
- Also if the screen is opened from 'Last Activity' screen, subscriptions selected in last activity screen will be pre-loaded.
Points Amount
- On selecting the 'Subscription', Points Amount step will be loaded.
- Points to be added can be entered from the keypad displayed.
- On pressing enter button, value will be assigned to the step.
Reason
- On entering 'Points Amount', Reason step will be loaded.
- It has 2 fields
- Reason: Mandatory field that list reason configured in 'Loyalty Point Reason' window.
- Event: Optional field to enter descriptions.
- Here an 'Apply' button is displayed to add the entered loyalty points under the selected subscription.
- If the user is eligible to approve add loyalty points, loyalty points will be added directly.
- If the user is not eligible to approve, it will under go approval after which loyalty points will be added.
- For this a preference named 'WebPOS Approval Add Loyalty Points' must be configured.
All these steps can be redone, therefore it is allowed to moved back to any step to edit the information. In that case all the information in succeeding steps will be lost and should be filled again.
Back Office
- Added points can be viewed in Back Office Subscriptions -> Earned Points.
- Approvals can also be viewed in Subscriptions -> Earned Points -> Approvals.
Loyalty Burn Rules
Reedem points from WebPOS and generate Gift Certificates
It is possible to reedem loyalty points from Web POS and generate gift certificates than can later be used to get discounts in stores, using Loyalty Gift Certificate BURN Rule.
This feature is available when enabling loyalty features in the touch point type.
When a customer is assigned to the receipt, some new payment buttons per each loyalty program subscription are added to the payment area. These buttons will just be displayed in case:
- a customer with at least one subscription is selected.
- in case the subscriber belongs to a program which has gift certificate burn rule defined
- in case the subscriber is in a status in which can BURN points
- the available amount of points exceeds the minimum required by the rule configuration.
These buttons display both the program name and the available amount to be consumed. This amount is generated by convert the available points on the subscription, taking into account the active conversion.
Payment Flow
These buttons behave as regular payment buttons, just is needed to select the Loyalty Program Subscription payment button wich points will be burned from, and then the desired amount and press the ENTER key or just use the PAY EXACT AMOUNT button for the full remaining amount.
Before execute the payment with the available points a dialog popup is shown with details of the payment, and it is needed to press the OK button to consume the amount.
If the OK button is pressed, then the paid amount is converted to points and the are consumed at backend. This operation generates a new Gift Certificate, the payment is added to the ticket and the available points for the subscription is updated to the customer subscription.
Buttons are updated to dynamically reflect the new available amount. If the remaining available amount is zero, then the button should be as well disabled.
Deleting a payment
When a payment is deleted from the ticket, the Gift Card Consumption in BO is undone and closed in BO. A new points entry is done to recover the ones used to generate the gift certificate and the Loyalty payment button is updated to reflect the available amount again.
Simplified flow
All steps explained above can be simplified in case:
- There is one single loyalty subscription for the selected customer.
- There are available points for the customer to consume. It means there is a minimum amount of points a subscriber has to have to redeem the points.
- And the amount of available points exceeds the minimum required by the Gift Certificate Burn rule configuration.
If all this requirements all met, a new dialog is shown to offers the user the chance to consume the available amount, and it will pop up when total amount to pay is pressed.
Other important topics to consider
There are some scenarios wich are considered in this feature and we going to explain in this section.
Amount bigger than available is entered
If it is selected a Subscription Payment button and is entered an amount bigger than available in the subscription an error message is presented to the user and he needs to enter the amount again.
Available amount is lower than the pending amount
If the user tries to pay with the EXACT PAY button and the available amount is lower than the remaining amount of the ticket, then just the available amount is burned and used for payment.
Exists an overpayment with loyalty subscription points payments
When the user goes to save the Order by pressing payment DONE button, in case:
- there is a payment using loyalty points,
- there is an overpayment
- overpayment amount exceeds amount paid in cash
A popup message is shown to the user explaining it is not possible to save the order while the overpayment persists, and the order is not saved.
Reedem points from WebPOS and generate Coupons
It is possible to reedem loyalty points from Web POS and generate coupons than can later be used to get discounts in stores, using Loyalty Coupon BURN Rule.
When completing a ticket, a new popup will allow to reedem points and generate coupons when these conditions are met:
- Touchpoint Type allows loyalty features.
- Customer is subscribed to a Loyalty Program with a Generate Coupon Burn Rule defined.
- Generate Coupon Burn Rule is enabled for Web POS.
- Customer has enough points to generate at least one coupon based on Generate Coupon Burn Rule configuration.
Generate Coupons popup will show each Loyalty Program where the customer is subscribed together with the amount of available points. It will be possible to select the Burn Rule to run in each Loyalty Program.
In case Generate Coupons button is clicked, selected Burn Rules will be run and generated coupons will be printed together with the ticket.
Different Generate Coupon Burn Rules can be used in the same Loyalty Program with different configuration:
- Use on Web POS: If checked, it will be possible to run the Burn Rule from Web POS.
- Priority: Burn Rules will be displayed in Web POS following this priority. 0 means the highest priority.
- Execution Type: Automatic Burn Rules will be pre-selected automatically in Generate Coupons popup. It will be possible to choose between different Burn Rules only in case the Burn Rule with the highest priority is configured as Manual.
- Cascade: If checked, when running this Burn Rule, the Burn Rule with the next priority will be evaluated as well, until the customer runs out of points.