October 2026
19th October 2026 - 26th October 2026
Enhancement (LT-40400) | Journey Action Date-Based Conditions
Summary
Enhanced the Journey Engine to support date-based conditions for actions, allowing actions to become available or expire within configured date windows.
Overview
Previously, Journey actions could be sequenced based on completion of previous steps, but they did not support calendar-based start and end dates. This limited the ability to configure campaigns where actions must be completed on specific dates or become available according to a predefined schedule.
The enhancement introduces optional Start Date and End Date fields for actions, both inside and outside Event Groups. These fields can be configured independently or together to support different journey requirements.
The enhancement supports two key use cases: Advent Calendar Journeys, where each action is available only on its assigned date and missed actions cannot be completed later, and Previous Action-Based Journeys, where actions remain available for catch-up but the next action unlocks only after its scheduled date arrives and the previous action is completed.
The Journey Configuration API and User Journey API are also enhanced to expose the date fields and support the status information required to display actions as locked, available, completed, or blocked.
Key Highlights
- Added optional Start Date and End Date fields to Journey actions.
- Enabled date-based action configuration inside and outside Event Groups.
- Supported Advent Calendar Journeys with actions available only during their configured date windows.
- Supported sequential journeys where actions remain available for catch-up after their start dates.
- Ensured subsequent actions unlock only when their scheduled dates arrive and prerequisite actions are completed.
- Updated Journey APIs to expose action start and end dates.
- Enhanced member journey progress information with date-based availability details and Blocked status support.
- Supported journey completion, badge issuance, and abandonment scenarios based on configured dates and action completion.
Impact
- Enables calendar-based loyalty campaigns and scheduled Journey experiences.
- Provides greater flexibility in configuring time-bound actions.
- Helps ensure members can complete actions only according to the configured date rules.
- Supports both fixed-date campaigns and sequential journeys with catch-up functionality.
- Improves visibility into action availability and member journey progress.
- Reduces the need for custom journey structures to support date-dependent campaign requirements.
September 2026
1st September 2026 - 7th September 2026
Enhancement (LT-40708) | V1 Segment Creation and User Import Support
Summary
Enhanced the V1 Create Segment API to support segment creation and the import of segment users into the MySQL database.
Overview
The V1 Create Segment API has been updated to support the required changes for segment creation in the legacy platform.
The enhancement also includes support for importing segment users into the MySQL database, ensuring that users associated with newly created segments can be properly imported and maintained in the legacy system.
The changes were completed at the code level and unit tested successfully, including validation of the segment user import flow.
Key Highlights
- Enhanced the V1 Create Segment API with the required segment creation support.
- Added support for importing segment users into MySQL.
- Updated the segment creation flow for the legacy V1 platform.
- Added segment user import handling through the existing data processing flow.
Impact
- Enables segment creation support through the V1 API.
- Ensures segment users can be imported into the MySQL database.
- Improves consistency of segment data within the legacy platform.
- Supports continued compatibility between V1 segment functionality and the updated interaction reporting capabilities.
Bug Fix (LT-40672) | Live Tier V2 Program Status Synchronization Issue
Summary
Fixed an issue where editing a live Tier V2 program could incorrectly change its program status, causing members to receive no current tier information.
Overview
The issue occurred when changes were made to an already live Tier V2 program. The program could remain live in one system while being incorrectly marked as draft in another, resulting in a mismatch in program status.
Because current-tier evaluation depends on the live program status, this mismatch could prevent the system from identifying the active program and returning the member's current tier. As a result, affected members could see no tier information instead of their expected current tier.
The program update logic has been corrected so that editing a live Tier V2 program preserves its live status and keeps program information synchronized correctly.
Key Highlights
- Fixed the issue where editing a live Tier V2 program could incorrectly change its status.
- Ensured live programs remain live when supported configuration details are updated.
- Improved synchronization of program status between systems.
- Prevented program status inconsistencies from affecting current-tier evaluation.
- Ensured members continue to receive their expected current tier after changes are made to a live program.
Impact
- Prevents members from incorrectly losing their current tier information after a live program is edited.
- Improves reliability of current-tier calculations for Tier V2 programs.
- Keeps live program status consistent during supported program updates.
- Reduces the risk of a program configuration change affecting tier visibility for an entire site.
- Existing behavior for draft and scheduled programs remains unchanged.
Enhancement (LT-40625) | Admin Audit Log Synchronization Support
Summary
Enhanced the legacy PHP audit logging flow to support reliable synchronization of administrator activity into the centralized admin_audit_logs system.
Overview
The enhancement addresses the data required to synchronize existing and newly generated admin_event records into the finalized audit log structure. The audit data now supports the information needed to identify the affected entity, event type, administrator, and other relevant event details without changing the existing meaning of admin_event.
The changes also support reliable and efficient processing of audit history by enabling the synchronization process to read events in a deterministic and resumable manner.
Additional support was added to ensure administrator activity generated through the legacy PHP flow can continue to be captured for audit synchronization.
Key Highlights
- Enhanced PHP-side audit event support for centralized audit log synchronization.
- Added support for capturing the entity type and entity ID required to resolve affected records.
- Improved event information required to distinguish actions such as create, update, delete, merge, and bulk import.
- Added support for preserving the administrator's role at the time of the audit event.
- Improved access to audit history for efficient, chunked synchronization.
- Added support for continued capture of administrator activity generated through the PHP application.
- Maintained the existing behavior and meaning of admin_event for current PHP readers.
Impact
- Improves the completeness and reliability of administrator audit history.
- Enables audit events to be associated with the correct entities without relying on assumptions.
- Preserves historical administrator role information where available.
- Supports efficient synchronization of existing audit events.
- Helps ensure administrator activity is not lost during the transition to the centralized audit log.
- Maintains backward compatibility with existing admin_event functionality.
August 2026
25th August 2026 - 31st August 2026
Bug Fix (LB- 5504) | Consistent Point Rounding in Member Dashboard
Summary
Updated the point rounding logic in the Member Dashboard to improve consistency with the configured point format and the balance values displayed across the platform.
Overview
The Member Dashboard rounding logic was updated to ensure the current balance follows the site's configured point format consistently.
The issue was related to differences in when rounding was applied across reports. The Member Dashboard and Member Report display the system-maintained current balance, while the Interaction Report applies the configured point format to individual activities. As a result, manually totaling rounded Interaction Report entries could produce a small difference from the actual current balance.
Key Highlights
- Corrected point rounding logic in the Member Dashboard.
- Ensured the current balance follows the site's configured point format.
- Improved consistency of balance presentation across the Member Dashboard and Member Report.
- Maintained standard point-format handling for individual activities in the Interaction Report.
- Validated the updated Member Dashboard balance calculation and display.
Impact
- Provides a more consistent current balance display across member-facing and reporting areas.
- Ensures Member Dashboard balances follow the configured point format.
- Reduces confusion caused by inconsistent rounding behavior.
- Improves the accuracy and consistency of member balance presentation.
Bug Fix (LB- 5493) | HM Report Group Activity Amount Sign in Excel Export
Summary
Fixed the HM Report Excel export issue where the sign of Group Activity Amount values was not being displayed correctly.
Overview
The HM Report export functionality was updated to ensure that Group Activity Amount values in the Excel export correctly reflect their corresponding positive or negative signs.
Key Highlights
- Fixed missing signs for Group Activity Amount values in the HM Report Excel export.
- Ensured positive and negative activity amounts are represented correctly in the exported file.
- Aligned Excel export values with the corresponding ADR data.
Impact
- Improves the accuracy of HM Report Excel exports.
- Ensures Group Activity Amount values retain their correct positive or negative representation.
- Provides consistent reporting between ADR and exported Excel data.
- Prevents potential confusion when analyzing activity amounts from exported reports.
18th August 2026 - 24th August 2026
Enhancement (LT- 40613) | SSO Configuration MySQL Synchronization
Summary
Enhanced SSO Configuration synchronization to ensure configuration changes made in PostgreSQL are also synchronized with the legacy MySQL system during create and update operations.
Overview
SSO Configuration create and update flows have been enhanced to synchronize the complete configuration with MySQL after the PostgreSQL operation is successfully completed.
A common upsert-based synchronization flow is used for both create and update operations. This ensures that the MySQL configuration is either created or updated as required, including scenarios where a corresponding MySQL record does not already exist.
Key Highlights
- Added SSO Configuration synchronization support for create operations.
- Added SSO Configuration synchronization support for update operations.
- Implemented a common upsert synchronization flow for both operations.
- Synchronizes the complete SSO configuration to maintain consistency between PostgreSQL and MySQL.
- Supports creation of the MySQL configuration when a corresponding record does not already exist.
- Updated application and cron synchronization components to support the SSO configuration sync.
Impact
- Keeps SSO Configuration data consistent between PostgreSQL and MySQL.
- Prevents stale or missing SSO configuration data in legacy MySQL consumers.
- Provides a reliable synchronization mechanism for both new and updated configurations.
- Improves resilience when synchronizing configurations that do not yet have a MySQL counterpart.
Enhancement (LT- 40547) | Tier Scope for Milestone Rules
Summary
Added Tier Scope capability to Loyalty Member Management Milestone Rules, allowing administrators to control which member tiers a milestone rule applies to.
Overview
Milestone Rules now support tier-based configuration, enabling administrators to apply inactivity rules to all tiers, only selected tiers, or all tiers except selected tiers.
The enhancement includes a tier selection control with the program's available tiers and a scope summary to clearly indicate which members will be evaluated.
Tier Scope is evaluated before the existing criteria, ensuring members outside the configured scope are skipped entirely without any member status change or point deduction.
Key Highlights
- Added Apply Rule To configuration with:
- All Tiers
- Only Selected Tiers
- All Tiers Except Selected
- Added multi-select tier selection for applicable program tiers.
- Added scope summary to clearly display the configured tier coverage.
- Applied Tier Scope evaluation before existing milestone criteria.
- Members outside the configured tier scope are skipped without status changes or point deductions.
- Existing Criteria, Member Status, and Outcome configurations remain unchanged.
Impact
- Provides administrators with greater control over Milestone Rule eligibility.
- Enables specific tiers to be included or excluded from inactivity rules.
- Prevents unintended status changes and point deductions for members outside the configured tier scope.
- Supports tier-specific Loyalty Member Management configurations.
Enhancement (LT- 40566) | Tier Scope Support for Milestone Rules
Summary
Added ADR API support for defining Tier Scope within Milestone Rules, allowing rules to be applied to all tiers, selected tiers, or all tiers except selected tiers.
Overview
Milestone Rules have been enhanced to support Tier Scope configuration through ADR APIs.
The enhancement allows a milestone rule to define which tiers are eligible for the rule using three scope modes: All Tiers, Only Selected, and All Except Selected. Selected tier IDs are validated against the associated program.
Tier Scope is also applied during rule evaluation before the milestone criteria are evaluated. Members outside the configured scope are skipped without changes to their milestone status or point deductions.
Existing milestone rules remain backward compatible and default to All Tiers when no Tier Scope is configured.
Key Highlights
- Added Tier Scope support to Milestone Rules.
- Added support for:
- All Tiers
- Only Selected
- All Except Selected
- Added support for storing and retrieving selected tier IDs.
- Added validation to ensure selected tiers belong to the relevant program.
- Applied Tier Scope during milestone rule evaluation before criteria evaluation.
- Members outside the configured tier scope are skipped without status changes or point deductions.
- Added database support for the new Tier Scope fields.
- Maintained backward compatibility for existing milestone rules.
Impact
- Provides greater control over which tiers are eligible for milestone rules.
- Enables targeted milestone rule configuration based on member tiers.
- Prevents milestone actions from being applied to members outside the configured scope.
- Maintains existing behavior for milestone rules without Tier Scope configuration.
11th August 2026 - 17th August 2026
Enhancement (LT- 39968) | User Attribute Synchronization
Summary
Implemented PostgreSQL synchronization support for user extended attribute updates performed through the S33 Raas module.
Overview
The S33 user profile update flow was enhanced to synchronize changes made to user extended attribute values with the PostgreSQL database.
The update flow now integrates with the user Sync API to ensure attribute status and value changes made through the S33 module are correctly reflected in PostgreSQL.
The functionality was tested and confirmed to be working as expected.
Key Highlights
- Added Sync API support for S33 user attribute updates.
- Integrated user update synchronization with PostgreSQL.
- Added support for updating custom user attribute values through the S33 flow.
- Enhanced synchronization of user extended attribute changes.
- Validated the updated attribute synchronization flow.
Impact
- Ensures user attribute changes made through S33 remain synchronized with PostgreSQL.
- Improves consistency of user data across database systems.
- Provides reliable synchronization for custom user attributes.
- Supports continued migration and synchronization of S33 functionality with PostgreSQL.
Enhancement (LT- 38757) | Spend to Maintain Tier Support in iFrame
Summary
Added support for displaying the Spend to Maintain Tier information in the Tiers V2 iFrame for members who are within their tier retention period.
Overview
The Tiers V2 iFrame has been enhanced with additional standard fields to provide members with visibility into the requirements for maintaining their current tier during the retention period.
The enhancement adds support for displaying the member's retention status, current tier display name, and the required spend to retain the current tier. The required spend information is shown only when the member is within the tier retention period.
The functionality was tested and confirmed to be working as expected for users in applicable retention scenarios.
Key Highlights
- Added Spend to Maintain Tier support to the Tiers V2 iFrame.
- Added support for displaying the current tier display name.
- Added retention period status information.
- Added the required spend to retain the current tier.
- Added support for retention requirements based on the configured tier metric.
- Displayed retention-related information only when the member is in the retention period.
- Validated the functionality with applicable tier and purchase scenarios.
Impact
- Provides members with clear visibility into the spend required to maintain their current tier.
- Improves transparency during the tier retention period.
- Supports customers migrating to Tiers V2 with maintenance-period requirements.
- Provides a standardized iFrame experience for tier retention information.
Bug Fix (LB- 5462) | Tier Upgrade Notification Synchronization
Summary
Fixed an issue where a tier upgrade notification could be sent to Klaviyo even though the corresponding tier change was not actually recorded for the member.
Overview
The tier upgrade flow was generating a tier change event based on an invalid or incomplete tier record. In certain scenarios, a PAR tier record was added to the Tier Earned table without a corresponding entry in the tier tracking data.
This resulted in an incorrect tier change event being triggered, while the member's actual tier history remained unchanged.
The fix ensures that a PAR tier record is added to the Tier Earned table only when there is a valid tier change, preventing incorrect tier upgrade notifications from being generated.
Key Highlights
- Corrected tier upgrade event generation for invalid tier changes.
- Prevented PAR tier records from being created without a valid tier change.
- Ensured tier upgrade notifications are not triggered for incomplete tier updates.
- Improved consistency between tier earned records and tier tracking data.
Impact
- Prevents incorrect tier upgrade notifications from being sent.
- Ensures notifications correspond to actual tier changes.
- Improves consistency between tier history and tier event data.
- Reduces the risk of inaccurate customer tier information being communicated through downstream integrations.
Bug Fix (LB-5430) | Dashboard Summary Report Notification and Processing
Summary
Fixed an issue with Dashboard Summary Report processing where notification emails could be sent before the report was successfully completed, resulting in reports appearing as ready while still showing an in-progress status.
Overview
Improvements were made to the Dashboard Summary Report generation workflow to ensure that completion notifications are sent only after the corresponding report request has successfully finished.
The issue was also investigated for reports that became stuck during processing. The investigation identified high server memory utilization as a cause of report processes being terminated, particularly for reports involving large data volumes.
The updated handling improves the accuracy of report completion notifications and reduces the possibility of users accessing reports that are still being generated.
Key Highlights
- Updated report notification handling to send completion emails only after successful report generation.
- Addressed scenarios where reports could remain stuck in an in-progress state.
- Improved handling of report generation requests involving large data volumes.
- Investigated server resource utilization contributing to terminated report processes.
- Validated Dashboard Summary Report generation across different reporting periods.
- Improved the consistency between report generation status and completion notifications.
Impact
- Prevents premature Dashboard Report completion notifications.
- Ensures users are notified only when reports are ready for review.
- Improves reliability of Dashboard Summary Report generation.
- Reduces confusion caused by reports showing conflicting completion and processing statuses.
- Provides a more dependable reporting experience for customers.
28th July 2026 - 3rd August 2026
Enhancement (LT- 40014) | Multi-Template Support for Reward Images
Summary
Enhanced Reward Image management by adding Multi-Template ID support, ensuring reward images are consistently associated with the appropriate template during creation and updates.
Overview
Reward Image management was enhanced to support Multi-Template ID throughout the reward image lifecycle. The implementation adds Multi-Template ID support during both reward image creation and update operations, ensuring reward images remain correctly associated with their corresponding reward template. Additional improvements resolve issues that previously prevented the correct template identifier from being stored or updated, resulting in consistent reward image metadata. The enhancement ensures reward images maintain accurate template associations across administrative operations.
Key Highlights
- Added Multi-Template ID support for reward image creation.
- Added Multi-Template ID support for reward image updates.
- Improved consistency between reward images and reward configurations.
- Corrected template identifier mapping during image creation.
- Ensured template identifiers are updated correctly for existing reward images.
- Validated accurate storage and synchronization of reward image metadata.
Impact
- Ensures reward images remain associated with the correct template.
- Improves consistency of reward image metadata.
- Enhances reliability of reward image management.
- Supports more accurate administration of multi-template reward configurations.
Enhanced Reward Image management by adding Multi-Template ID support, ensuring reward images are correctly associated with their respective templates during both creation and update operations.
Enhancement (LT- 39984) |Reward Status Synchronization
Summary
Enhanced reward status synchronization to ensure reward and coupon status changes remain consistent across synchronized data stores.
Overview
Improvements were made to the reward synchronization process to ensure reward status updates are consistently propagated across synchronized systems. Previously, reward status changes resulting from expiration events could become inconsistent, leaving outdated reward information in synchronized data stores. The synchronization workflow was enhanced to ensure reward and coupon status updates are propagated whenever synchronization is enabled, maintaining consistent reward lifecycle information across systems. These enhancements improve the reliability of reward status synchronization and ensure expired rewards are reflected accurately.
Key Highlights
- Enhanced synchronization of reward and coupon status updates.
- Improved propagation of reward expiration status changes.
- Eliminated synchronization gaps for reward status updates.
- Improved consistency of reward lifecycle information across synchronized systems.
- Ensured reward status updates are processed when synchronization is enabled.
- Reduced discrepancies between synchronized reward records.
Impact
- Improves consistency of reward status information across systems.
- Ensures expired rewards are accurately reflected in synchronized data.
- Enhances reliability of reward and coupon management.
- Reduces discrepancies in reward status reporting.
Enhanced reward status synchronization to ensure reward and coupon status changes, including expiration updates, remain consistent across synchronized systems, improving the accuracy of reward lifecycle information.
July 2026
21st July 2026 - 27th July 2026
Enhancement (LT- 39964) |Refer-a-Friend API Enhancements
Summary
Enhanced the Refer-a-Friend (RAF) APIs by introducing additional response parameters and optional email control to improve referral tracking and integration flexibility.
Overview
Enhancements were implemented for the Referral Status and Send Email RAF API endpoints to provide additional referral information and greater control over email delivery.
The Referral Status API now includes the generated shortened referral link within the response, enabling applications to retrieve and display referral URLs directly. The Send Email API has also been enhanced to return the generated shortened referral link after successful processing.
Additionally, an optional skip_email_send parameter was introduced to the Send Email API, allowing integrations to generate a successful response without sending an email when required, while preserving the existing behavior when the parameter is omitted.
Key Highlights
- Added Bitly referral link to the Referral Status API response.
- Added Bitly referral link to the Send Email API response.
- Introduced the optional parameter for the Send Email API.
- Enabled optional suppression of referral emails while maintaining successful API responses.
- Preserved existing API behavior when the new parameter is not provided.
- Improved flexibility for custom referral and integration workflows.
Impact
- Provides additional referral information directly through API responses.
- Gives integrations greater control over referral email delivery.
- Supports custom referral workflows without impacting existing implementations.
- Improves flexibility and usability of the Refer-a-Friend APIs.
Enhancement (LT- 39944) |Removed Tier Limit from Tier v2 Configuration
Summary
Removed the Tier v2 configuration limit on the number of tiers that can be created, allowing programs to support additional tier levels without UI restrictions.
Overview
The Tier v2 configuration was enhanced by removing the existing limit that restricted programs to a maximum number of tiers.
This enhancement enables programs with more complex tier structures to create and manage additional tiers through the administration interface without encountering configuration limits. A functional impact assessment was completed, and the updated configuration was validated to ensure existing tier management capabilities continue to operate as expected.
The enhancement provides greater flexibility for loyalty programs with larger tier hierarchies while maintaining compatibility with existing functionality.
Key Highlights
- Removed the maximum tier limit from the Tier v2 configuration.
- Enabled support for creating additional tier levels without UI restrictions.
- Improved flexibility for loyalty programs with complex tier structures.
- Performed impact analysis to validate existing functionality.
- Verified tier management behavior after removing the limit.
Impact
- Allows programs to create and manage more than the previous tier limit.
- Improves scalability for loyalty programs with extensive tier hierarchies.
- Maintains existing Tier v2 functionality without impacting current operations.
- Provides greater flexibility for future program configuration requirements.
Bug Fix(LB-5457) |Tier Eligibility Calculation for Cancelled Orders
Summary
Corrected the Tier v2 eligibility calculation to exclude cancelled order spend from tier evaluation, ensuring accurate tier assignments and reporting.
Overview
The Tier v2 eligibility calculation was enhanced to ensure cancelled order amounts are no longer included when determining a member's qualifying spend for tier progression.
Previously, spend associated with cancelled products could be counted toward tier qualification, resulting in members being assigned higher tiers than they were eligible for. The enhancement updates the tier calculation logic to consider only valid purchase amounts, ensuring accurate tier eligibility, API responses, and reporting.
The updated logic was validated across multiple order scenarios, including different products, multiple quantities, multiple orders, and partial or full order cancellations.
Key Highlights
- Corrected Tier v2 eligibility calculation for cancelled orders.
- Excluded cancelled order spend from tier qualification calculations.
- Improved accuracy of member tier assignments.
- Corrected tier spend values returned in APIs and reports.
- Validated calculations across multiple purchase and cancellation scenarios.
- Verified support for partial and full order cancellations.
Impact
- Prevents members from qualifying for higher tiers based on cancelled purchases.
- Improves the accuracy of tier eligibility calculations.
- Ensures consistent spend values across APIs and reports.
- Enhances the reliability of Tier v2 progression and reporting.
Enhancement (LT- 39976) |ADR Synchronization Improvements Across Multiple Modules
Summary
Enhanced synchronization between legacy and PostgreSQL systems across multiple ADR modules, improving data consistency for campaigns, rewards, badges, stores, translations, and administrative configurations.
Overview
A series of synchronization improvements were implemented to address inconsistencies across multiple ADR components. The enhancements ensure that updates performed through the administration interface are consistently synchronized between supported data stores, improving data accuracy and operational reliability.
The implementation includes synchronization enhancements for campaign groups, badge status updates, reward images, bulk reward operations, stores, translations, and campaign milestone processing. Additional improvements were made to maintain consistent campaign milestone values during synchronization and to ensure delete and status update operations are properly propagated.
These updates improve the overall reliability of administrative data synchronization while reducing inconsistencies across supported modules.
Key Highlights
- Improved synchronization for Give Points Reason configuration updates.
- Enhanced campaign group synchronization across related campaigns.
- Added synchronization support for badge status updates.
- Improved synchronization for reward images in multi-image mode.
- Enhanced synchronization for bulk reward operations.
- Improved synchronization for bulk reward category updates.
- Added synchronization support for external reward redemption attribute deletion.
- Enhanced synchronization for store deletion events.
- Improved language translation synchronization.
- Ensured campaign milestone values remain consistent during synchronization.
- Improved overall synchronization reliability across ADR modules.
Impact
- Improves consistency between synchronized data stores.
- Reduces synchronization gaps across administrative modules.
- Ensures campaign, reward, badge, and store updates remain accurate.
- Improves reliability of reward and campaign synchronization.
- Provides a more consistent administration and reporting experience.
14th July 2026 - 20th July 2026
Enhancement (LT- 39890) |SQL Optimization for ADR Points and Liability Reports
Summary
Optimized SQL queries for the ADR Points Report and Liability Report to improve search performance when filtering by specific member identifiers.
Overview
Performance improvements were implemented for the ADR reporting module by optimizing both the listing and count SQL queries used in the Points Report and Liability Report.
The optimization specifically targets commonly used search filters to reduce query execution time and improve report responsiveness.
The following enhancements were completed:
- Points Report: Optimized SQL queries for Name and Email filters.
- Liability Report: Optimized SQL queries for UID and Email filters.
The optimized queries were validated in the Develop and Stage Beta environments before being scheduled for production deployment.
Key Highlights
- Optimized listing SQL queries for the ADR Points Report.
- Optimized count SQL queries for the ADR Points Report.
- Improved Name and Email filter performance in the Points Report.
- Optimized listing SQL queries for the ADR Liability Report.
- Optimized count SQL queries for the ADR Liability Report.
- Improved UID and Email filter performance in the Liability Report.
Impact
- Improves report loading performance for filtered searches.
- Reduces SQL execution time for commonly used search criteria.
- Enhances responsiveness of ADR reporting.
- Provides a more efficient reporting experience for administrators.
Enhancement (LT- 39773) |Referral Record Consolidation for Referral Status Tracking
Summary
Enhanced the referral tracking process to prevent duplicate referral records by improving member identification and referral status updates.
Overview
The referral processing workflow was enhanced to ensure referral activity is associated with a single member record throughout the referral lifecycle.
The implementation improves member identification by consistently resolving user identifiers during referral processing, preventing duplicate entries when a referred member registers. A configurable primary key selection mechanism was introduced to support consistent referral matching while updating referral statuses within the existing record instead of creating new entries.
Additional improvements were made to remove duplicate entries from referral reports and maintain the latest referral status across referral tracking and reporting.
Key Highlights
- Improved referral matching to prevent duplicate referral records.
- Enhanced member identification for referral processing.
- Added configurable primary key support for referral tracking.
- Updated referral status within existing records instead of creating duplicates.
- Improved referral dashboard consistency.
- Removed duplicate entries from referral reporting.
- Preserved the latest referral status throughout the referral lifecycle.
Impact
- Eliminates duplicate referral records for the same member.
- Improves accuracy of referral status tracking.
- Provides a clearer and more reliable referral reporting experience.
- Ensures consistent referral data across dashboards and reports.
- Enhances the overall referral management workflow.
8th July 2026 - 13th July 2026
1st July 2026 - 7th July 2026
Enhancement (LB-5333) |Group Tier Assignment Stability
Summary
Improved the group tier assignment process to prevent intermittent tier drops by optimizing tier update logic and eliminating unnecessary tier reassignment operations.
Overview
Enhancements were made to improve the reliability and consistency of group tier assignment during group creation and subsequent tier evaluation.
The implementation addressed an issue where unnecessary delete-and-add operations were performed during group tier assignment, which could temporarily remove an existing group tier before reassigning the same tier. Since the synchronization process executes asynchronously, this intermediate state could result in incorrect group tier values being displayed.
The solution introduces validation to prevent redundant tier removal when the assigned tier remains unchanged, ensuring stable group tier synchronization while preserving existing upgrade and downgrade workflows.
The changes were validated across multiple tier assignment scenarios, including credit, debit, order-based upgrades, downgrades, and scenarios where no tier change occurs.
Key Highlights
- Optimized the group tier assignment workflow.
- Eliminated unnecessary delete-and-reassign operations during tier evaluation.
- Added validation to prevent redundant tier removal when no tier change is required.
- Improved synchronization consistency between tier assignment and downstream systems.
- Validated tier upgrade, downgrade, and no-change scenarios.
- Verified created and updated timestamp behavior during tier processing.
- Improved stability of asynchronous group tier synchronization.
Impact
- Prevents intermittent group tier drops during synchronization.
- Improves consistency of group tier assignment across systems.
- Reduces unnecessary processing during tier evaluation.
- Provides more reliable group tier information for downstream applications.
Enhancement (LT-38385) |Updated Member Webhook Event Payload
Summary
Enhanced the Member Update webhook event payload by improving field consistency, removing unnecessary metadata, and providing complete member information for update and opt-in/opt-out events.
Overview
Enhancements were made to the Member Update webhook event to improve payload consistency and usability for downstream integrations.
The implementation removes unnecessary metadata fields from the webhook payload while ensuring member details such as email, first name, and last name are always populated with actual values instead of null during update events.
Additionally, the webhook now includes structured change tracking for opt-in and opt-out actions by populating the changes object with the previous and updated opt-in status. These improvements provide a more consistent event structure, simplify webhook consumption, and improve the accuracy of member update notifications.
Key Highlights
- Removed unnecessary metadata fields from the Member Update webhook payload.
- Removed active from the user object.
- Removed updated_by from the webhook payload.
- Removed iat and exp fields from the event payload.
- Updated member payload to return actual member values instead of null.
- Ensured email, first name, and last name are populated during update events.
- Added structured change tracking for opt-in events.
- Added structured change tracking for opt-out events.
Impact
- Provides cleaner and more consistent webhook payloads.
- Improves reliability for downstream webhook consumers.
- Ensures member information remains available during update events.
- Enhances auditability of opt-in and opt-out status changes.
- Simplifies integration with external systems consuming member update events.
Enhancement (LT-39706) |Webhook Support for Source Information in Reward and Badge Awarded Events
Summary
Enhanced the Reward Awarded and Badge Awarded webhook events by adding source information parameters while maintaining backward compatibility with existing webhook consumers.
Overview
Enhancements were introduced to extend the Reward Awarded and Badge Awarded webhook payloads with additional source-related information.
The implementation adds two new parameters source_type and source_id to both webhook events. These parameters mirror the existing awarded_by and journey_id values, providing clearer source information for rewards and badges that are manually assigned through different systems.
The existing awarded_by and journey_id fields continue to be supported to ensure backward compatibility with current integrations. This approach allows external systems to adopt the new parameters without impacting existing webhook implementations.
The enhancement improves consistency across manual reward and badge assignment workflows while preparing the webhook contract for a future transition to standardized source parameters.
Key Highlights
- Added source_type parameter to the Reward Awarded webhook event.
- Added source_id parameter to the Reward Awarded webhook event.
- Added source_type parameter to the Badge Awarded webhook event.
- Added source_id parameter to the Badge Awarded webhook event.
- Maintained backward compatibility by retaining the existing awarded_by and journey_id fields.
- Improved consistency between manual assignment APIs and webhook payloads.
- Prepared webhook events for future migration to standardized source parameters.
Impact
- Provides clearer source information for reward and badge assignment events.
- Improves consistency between assignment APIs and webhook notifications.
- Preserves compatibility with existing webhook consumers.
- Simplifies integration for systems processing manually assigned rewards and badges.
Enhancement (INT20-12854) |Sign-Up Form Webhook Opt-In Support
Summary
Enhanced the sign-up form webhook processing to capture member opt-in status and update loyalty member information during the registration workflow.
Overview
Enhancements were implemented to support opt-in processing from the sign-up form by capturing the member's Join Rewards selection and updating the corresponding loyalty member record.
The implementation retrieves and parses the opt-in value from the customer metadata, processes the Join Rewards flag during webhook execution, and updates the member's opt-in status to YES when applicable. Additional validation was performed to ensure member address information and opt-in details are processed correctly.
The solution was validated through webhook testing and production-equivalent scenarios while maintaining compatibility with the existing registration workflow.
Key Highlights
- Enhanced webhook processing to capture Join Rewards opt-in status.
- Added support for parsing opt-in values from customer metadata.
- Automatically updates member opt-in status to YES during registration.
- Validated member address synchronization through the webhook flow.
- Improved webhook handling for sign-up form submissions.
Impact
- Ensures member opt-in preferences are accurately synchronized.
- Improves consistency between sign-up forms and loyalty member records.
- Enhances reliability of webhook-driven member updates.
- Provides a seamless registration and opt-in experience.
June 2026
22nd June 2026 - 29th June 2026
Enhancement (LT-39613) |RAF Email Communication Using Loyalty Email Address
Summary
Enhanced the Refer-a-Friend (RAF) email communication process to use the Loyalty account email address as a secondary parameter, ensuring referral notification emails continue to be delivered when Loyalty Member IDs are migrated from email addresses to UUIDs.
Overview
To support Herbalife's migration from email-based Loyalty Member IDs to UUIDs, the RAF email communication flow was enhanced to retrieve the member's email address from the Loyalty account instead of relying on the RAF identifier.
Previously, referral purchase notification emails depended on the Loyalty Member ID being an email address. Once UUIDs are used as the primary identifier, congratulatory emails to referrers would no longer be triggered despite referrals and points processing successfully.
The enhancement introduces logic to identify whether the supplied identifier is an email address or UUID. When a UUID is received, the system retrieves the corresponding email address from the Loyalty user database and uses it to trigger referral purchase emails, while maintaining compatibility with existing email-based implementations.
Key Highlights
- Enhanced RAF email communication to support UUID-based Loyalty Member IDs.
- Added logic to determine whether the incoming identifier is an email address or UUID.
- Implemented email lookup from the Loyalty user database when UUIDs are used.
- Updated referral purchase email trigger to use the retrieved Loyalty email address.
- Preserved existing referral tracking and points awarding functionality.
- Ensured backward compatibility for existing customers using email-based identifiers.
Impact
- Enables uninterrupted referral purchase email notifications after Loyalty Member ID migration to UUIDs.
- Prevents loss of congratulatory emails for successful referrals.
- Maintains compatibility with existing RAF implementations without impacting current customers.
- Improves integration between RAF and Loyalty user management for future identifier changes.
Enhancement (LB-5347) |Weekly Reconciliation Report Points Expiry Alignment
Summary
Enhanced the handling of Points to Expire and Next Points Expiration Date across the Weekly Reconciliation Report, Get Points API, and ADR to ensure consistent behavior for customers with rounded point balances and zero expiring points.
Overview
Improvements were made to align the calculation and display of Points to Expire and Next Points Expiration Date across multiple interfaces, including the Weekly Reconciliation Report, ADR, and the Get Points API.
The enhancement addresses scenarios where fractional point balances are rounded to zero based on the client's configured point formatting. Previously, customers with zero displayed expiring points could still receive an expiration date, creating inconsistencies between reports and APIs.
The updated implementation ensures that expiration dates are handled consistently when no points are scheduled to expire, while preserving the client's configured point-rounding behavior.
Key Highlights
- Improved consistency of Points to Expire calculations across ADR, Get Points API, and Weekly Reconciliation Report.
- Aligned handling of Next Points Expiration Date when rounded expiring points equal zero.
- Preserved client-specific point formatting and rounding behavior.
- Corrected discrepancies between member reports and exported reconciliation reports.
- Fixed API and reporting inconsistencies related to rounded fractional point balances.
Impact
- Ensures consistent point expiration information across all customer-facing reports and APIs.
- Eliminates discrepancies caused by point rounding during expiration calculations.
- Improves accuracy of reconciliation reporting for Harrods.
- Provides a consistent experience between ADR, APIs, and exported reports while maintaining existing point formatting rules.
Enhancement (LB-5395) |Incentive Engine API & Expiration Improvements
Summary
Enhanced the Incentive Engine APIs and coupon expiration workflow by improving user validation, incentive code assignment, group expiration handling, and overall reliability of predefined coupon processing.
Overview
Enhancements were implemented to improve the behavior of the Incentive Engine APIs and coupon lifecycle management
The implementation clarified the expected API sequence for incentive code assignment, ensuring users are created and assigned codes before retrieving coupon details. Improvements were also made to coupon expiration processing by updating group expiration logic to correctly disable groups only after their configured end date.
Additional investigation validated predefined coupon upload processing, confirmed support for large-volume coupon imports, and identified a separate reporting enhancement for exported user identifiers.
These updates improve API consistency, coupon assignment reliability, and expiration handling while maintaining compatibility with existing incentive workflows.
Key Highlights
- Improved Incentive Engine API validation for user and incentive code assignment.
- Standardized expected API flow by validating user creation before retrieving coupon details.
- Enhanced coupon expiration handling through improved group expiration processing.
- Updated group expiration logic to disable groups after the configured end date.
- Verified predefined coupon upload processing for large-scale campaigns.
- Investigated and validated predefined group data loading behavior.
- Identified export reporting enhancement for user identifier representation.
- Improved overall reliability of incentive code assignment and expiration workflows.
Impact
- Improves reliability of Incentive Engine API operations.
- Prevents user lookup and incentive assignment inconsistencies.
- Ensures accurate coupon expiration based on group lifecycle.
- Supports large-scale predefined coupon campaigns with improved stability.
- Enhances overall consistency of coupon management and incentive processing.
9th June 2026 - 15th June 2026
Enhancement (INT20-12625) |Journey Entry Conditions with Segment Based Eligibility Support
Summary
Completed production deployment activities for the Bluecore ESP application across supported environments following successful development, testing, and release validation.
Overview
The changes ensure that the latest Bluecore ESP functionality is available across supported production environments while maintaining deployment consistency through the established release workflow.
Impact
- Supports ongoing ESP integrations and marketing automation workflows.
- Improves platform stability through standardized deployment procedures.
2nd June 2026 - 8th June 2026
Enhancement (LT-38945) |Journey Entry Conditions with Segment Based Eligibility Support
Summary
Enhanced Journey Entry Conditions by introducing Segment-based eligibility support and restructuring the Entry Node configuration experience. The enhancement enables marketers to combine existing entry criteria with segment-based conditions using logical operators, providing greater flexibility in defining Journey enrollment rules.
Overview
This enhancement expands the Conditional Entry Journey framework by allowing Segments to be used as Journey entry criteria.
The existing entry condition configuration remains available and continues to function as before. A new section has been introduced to support Segment-based conditions and advanced logical evaluation using AND/OR operators.
The updated design allows administrators to create more targeted Journey enrollment rules while maintaining backward compatibility with existing Journey configurations.
Key Features
- Single Segment eligibility
- Multiple Segment eligibility
- Segment combinations using logical operators
- Dynamic evaluation of member segment membership before Journey entry
Impact
- More granular Journey targeting.
- Improved audience segmentation capabilities.
- Flexible Journey enrollment logic using AND/OR operators.
- Better control over member eligibility.
- Enhanced marketer self-service configuration.
- Backward compatibility with existing Journey entry configurations.
Enhancement (LT-38849) |Journey Benefit Issuance Framework
Summary
Introduced Benefit Issuance functionality within Journeys, enabling automated distribution of rewards and badges through configurable Benefit Groups. The enhancement allows Journey administrators to define benefit issuance logic, fallback conditions, and eligibility criteria directly within Journey workflows, providing a more flexible and scalable member engagement experience.
Overview
This enhancement extends the Journey platform by introducing Benefit Groups as a new Journey node capability. Benefit Groups allow administrators to configure and automate the issuance of rewards and badges based on member eligibility and Journey progression.
The solution includes updates across Journey UI, Journey APIs, and Journey Engine processing to support benefit issuance, fallback logic, and reporting visibility.
Key Features
Benefit Group Support
Introduced a new Benefit Group configuration that enables administrators to:
- Configure reward issuance within a Journey.
- Configure badge issuance within a Journey.
- Combine multiple benefits within a single Benefit Group.
- Define conditional benefit assignment rules.
- Automate benefit distribution based on Journey progression.
Benefits
- Enables automated reward and badge distribution through Journey workflows.
- Supports advanced member engagement strategies.
- Reduces manual benefit assignment processes.
- Provides flexible fallback benefit capabilities.
- Improves Journey personalization through attribute-based eligibility.
- Enhances reporting and visibility of benefit-related Journey activities.
April 2026
21st April 2026 - 27th April 2026
Enhancement (RF-4362) |Page Access Restriction Based on Language Attribute
Summary
Implemented a new visibility condition for the Pro Partner Resources page based on the ZPreferredLanguage_KUT attribute.
Overview
A new access control condition has been introduced to restrict visibility of the Pro Partner Resources page. The page will now be displayed only to users whose profile matches the configured value of the ZPreferredLanguage_KUT attribute.
This enhancement ensures that the page content is shown only to users with the appropriate language preference, improving content relevance and user experience.
The change is limited to UI-level visibility logic and does not impact existing functionality or data processing.
Key Highlights
- Added language-based access control using ZPreferredLanguage_KUT.
- Restricted Pro Partner Resources page visibility accordingly.
- No impact on backend logic or APIs.
Impact
- Ensures users see content relevant to their preferred language.
- Improves personalization and access control.
- No impact on existing users outside the defined condition.
Performance Improvement (LB-5328) |Get Points API Optimization
Performance Improvement – Get Points API Optimization
Ticket: LB-5328
Summary
Optimized the Get Points API to reduce response time delays experienced by some users prior to redemption actions.
Overview
An issue was identified where the Get Points API response time was significantly high for certain users, particularly before initiating a points redemption call. This impacted the overall user experience and slowed down dependent workflows.
Analysis revealed that specific calculations and data retrieval (including fields like totalSpent and other aggregated values) were contributing to increased response time. Additionally, inefficiencies in SQL queries and ADR-side processing were identified.
To address this, optimization changes were implemented across both API logic and database queries, along with improvements on the ADR side to streamline data handling.
Key Highlights
- Optimized API response time for Get Points endpoint.
- Improved SQL query performance and data fetching logic.
- Reduced processing overhead for heavy fields (e.g., spend-related calculations).
- Applied ADR-side optimizations to minimize latency.
Impact
- Faster Get Points API response time.
- Improved user experience during redemption flow.
- Reduced system load for high-volume or large-data users.
- More efficient handling of large point histories and spend data.
14th April 2026 - 20th April 2026
Bug Fix (LT-38592) |Reward Update Date Synchronization for Regular and External Rewards
Summary
Resolved an issue related to incorrect or missing update date values for both regular and external rewards, ensuring accurate synchronization across systems.
Overview
An issue was identified where the update date field for rewards was not being consistently updated during reward modifications, impacting both regular and external reward types.
This caused discrepancies in tracking reward updates and affected downstream processes relying on accurate timestamps.
The fix involved updating the reward update logic to ensure that:
- Update date is correctly captured during reward modifications.
- Both regular and external rewards follow consistent update behavior.
- Mapping between systems correctly reflects updated timestamps.
Additional validation was performed to ensure compatibility with reward eligibility logic and existing reward configurations.
Key Highlights
- Fixed update date handling for regular rewards.
- Extended fix to support external rewards.
- Ensured consistent timestamp synchronization across systems.
- Validated reward mapping and eligibility logic post-fix.
Impact
- Improves accuracy of reward update tracking.
- Ensures reliable data for reporting and integrations.
- Eliminates inconsistencies in reward modification timestamps.
- Enhances overall stability of reward-related workflows.
Bug Fix (LT-38568) |Store Attribute Date Parameter Sync Issue
Summary
Resolved an issue where the date parameter in store attributes was not syncing correctly, ensuring accurate data storage and consistency across systems.
Overview
An issue was identified in the store attribute synchronization process where date-type parameters were not being properly handled during data sync.
This resulted in incorrect or inconsistent date values being stored or transferred between systems, impacting features dependent on store attribute data.
The fix involved correcting the data handling and formatting logic for date parameters to ensure:
Proper parsing and validation of date values
Accurate synchronization across systems
Consistent storage format aligned with expected schema
Key Highlights
- Fixed sync logic for store attribute date parameters.
- Ensured proper date formatting and validation during sync.
- Eliminated inconsistencies in stored date values.
- Improved reliability of store attribute data handling.
Impact
- Ensures accurate storage and retrieval of date-based attributes.
- Improves data consistency across integrated systems.
- Prevents downstream issues in features relying on date parameters.
- Enhances overall data integrity of store attribute configurations.
Enhancement (LT-37555) |Webhook Trigger for Points Balance
Summary
Implemented webhook trigger logic to notify external systems whenever a member’s points balance is updated through cron-based processes.
Overview
Enhancements were made to the loyalty scheduled job process to trigger webhook events whenever there is an update in a member’s points balance.
Previously, points updates processed through scheduled jobs (such as rolling expiration and adjustments) were not triggering webhook notifications, leading to gaps in real-time data synchronization with external systems.
To address this, webhook logic was integrated into the scheduled job flow, ensuring that any balance updates processed in the background are now captured and communicated via webhook events.
The implementation ensures consistent behavior between real-time API updates and scheduled schuduled-based updates.
Key Highlights
- Added webhook trigger logic to scheduled job-based points update flow.
- Ensured webhook events are fired on points balance changes.
- Integrated logic within rolling expiration scheduled job process.
- Maintained consistency between API-driven and scheduled job-driven updates.
Impact
- Enables real-time synchronization of points balance changes with external systems.
- Eliminates gaps in webhook notifications for scheduled job-based updates.
- Improves reliability of integrations dependent on webhook events.
- Enhances overall visibility of loyalty point changes.
Bug Fix (LT-37244) |Tier API Response Missing Next Tier and Expiration Date
Summary
Resolved issues in the Tier API where the next tier and tier expiration date were not correctly returned in the Python API response.
Overview
An issue was identified in the Tier API (Python) where users in higher tiers (specifically Tier 3 and above) were not receiving the next tier details in the API response. Additionally, the tier expiration date parameter was missing from the response.
This behavior was inconsistent with the PHP API response, which correctly displayed both values. The issue occurred regardless of whether the Sequential Tier flag was enabled or disabled.
The fix ensures that:
- The next eligible tier is always returned when applicable.
- The tier expiration date is consistently included in the response.
The resolution aligns the Python API behavior with the expected system logic and existing PHP implementation.
Key Highlights
- Fixed missing next tier information in Tier API response.
- Added support for returning tier expiration date in API response.
- Ensured consistent behavior across Sequential Tier configurations (enabled/disabled).
- Aligned Python API output with PHP API behavior.
Impact
- Provides accurate visibility into member progression across tiers.
- Ensures external systems receive complete tier lifecycle data.
- Eliminates inconsistencies between Python and PHP API responses.
- Improves reliability of integrations dependent on tier information.
Enhancement (RF-4359) |External Homepage Refresh Integration
Summary
Implemented integration of the refreshed external homepage design, enabling an updated user interface and improved user experience.
Overview
A new homepage design was integrated as part of the external homepage refresh initiative. The update focuses on enhancing the visual layout, usability, and overall user experience.
The integration involved embedding the updated design components into the existing platform structure while ensuring compatibility with current configurations and navigation flows.
The refreshed homepage was validated through internal testing to ensure correct rendering, responsiveness, and functionality across key user journeys. The update is now prepared for rollout to client-facing environments.
Key Highlights
- Integrated new external homepage design.
- Improved UI/UX with updated layout and components.
- Ensured compatibility with existing platform structure.
- Verified responsiveness and functionality across key flows.
Impact
- Enhances overall user experience with a modernized homepage.
- Improves visual consistency and navigation usability.
- Supports better engagement through updated design elements.
1st April 2026 - 6th April 2026
Enhancement (RF-4359) |External Homepage Refresh Integration
Summary
Implemented integration of the refreshed external homepage design, enabling an updated user interface and improved user experience.
Overview
A new homepage design was integrated as part of the external homepage refresh initiative. The update focuses on enhancing the visual layout, usability, and overall user experience.
The integration involved embedding the updated design components into the existing platform structure while ensuring compatibility with current configurations and navigation flows.
The refreshed homepage was validated through internal testing to ensure correct rendering, responsiveness, and functionality across key user journeys. The update is now prepared for rollout to client-facing environments.
Key Highlights
- Integrated new external homepage design.
- Improved UI/UX with updated layout and components.
- Ensured compatibility with existing platform structure.
- Verified responsiveness and functionality across key flows.
Impact
- Enhances overall user experience with a modernized homepage.
- Improves visual consistency and navigation usability.
- Supports better engagement through updated design elements.
Enhancement (LT-37329) |Action Series Configuration Sync via ADR
Summary
Implemented Action Series configuration sync by introducing a new Python Sync API and integrating it with ADR to ensure seamless data synchronization to Postgres.
Overview
As part of the Postgres migration initiative, a new sync mechanism was introduced for Action Series configuration.
This included creating a dedicated Python Sync API to handle Action Series data and integrating the same within ADR to enable automatic synchronization.
Enhancements were made to support full lifecycle operations including create, update, and delete for Action Series and associated milestone data. Additional validations and payload handling were implemented to ensure data consistency across systems.
Special handling was also introduced for expiration-related fields to ensure proper mapping between MySQL and Postgres formats.
Key Highlights
- Developed new Python Sync API for Action Series configuration.
- Integrated Action Series sync with ADR services.
- Supported create, update, and delete operations for Action Series and milestones.
- Added validation and payload handling for migration scenarios.
- Implemented correct handling for expiration fields (expiration_type, expiration_unit, expiration_value).
- Resolved API issues related to patch and delete operations.
- Addressed data mismatches and ensured consistent sync behavior.
Implementation
- Built API endpoints for Action Series sync.
- Integrated API calls within ADR for automated synchronization.
- Added logic to handle milestone-level updates and deletions.
- Fixed issues related to missing fields and API response handling.
- Ensured compatibility between MySQL and Postgres data structures.
Impact
- Enables complete synchronization of Action Series configurations to Postgres.
- Improves data consistency across ADR, MySQL, and Postgres systems.
- Supports advanced campaign and action logic dependent on Action Series.
- Strengthens overall reliability of migration-related features.
Enhancement (LB-5230) |Campaign Benefit Points Not Reflected in Points Removed on Partial Return
Summary
Resolved an issue where campaign benefit points were not included in the points removed parameter after a partial return transaction.
Overview
An issue was identified in the points calculation logic during partial return scenarios, where the system failed to include campaign benefit-related points in the points_removed parameter.
While base transactional points were being deducted correctly, the campaign benefit points associated with the order were not reflected in the response. This resulted in discrepancies between expected and actual points removed values.
The issue was addressed by updating the calculation logic to ensure that both transactional and campaign benefit points are correctly considered during partial returns.
Key Highlights
- Fixed calculation logic for points_removed parameter.
- Ensured campaign benefit points are included during partial return processing.
- Improved consistency between points earned, held, and removed values.
Impact
- Ensures accurate representation of points deductions during partial returns.
- Eliminates discrepancies in reporting and API responses.
- Improves reliability of loyalty calculations involving campaign benefits.
- Enhances overall user trust in points tracking and redemption flows.
Enhancement (IMP-7950) |Adjustment API Support for Order Item Updates & Exchange Scenarios
Summary
Enhanced the Adjustment API to support updating existing order items and adding new items, enabling flexible handling of exchange and modification scenarios.
Overview
A limitation was identified in the Adjustment API where it did not support adding or modifying items in an order during certain flows, particularly:
- Adding new items before ship confirmation
- Handling exchange scenarios after shipment and return
Previously, the API supported only limited operations such as shipping and returning items, which restricted clients from performing complete order lifecycle adjustments.
Enhancements were implemented to extend the API capabilities, allowing:
- Updating quantity of existing items in an order
- Adding new product items with defined quantity and unit price
- Supporting exchange scenarios through PATCH operations
These changes ensure that the Adjustment API can now handle more complex order modification workflows aligned with real-world use cases.
Key Highlights
- Enabled updating quantity of existing order items via PATCH API.
- Added support for adding new items to existing orders.
- Improved handling of exchange scenarios post return.
- Ensured consistent validation for unit price and quantity updates.
Impact
- Enables flexible order modification workflows.
- Supports real-world exchange and update scenarios.
- Reduces dependency on external workarounds for order updates.
- Improves overall usability of the Adjustment API for clients.
March 2026
10th March 2026 - 16th March 2026
Enhancement (RF-4355) |Pro Partner Resources Page Integration
Summary
Integrated the Pro Partner Resources page into the Club Moen site navigation and implemented access restrictions based on user attributes.
Overview
A new Pro Partner Resources page was added to the Club Moen site to provide partners with access to specialized resources via an embedded portal.
The page integrates external resource content using an iframe and is accessible through the site navigation. The navigation link has been positioned between Product Catalogue and My Account.
Access to the page is restricted to specific user groups based on predefined attributes to ensure that only eligible users can view the content.
Key Highlights
- Added Pro Partner Resources page to site navigation.
- Integrated external resources via iframe.
- Implemented attribute-based access control for page visibility.
- Ensured navigation placement between Product Catalogue and My Account.
Impact
- Provides partners with centralized access to specialized resources.
- Ensures controlled visibility based on business role and accreditation.
- Improves user experience through seamless navigation integration.
Enhancement (LT-37555) |Webhook Trigger for Points Balance Updates via Scheduled Job
Summary
Implemented webhook triggering logic when member points balances are updated through the loyalty rolling expiration scheduled job process.
Overview
Enhancements were made to the loyalty expiration scheduled job process to ensure webhook events are triggered whenever a member’s points balance is updated.
Previously, balance updates occurring through the rolling expiration scheduled job did not consistently trigger webhook notifications. This created gaps for external systems relying on webhook events to track real-time changes in member point balances.
The webhook logic has now been implemented within the rolling expiration scheduled job process to ensure that balance updates caused by scheduled expiration or adjustments trigger the appropriate webhook events.
The changes were applied to the loyalty scheduled job responsible for handling rolling expiration calculations and point updates.
Key Highlights
- Added webhook trigger logic to the loyalty rolling expiration scheduled job.
- Ensured webhook events fire when points balances are updated via scheduled processes.
- Improved consistency between system-triggered and scheduled job-triggered balance updates.
Impact
- Ensures external systems receive real-time notifications for points balance updates.
- Improves webhook reliability for integrations tracking loyalty balance changes.
- Eliminates missed events caused by scheduled job-based updates.
- Enhances synchronization between loyalty platform and downstream systems.
Enhancement (LB-5228) |Reward Report Order ID & Total Spend Population
Summary
Updated the Reward Report to ensure Order ID and Total Spend values are populated correctly for reward-related transactions.
Overview
An issue was identified in the Reward Report where Order ID and Total Spend values were not appearing for certain reward transactions.
Upon analysis, it was observed that orders containing products with a unit price of zero resulted in a total spend value of 0, which caused the Total Spend field to appear blank in the report.
To improve report clarity and ensure consistent reporting behavior, updates were implemented to properly populate Order ID and Total Spend values in the Reward Report where applicable.
Additionally, cases involving coupon code reuse were reviewed and confirmed to follow standard system behavior, where reused coupon codes without an associated redemption are treated as new coupon entries.
Key Highlights
- Improved Reward Report logic for Order ID population.
- Ensured Total Spend values display correctly for reward-related transactions.
- Reviewed coupon code reuse behavior and confirmed expected system behavior.
- Maintained consistent reporting behavior across reward transactions.
Impact
- Improves visibility of order-related information in Reward Reports.
- Enhances reporting accuracy for reward redemption transactions.
- Reduces confusion when analyzing reward-related order activity.
Enhancement(LB-5203) |Multiple Reward Application Issue on Shopify Checkout
Summary
Resolved an issue where users were unable to apply multiple rewards through the AnnexCloud widget during Shopify checkout.
Overview
An issue was reported where customers attempting to apply multiple rewards (up to five) through the AnnexCloud widget on Shopify checkout encountered an error message, preventing successful reward application.
Investigation revealed that the issue was related to reward status updates and API handling during the reward redemption process. In certain scenarios, the reward status was not being updated correctly when multiple rewards were applied in succession. This resulted in conflicts during the order API call, which prevented additional rewards from being applied.
It was also confirmed that the error message displayed during checkout originated from Shopify’s checkout validation layer, while the root cause was related to the reward status handling in the backend reward API flow.
The logic handling reward status updates and order processing was updated to ensure that rewards are properly validated and applied when multiple rewards are selected during checkout.
Key Highlights
- Fixed reward status handling during multi-reward redemption flow.
- Corrected reward validation during order API processing.
- Ensured multiple rewards can be applied successfully through the AnnexCloud Shopify widget.
- Confirmed correct interaction between reward APIs and Shopify checkout process.
Impact
- Enables users to apply multiple rewards during checkout without errors.
- Improves reward redemption experience within Shopify integrations.
- Ensures correct reward status updates during multi-reward transactions.
- Reduces checkout failures related to reward application.
3rd March 2026 - 9th March 2026
Bug Fix (INT20-12659) |Dashboard URL Showing Loyalty ID Instead of Email ID
Summary
Resolved an issue where the Dashboard URL incorrectly displayed the Loyalty ID instead of the Email ID when accessing member activity history.
Overview
An issue was identified in the member dashboard integration where the generated Dashboard URL was passing the Loyalty ID instead of the Email ID as the external identifier parameter.
This caused inconsistencies when retrieving member activity history through the dashboard link.
The logic has been corrected to ensure that the Email ID is passed as the external identifier in the dashboard URL, aligning with the expected API parameter behavior.
Key Highlights
- Corrected Dashboard URL parameter mapping.
- Ensured Email ID is passed as the externalID parameter instead of Loyalty ID.
- Restored proper retrieval of member activity history via the dashboard.
- Verified correct behavior with the member activity history API.
Impact
- Ensures accurate member identification in dashboard requests.
- Prevents mismatches when retrieving user activity history.
- Improves reliability of dashboard integration with the loyalty API.
Bug Fix (LB-5232) |Journey Reward Count Validation During Draft Save
Summary
Added validation for the Reward Count field in Journey configuration to prevent invalid values from being saved as Draft and later published.
Overview
An issue was identified in the Journey configuration where the Reward Count field within a Reward Group did not enforce validation when the journey was saved as a Draft.
Due to the missing validation:
- Users could save the journey configuration with invalid or incomplete Reward Count values.
- The same configuration could later be published without validation, potentially causing incorrect reward logic during journey execution.
- To address this issue, UI validation has been implemented for the Reward Count field during the Reward Group configuration process.
- The validation now ensures that invalid Reward Count values cannot be saved in Draft or published.
Key Highlights
- Added validation for the Reward Count field in Journey Reward Group configuration.
- Prevented invalid Reward Count values from being saved as Draft.
- Ensured validation is enforced before publishing journeys.
- Improved consistency and reliability of Journey reward configuration.
Impact
- Prevents invalid Journey reward configurations.
- Ensures proper validation before journey publication.
- Improves stability and predictability of Journey reward execution.
- Reduces risk of misconfigured reward distribution.
Bug Fix (LT-37852) |Campaign Milestone Sync Error in Postgres
Summary
Resolved an issue in the Postgres campaign milestone sync process that triggered a New Relic error due to an undefined debit index during milestone benefit processing.
Overview
An error was identified in the Postgres synchronization logic for campaign milestone benefits, where the system generated a runtime warning:
Undefined index: debit
This occurred when a campaign milestone benefit was configured with Action ID 107, and the sync process attempted to access a debit index that was not defined in certain payload scenarios.
As a result, the system logged errors in New Relic during campaign milestone synchronization.
To address this issue:
Additional validation logic was implemented to ensure the debit index is checked before being accessed.
The sync process was updated to handle cases where the value is not present in the payload.
The corrected logic ensures that campaign milestone data is properly processed and synced without generating runtime errors.
Key Highlights
- Fixed undefined debit index error during campaign milestone sync.
- Improved validation checks for milestone benefit payload fields.
- Resolved New Relic runtime error triggered during sync process.
- Ensured stable synchronization for Action ID 107 milestone configurations.
Impact
- Eliminates runtime errors during campaign milestone synchronization.
- Improves stability of Postgres campaign sync processes.
- Prevents monitoring alerts caused by undefined payload fields.
- Ensures reliable milestone benefit processing across campaigns.
February 2026
24th February 2026 - 2nd March 2026
Bug Fix (LB-5208) |Incorrect Tier Downgrade Display in Tier History
Summary
Resolved an issue where members appeared to be downgraded to a lower tier unexpectedly due to incorrect entries in the Tier History table. The issue was limited to display behavior and did not impact actual tier calculations.
Overview
An issue was reported where a member appeared to be downgraded from Birdie Tier to PAR Tier after making a purchase, despite still being within their valid tier anniversary period.
Upon investigation, it was determined that:
- The member’s actual tier calculation logic was correct.
- The issue was caused by an incorrect entry in the Tier History table.
- This created the appearance of a downgrade in reports and tier history pop-ups.
Key Highlights
- Fixed incorrect Tier History entry insertion.
- Prevented false downgrade display in Tier History popup.
- Confirmed no impact on the actual tier calculation logic.
- Validated tier behavior across purchase, return, and cancellation flows.
- Limited impact to the specific site configuration only.
Impact
- Prevents confusion caused by incorrect tier downgrade display.
- Ensures Tier History accurately represents member lifecycle.
- Maintains trust in loyalty tier progression.
- No impact to tier eligibility, anniversary logic, or rewards.
Enhancement (LT-37734) | Reward Additional Details Sync with Postgres
Summary
Completed production migration and unit testing for syncing Reward configuration additional fields with Postgres, ensuring accurate data consistency across Apps and Python services.
Overview
As part of the Postgres migration initiative for Rewards, additional reward configuration fields were synchronized to ensure proper data flow between the Apps layer and the Python core API.
This update is related to prior development under LT-36521 (Sync: Reward configuration additional fields) and includes final production movement and validation.
The following Reward components were verified during testing:
- Reward Redemption Rules
- Reward Eligibility Rules
- Reward Eligibility Segment Mappings
- Reward Expiration Settings
- Reward Auto Redemption Rules
- Reward Notification Settings
- Reward Coupon Settings
An issue was identified during testing in the Reward Coupon Settings flow, which was traced to Python logic. The issue was debugged and resolved prior to final validation.
Key Highlights
- Synced Reward additional configuration fields with Postgres.
- Ensured data alignment between Apps and Python (s15-v2-core-api).
- Validated reward creation and update workflows.
- Fixed the coupon-related sync issue in the Python service.
- Completed unit testing for all related reward configuration modules.
- Confirmed correct DB mappings across reward-related tables.
Impact
- Ensures accurate Reward configuration data in Postgres.
- Prevents sync inconsistencies between Apps and backend services.
- Improves the stability of reward creation, update, and configuration flows.
- Strengthens overall Postgres migration reliability for the Rewards module.
Bug Fix (LT-37667) |Rewards PATCH API Timezone Format Handling
Summary
Updated the Rewards PATCH API to correctly handle scenarios where date fields are submitted without a timezone format.
Overview
An issue was identified in the Rewards PATCH API where date-time fields without an explicit timezone format were not being processed correctly.
This caused inconsistencies when updating reward configurations, particularly for fields related to expiration or scheduling.
The API logic has been updated to:
- Properly accept date-time values without a timezone indicator.
- Normalize date inputs to the expected internal format.
- Ensure consistent handling of reward update requests regardless of timezone formatting.
The changes were validated through QA verification to ensure that reward updates function correctly across all supported date scenarios.
Key Highlights
- Fixed timezone format handling in Rewards PATCH API.
- Ensured API accepts date-time values without an explicit timezone.
- Normalized date inputs internally for consistent processing.
- Validated reward redemption and update flows after fix.
Impact
- Prevents reward update failures caused by missing timezone format.
- Improves API robustness and input flexibility.
- Ensures consistent reward configuration behavior.
- Reduces integration errors for API consumers.
Enhancement (LT-37057) | Action & Action Group Sync with Postgres
Summary
Enhanced the synchronization of Actions and Action Groups with Postgres by adding new fields, implementing Action Group sync APIs, and aligning ADR sync services with updated schema requirements.
Overview
As part of the Postgres migration roadmap, updates were implemented to support synchronization of Action and Action Group configurations between MySQL, Postgres, and ADR.
Action Group Sync
New sync support was added for:
Postgres Tables:
action_groups
action_group_actions
A dedicated Python Sync API was created for Action Groups and integrated into the ADR sync service to ensure consistent data mapping and update flows.
Action Table Enhancements
The existing Action sync API for Postgres was extended to support the following new fields in the actions table:
expiration_type
expiration_unit
expiration_value
validate_attributes
is_item_type_multiplier_enabled
These fields were also implemented in ADR to maintain configuration consistency.
Transaction Type Mapping
Implemented synchronization between:
MySQL: s15_v3_purchase_transaction_types
Postgres: action_item_type_settings
This ensures accurate mapping of item type settings across databases.
Key Highlights
- Created Action Group and Action Group Actions sync APIs.
- Extended existing Action sync API to include new configuration fields.
- Implemented migrated ID handling for update flows.
- Resolved multiple template ID handling issues.
- Updated ADR PHP code to support Postgres payload structure.
- Ensured backward compatibility with existing Action configurations.
Impact
- Ensures complete and accurate synchronization of Action and Action Group configurations.
- Strengthens Postgres migration stability for the Loyalty module.
- Improves consistency between MySQL, Postgres, and ADR layers.
- Prevents data mismatches during Action updates and multi-template scenarios.
17th February 2026 - 23rd February 2026
Enhancement (RF-4353) | TalentLMS iFrame Source Update
Summary
Updated the UAT configuration to load the TalentLMS iframe from the Production TalentLMS portal instead of the UAT instance, as per client request.
Overview
- As per the client’s request, the TalentLMS iframe configuration was modified to reference the Production TalentLMS portal instead of the UAT TalentLMS instance.
- This change ensures that the UAT setup reflects live production training content and configurations from TalentLMS.
Key Highlights
- Updated TalentLMS iframe to use Production portal URL.
- Replaced API key to align with Production instance.
- No backend logic changes.
- No impact to platform functionality.
Impact
- Ensures the UAT reflects live TalentLMS content.
- Aligns training environment with production data.
- No changes to loyalty or platform behavior.
Enhancement (INT20-12635) | Production Log Page Design Update (Angular & Apps)
Summary
Moved and implemented updated Production Log page design changes for both Angular and Apps to align with the latest UI enhancements.
Overview
- As part of the Self Serve improvements, updates were made to the Production Log page design for both the Angular frontend and associated Apps components.
- The update involved moving and aligning the revised UI code to ensure consistency across modules and environments. The changes were focused on design and layout improvements without modifying the underlying business logic.
- No functional impact to logging behavior or backend processes was introduced.
Key Highlights
- Updated Production Log page UI design in Angular.
- Applied corresponding changes in the Apps components.
- Ensured consistent design implementation across modules.
- No backend logic changes.
Impact
- Improved UI consistency and user experience on the Production Log page.
- Enhanced maintainability of Angular and Apps code structure.
- No changes to existing logging functionality.
Enhancement (INT20-12626) |SSO Updates with New ADR Integration
Summary
Implemented Single Sign-On (SSO) enhancements for the client by integrating a new ADR version, including set-cookie functionality and domain-based redirection updates.
Overview
A new ADR (Authentication & Domain Routing) version was introduced to support updated authentication and redirection requirements.
The following updates were implemented:
- Added set-cookie functionality to support the new ADR authentication flow.
- Introduced a new ADR configuration for the client-related changes.
- Updated domain-based redirection logic to ensure users are correctly routed to the new ADR.
- The implementation ensures seamless authentication handling and accurate domain-based routing without disrupting existing SSO workflows.
- Full functionality testing was completed prior to release to ensure stable authentication and redirection behavior.
Key Highlights
- Integrated the new ADR version for the client.
- Implemented set-cookie handling for improved SSO session management.
- Updated domain configuration logic for accurate redirection.
- Ensured stable authentication flow across the client's sites.
- Validated functionality before production deployment.
Impact
- Improves SSO reliability and session handling.
- Ensures correct domain-based routing to the new ADR.
- Enhances authentication stability for the client users.
- Supports ongoing infrastructure and security improvements.
Bug Fix (LB-5169) |Transactional Point Cap Enforcement & Reporting Discrepancy
Summary
Resolved issues related to transactional point cap enforcement and reporting discrepancies where points were exceeding the configured cap and reporting values appeared inconsistent with account-level transactional totals.
Overview
Two major issues were identified during review of the Interaction Report:
Issue 1: Transactional Points Exceeding Configured Cap
The system was allowing members to accrue transactional points beyond the configured 2,500-point cap, even though the cap was enabled.
Root Cause:
A product gap in how points were calculated and enforced when using hold-based earning logic allowed points to bypass the configured cap under certain scenarios.
Resolution:
The cap enforcement logic was updated to ensure members cannot earn more transactional points than the configured limit within the defined duration, regardless of hold type configuration.
Issue 2: Transactional Points Appearing Double-Counted in Reports
- Discrepancies were identified between:
- Earned points shown in reporting
- Actual transactional points reflected in customer accounts
Root Cause:
The reporting layer calculation included certain redemption and credit scenarios in a way that created apparent double-counting in report totals.
Resolution:
Reporting logic was corrected to ensure alignment between Interaction Reports and actual account transactional balances.
Key Highlights
- Fixed transactional point cap enforcement logic.
- Ensured members cannot exceed the configured 2,500-point limit.
- Corrected reporting calculations to prevent double-counting.
- Aligned Interaction Report totals with account-level data.
- Addressed the product gap related to hold-based earning logic.
- QA validated scenarios across hold types and cron-based flows.
Impact
- Ensures strict enforcement of transactional earning caps.
- Restores trust in reporting accuracy.
- Prevents unintended over-accrual of loyalty points.
- Improves financial and loyalty data consistency.
- Reduces risk of liability from over-issued points.
Enhancement (LT-37507) | Webhook External Reward & Badge ID Alignment
Summary
Enhanced webhook events and related APIs to ensure that the actual configured Reward ID and Badge ID are returned instead of internal numeric identifiers. Added UUID support for Badge APIs and introduced consistent id parameters across Reward and Badge endpoints.
Overview
- An issue was identified where webhook events for external rewards were returning an internal numeric value (auto-increment table ID) instead of the actual Reward ID configured in the reward settings.
- Similarly, Badge webhook events were not exposing a consistent identifier that aligned with API responses.
To resolve this:
Reward Updates
- Updated webhook payload to return the actual configured Reward ID instead of the internal table ID.
- Introduced a new id parameter in Reward APIs.
- Enabled filtering based on the id field across relevant endpoints.
Updated Reward Endpoints:
- Reward List
- User Eligible Reward List
- Reward History
- Reward Details
- Assign Reward
- Update Assign Reward
Badge Updates
- Added a new id parameter (UUID format) to Badge APIs.
- Updated webhook events to return the correct Badge identifier.
- Enabled filtering of badges based on UUID.
- Added UUID support in:
- Badge Listing API (/badges)
- User Badge API (/users/{{email_id}}/badges)
- Badge Detail endpoint
This ensures consistent identifier mapping between API responses and webhook payloads.
Key Highlights
- Webhook now returns actual configured Reward ID.
- Added id parameter to Reward APIs with filtering support.
- Introduced UUID-based id for Badge APIs.
- Updated webhook events to reflect correct Badge identifiers.
- Ensured alignment between API responses and webhook payloads.
- QA validated prior to release.
Impact
- Eliminates identifier mismatch between APIs and webhooks.
- Improves integration reliability for external systems consuming webhook events.
- Enables consistent filtering and reference handling using UUID.
- Reduces confusion caused by internal database IDs appearing in payloads.
Enhancement (LT-36894) | update_date Not Updating After Hold Points Release
Summary
Resolved an issue where the update_date column was not being updated when points were released from hold, either manually via the Hold Points Report or automatically via a scheduled job
Overview
An issue was identified in the Purchase Action hold point flow, where the update_date timestamp was not being updated after hold points were released.
This occurred in two scenarios:
- Manual release of points from the Hold Points Report
- Automatic release of points via scheduled cron process
Although the points were successfully released and reflected in the member account and client's site, the update_date field in the database remained unchanged, leading to inconsistencies in tracking and auditing.
The logic was updated to ensure that whenever hold points are released—regardless of release method—the update_date column is properly updated with the correct timestamp.
Key Highlights
- Fixed update_date column not updating during manual hold release.
- Fixed update_date column not updating during cron-based release.
- Ensured timestamp consistency for Purchase Action hold criteria.
- Validated correct timestamp updates across tested user scenarios.
- Confirmed the updates remain unaffected and working correctly.
Impact
- Ensures accurate audit tracking for hold point releases.
- Improves data consistency in reporting and backend records.
- Enhances the reliability of timestamp-based reconciliation processes.
- Prevents confusion in debugging and transactional reviews.
10th February 2026 - 16th February 2026
Enhancement (LT-37295) | Journey API 3.1 Language Translation Support
Summary
Added Language Translation support to Journey API 3.1 to align with functionality already available in Journey API 3.0 and meet client requirements.
Overview
Journey API 3.1 previously did not support Language Translation functionality, which was already implemented in Journey API 3.0 for specific client requirements.
To ensure feature parity and support ongoing API adoption, Language Translation capability has now been implemented in Journey API 3.1.
The update applies translation support to:
- Journey Name
- Journey Description
This enhancement is available across relevant endpoints, including:
- Single Journey API
- Specific Journey API
- User Journey endpoints (where applicable)
The implementation ensures that multilingual content configured within the system is properly returned in API responses based on language selection.
Key Highlights
- Added Language Translation support to Journey API 3.1.
- Aligned feature behavior with Journey API 3.0.
- Enabled translation for Journey Name and Journey Description fields.
- Applied support across all relevant Journey 3.1 endpoints.
Impact
- Ensures consistent multilingual API support across Journey API versions.
- Enables seamless migration from API 3.0 to 3.1 without feature loss.
- Supports improved customer experience for multilingual implementations.
- Meets high-priority client requirements for API adoption.
Enhancement (LT-37050) |Campaign Sync: Additional Fields & Milestone Bonus Type Update
Summary
Enhanced the campaign synchronization process to include additional campaign setting fields and introduced support for a new milestone bonus type (points_additional) in the sync flow between MySQL and Postgres.
Overview
This update improves the campaign sync mechanism by ensuring additional campaign configuration fields are properly synchronized across systems.
New fields were added from the following MySQL tables into the sync process:
- s15_v3_campaign
- maximum_achievement_limit_value
- maximum_achievement_limit_flag
- maximum_point_limit_value
- maximum_point_limit_flag
- campaign_benefit_name
- s15_v3_campaign_detail
- maximum_achievement_limit_value
- maximum_achievement_limit_flag
- maximum_point_limit_value
- maximum_point_limit_flag
- milestone_product_id_based_bonus_flag
Additionally, the milestone_bonus_type_flag field in s15_v3_campaign_detail previously supported only two values (ratio and points). This release introduces support for a new value:
- points_additional – required for exclude action points dropdown condition.
Updates were implemented in the existing API (POST/PATCH methods) and corresponding ADR sync services to ensure proper data mapping and synchronization into Postgres.
Key Highlights
- Added new campaign setting fields to the sync process.
- Updated Python Sync API to handle additional fields in POST and PATCH methods.
- Introduced new milestone_bonus_type_flag value: points_additional.
- Updated ADR sync services to support new fields.
- Configured default values for specific fields to prevent campaign creation errors.
Impact
- Ensures complete and accurate synchronization of campaign configuration data between MySQL and Postgres.
- Supports enhanced campaign configurations with additional milestone bonus logic.
- Improves stability of campaign creation and update flows.
Bug Fix (LT-5111) |Dashboard Hold Points Mismatch with Hold Points Report
Summary
Resolved an issue where the Hold Points displayed on the dashboard did not match the Hold Points Report when the hold setting was configured as Order Item Ship Date (Action ID 109).
Overview
A discrepancy was identified for the Ariat client where the Hold Points shown on the dashboard differed from those in the Hold Points Report during partial shipment scenarios.
When the hold type was set to Order Item Ship Date, and an order was partially shipped, the system behavior was inconsistent:
- The Hold Points Report correctly retained the full hold points amount.
- The Dashboard incorrectly reduced the hold points by subtracting shipped item points, even though those points were not yet eligible for release based on the hold configuration.
Additionally, it was identified that:
- The dashboard hold points calculation did not account for discount amounts applied to orders.
- Campaign benefit hold points were not included in dashboard hold points (expected behavior, noted for clarity).
The hold points logic was updated to ensure alignment between dashboard calculations and report data.
Key Highlights
- Corrected dashboard hold points logic for Order Item Ship Date hold type.
- Ensured partial shipments do not prematurely reduce hold points on the dashboard.
- Updated logic to correctly account for discount amounts in hold points calculation.
- Maintained consistency with Hold Points Report logic.
Impact
- Ensures accurate and consistent hold points visibility across Dashboard and Hold Points Report.
- Prevents confusion caused by mismatched hold balances during partial shipments.
- Improves reporting reliability for order-based hold configurations.
- Enhances overall trust in dashboard financial metrics.
Bug Fix (LT-37450) |Webhook Points Balance Payload Alignment & Timezone Correction
Summary
Corrected the webhook points balance payload to align with the official Webhook Event Payload Documentation (v1.0.0), including fixes for group balance data structure and timezone formatting.
Overview
An issue was identified where the Points Balance webhook payload did not fully align with the documented specification for group balance fields. Additionally, the date format being sent in the payload was not consistent with the expected UTC standard.
The following corrections were implemented:
- Updated the group balance structure to match the documented schema.
- Standardized all date fields in the webhook payload to be sent in UTC format.
- Ensured payload consistency across webhook triggers.
As per the requirement, all dates are now transmitted in UTC, and any timezone conversions will be handled on the client side.
The updated payload has been validated and deployed successfully.
Key Highlights
- Aligned group balance payload structure with official documentation (v1.0.0).
- Corrected timezone formatting inconsistencies.
- Ensured all webhook date fields are sent in UTC.
- Maintained backward compatibility with existing webhook consumers.
Impact
- Ensures webhook payload compliance with documented schema.
- Prevents integration issues caused by incorrect date formatting.
- Improves consistency and reliability of webhook-based integrations.
- Enables clients to confidently handle timezone transformations on their end.
Bug Fix (LT-37336) |Loyalty Sync Issues After Postgres + Python Migration
Summary
Resolved synchronization issues in the Loyalty module following the Postgres + Python migration to ensure accurate movement of loyalty settings and feature flags to production.
Overview
As part of the Postgres + Python migration initiative for the Loyalty module, certain sync-related inconsistencies were identified when moving configurations to production.
This ticket addressed issues related to:
- Loyalty Settings synchronization
- Feature Flags synchronization
The fixes ensured that all loyalty-related configurations are correctly synced between systems and accurately reflected after migration.
Key Highlights
- Fixed sync inconsistencies in Loyalty settings after migration.
- Resolved issues affecting Feature Flags synchronization.
- Ensured smooth transition of loyalty configurations post-migration.
Impact
- Improves reliability of Loyalty configuration sync.
- Prevents configuration mismatches after migration.
- Ensures stable and consistent production behavior for loyalty features.
- Strengthens overall migration stability for Postgres + Python architecture.
3rd February 2026 - 9th February 2026
Enhancement (LS-6836) |Data Feed - Added Azure Blob Storage Connection in DSS ADR
Summary
This release introduces support for Azure Blob Storage as a new connection type within DSS ADR, enabling customers to configure data feeds using Azure-based storage alongside existing options.
Overview
The enhancement extends ADR’s data feed configuration capabilities by adding Azure Blob Storage as a selectable connection. The implementation includes backend (Apps) and frontend (Angular) changes and has been validated across AWS and Azure environments to ensure consistent behavior.
Key Highlights
- Added Azure Blob Storage as a new connection option in DSS ADR
- Implemented changes across Apps and Angular layers
Impact
- Enables customers using Azure infrastructure to integrate data feeds natively
- Improves flexibility and scalability of ADR data feed configurations
- No impact to existing data feed connections or configurations
Enhancement (INT20-12594) |Integration Platform - Added “Last Reward Earned Date” Field
Summary
This release introduces a new Last Reward Earned Date field on the Integration Platform, providing visibility into the most recent reward earned by a member.
Overview
To enhance data availability for integrations and reporting, a new standard field capturing the last reward earned date has been added.
Key Highlights
- Added Last Reward Earned Date as a new standard field on the Integration Platform
- Field added to esp_v2_standard_loyalty_fields
Impact
- Enables partners and integrations to track the most recent reward activity
- Improves accuracy of member activity timelines and external data syncs
- No impact to existing fields, APIs, or integrations
Enhancement (INT20-12590) |Integration Platform - Added “Last Points Earned Date” Field
Summary
This enhancement introduces a new Last Points Earned Date standard field on the Integration Platform, enabling visibility into the most recent points-earning activity for a member.
Overview
To improve data completeness for integrations and analytics, a new standard field capturing the last points earned date has been added to the Integration Platform.
Key Highlights
- Added Last Points Earned Date as a new standard Integration Platform field
- No changes required to existing integrations or APIs
Impact
- Enables downstream systems to identify the most recent points-earning activity
- Improves accuracy of member engagement timelines
- Supports better reporting, segmentation, and synchronization use cases
- No breaking changes or backward compatibility concerns
Enhancement (RF-4350) |Role Based Access Control for TalentLMS Dashboard
Summary
This enhancement introduces Role-Based Access Control (RBAC) for TalentLMS dashboard, allowing access to training content to be governed strictly by user roles.
Overview
To strengthen access control, RBAC has been implemented on the My Training page within the TalentLMS dashboard. With this update, users will only be able to view and interact with training modules that are permitted for their assigned roles.
Key Highlights
- Implemented Role-Based Access Control on the TalentLMS My Training dashboard
- Access to training content is now role-dependent
Impact
- Prevents unauthorized access to training content
- Improves compliance with role-based security requirements
- Enhances control over user experience within TalentLMS
- No impact on existing training data or user records
Enhancement (LT-37296) |Badge Sorting Logic
Summary
This enhancement updates the badge sorting logic to ensure badges are displayed in a consistent and expected order across the platform.
Overview
Previously, badge ordering could appear inconsistent in certain scenarios, leading to confusion in how badges were displayed to end users. This update refines the sorting logic and moves the corrected behavior to the production environment.
Key Highlights
- Updated badge sorting logic for consistent ordering
- Ensures predictable badge display across applicable screens
- No database or schema changes required
Impact
- Improves clarity and usability of badge displays
- Eliminates inconsistencies in badge ordering
- No impact on existing badge assignments or historical data
- Safe change with minimal risk to other badge-related functionality
January 2026
27th January 2025 - 2nd February 2026
Enhancement (IMP-7869) | Receipt Scan Copy Updates
Summary
Moved updated receipt scan copy changes to production for the client.
Overview
As part of ongoing improvements to the Receipt Scan experience for the client, content-level updates were implemented to refine and standardize the copy displayed to users. These updates focus on improving clarity and consistency without changing existing business logic or workflows.
Key Highlights
- Updated copy content for the Receipt Scan experience.
- No changes to receipt scan logic or validation rules.
- No database or API changes involved.
Impact
- These updates improve clarity and user experience within the Receipt Scan flow for the client, ensuring clearer communication while maintaining existing functionality.
- Receipt Scan copy updates have been deployed to production for the client to improve clarity and consistency in user-facing messaging.
Bug Fix (IMP-7849) | Earn Tab Error on iFrame
Summary
Resolved an error occurring when accessing the Earn tab on the loyalty iFrame.
Overview
- An issue was reported on the loyalty iFrame where users encountered an error when navigating to the Earn tab via the dashboard URL. The issue was identified during internal review and debugging sessions.
- Investigation revealed that the error was related to TierV2 functionality, which was impacting the Earn tab rendering. The issue was analyzed across configuration and JavaScript layers, and corrective actions were implemented to ensure the Earn tab loads correctly without errors.
Key Highlights
- Fixed the error occurring on the Earn tab in the loyalty iFrame.
- Root cause identified as TierV2-related behavior.
- No impact to other dashboard tabs or loyalty features.
Impact
This fix restores normal access to the Earn tab for users, ensuring uninterrupted visibility of earning opportunities within the loyalty dashboard.
Bug Fix (LB-5173) | Tier Not Upgrading After Order Shipment
Summary
Fixed an issue where customer tiers were not upgrading after order shipment when the Hold Type was configured as “All Items From Order Ship Date.”
Overview
When the hold configuration was set to calculate spend from the Order Ship Date, tier upgrades were not triggered immediately after shipment - even though:
- Spend was correctly reflected in APIs and reports
- Points remained on hold as expected
- Tier upgrades occurred only after a secondary action (manual release, user PATCH, or additional activity)
This behavior caused tier upgrades to be delayed and was identified as a blocker for the client.
Fix Implemented
- Tier recalculation logic has been updated to trigger immediately upon order shipment
- Spend is now correctly evaluated for tier upgrades even when points remain on hold
- No additional user activity is required for tier evaluation
- No database changes involved
Impact
- Ensures accurate and timely tier upgrades
- Removes dependency on manual actions or secondary events
- Resolves a production-blocking issue for the client
Bug Fix (LB-5172) | Interaction Report Export Blank with Source Filter
Summary
Resolved an issue where the Interaction Report export returned a blank Excel file when filtered using Action ID along with Source = “Receipt Upload”, despite data being visible in the Annex Cloud UI.
Overview
- The client reported a discrepancy between the ADR Interaction Report UI and the exported Excel file. While records were displayed correctly in the platform, exporting the same report over a larger date range resulted in an empty file.
- This behavior was reproducible in production and specifically impacted reports using source values containing spaces.
Key Highlights
- Exported Interaction Reports now match ADR UI results
- Source filters with spaces (e.g., Receipt Upload) are handled correctly
- Issue fixed for large date ranges as well
Impact
- Prevents blank exports for valid interaction data
- Restores reporting confidence for the client
- Improves consistency across reporting and export workflows
20th January 2025 - 26th January 2026
Enhancement (RF-4348) | Stat ID Added to Referral Status API
Summary
Added the stat_id field to the Referral Status API response to enable better identification of the originally referred friend.
Overview
- To support customer use cases around referral validation and signup flow personalization, the Referral Status API has been enhanced to include a new response parameter: stat_id.
- This allows customers to reliably identify the original referred friend when a referral link is shared or forwarded. The enhancement enables use cases such as pre-filling signup form data (e.g., email) and validating that the signup originates from the intended referral recipient.
- The stat_id value was already available at the database level, so no schema or DB changes were required. The API response was extended to expose this field.
Key Highlights
- Added stat_id to each referral record in the Referral Status API response.
- Enables identification of the original referral recipient even if the link is forwarded.
- Supports improved signup experiences, including email pre-fill use cases.
- No database changes required.
Impact
This enhancement improves referral tracking accuracy and enables customers to build more reliable referral validation and signup workflows without impacting existing integrations.
Bug Fix (LB-5170) | Bulk Upload: Prevent Member Creation When Toggle Is OFF
Summary
Fixed an issue where non-existing members were being created during the bulk upload process even when the Bulk Upload toggle was turned OFF.
Overview
- It has been reported that during the bulk upload process, customers who did not already exist in the system were still being created with a UID when included in the upload file, even if the bulk upload toggle was disabled in ADR.
- This behavior caused data misalignment across the client's downstream systems, where those members were not expected to exist. Although the toggle-off flow prevented opt-in and point assignment, the member record itself was still being created, which was not the intended behavior.
- The bulk upload logic has now been corrected to fully skip non-existing customers when the toggle is OFF, ensuring that no member records are created in such scenarios.
Key Highlights
- Fixed bulk upload behavior when toggle is OFF to prevent creation of non-existing members.
- Ensured only already-existing members are processed during bulk uploads.
- Prevented unintended UID creation for non-existing customers.
- Maintained existing behavior for opted-in members and retro-based setups.
Impact
This fix ensures data consistency between Annex Cloud and external systems by preventing unintended member creation during bulk uploads. It eliminates downstream mismatches, improves data governance, and aligns system behavior with customer expectations.
Bug Fix (LB-5168) | Elite Tier Not Downgrading After Attribute Reset
Summary
Fixed an issue where Elite tiers were not being downgraded after the isElite attribute was reset to No, causing customers to remain incorrectly in Elite tiers.
Overview
- It has been identified that resetting the isElite attribute to No correctly updated the attribute value but failed to recalculate and downgrade the customer’s tier accordingly. This behavior was observed primarily for Group (HM) tiers, though the underlying issue existed at the API logic level.
- As a result, affected customers continued to appear as Elite in Annex Cloud even after the attribute reset, leading to inconsistencies between attribute state, tier assignment, and downstream systems.
- The fix ensures that when the isElite attribute is reset, the tier recalculation logic is triggered correctly, and the customer is downgraded to the appropriate tier (e.g., Platinum) based on status points and configuration.
Key Highlights
- Fixed tier recalculation logic when isElite attribute is reset to No.
- Ensured Elite tiers are properly removed after attribute updates.
- Corrected behavior for Group (HM) tiers, with alignment at the API level.
- Verified and corrected impacted customer records.
Impact
This fix restores correct tier behavior for the customers by ensuring attribute-driven tier changes are accurately reflected in Annex Cloud. It prevents customers from remaining incorrectly in Elite tiers, improves data consistency across systems, and ensures reliable tier governance for both current and future updates.
Enhancement (INT20-12591) | Empty-State Message on Logs Screen
Summary
Added a clear empty-state message on the Logs screen to improve usability when no logs exist for the selected date range.
Overview
- Previously, when no logs were available for a selected date range, the Logs screen appeared blank, which could cause confusion and lead users to assume a loading or system issue.
- This enhancement introduces a user-friendly empty-state message that explicitly indicates the absence of logs for the selected period. To provide additional context and reassurance, the message also displays the last successful run timestamp along with the configured timezone.
- The change improves transparency, reduces ambiguity, and helps users quickly understand the system state without requiring further investigation or support.
Key Highlights
- Added a clear empty-state message when no logs exist for the selected date range.
- Displays the last successful run date and time, including timezone.
- Prevents blank or ambiguous UI states on the Logs screen.
Impact
This enhancement improves overall user experience and operational clarity by eliminating blank screens and providing meaningful context when no log data is available. It reduces confusion, avoids unnecessary support queries, and helps users quickly assess system activity status.
Bug Fix (IMP-7854) | Ratings & Reviews Questions
Summary
Moved updated Ratings and Reviews Questions logic to production for the client to resolve product price formatting issues.
Overview
- An issue was identified in the Ratings and Reviews Questions flow where product price values contained alphanumeric characters, leading to inconsistencies during processing and display.
- To address this, the logic was updated to sanitize product price values by removing alphanumeric characters, ensuring that only valid numeric data is processed. The fix was implemented, validated, and directly moved to the production environment as a hotfix due to its impact on live customer interactions.
Key Highlights
- Removed alphanumeric characters from product price values in Ratings & Reviews Questions.
- Ensured consistent and valid numeric price handling.
Impact
This fix ensures accurate handling of product price data in Ratings and Reviews for the client, preventing incorrect formatting issues and improving data reliability in production.
6th January 2025 - 12th January 2026
Bug Fix (LB-4993) | Correct Hold Points Display with Discounts
Summary
Resolved an issue where points on hold were displayed incorrectly when a Secondary Hold Type was configured and a discount was applied to the order.
Overview
In scenarios where a secondary hold type was enabled, the system displayed hold points based on the total order value instead of the discounted amount. This caused inconsistencies across APIs and reports, even though the Order API response showed correct values. The logic for calculating and displaying hold points was corrected to ensure discounts are properly accounted for.
Key Highlights
- Fixed hold point calculation logic for secondary hold type configurations.
- Ensured discounts are deducted correctly before calculating points on hold.
- Corrected hold points display across:
- Get Points API
- Activity API
- Order Report
- Hold Points Report
Impact
Ensures accurate and consistent visibility of points on hold when discounts are applied, improving reporting accuracy and API reliability for hold-based point workflows.
Bug Fix (LB-5089) | Reward Status Data Consistency in Reward Reports
Summary
Resolved inconsistencies between reward statuses displayed in the Annex Cloud UI and those exported via reward report CSV files, which caused mismatches in downstream data systems.
Overview
Reward status values in exported CSV files did not consistently match the statuses shown in the Annex Cloud interface. This occurred due to reward usage updates being sourced from incorrect database tables and date fields. The reward data extraction logic was updated to ensure reward usage and status changes are reflected accurately across both the UI and data exports.
Key Highlights
- Updated reward data queries to reference the correct source table for reward usage updates.
- Corrected date filtering logic to rely on reward update timestamps rather than creation timestamps.
- Ensured reward status transitions (claimed, used, expired) are consistently represented across exports and UI.
- Improved alignment of reward reporting data with downstream data ingestion platforms.
Impact
Ensures reliable and consistent reward status reporting across Annex Cloud and exported CSV files, enabling accurate tracking, reconciliation, and analytics for reward lifecycle states.