> ## Documentation Index
> Fetch the complete documentation index at: https://help-loyalife.xoxoday.com/llms.txt
> Use this file to discover all available pages before exploring further.

# v7.18 — July 2025

> Loyalife v7.18 introduces the Referral feature, member-level point capping, program-level tier qualification methods, product code management, manual segment uploads, and a storefront tier widget.

# v7.18 — July 2025

**Released:** July 2025

## Referrals

### Referral Program Setup

A new **Referral** section enables programs to track referrals, generate unique codes, and reward members for successful referrals:

* Two new role privileges: **Edit Referral Setup** (create and modify configurations) and **View Referral Setup** (view-only access)
* Edit and View referral permissions are enabled by default for Program Admins in existing programs
* Enabling the referral program is a **one-time action** — it cannot be disabled once activated
* The system auto-creates two custom attributes: **Referral Code** and **Referred By** — both are String type and cannot be edited

### Referral Code Rules

* Custom referral codes can be passed via CPD files or APIs
* Once a referral code is assigned to a member, it **cannot be edited or updated**
* The same referral code cannot be assigned to two different members
* Empty values passed via API or CPD will not update an existing referral code
* Passing an existing member's referral code for a different member is rejected

### Reward Triggers

Referral rewards are configurable with two trigger options:

* **On Activation** — reward issued when the referred member activates
* **On First Transaction** — reward issued when the referred member completes their first qualifying transaction

***

## Tiers

### Program-Level Tier Qualification Method

A new **Tier Qualification Method** section is available in Tier Settings (requires tier creation permission):

* **Points:** Member movement is based on point thresholds
* **Aggregate Attribute:** Member movement is based on configured aggregate attribute values
* **Both:** Movement occurs when either the points or the aggregate attribute condition is met
* Changing the qualification method triggers **automatic member re-evaluation** and tier movement
* For automatic tier mode, members can see current tier, next level, and progression details; for manual tier mode, only the current tier is shown

**Backward compatibility:**

* Tiers previously configured with Points Only display as "Both" with actual points and zero aggregate value
* Deleting a higher tier automatically downgrades members to the previous tier based on the configured method

***

## Member-Level Capping

### Capping Across All Loyalife Sources

Member-level capping now applies across all point sources simultaneously:

* **Sources covered:** Rule Engine, Manual Points, Tier Bonus, Campaign Bonus, Referral Bonus
* A member at the capping limit becomes ineligible for points from all sources for the remainder of the month
* Cap limit changes made after the month starts take effect in the **following month**

**Three capping levels (all enforced):**

* Rule Group Capping
* Product Code Capping
* Member-level Capping

**Partial accrual support:**

* If a member has 450 points accrued against a 500-point cap, the next transaction awards only 50 points

**Negative transactions free up cap space:**

* Example: 1,000-point cap, 900 points accrued, −500 debit → 400 points used, 600 available again

**Anomaly detection sequencing:**

* Capping logic runs first (Rule Group → Product Code → Member level)
* Points consumed by capping are deducted from the member's capping limits immediately
* If anomaly detection subsequently rejects the transaction, the capping deduction is **not reversed**

***

## Members

### Member Attribute Editing

Attributes can now be edited, subject to conditions:

* Editing is only permitted when the attribute is **not used** in Segments, Reports, or Communication modules, and contains no existing member data
* All edits are logged in the audit trail

**Permitted constraint changes:** mandatory → non-mandatory; unique → non-unique; non-unique → unique

**Not permitted:** non-mandatory → mandatory

***

## Segments

### Manual Segment Uploads

A new **Manual Segment** feature allows programs to define custom member groups via CSV upload:

* **Append mode:** Adds new members to the existing segment; shows counts for existing and newly added members
* **Replace mode:** Replaces all existing segment members with the upload; shows removed and newly added member counts
* Supports all member statuses: Active, Inactive, Suspended, Cancelled, Blocked
* Email notifications are sent for successful, failed, and partial success outcomes
* Deletion is blocked when the segment is used in an active campaign
* Non-existing members in the CSV are skipped; existing members are inserted successfully

**Performance benchmarks:**

* 5K members: \~3 minutes
* 20K members: \~13 minutes
* 100K members: \~1 hour 18 minutes

***

## Rule Engine

### Attribute Value Grouping

Groups of values can be created for local attributes of type Integer, String, or Selection:

* Creation methods: CSV file upload or manual entry
* Groups are **non-editable and non-deletable** after creation
* Duplicate values are allowed across different groups; duplicates within the same group are rejected
* Special characters and empty values are accepted; only valid values appear in the UI
* The *"In Group / Not In Group"* operator is visible during rule creation but cannot currently be saved with this operator (known limitation)

***

## Product Codes

### Product Code Management

* Search product codes by name or identifier
* Enable or disable product codes across all modules
* Disabled codes are rejected in transactions, CRD files, and API calls
* Disabled codes **are accepted** in Bulk Points Uploads and BNS operations
* Product name editing is only available via the edit link — not through bulk upload
* Duplicate product names are allowed; product codes must remain unique
* Enable/disable actions are not logged in the audit trail

**Validation timing note:** If a product code is enabled when a manual points or rule engine request is created and then disabled while the request sits in maker-checker or anomaly detection, the request can still be approved and points will be awarded

***

## Reports

### Accrual, Redemption & Bonus Reports to Azure Storage

Active auto-generated reports are automatically transferred to Azure blob storage on a daily schedule:

* Manually generated and exported reports are excluded
* Only active-status reports are eligible; deleted or transitional files are not transferred
* Transfer is filtered by date range and program ID
* A 1GB file (compressed to \~15MB) transfers within 1 minute

***

## CRD & Card Data

### CRD Status Display and Card Export Controls

* A program-level setting **"Enable accounts and card linking to Members"** controls card export visibility
* Requires **View PI** or **Create Report** permission to initiate a new export
* Viewing card details requires **Show PI**, **View Member**, and **View Member Details** permissions — plus the program-level setting being enabled
* All card data access is logged in the audit trail for compliance

***

## Storefront

### Tier Widget

A new widget on the member storefront shows tier progression details:

* Displays current tier, next upgrade level, and the exact amount needed to reach the next tier
* Hidden until the tier cron job has run at least once (the cron assigns the member to the base tier)
* For **Automatic Tier** mode: full progression details shown
* For **Manual Tier** mode: only the current tier is shown; next upgrade details are hidden

***

## Localisation

* All user-facing text updated to **American English** conventions (e.g., "organisation" → "organization") across Member, Segment, Rule Engine, Communication, and Reports modules
* Manual points error message updated to reflect the new maximum of **20 million points (20M)**
