v7.16 — May 2025
Released: May 2025Rule Engine
Aggregate Attributes for Volume-Based Logic
Programs can now create aggregate attributes that compute running totals for use in rule conditions:- Eligible base types: Float and Integer (global and local attributes)
- Aggregate functions: Sum, Min, Max, Average, Count
- Time periods: Lifetime, MTD, QTD, YTD, Rolling (last 365 days)
- Optional conditional logic can be applied during attribute setup
- Once created, only the name can be edited; deletion is only allowed when the attribute is not used in the Rule Engine
- Aggregation is computed from incoming data (file or API) — historical data is not re-computed
- Rolling Year: Covers the last 365 days; members outside this window remain in summaries but do not receive points
- MTD/QTD/YTD: Computation occurs even without a current-period transaction; data is stored per transaction date
- 1M transactions + 10 aggregate attributes ≈ 4.7M records processed in 8–10 minutes
- Full points issuance run with capping ≈ 220 minutes total
Points Configuration
Revamped Points Definition Setup
The Points Definition screen is reorganised into three unified sections:- Point Terminology & Rates: Points terminology, Cashback Rate, Customer Purchase Rate, Redemption Rate
- Expiration Details: Expiration schedule, period, and start condition
- Claim & Pending Points Management: Moved under Points Definition; toggles are non-editable if required global attributes are missing
Configurable Points Expiry Trigger
Points expiry can now be triggered from either the Processing Date or the Availability Date:- Default is Processing Date; the option to change it is only available once Claim & Pending Points Management is configured
- Expiry begins when the transaction status changes to confirmed (status = 1)
- When anomaly detection is enabled, expiry is calculated after the transaction is approved
Monthly Email Statement Toggle
- A new enable/disable toggle is available in Communication Settings (enabled by default)
- Requires “Create communication template” permission
- Once a member receives a monthly statement, they will not receive another for the same month even if re-triggered
- Compatible with both new and existing programs
Monthly Cap Limits Removed
- Product Code monthly cap validation has been removed; values exceeding 100,000 are now accepted
- Rule Group limits now accept values beyond 5 digits without validation errors
Marketplace
Plum Account Redirection from Loyalife
Admins can configure storefront Plum redirection under Platform Settings:- Requires platform view and edit configuration permissions
- Role-based redirection: Super Admin → Plum admin portal; Admin → Plum marketplace/end-user section; Unregistered → member view with no admin switch
- Password resets must be performed from the Loyalife portal — not from Plum
- Credential validation is not performed in real-time during setup; errors appear in the UI during login
- Token mechanism: refresh tokens generate access tokens; if the refresh token expires, the user is not redirected to Plum
Multi-Currency
Linked Program Management
Program Admins can link two independent programs for multi-currency operations:- This is a one-time, irreversible action — programs cannot be delinked once joined
- Module-level switching is supported (e.g., Member module)
- Detailed actions and views are limited to linked modules only
- Proper error messaging is displayed when a member exists in one program but not the other
Members
CRD LastSixDigits Uniqueness Removed
- Zero values are now accepted for LastSixDigits and SubRelationIdentifier
- Either
CardNumberorSubRelationIdentifiermust be non-null and non-zero — providing both as null/zero is rejected with: “CardNumber and SubRelationIdentifier both cannot be empty together” - After insertion,
CardNumberandSubRelationIdentifierare immutable - The Get API returns all members matching a given
CardNumberorSubRelationIdentifier
Enhanced Member Transaction API
GetMemberTransactionSummaryandGetMemberTransactionSummaryByDatenow return local transaction attributes- Compatible with both legacy and new programs
Reports
Purchase Eraser Report
- A new “Purchase erases” filter is available in transaction reports
- Not included in default system reports; admins must create a custom view
- Classification criteria:
loyalty_txn_type=47ANDtransaction_type=2; transaction narration: “Redemption DebitTransfer”
Report Generation Improvements
- Preview capability lets users verify the report setup before generating
- Manual reports can be generated from an auto-report configuration; naming convention:
[Parent Report Name]_[StartDate-EndDate]
User Experience
Sidebar Redesign
- Each sidebar module now has a unique icon with an accurate tooltip
- “Organisation” removed from the top navigation
- “Manage Users” and “Manage Roles” are consolidated into a single Manage Roles section
Improved User Creation Flow
- Email ID appears before username in the creation form
- If the email already exists in the system, the username auto-populates and the field is locked
- New email addresses require manual username entry with basic validation
Branding
- Sender email updated to
no-reply@xoxoday.com; default sender name updated to Loyalife - All LBMS/Giift references have been removed from email templates
- Existing program configurations are not affected
Security
- All VAPT vulnerabilities flagged by the Seciq external penetration testing team for 2025 have been resolved and verified; a security certificate has been issued