Skip to main content

v7.16 — May 2025

Released: May 2025

Rule 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
Time period notes:
  • 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
Performance benchmarks:
  • 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
The standalone “Attribute Setting” option previously in Rule Engine Attribute Setup has been removed.

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 CardNumber or SubRelationIdentifier must be non-null and non-zero — providing both as null/zero is rejected with: “CardNumber and SubRelationIdentifier both cannot be empty together”
  • After insertion, CardNumber and SubRelationIdentifier are immutable
  • The Get API returns all members matching a given CardNumber or SubRelationIdentifier

Enhanced Member Transaction API

  • GetMemberTransactionSummary and GetMemberTransactionSummaryByDate now 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=47 AND transaction_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

  • 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