Release February 2026 - v7.23
Learn more about latest updates from Loyalife v7.23
- Decimal-Based Point Calculation with 1-Decimal Rounding, Rounding Off for the Loyalty Points Logic and and Decimal Point Support in Loyalife Data Feeds for SBM
- The system will use decimal values as the standard for point calculation, storage, and reporting.
- Point spoilage will be displayed up to 2 decimal places (e.g., points displayed as 0.04).
- All current implementations will operate using decimal values only.
- The rule engine calculates points up to 2 decimal places.
- Rounding is applied once, based on the second decimal, and values are stored with 1 decimal place.
- Stored values are used consistently across member balances and reports.
- No additional rounding occurs during reporting or display.
- No historical data is recalculated or migrated.
- Custom Reports query needs to be optimized to accommodate float data type for Points.
- Impacted modules include:
- Member (points displayed as 10.40), Reports (points displayed as 10.4), Rule Engine (points calculated displayed as 10.4), Approval Workflow for Time-Bound Rules only (points displayed as 10.4), Dashboard (only implemented for accrual trends, accrual points, and tier), Transaction Amount, Redeem Points, Peer Transfer, API Transactions (Pay with Rewards, Pay with Cashback, and BNS API), Points expired functionality, and Communication (only for credit points via rule engine). Rounding behavior: Values like 13.68, 13.69, and 13.35 round to 13.70 or 13.40 using Ceiling rounding; 13.32 rounds to 13.30 using Floor rounding.
- This implementation does not apply to Tier Bonus, Campaign Bonus, Manual Add and Remove Points, BNS Upload, Bulk Point Upload, and Referral.
- Additional improvements for future include: Rule preview, Fraud prevention and Abbreviated format
- CLIENT SPECIFIC: SBM, API - Update in Transaction API - Give Transaction and Reversal in one response.
- A new key is added to the request payload to handle additional transaction types(AdditionalLoyaltyTxnTypes) without impacting existing clients.
- User can pass multiple loyalty transaction type values in AdditionalLoyaltyTxnTypes in comma separated format (ex: "AdditionalLoyaltyTxnTypes" : "1,8",)
- System will consider all the values passed in keys LoyaltyTxnType and AdditionalLoyaltyTxnTypes and featches the data accordingly.
- If the values passed in AdditionalLoyaltyTxnTypes or LoyaltyTxnType are invalid or the combination of AdditionalLoyaltyTxnTypes and LoyaltyTxnType and TransactionType is invalid then return object would result in 0 records.
- If any other values passed are incorrect or does not match with the criteria then “ErrorCode": "204", is resulted which indicates"No Transaction details are available."
- Please note that the modification is only limited to AdditionalLoyaltyTxnTypes and Transaction type will continue to accept only 1 value
- Date filter not working as expected
- All other keys( PageNumber, PageSize etc) of the API are working as expected. Fromdate and Todate do not work in the API, which is not part of the scope of this ticket.
- View option for all generated reports
- User can view the reports content for all the generated reports (Auto-generated reports, Manual reports, Exported reports, One-time reports, Custom reports, and Shared Reports) using view report functionality Pagination works based on available data and Horizontal scroll is enabled when columns exceed the viewport width. Horizontal scroll is enabled when columns exceed the viewport width.
- All report sections verified except Administrative Data and Logs (as per discussion).
- Member search is enabled when the report contains any of the following fields: Member ID, Member Relation Reference, or Relation Reference. If none of the mentioned fields are present in the report, the member search option remains disabled.
- Date filter is enabled when the report contains either Processing Date or Enrollment Date. If neither Processing Date nor Enrollment Date is present in the report, the date filter will be disabled.If neither Processing Date nor Enrollment Date is present in the report, the date filter will be disabled.
- Search and filter behavior: If relation_reference is present, member search is enabled; if processing_date is present, date filter is enabled; if enrollment_date is present, date filter is enabled; if either field is missing, the corresponding search and filter is disabled; if both are present, both search options are enabled.
- Hide Report Section tabs with no content
- Report tabs (e.g., "Transaction", "Members") were visible even when no reports were available, and clicking them showed no data.
- Report sections with no data are now hidden from the UI.
- Users will only see report tabs that contain available reports, improving the user experience by removing empty sections.
- Improve Transaction Summary Default View and Messaging
- Enhanced the Transaction Summary in the Members module to improve clarity and user experience. Removed automatic date range selection; no date range is auto-applied by default.
- By default, the system displays the latest 10 transactions (most recent first).
- Helper text is displayed below the "Transaction Summary" heading and above the table: "Showing latest 10 transactions. Select a date range to view more."
- When fewer than 10 transactions exist, all available transactions are shown with the same helper text.
- When no transactions exist, an empty state is displayed with the message "No transactions available" centered in the table area.
- Users can manually select a date range to view more data.
- When a date range is applied: if results exceed 10, pagination is enabled showing 10 transactions per page; if no results are found, the "No transactions available" message is displayed.
- The previous generic message "Sorry, we couldn't find any result" has been replaced with clearer messaging that explains the situation and guides users.
- Pagination applies only when results exceed 10 transactions.
- User needs to select date range for the export and configure columns options to be enabled.
- CLIENT SPECIFIC: BDI - Encryption Client ID, Secret Key, Access Token, and Refresh Token
- Client ID, Secret Key, Access Token, and Refresh Token are now encrypted in the database.
- Previously, these credentials were stored as plain text.
- Encryption uses SHA-256 as requested by the client.
- This enhancement improves security by protecting sensitive authentication credentials stored in the database.
- No Permission for Advanced Configuration feature
- Advance Configuration Permission is disabled for default roles such as Program Admin, Program manager and Customer executive role.
- User creating any other role in that Advance Configuration permission is showing.
- When loggedin with admin and other than Base Program, admin is considered as Program admin role . So Advance Configuration permission is disabled.
- Dynamic (Smart) Segment Linkage with Rule Groups
- Rule Groups can now link to Dynamic Segments that automatically evaluate member eligibility at transaction processing
- Previously, Rule Groups could only be linked to Manual Segments
- This enhancement automates member targeting without manual intervention, enables behavior-based rewards (e.g., auto-target Gold tier members), aligns with the Campaign module (which already supports dynamic segments), and reduces admin workload for large member bases.
- Event-driven segment evaluation: when member attributes change (e.g., member promoted to Gold tier), an event is published (MemberProfileUpdated), the Segment Evaluation Service is triggered, identifies affected segments, re-evaluates the member against those segments, and updates segment membership based on the cron setup.
- Members are added and removed from Dynamic Segments as expected and become eligible for associated Rule Groups without manual intervention.
- Once any segment is configured to group, it cannot be changed
- Logs ordered by oldest data first and latest data last at the bottom of the list
- Now the logs are ordered by descending order based on the processing date in data exports.
- Bulk upload button availability
- Removed the bulk points adjustment option from the point adjustment interface associated with a single user.
- Enabled bulk points adjustment on the members table even when no data is available.
- This enhancement improves the user experience by separating single-user and bulk adjustment workflows and making bulk adjustment accessible directly from the members table regardless of data availability
- Include relation reference when generating a manual report
- Custom Summary Report - Under Custom Report Module
- Create Monthly Custom Report – Member Points Movement Summary MTD
- Generate Member Audit Report from Member Audit Log
- Create Bonus Report under Custom Report Module to Include BNS, Manual Bonus( UI and File based) & Miscellaneous Point Debits
- Transaction file to have Original Amount Transaction (GBP, USD etc.) Only for above custom reports, relation reference is added in the generate option. User can input only 1 relation reference at once(multiple input not supported)
- Cashback File - no restriction on number of cashbacks
- Now user can make multiple cashback request per day. Even if previous request is in pending, user can make request until sufficient points available.
- No change in pay with rewards Feature. User can make only one request till status moved to processed or cancelled.
- Add Share report feature to User Role Level
- Reports can now be shared role-based, allowing access to all users associated with the selected role.
- Reports can also be shared with individual users, which is an existing capability.
- Reports can be shared with Users and Roles who do not have “View Report” permission. Once the permission is enabled for that role, the user will be able to view the shared report. Till the time role does not have view permission, the user will not be able to see the reports modules even if some reports are explicitly shared with him
- Users will only see the reports specifically shared to them
- Example: If a Transaction Report is shared, only transaction-related tabs will be visible—tabs from Custom, Communication, or other reports will not be shown.
- Current limitation: Role-based sharing is supported only during setup and applies to Transaction,
- Communication, Member, and Custom reports. User will not be able to share report to role created using the share option provided in action menu
- Persist User-Level Column Configuration in Member Transaction Summary
- Column configuration preferences are stored at user level when the user configures columns and saves.
- On subsequent logins, the user’s saved column configuration is loaded automatically.
- Column state persists across logout, browser refresh, and session timeout.
- Default columns are shown for first-time users (Transaction Date, Transaction Amount, and Transaction Type are currently selected).
- Changes apply only to the logged-in user and do not affect other users.
- Make Loyalife Branding (Logo) Optional at Environment Level
- New branding visibility control lets environment and program owners show or hide Loyalife branding in the product UI.
- Environment-level toggle added and set to true by default so existing behavior is unchanged. Program-level override available in the program configuration screen so individual programs can turn branding off.
- Accrual Reversal record through Bulk Upload Process
- Negative point values are allowed in the file only for accrual reversal; all other transaction types continue to use non‑negative values as before.
- File handling for accrual reversal is updated from Debit – Accrual Reversal to Credit – Accrual Reversal, with the system accepting and processing negative values for this transaction type.
- Expiry Report and Projected Expiry Report- Custom report module
- Expiry report consist of Member ID (Relation Reference), Bank Identifier (Bin number), Month (month in which points expire), Year (year in which points expire), Earning (total points earned by rule engine), Bonus Rewards (total points earned by bonus), Rewards Expired (total points expired in the month), Expiry Status (current status).
- Projected expiry report consist of Member ID (Relation Reference), Bank Identifier (Bin number), Month (month in which points expire), Year (year in which points expire), Earning (total points earned by rule engine in the month), Bonus Rewards (total points earned by bonus in the month), Rewards Expiring (total points expiring), Expiry Status (current status).
- After the projected expiry report SQL is in place, when the report cron runs in the next month, all members’ projected expiry data is generated in the CSV; the user can download and view projected expiry points in detail. The member expiry schedule shows a maximum of three years of data; only those records are included in the report.
- Example: if the user has set a monthly and 40‑month point expiration schedule, transactions beyond that schedule are out of scope and do not appear in the report; as months and years move forward and the schedule shortens, those points’ expiry details will start to appear in the report.
- Custom Detailed Customer Profile report
- The Detailed Customer Profile report is available within the Custom Report module.
- The report script supports the Generate feature so users can run the report for a custom date range.
- Column headers appear in the same sequence as the proposed columns (revised format).
- The report can be generated on a monthly basis, and the script supports both monthly generation and the Generate feature.
- Output columns match the agreed proposed column list (e.g. Member ID, BIN, Name, Email ID, Status, and any other columns in the revised table).
- Custom Admin User audit report
- The Admin User audit report is available within the Custom Report module.
- The report script supports the Generate feature so users can run the report for a custom date range.
- Column headers appear in this order: User ID, Activity, Date, Time, IP, Device and browser.
- User ID is the user’s email ID; Activity is the activity value from the Loyalife audit trail; Date is the activity date;
- Time is the activity time; IP is the IP address; Device and browser is the browser details from the audit trail.
- The report can be generated on a monthly basis, and the script supports both monthly generation and the Generate feature.
Other improvements
- Enhancement of error messages in case of MemberActivation API with email or relation reference The enhancement is to return a clear, specific message for each case (e.g. “Member is already active”, “Member is suspended”, “Member is cancelled”) instead of this generic error.
- BNS and CRD Processed file | Email notification | User does not have option to download failed records through processed email or from Report >Logs section The enhancement is to include an “Error log link” column in the BNS file email notification (same as already implemented for CPD or TXN), so the user can see the failed reason from the notification.
- Preview email & sms - Disabled template is seen in the dropdown for selection improvement needs to be done
Disabled templates remain available under campaigns but are shown in a locked state so they cannot be selected.
- On hover over a disabled template, the message “This template is disabled and cannot be selected” is displayed.
- Inactive Rule Groups are Editable (Time-Bound Rule Group Only)
- The enhancement is to prevent or restrict editing of inactive rule groups (e.g. show them as read-only or locked, with a clear message that the group is expired and cannot be edited).
- Download history missing for Aggregate Attribute reports in the Audit Trail
- Download label is changed to “Export report” in aggregate attribute section
- User can download aggregate attribute which is mapped to rule engine and also which is not mapped to rule engine
- When clicked on download, the report entry would be created in administrative section and user would have option to download the file
- This activity(i.e when clicked on the export report) is tracked in Audit trail and it shows all the details as mentioned in the parent jira.
- Prevent Access to Preview When No Members Are Added Ui enhanced to handle cases when members does not exist and when member exists but they have not done any transactions.
- Prevent Removing “Points Limit” When Max Points Is Already Set
- If Max Points Allowed was set during creation, users cannot remove Points Limit from the Add Limits & Restrictions dropdown.
- Points Limit must always appear under Group Limits when it was part of the initial setup; it cannot disappear even if the user tries to change the dropdown.
- Users cannot add another Points Limit restriction once it is pre-set.
- Users cannot remove the pre-set Points Limit restriction.
- Information on manual points> Summary page> Narration> Information is not displayed here
- Manual points flow fixed so that information on primary Add and Remove Points page and summary page are same
- Member Level Reports- Disable export data option when no data is available for a particular data type
- When there is no data for a particular transactions, the corresponding option to export that data is disabled.
- Max Points field accepts decimal values despite expecting integer input
- The max points field is enforced as an integer: input is either restricted to whole numbers or a validation error is shown when a decimal (e.g. 10.50) is entered.
- Decimal values are no longer accepted for the max points field; only integer values are valid.
- "Report Shared Successfully" message appears even when report sharing is cancelled
- “Share” is renamed as “Save“ and If no changes from previous state, “Save” is disabled.
- Non-Super Admin user can see and access “Add Linked Loyalty Program” UI
- Linked Loyalty Program option has been removed from Program Settings.
- The configuration is now available under Advanced Config > Technical Settings.
Updated 20 days ago
