December 2025
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.
23rd December 2025 - 5th January 2026
Bug Fix (LB-5121) | Duplicate Records in Tier Report Export
Summary
Resolved an issue where the RAF success email was being triggered prematurely upon referral signup instead of after a qualifying purchase, and where referrer details were missing in the email content.
Overview
In certain scenarios, the RAF success email was sent to members immediately after a referred friend created an account, even though no qualifying purchase had occurred. While points were not awarded incorrectly, the early notification caused confusion. Additionally, the advocate’s name was missing from the email body.
This update ensures that the success email is triggered only after a valid referral purchase and that referrer details are correctly populated in the email template.
Key Highlights
- Blocked RAF success email from triggering on referral signup events.
- Ensured email is sent only after a qualifying referral purchase.
- Corrected email template to include referrer name in the message body.
Impact
Improves accuracy and clarity of RAF communications by aligning email notifications with actual referral completion criteria, ensuring a consistent and correct advocate experience.
Enhancement (INT20-12560) | Order Webhook Latency Optimization
Summary
Enhanced order webhook performance by refining database query execution to reduce unnecessary data retrieval and improve response latency.
Overview
The order webhook processing logic was updated to remove wildcard (*) column selection in database queries and replace it with explicitly required fields. This change minimizes data load, improves query efficiency, and supports faster webhook execution.
Additional validation was performed across create, update, and order webhook flows to ensure consistent behavior after the optimization.
Key Highlights
- Replaced wildcard column selection with explicit required columns in database queries.
- Reduced query execution overhead to improve webhook response time.
- Validated changes across multiple webhook scenarios, including order creation and updates.
Impact
Improves webhook processing efficiency and reduces latency during order-related events, resulting in faster and more reliable integrations without altering existing functionality.
Enhancement (INT20-125608) | Partial Returns Handling for Capping Campaigns
Summary
Enhanced the iframe configuration to include extended membership attributes and streamline the user interface for improved clarity and usability.
Overview
As part of the iframe improvements, support was added for extended attributes related to different membership levels. Additionally, the Activity tab was removed to simplify the iframe experience and align it with updated requirements.
Key Highlights
Added extended attributes to support Advantage and Advantage Pro memberships.
Removed the Activity tab from the iframe to simplify the interface.
Impact
Provides a cleaner iframe experience while enabling enhanced membership visibility through additional attributes, ensuring better alignment with updated business and UI requirements.
Bug Fix (LB-5088) | Partial Returns Handling for Capping Campaigns
Summary
Resolved issues observed during partial returns where campaign capping logic produced inconsistent results in specific configurations, particularly when proportional calculation was disabled.
Overview
During validation of partial return scenarios, inconsistencies were identified across APIs and reports for campaigns using capping logic under certain configurations. The behavior was reviewed and aligned to ensure accurate point calculations and data consistency for both discounted and non-discounted return flows.
Key Highlights
- Validated and corrected partial return behavior for capping campaigns.
- Ensured consistency across:
1. Order API (PATCH during returns)
2. Points API (GET)
3. Order Details API (POST)
4. Activity API (GET)
5. Order, Interaction, and Hold Points reports
- Verified scenarios with and without discounts.
Impact
Ensures accurate campaign calculations and reporting during partial return scenarios, preventing inconsistencies during active capping campaigns and maintaining data integrity across customer-facing and internal systems.
16th - 22nd December 2025
Bug Fix (LB-5112) | Duplicate Records in Tier Report Export
Summary
Fixed an issue where Tier Report Excel exports contained duplicate member records, which could lead to confusion during reporting and manual analysis.
Overview
- When exporting Tier Reports with large data volumes (exceeding 100,000 records), duplicate entries were observed across generated Excel files. This behavior was isolated to the export process and did not affect Tier APIs or dashboard calculations.
- The export batching and file-generation logic has been updated to ensure accurate and non-overlapping data output.
Key Highlights
- Identified duplication caused by multiple batching counters and repeated Excel writer initialization.
- Updated export logic to use a single batching control mechanism.
- Ensured the Excel writer is initialized once per batch.
- Cleared in-memory data immediately after writing to prevent record overlap.
- Confirmed no impact on Tier APIs or dashboard summary calculations.
Impact
Tier Report exports now generate clean, accurate Excel files without duplicate records, ensuring reliable reporting and confidence in exported tier data.
9th - 15th December 2025
Enhancement (RF-4326) | RAF API Access Token Handling & iFrame Behavior
Summary
Reviewed and clarified the behavior of the RAF Access Token flag, which currently disables the RAF iFrame when enabled. A future enhancement will decouple these behaviors to allow API token usage without impacting iFrame visibility.
Overview
- The client attempted to enable RAF Access Tokens for backend testing and discovered that activating this flag removed the RAF iFrame from the loyalty dashboard.
- This behavior is part of the existing logic: if the Access Token flag is enabled, RAF iFrame loading is disabled.
- The team confirmed this behavior and communicated the system design expectations.
- A change is planned to remove the dependency so that enabling API access will not interfere with the iFrame display.
Key Highlights
- Current system logic:
Access Token disabled → RAF iFrame loads normally.
Access Token enabled → RAF iFrame suppressed.
- Communication provided to the client explaining the system behavior.
- Enhancement planned to eliminate this restriction in future releases.
Impact
Ensures clarity for teams using RAF Access Token functionality, prevents unintended disruption of RAF UI components, and lays groundwork for improved configuration flexibility.
Enhancement (RF-4322) | Improvements to RAF Email Share & Congratulations Email Templates
Summary
Enhancements were made to ensure RAF email share and congratulations email templates reliably save and display customized HTML content within ADR. This improves template management and consistency for referral-related communications.
Overview
- Updated RAF template handling to correctly store HTML content without reliance on legacy template editors.
- Adjusted backend logic to persist template values in the correct configuration tables.
- Removed outdated editor components to prevent formatting issues when saving email content.
- End-to-end validation performed across regions after changes were deployed to test environments.
Key Highlights
- HTML content in RAF email share and congratulations templates now saves consistently.
- Updated storage flow for template data in social share and reward configuration tables.
- Ensures reliable customization for ADR email templates.
Impact
Provides accurate, stable, and customizable referral-related email templates, ensuring a consistent user communication experience across all markets.
Enhancement (INT20-12534 & LT-36610) | Updated SSO Logic to Support New ADR Domain
Summary
This enhancement updates the SSO authentication process to allow seamless login redirection to the new ADR domain using a RelayState parameter, while maintaining compatibility with existing login paths and Microsoft-based direct login flows.
Overview
- Introduced handling for a RelayState parameter in SSO requests.
- When RelayState is present, users are redirected to the new ADR domain.
- When RelayState is not provided, the system continues redirecting to the existing ADR domain.
- Ensured unified behavior across SSO entry points, including direct Microsoft login and standard ADR login flows.
- Completed end-to-end validation to ensure both new and existing flows remain functional.
Key Highlights
- Dynamic redirection logic added based on SSO payload parameters.
- Full compatibility maintained with all existing ADR authentication routes.
- Supports rollout of the new ADR experience without impacting current users.
Impact
Enables a smooth transition to the new ADR domain by supporting dual-domain redirection while preserving the stability of all existing authentication processes.
Enhancement (INT20-12470) | Hold Point Logic Migration from API to Database
Summary
This enhancement transitions hold point evaluation from the API logic to the database layer. The change provides a more stable and consistent mechanism for determining when points should be released or retained based on order activity.
Overview
- Migrated hold point processing rules from application code into database-level logic.
- Updated behavior ensures that point release calculations occur closer to the source of truth, increasing accuracy and reducing dependency on API-driven triggers.
- The update aligns with the broader system strategy to centralize transactional decision-making within the database.
- Additional validations were completed to confirm that post-shipment point release conditions align with defined program rules.
Key Highlights
- Hold point handling now fully managed by database logic.
- Improved reliability for scenarios involving order shipment and point release.
- Streamlined architecture reduces API overhead and minimizes discrepancies previously dependent on API timing.
Impact
Ensures more accurate and stable release of points from hold status, improving consistency across order-driven loyalty workflows and reducing operational variance.
Enhancement (LT-36634) | Duplicate Receipt ID Validation in Moderation Workflow
Summary
An enhancement has been implemented to prevent approving duplicate receipts in the ADR moderation popup. The system now checks for an existing receipt ID before allowing approval.
Overview
Moderators previously had no in-tool visibility into whether a receipt ID had already been processed. This enhancement introduces a real-time validation step in the moderation popup, ensuring that only unique receipt IDs can be approved.
Key Highlights
- Added duplicate-receipt validation during moderation approval.
- Prevents approval of receipt IDs already stored in the system.
- Strengthens data integrity and reduces manual correction workload.
Impact
Improves accuracy in receipt processing, prevents duplicate point awards, and ensures consistency in the moderation lifecycle.
Bug Fix (LT-36632) | Action Records Not Appearing in Action Table
Summary
Fixed an issue where newly added actions with IDs 100 and 106 were not being displayed in the action table, causing incomplete visibility of configured actions.
Overview
The system failed to store or surface certain action IDs after creation. This gap resulted in missing entries when validating configured actions. The underlying persistence and retrieval handling was updated to ensure these actions are correctly recorded and reflected in the action table.
Key Highlights
- Corrected the logic responsible for saving action IDs 100 and 106.
- Ensured both actions now appear as expected in the action table.
- Verified that action creation and display workflows function consistently across all relevant views.
Impact
Ensures accurate visibility of action configurations, preventing misalignment during campaign setup, reporting, or QA validation.
Enhancement (LT-36600) | SMS Submission Support for Twilio Sub-Accounts
Summary
Introduced full support for SMS sending through client-specific Twilio sub-accounts, allowing the users to use its dedicated Twilio credentials and phone numbers without relying on Annex Cloud’s primary Twilio account.
Overview
Previously, the SMS service supported only a single Twilio account that was the main Annex Cloud account which prevented clients with their own Twilio sub-accounts from sending SMS through their purchased numbers. This enhancement introduces dynamic credential management, enabling the system to authenticate and send SMS using a client's designated Twilio sub-account when applicable.
The update includes improvements in validation logic, SMS dispatch workflows, and data handling to ensure backward compatibility with the existing global SMS setup.
Key Highlights
- Added automated account switching between the main Twilio account and client-specific Twilio sub-accounts.
- Implemented secure storage and retrieval of sub-account credentials (SID, Auth Token, From Number).
- Updated validation flow to authenticate using the correct Twilio account based on client context.
- Enhanced SMS sending logic to prevent mismatches between account credentials and phone numbers.
- Ensured complete backward compatibility that implies no impact to existing SMS flows for other clients.
- Added clear logging to identify which Twilio account handled each message.
Impact
Enables clients with their own Twilio sub-accounts to send SMS reliably and compliantly through their dedicated numbers, while ensuring all existing SMS functionality continues unchanged for other programs.
December 2025
1st - 8th December 2025
Enhancement (INT20-12531) | Deployement of Updated SSO Functionality
Summary
Production deployment of updated Single Sign-On (SSO) logic, including support for dynamic SSO URLs and enhancements required for the client’s authentication workflow.
Overview
- The team implemented changes to support dynamic SSO URLs and ensure compatibility with the client’s latest authentication requirements.
- The deployment ensures seamless user authentication and accurate routing via SSO.
Key Highlights
- Added support for dynamic SSO URL generation.
- Completed development and validation of new SSO logic.
- Successfully deployed SSO updates to production.
- Ensures consistent and reliable authentication flow for all SSO-enabled interactions.
Impact
Improves the stability and flexibility of the SSO process, ensuring users are redirected correctly and authenticated without errors across environments.
Enhancement (IMP-7775) | Member Report Export Processing Issue
Summary
Resolved an issue where member report export had been stuck in processing for more than 24 hours. The export process was analyzed and corrected, and the report was successfully retrieved and shared.
Overview
- The member report generation did not complete, despite remaining in “processing” status for an extended period.
- The team reviewed the export job, identified the stalled state, and retrieved the completed dataset manually.
Key Highlights
- Investigated and resolved the report export process that was stuck in the system.
- Retrieved the required member report.
- Additional investigation initiated to identify recurring causes of stalled exports.
Impact
Ensures that member report export jobs complete reliably and prevents extended delays that may affect operations or reporting schedules.
Enhancement (INT20-12511) | Automatic VIP Tier Assignment Using generateSubscription Flag
Summary
A new enhancement was introduced to automatically enroll members into the VIP tier based on the generateSubscription parameter received from the store. The enhancement applies to both newly created and existing loyalty members, supporting seamless subscription and re-subscription to VIP membership.
Overview
- The VIP program allows members to subscribe or revoke membership at any time.
- When AC receives generateSubscription = True, the system should update the member’s tier to VIP.
- This logic must function consistently for:
- Newly created members
- Existing members who subscribe or re-subscribe
- The enhancement ensures the loyalty tier always reflects the current VIP subscription status as determined by the store.
Key Highlights
- Added logic to automatically assign VIP tier during user creation when subscription is enabled.
- Updated existing user flows so that generateSubscription = True triggers a tier update to VIP.
- Supports repeated subscription and revocation cycles without inconsistencies.
- Completed implementation and verified functionality for both new and existing member flows.
Impact
This enhancement ensures accurate real-time tier alignment between the store’s subscription state and AC’s loyalty system, providing a seamless and consistent VIP membership experience.
Bug Fix (LB-4958) | Points Not Awarded to Patched Orders
Summary
A correction was implemented to address a case where points shown as awarded in /bulkpatchorder API responses were not being credited to members. This impacted retroactive adjustments submitted to correct missed hours due to an external system issue.
Overview
- When patching an order via /bulkpatchorder, the API calculated the appropriate points and displayed them in the response.
- However, these points were not posted to the member’s balance and were not attached to the order record.
- All variations of patch updates (different transaction types, multiple sequential patches) consistently showed this mismatch.
- The issue occurred only for patched transactions and did not affect standard order creation.
Key Highlights
- Corrected the backend logic to ensure calculated points from a patched order are properly persisted.
- Validated across multiple scenarios (regular hours, reduced earn-rate cases, overtime, multi-patch workflows).
- Ensured accurate alignment between:
- API responses
- Member balances
- Order transaction records
Impact
This fix restores accurate loyalty accounting for retroactive adjustments and prevents inconsistencies between expected and actual point awards. The update ensures historical corrections function reliably and are reflected immediately in the loyalty system.
Bug Fix (LB-5081) | Action Limit Enforcement- Race-Condition Handling Fix
Summary:
Resolved an issue in the PMI Global program where points for Action ID 430 were awarded beyond the configured limit, allowing a customer to receive points 18 times instead of the intended 5. The problem occurred because rapid, simultaneous requests created a race condition that bypassed the action-limit validation.
Overview:
For example, Action ID 430 was configured with:
20 points per interaction
Max 100 points total (i.e., 5 interactions)
Unique customId = 1 per site
- All requests were received within the same second, preventing the existing limit logic from applying consistently.
- No configuration changes had been made to the action.
- The newly introduced transaction control (used to prevent negative balances) was not yet extended to credit-side capping scenarios, allowing the race condition to occur.
Key Highlights:
- Identified that the issue resulted from simultaneous API calls causing the action limit check to be skipped.
- Verified historical occurrences and confirmed that similar cases existed after October.
- Enhanced logic is now being implemented to extend transaction control to credit/capping scenarios, ensuring strict enforcement even under concurrent load.
- SQL analysis was performed to detect other impacted users after October 1.
Impact:
This fix ensures:
- Accurate and reliable enforcement of maximum action limits even under high-frequency request bursts.
- Consistent point awarding aligned with configured action rules.
- Improved system resilience against concurrency-related issues for all clients using action caps.
Bug Fix (LB-5107) |Action API Response Pagination Correction
Summary:
Resolved an issue where the User Action Status API returned incorrect paginated results, causing action records to appear duplicated on multiple pages while valid actions were missing entirely.
Overview:
During pagination of the Action API response, certain actions with identical ordering values appeared on more than one page, and some eligible actions were not returned at all. The underlying query relied on a non-unique sort field, which caused non-deterministic pagination. The logic has now been updated to ensure consistent ordering and correct page-wise distribution of action records.
Key Highlights:
- Updated pagination logic to enforce deterministic ordering for actions.
- Ensured all eligible actions with Action API Display = YES appear exactly once across pages.
- Eliminated duplicate entries that previously surfaced due to identical sort values.
- Validated behavior across all paginated pages to ensure accurate and predictable API responses.
Impact:
Ensures the User Action Status API returns accurate, complete, and consistently paginated results, preventing missing action records and duplicate listings.
Bug Fix (LT-36543) |Product & Category ID Trim Handling in Segmentation
Summary:
Implemented trimming logic for product_id, category_id, and applicable segment condition fields to ensure accurate matching and consistent behavior during segmentation processes.
Overview:
Whitespace inconsistencies in product and category identifiers caused mismatches during segment evaluation. Updated logic now trims these fields before processing, improving accuracy across segmentation workflows and related campaign use cases.
Key Highlights:
- Applied trimming to product_id and category_id during ingestion and evaluation.
- Updated segment condition handling to remove leading/trailing whitespace for reliable condition matching.
- Verified behavior across updated segment logic to ensure correct filtering and campaign targeting.
Impact:
Ensures precise ID matching, prevents missed segment qualifications due to formatting variances, and stabilizes downstream campaign execution.
Bug Fix (LT-36472) |Product & Category ID Trim Handling in Segmentation
Summary:
Corrected the behavior where campaigns were not being applied to orders submitted with a SHIP status in the issuance create API.
Overview:
When an order was created directly with the SHIP status, the campaign evaluation process did not trigger as expected. The campaign-application logic has been updated so that SHIP-status orders are processed consistently with other eligible order statuses.
Key Highlights:
- Updated the campaign evaluation sequence to correctly recognize SHIP-status orders.
- Ensured campaign benefits apply during issuance create when the order status is already SHIPPED.
Impact:
Ensures campaigns are accurately applied for orders passed directly with SHIP status during issuance creation, supporting consistent loyalty earning logic across order flows.
Bug Fix (LB-5078) |Cancel Affiliates Full Cancel Response Format Update
Summary:
Updated the Full Cancel Issuance API to ensure the expected response structure is returned during affiliate cancellation processing.
Overview:
In the full-cancel flow, ProductDetails was being returned as a single object, while the receiving system requires a list of objects. The response construction logic was updated to maintain consistent formatting across both full-cancel and partial-cancel scenarios.
Key Highlights:
- Standardized the Full Cancel Issuance API to always return ProductDetails as a list.
- Updated the response-handling logic to align with the expected structure.
- Validated behavior across full-cancel and partial-cancel use cases.
Impact:
Ensures smooth processing of affiliate cancellation requests and consistent interoperability with connected systems.
November 2025
Mid Week Releases, November 2025
Enhancement (LT-36215) | Update Automate Reward Scheduled Job Execution Logic (Spring 4.0)
Summary:
Enhanced the automate reward scheduled job execution logic to improve reliability, prevent duplicate executions, and ensure smoother handling of automated reward processes under the Spring 4.0 framework.
Overview:
The automate reward scheduled job logic was updated to address issues related to performance, concurrency, and consistency in automated reward processing.
Key improvements were made to the scheduled job structure, ensuring stable execution even during high-volume reward automation scenarios.
Key Highlights:
- Refactored the v3_reward_automate_scheduled_job_site_id_base logic for better performance.
- Strengthened handling of parallel executions to avoid duplicate reward calls.
- Improved reward processing flow to support large-scale user activity without delays.
- Performed thorough testing to validate behavior across all automate reward use cases.
Impact:
Provides a more dependable and efficient automated reward process, reducing error rates and ensuring accurate reward execution across all applicable sites.
Enhancement (LT-36176) | Send Solicitation Emails for Back-Dated Users
Summary:
Implemented functionality to send solicitation emails to users whose emails were previously not triggered, ensuring all back-dated eligible users receive their review solicitation messages.
Overview:
A large set of users had not received their solicitation emails due to a configuration issue.
The team confirmed a backlog of 7,824 pending emails and developed a script to automatically send solicitation emails for users whose review solicitation triggers were missed.
A dedicated script was created and validated to ensure emails are correctly generated and delivered for all back-dated orders.
Testing confirmed that the updated process functions as expected.
Key Highlights:
- Developed and deployed a script to send pending solicitation emails for missed historical entries.
- Validated email generation through test sends and data checks.
- Ensured proper handling of stored order and user records associated with solicitation eligibility.
- Stopped the existing scheduled process temporarily to avoid overlap during back-dated sending.
Impact:
Ensures all eligible users receive their review solicitation emails, closes the email gap caused by missed triggers, and restores consistent post-purchase communication.
Enhancement (LT-36365) | AWS Region Database Updates – Query Optimization & Functional Validation Nov 18th 2025
Summary:
Completed the update of database connection handling and query optimization logic to improve performance and ensure consistent behavior across review and solicitation features. All affected functionalities were fully validated after deployment.
Overview:
The update introduced optimized model logic and refined query execution to support faster and more reliable data retrieval. After moving the changes, all dependent features—such as review submission, fetching, solicitation email generation, and review interactions—were validated to confirm they function correctly under the updated structure.
Key Highlights:
- Implemented updated model logic to support improved connection handling.
- Applied optimized queries across review and solicitation operations.
- Verified full functionality for:
- Review submission
- Review retrieval
- Solicitation email generation
- Activity tracking
- Helpful/unhelpful interactions
- Review approval/disapproval
- Image upload (single and multiple)
- Confirmed expected behavior across all operations after deployment.
Impact:
Improves performance, stability, and consistency across review and solicitation workflows, ensuring accurate functionality for all dependent product areas.
Enhancement (RF-4313) | Referral Status Translation Update – Spanish Language Fix Nov 19th 2025
Summary:
Corrected translation and display issues for referral status information in the Spanish version of the RAF module, ensuring consistent formatting and accuracy across supported languages.
Overview:
Referral status values displayed inconsistently in the Spanish locale due to formatting and translation gaps. Updates were implemented to align Spanish referral status text and date formatting with the intended configuration. Validation was performed after deployment to confirm correct rendering for both English and Spanish instances.
Key Highlights:
- Updated referral status translations for the Spanish locale.
- Adjusted date formatting logic used within the referral status display.
- Applied changes to the relevant code handling localized referral status text.
- Verified expected behavior across both English and Spanish instances after deployment.
Impact:
Ensures accurate and properly formatted referral status information for Spanish-language users, improving clarity and consistency across multilingual RAF experiences.
November 24th, 2025
Bug Fix (LB-5064) | Incorrect Product ID Handling During Excel Uploads
Summary:
Resolved an issue where long product IDs uploaded through Excel were being altered due to automatic numerical formatting, resulting in incorrect values being stored and used in segment and campaign conditions.
Overview:
When uploading product IDs via Excel, any ID containing 12 or more digits was being auto-converted and rounded by Excel before the system processed the file. This caused product IDs to be stored in an incorrect format, impacting eligibility checks for segments and campaigns tied to those product IDs.
Example behavior before the fix:
- Excel auto-formatted long product IDs into rounded values.
- The system then stored these rounded IDs instead of the original ones.
- Campaigns relying on the correct product ID failed to trigger for users purchasing the valid product.
Manual entry of product IDs worked correctly, confirming the issue was specific to Excel-based uploads.
Key Highlights:
- Updated the product upload process to preserve long product IDs exactly as provided in Excel files.
- Ensures product IDs are never altered during segment upload processing, even when Excel applies scientific notation or rounding.
- Prevents incorrect product-to-campaign mapping and maintains full integrity for product-based eligibility workflows.
Impact:
Guarantees accurate product ID storage for all Excel-based uploads, ensuring campaigns dependent on product-level conditions behave consistently.
Bug Fix (LT-36241) | Campaign Bonus Points – Visibility Fix in campaign_benefit Table
Summary:
Resolved an issue where bonus point entries generated by campaign activity were not appearing in the campaign_benefit table, resulting in incomplete data visibility during validation.
Overview:
Bonus point entries associated with a specific campaign were not being recorded as expected. The underlying logic responsible for persisting campaign bonus details was updated and validated to ensure accurate entry creation.
Key Highlights:
- Corrected the process responsible for inserting campaign bonus point data.
- Conducted validation using both purchase and non-purchase actions.
- Bonus point entries now appear accurately in the relevant tables.
- Additional checks confirmed expected behavior for milestone scenarios.
- A separate validation was performed for issuance-based actions to ensure complete consistency.
Impact:
Ensures accurate tracking and availability of campaign bonus point records for downstream reporting and verification.
November 17th, 2025
Bug Fix (INT20-12378) | Incorrect Expiration Date displayed for Actions Without Expiry
Summary:
Resolved an issue where actions without a configured expiration date were incorrectly displaying an expiration value of 01-01-1970 in the Activity section of the reward dashboard.
Overview:
Actions that do not have an expiration date defined were being assigned a default UNIX epoch date, leading to misleading information in the activity view. This occurred when creating or updating activities via API for existing customers.
The update ensures the expiration field remains accurate and does not show placeholder dates for such actions.
Key Highlights:
- Updated the logic to correctly handle actions without an expiration date.
- Expiration now displays as “NA” when no expiry is configured.
- Prevents incorrect default system dates from appearing in the activity view.
Impact:
Ensures accurate and clear activity details for users, preventing confusion caused by incorrect expiration dates.
Bug Fix (LB-5040) | Negative Points After Partial Refund with Proportional Calculation
Summary:
Resolved an issue where members could go into a negative points balance after multiple partial refunds when proportional calculation and partial refund logic were enabled.
Overview:
A member performing sequential partial refunds on an order experienced an incorrect points deduction.
Although the “Do Not Allow Negative Points” setting was enabled, the system deducted the full expected points for the second partial refund instead of capping the deduction at the member’s available balance.
This caused the account to drop below zero.
The fix updates the refund deduction logic to ensure that when proportional calculation and partial refund handling are active, the deduction never exceeds the member’s current point balance.
Example Scenario:
- Member starts with 460 points.
- First partial refund deducts 320 points (correct).
- Member has 140 points remaining.
- Second partial refund attempts to deduct 360 points.
- The system now correctly deducts only the 140 points available, preventing any negative balance.
A secondary scenario involving an unexpected deduction value during a single-item refund was also addressed as part of the update.
Key Highlights:
- Updated partial-refund computation to enforce non-negative balances even when proportional calculation is applied.
- Ensures deductions reflect the member’s actual remaining points instead of the full eligible amount.
- Aligned point-refund results in all partial-refund combinations.
Impact:
Prevents negative point balances during multi-step refund workflows and ensures accurate, predictable point deductions in proportional refund scenarios.
November 10th, 2025
Enhancement (RF-4306) | Create API URL for Holiday Promo Code
Summary:
Developed a dedicated API endpoint for the 2025 Holiday Promo campaign to enable seamless promo code validation and redemption using the unique code HAPPYHOLIDAYS2025.
Overview:
A new API was implemented to manage promo code validation and redemption for the 2025 Holiday campaign.
The endpoint ensures proper handling of promo logic and accurate association with campaign actions.
Action Name: 2025 Holiday Promo
Action ID: 202
Promo Code: HAPPYHOLIDAYS2025
The solution provides automated validation for promo eligibility and supports efficient redemption management.
Key Highlights:
- Introduced a new API for holiday promo code validation and redemption.
- Enhanced backend logic for accurate promo handling and tracking.
- Ensured seamless integration with campaign setup and data flow.
Impact:
Improves campaign execution by automating promo validation and ensuring accurate reward distribution for eligible users.
Bug Fix (LT-36082) | Missing User Details and Custom Attributes in PostgreSQL
Summary:
Resolved an issue where key user details and custom attribute values were not being reflected in PostgreSQL for multiple sites.
Overview:
It was observed that user information—specifically phone number, zipcode, source, and birth_date—was showing as null in PostgreSQL, despite being available in the Member Report. Additionally, all custom attribute parameters were missing from the user table.
The issue occurred due to gaps in the synchronization logic between the user creation API and PostgreSQL data mapping, which caused selective column values to fail during sync.
The logic has been corrected to ensure that all user details and custom attributes are now accurately inserted and updated in PostgreSQL during user creation and modification processes.
Key Highlights:
- Fixed the PostgreSQL sync logic to include all user detail columns and custom attributes.
- Validated user creation and update workflows to ensure accurate field mapping.
Impact:
Ensures complete and accurate user data representation across databases, improving consistency between application data and PostgreSQL for downstream analytics and reporting.
Bug Fix (LT-35953) | Milestone Entry not Reflecting in PostgreSQL for Order Scenario
Summary:
Resolved an issue where milestone entries were not being recorded in PostgreSQL after an order was created and a campaign with milestones was applied.
Overview:
During testing, it was identified that milestone-related data failed to sync to PostgreSQL even though the campaign was successfully applied to the order. The missing milestone entry caused inconsistencies between the campaign tracking data and the database records.
The issue occurred due to a missing mapping in the milestone data synchronization logic within the campaign benefit process. This prevented milestone records from being inserted into the corresponding PostgreSQL tables.
The sync logic was updated to ensure milestone entries are now correctly captured and reflected in PostgreSQL whenever an order triggers a milestone campaign.
Key Highlights:
- Fixed the campaign benefit logic to correctly insert milestone entries into PostgreSQL.
- Verified data consistency between campaign benefit tables and milestone records.
Impact:
Ensures all milestone data is accurately stored and tracked in PostgreSQL, improving data integrity for campaign reporting and milestone-based reward calculations.
Bug Fix (LT-36021) | PostgreSQL Sync Data Type Handling in PHP
Summary:
Standardized PostgreSQL data synchronization logic to correctly handle data types across all API payloads, replacing empty strings with null values where applicable.
Overview:
The issue was identified in multiple sync APIs where string, integer, and decimal fields were inconsistently handled — particularly when empty strings ("") were passed instead of null or type-appropriate values. This led to data mismatches and type conflicts in PostgreSQL.
To address this, data type enforcement and validation were implemented across all PHP sync modules. Each payload now adheres to proper typecasting rules to ensure database consistency and data integrity.
Key Highlights:
- Implemented a consistent rule to send null instead of empty strings for all string-type fields.
- Ensured numeric and decimal fields are correctly parsed and stored as integers or decimals.
- Standardized payload handling across key APIs:
- /api/sync/translations
- /api/sync/rewards
- /api/sync/campaign-benefits
- /api/sync/group-invitations
- /api/sync/group-members
- /api/sync/actions
- /api/sync/segments
- Added validation to automatically detect and convert incorrect data types before sync execution.
Impact:
Prevents data type mismatches and errors in PostgreSQL sync processes, ensuring accurate and reliable data migration and integration across systems.
Bug Fix (LT-36004) | Multiple Campaign Not Applied When “ Multiple Campaign Benefit" flag is Enabled
Summary:
Resolved an issue where multiple campaigns were not being applied when the Multiple Campaign Benefit flag was enabled and store-specific configurations were used in the issuance purchase process.
Overview:
When the Multiple Campaign Benefit flag was turned ON, campaigns that had store-based applicability were not being triggered correctly. The root cause was traced to a validation gap in the store ID filtering logic, which caused applicable campaigns to be skipped when multiple store IDs were passed.
The logic was refined to ensure all eligible campaigns are correctly identified and applied, even when store-level filters are active.
Key Highlights:
- Fixed store ID filtering logic to allow multiple campaigns to be applied simultaneously.
- Validated issuance purchase behavior across multiple campaign configurations.
- Updated logic ensures accurate campaign evaluation when multiple eligibility flags are active.
- Additional improvements included handling store ID exclusion cases and ensuring data sync accuracy in progress tracking.
Impact:
Ensures consistent application of multiple campaigns for eligible purchases, improving reward accuracy and campaign reliability.
Enhancement (IMP-7605) | iFrame Migration from Tiers v1 to Tiers v2
Summary:
Prepared for the migration of the loyalty program iFrame from Tiers v1 to Tiers v2, ensuring compatibility with updated tier configuration logic ahead of the planned rollout in 2026.
Overview:
The update focused on aligning the existing iFrame and backend systems with Tiers v2 capabilities, as the new tier configuration will operate on a Calendar Year–based model. All supported parameters under Tiers v2 were implemented, while unsupported fields from Tiers v1 were deprecated to maintain consistency and improve data handling.
The migration also included ensuring backend synchronization with ADR data sources and integration systems, such as reporting modules and third-party connectors.
Supported Parameters in Tiers v2:
- Current Tier
- Spend Amount to Next Tier
- Next Tier
- Total Spend Currency
- Tier Version (TierV2)
- Tier Expiration Date
Not Supported in Tiers v2:
- Points to Next Tier
- Points Earned in Tier
- Spend Amount in Tier
Key Highlights:
- Updated the iFrame to fully support TierV2 data structures.
- Removed deprecated parameters no longer applicable in TierV2.
- Ensured smooth data sourcing for reporting and third-party integration systems.
Impact:
Facilitates a seamless transition to Tiers v2 with accurate iFrame data display, consistent reporting, and enhanced performance reliability across systems.
November 3rd, 2025
Bug Fix (INT20-12440) | Points to Next Tier Correct Values in ESP
Summary:
This release addresses the correction of the “Points to Next Tier” field values displayed in the ESP (Engagement Service Platform). The fix ensures that tier progression data is calculated and displayed accurately across all relevant views.
Overview:
Verified and validated the corrected logic for “Points to Next Tier” calculations.
Impact:
- Ensures accurate display of “Points to Next Tier” values for all members.
- Improves reliability of tier progress tracking and user experience in ESP.
- Prevents discrepancies between calculated and displayed values in loyalty data.
Bug Fix (LB-4891) | Campaign ID Not Associated with Test Orders
Summary:
Resolved an issue where test orders received double loyalty points due to missing campaign associations in the Order tables.
Overview:
The issue occurred when the proportional flag (enable_proportional_calculation) was enabled and no campaign was applied, causing double points to be released in partial shipment cases.
The code logic was corrected to ensure that proportional calculations are only triggered when a valid campaign is associated.
Key Highlights:
- Prevents incorrect double point allocations in future transactions.
- Added conditional checks to handle missing campaign IDs properly.
Impact:
Ensures accurate loyalty point calculations for all transactions, preventing over-crediting in partial shipment cases.
Bug Fix (LB-4906) | Campaign Limit Behaviour Based on Proportional Calculation Flag
Summary:
Resolved inconsistent campaign behavior when the campaign limit was reached and the proportional calculation flag was toggled between enabled and disabled states.
Overview:
When the enable_proportional_calculations flag was enabled, subsequent campaigns did not apply to products that reached the campaign limit. When the flag was disabled, new campaigns continued to apply to those same products, leading to inconsistent behavior.
This fix ensures campaign logic remains consistent regardless of the flag’s status once the campaign limit is reached.
Key Highlights:
- Fixed campaign application logic to function identically whether the proportional flag is enabled or disabled.
- Prevents incorrect campaign application in cases where product-level campaign limits have been reached.
Impact:
Ensures uniform campaign application behavior and accurate reward calculations, improving reliability across configurations.
Bug Fix (LB-4980) | Duplicate Reward Redemptions Leading to Negative Points
Summary:
Resolved an issue where duplicate reward redemption calls caused members to receive multiple rewards and go into negative point balances.
Overview:
Multiple instances were identified where the rewards scheduled job triggered duplicate redemption calls, resulting in extra reward issuance. The issue was traced to race conditions under high user activity, where concurrent API executions led to duplicate deductions. Additional validation was implemented in the API logic to prevent duplicate calls and ensure point balance integrity.
Key Highlights:
- Added backend validation to prevent duplicate reward deductions under concurrent execution.
- Ensures no member can have a negative point balance.
Impact:
Prevents duplicate reward issuance, maintains accurate member point balances, and ensures system reliability under high transaction loads.
Enhancement (LT-35101) | ADR Product Import Optimization
Summary:
Optimized the ADR product import process to improve bulk upload efficiency, validation accuracy, and data synchronization during product imports.
Overview:
Developed and optimized the ADRReceiptProductBulk import process for smoother and faster handling of product data. Created a dedicated scheduled job to automate the ADR product bulk upload process, enhancing operational efficiency. Added CSV validation and duplication checks to ensure clean and accurate data imports. Implemented logic for updating existing products and removing outdated association data before inserting new entries.Added functionality to upload CSV files to cloud storage and store data directly in the database for persistent tracking. Introduced field-level validation within the controller file to ensure data integrity.
Key Highlights:
- Optimized import performance for high-volume ADR product uploads.
- Implemented validation, duplication checks, and association data updates for reliable import behavior.
- Automated the scheduled job-based upload process for consistent synchronization between CSV uploads and product data.
Impact:
Significantly improves reliability, accuracy, and performance of ADR product imports, reducing manual effort and ensuring consistent product data management.
Enhancement (LT-35299) | Award Points from Another Campaign when Limit Reached
Summary:
Enhanced campaign logic to ensure that when a member reaches the maximum points limit for one campaign, points from another eligible campaign are awarded automatically.
Overview:
Previously, when a product-based campaign with a higher ratio (e.g., 3X) reached its maximum limit, subsequent eligible purchases did not receive rewards from other applicable campaigns.
This update ensures that if the maximum limit is reached for one campaign, the next eligible campaign (e.g., 2X, non-product-based, and with no limit) is applied automatically.
Example Scenario:
Campaign 1: 3X points, 50,000-point limit, product-based
Campaign 2: 2X points, no limit, non-product-based
Once the member reaches 50,000 points from Campaign 1, new eligible purchases will now correctly receive 2X points under Campaign 2.
Key Highlights:
- Implemented fallback campaign logic to ensure continued point accrual after primary campaign limit is reached.
- Prevents loss of rewards in multi-campaign scenarios.
Impact:
Ensures seamless reward continuation across campaigns, enhances fairness in point distribution, and improves member experience in multi-campaign configurations.
Enhancement (RF-4297) | RAF API: Remove LT API V1 & V2 Calls from Create User, Create Bitly and Send Email APIs
Summary:
Optimized RAF API by removing legacy LT API V1 and V2 calls from Create User, Create Bitly, and Send Email functionalities to streamline API operations and reduce dependency on deprecated services.
Overview:
Previously, the RAF (Refer a Friend) module relied on outdated LT API V1 and V2 calls within these APIs, adding unnecessary latency and maintenance overhead.
This update removes those dependencies, ensuring the RAF module now uses only the latest internal API framework, improving performance and maintainability.
Key Highlights:
- Removed legacy LT API V1 and V2 dependencies from key RAF API components.
- Improved API response time and reduced integration complexity.
Impact:
Enhances RAF API stability and performance, eliminates reliance on deprecated APIs, and ensures smoother integration with current systems.
Enhancement (RF- 4304) | Email Parameter Handling for Special Characters
Summary:
Enhanced email processing logic to correctly handle special characters within email parameters, ensuring data integrity and compatibility across integrated systems.
Overview:
Previously, emails containing special characters (such as “+”, “_”, “%”, or “-”) occasionally failed during validation or caused encoding issues.
This enhancement updates parameter parsing and encoding mechanisms to ensure all valid email formats are properly handled during API requests and communications.
Key Highlights:
- Improved email validation and encoding logic.
- Ensured consistent email parameter handling across API layers.
- Prevented failures during data transmission with special-character emails.
Impact:
Ensures reliable handling of all valid email formats, improves user data accuracy, and strengthens integration consistency across systems.
Bug Fix (LB-5042) | Badge Group Details Removed After Badge Update
Summary:
Resolved an issue where badge group details were automatically removed after updating a badge and could not be re-added thereafter.
Overview:
Previously, when a badge with associated badge group details was updated, the system incorrectly removed the existing badge group information. Attempts to reassign badge groups post-update failed due to missing data synchronization between the application and PostgreSQL database. The issue affected both Get Badges List and Get User Badge APIs.
The fix ensures that badge group details remain intact during updates unless explicitly removed by the user.
Key Highlights:
- Preserves existing badge group associations during badge updates.
- Restores functionality to reassign badge groups successfully after updates.
- Resolved PostgreSQL data sync issue for consistent data reflection.
Impact:
Ensures data integrity and reliability of badge group associations, improving badge management consistency and API accuracy.
October 2025
Mid Week Releases, October 2025
Bug Fix (LT-36092) | Order Ship Date Not Syncing to PostgreSQL
Summary:
Resolved an issue where the order ship date from the issuance API (PUT method) was not syncing correctly into PostgreSQL.
Overview:
The system was failing to record the ship date for orders during issuance updates.
A debugging review identified the root cause within the data-mapping logic responsible for syncing shipment values.
The fix updates the processing logic to correctly capture and store the ship date whenever issuance details are updated.
Key Highlights:
- Identified incorrect handling of the ship date during issuance synchronization.
- Corrected the mapping logic to ensure the ship date is consistently stored in PostgreSQL.
Impact:
Ensures that all order shipment data is fully synced, improving data accuracy for reporting, downstream systems, and audit tracking.
Enhancement (LT-36029) | New Endpoint Added for PHP User Activity API
Summary:
Introduced a new endpoint to extend the PHP User Activity API, enabling improved handling and retrieval of user activity data.
Overview:
A new API endpoint was created to support additional activity-related operations.
The enhancement expands backend capability to process user activity data more efficiently and supports upcoming functionality that relies on structured activity logs.
Key Highlights:
- Developed a new PHP endpoint dedicated to user activity operations.
- Integrated the endpoint into the existing activity service architecture.
Impact:
Provides improved API flexibility and supports future expansions to user activity tracking, ensuring better data availability for analytics and reporting.
Enhancement (IMP-7678) | Update Shipping Address Logic for Order Capture
Summary:
Updated the order capture process to apply the newly approved shipping address logic for all incoming transactions.
Overview:
The client approved the transition to using shipping address–based logic for processing orders.
This update modifies the order handling workflow to correctly reference shipping address details when identifying and validating orders.
The change ensures consistent behavior across all relevant order flows and aligns the logic with the client’s requested configuration.
Key Highlights:
- Implemented updated order capture logic utilizing shipping address attributes.
- Replaced previous address dependency to ensure accurate order identification.
Impact:
Ensures orders are processed using the correct address source, improving accuracy and reducing discrepancies in downstream activity and reporting.
Bug Fix (LT-36101) | Point Calculation Discrepancy Between API and Reports
Summary:
Resolved a mismatch where points shown in the API response differed from the points reflected in reporting for certain order scenarios using tier-based multipliers.
Overview:
During validation, point totals returned by the API (e.g., 73 points) did not match the points on hold displayed in reports (e.g., 58 points). The discrepancy occurred in scenarios where tier-based multipliers were applied for subscription orders.
The update ensures that:
- Transaction-type multipliers (such as 1.25×, 1.5×, and 2×) are applied consistently across all calculation layers.
- Hold-point values and API response values are aligned for all supported scenarios.
- Order-level and order-detail calculations match the final point totals displayed across all reporting views.
Key Highlights:
- Updated the calculation flow to ensure consistent point values across API responses and reporting.
- Standardized multiplier application for subscription and loyalty scenarios.
- Enhanced consistency in hold-point and on-award calculations.
Impact:
Provides members with consistent point totals across APIs, reports, and subscription views, improving accuracy and transparency for all point-based transactions.
Bug Fix (LT-35927) | Arabic Text Display Issue in Translations
Summary:
Resolved an issue where Arabic text pasted into the Translations tab appeared reversed, causing incorrect rendering for right-to-left (RTL) languages.
Overview:
Users reported that when Arabic content was added to translation fields, the characters were being reversed in both the configuration interface and API output. This prevented proper setup of RTL translations.
Key Highlights:
- Implemented right-to-left (RTL) rendering support to maintain proper text direction.
- Fixed the issue causing Arabic characters to appear in reverse order.
- Ensured accurate display of RTL content in both configuration screens and API responses.
Impact:
Ensures accurate and consistent handling of RTL languages, improving translation accuracy and preventing content formatting issues.
Bug Fix (LT-35798) | Campaign Bonus Not Syncing to Postgres
Summary:
Addressed an issue where campaign bonus data was not syncing to Postgres, resulting in incomplete or missing campaign benefit records.
Overview:
Campaign bonus entries were not being reflected in Postgres, causing inconsistencies between the primary database and reporting layers. This affected verification of campaign benefits, milestone tracking, and overall data accuracy.
Key Highlights:
- Corrected the logic responsible for syncing campaign bonus data.
- Ensured campaign bonus and milestone benefit information is now consistently stored.
- Validated updated sync behavior for both purchase and non-purchase actions.
Impact:
Ensures accurate campaign bonus data is available in Postgres, improving reporting reliability and maintaining consistent reward records.
October 13th, 2025
Bug Fix (LT-35757) | RNR AJAX Image Upload Bucket Update for AWS AP Region
Summary:
Updated the S3 bucket configuration for RNR AJAX image uploads to use a new region-specific bucket in the AWS AP region.
Overview:
- Implemented region-based logic to ensure the application uses the correct S3 bucket according to its AWS region.
- Created new buckets for US, EU, and AP regions with identical permissions and ACL settings.
- Replaced the old review-rating-bucket with the respective region-specific buckets in the code.
Key Highlights:
- Region-based condition added to dynamically select the correct bucket.
- New bucket names configured and tested for functionality.
Impact:
- Improves image upload reliability in the AWS AP region.
- Prevents permission conflicts and reduces latency.
- Aligns storage and application server regions for better performance.
Enhancement (LT-35727) | Order API Point Balance Summary Cases
Summary:
Developed and validated multiple Order and Points API balance summary scenarios to ensure accurate and consistent balance updates during concurrent and normal operations.
Overview:
- Implemented handling for balance synchronization across various order actions including Create, Ship, Cancel, and Return.
- Tested interactions between Order and Points API for both credit and debit scenarios to prevent discrepancies.
- Enabled configuration flags enable_points_balance_summary and enable_points_balance_summary_data_push for validation.
- Enhanced the system to support concurrent API call handling for improved data integrity.
Key Highlights:
- Resolved discrepancies in available and current point balances across multiple test cases.
- Improved transaction consistency during parallel operations (e.g., Credit + Ship, Credit + Cancel).
Impact:
- Ensures reliable point balance calculations across all order scenarios.
- Reduces inconsistencies during concurrent API operations.
- Enhances overall stability of the Order and Points APIs.
Enhancement (LT-35701) | Point Expiration Calculation with Allow Negative Balance Flag
Summary:
Enhanced the point expiration calculation logic to support scenarios where the Allow Negative Point Balance flag is enabled, ensuring accurate point settlement for both standard and negative balance cases.
Overview:
- Updated expiration logic in Databricks to align with negative balance allowance rules.
- Modified settlement process to handle redemption even when earned points are insufficient.
- Standard logic continues to validate earned and redeemed activity order (earned before redeemed).
- Negative logic introduced to bypass create-date validation, allowing redemption before earning when the flag is enabled.
Key Highlights:
- Implemented dual logic support: Standard and Allow Negative Balance.
- Optimized data sorting by create and expire dates for consistent settlement order.
Impact:
- Enables seamless redemption flow even when the account temporarily holds negative points.
- Improves accuracy in point expiration tracking and settlement logic.
- Increases system flexibility for clients utilizing negative balance configurations.
Bug Fix (RF-4291) | Interaction Report Date Filter Issue
Summary:
Resolved an issue in the Interaction Report where the selected date range automatically changed when the user clicked the search button multiple times.
Overview:
- Root cause identified: datepicker form controls were being patched with formatted strings, leading to incorrect re-parsing of day and month values.
- Updated implementation to maintain datepicker values as Date objects instead of formatted strings.
- Removed string patching during submission and ensured date-to-string conversion occurs only once before the API call.
Key Highlights:
- Fixed day/month flipping issue in the date range filter.
- Ensured consistent and stable FromDate and ToDate values across multiple searches.
Impact:
- Prevents incorrect date changes when re-triggering searches.
- Enhances reliability and accuracy of Interaction Report filtering.
- Improves overall user experience in report interactions.
Enhancement (LB-4954) | pointsEarnerInTier Parameter Showing 0 in Get Tier Information API
Summary:
Resolved an issue where the pointsEarnedInTier parameter was incorrectly returning 0 for tiers configured as Based on Available Points or Based on Earned Points. This led to inaccurate reporting of user progress within tiers.
Overview:
- The API did not properly handle tier types, resulting in earned points not being calculated.
- Root cause traced to missing tier_type logic in the Get User Tier API.
Key Highlights:
- Implemented missing tier_type logic in the API.
- Validated that earned points now display correctly for all applicable tier types.
Impact:
- Ensures accurate calculation and display of earned points within tiers.
- Improves reliability of tier progression tracking.
- Enhances overall accuracy in loyalty program reporting.
Bug Fix (LB-4946) | Duplicate Action IDs causing Incorrect Reasons in Bulk Upload
Summary:
Addressed an issue in which multiple actions were assigned duplicate Action IDs, leading to incorrect reason mapping in user transactions during bulk uploads.
Overview:
- Duplicate Action IDs exceeding the system threshold (32767) were identified, resulting in incorrect associations between “100 Point” and “250 Point” bonus actions.
- Impacted actions included “AZ - 100 Point Bonus - Expires 9/29,” “AZ - 250 Point Bonus - Expires 9/29,” and “AZ - 250 Bonus Points - Expire 9/29.”
- Corrective measures involved assigning new unique Action IDs (32764 and 32765) and rectifying affected data without code deployment.
Key Highlights:
- Implemented unique Action IDs to eliminate duplication.
- Corrected 1386 affected transactions for 250-point bonus actions.
- Communicated preventive guidance to client to maintain ID limits below threshold.
Impact:
- Ensures accurate action reason mapping in activity logs.
- Enhances reliability of bulk upload processes.
- Prevents future data conflicts due to ID duplication.
October 6th, 2025
Enhancement (RF-4281) | RAF PPC: EMail Share Block for Mandrill Services
Summary:
Introduced product changes in the RAF PPC flow to block Mandrill service calls during email sharing.
Key Highlights:
- Implemented logic to prevent email share calls from triggering Mandrill services.
- Ensures improved control and reduces unnecessary external service calls.
Impact:
- Optimizes RAF PPC functionality by removing dependency on Mandrill for email sharing.
- Enhances stability and performance of email-based referral flows.
Enhancement (RF-4280) | RAF PPC: Add Flag in Products Section to Disable Mandrill Emails
Summary:
Introduced a configurable flag in the RAF Products section to control Mandrill email sharing for PPC flows.
Key Highlights:
- Added a new field in the RAF Products section to enable/disable Mandrill emails.
- Updated UI (Angular) to display the flag under additional settings.
- Backend changes implemented to respect the new configuration.
Impact:
- Provides flexibility to manage Mandrill email sharing at the product level.
- Enhances configurability and reduces reliance on external services.
Bug Fix (LB-4970) | RAF NOT Triggering with Multiple Referrals
Summary:
Resolved an issue where referral emails were not being sent correctly when multiple email addresses were entered in the share text box. Previously, only the first email address received the invite, while subsequent addresses were ignored. Additionally, the system displayed a persistent loading screen after submission.
Overview:
Identified that the multi-email referral process was not handled properly due to a configuration flag conflict. Only the first email in the list was processed, leaving the user stuck on the loading screen. Root cause traced to mismanagement of the Enable Social Loyalty Earn Point for RAF-v2 flag.
Key Highlights:
- Updated the logic to correctly process multiple email addresses in a single referral submission.
- Fixed the issue causing the “loading” screen to persist after sending.
Impact:
- Ensures that referral invitations are sent to all provided email addresses.
- Improves user experience by removing unnecessary loading delays.
- Enhances the reliability of referral campaigns.
Enhancement (INT- 12382) | Partial Return Functionality in Shopify Remix App
Summary:
Enabled partial return support in the Shopify Remix App so that only points from returned products are deducted.
Overview:
- Added support for single/multiple product returns.
- Fixed duplicate webhook calls and premature order cancellations.
- Resolved Prisma migration and cache issues causing 502 errors.
- Improved CSV migration with custom date range and download path.
Impact:
- Ensures accurate points deduction on returns.
- Enhances stability and performance of the Remix App.
- Improves reliability of return workflows.
Bug Fix (INT- 12328) | Bulk Upload Data Not Pushed to ESP
Summary:
Resolved an issue where user data was not being pushed to the ESP account every 5 minutes due to tier parameter field mapping errors.
Overview:
- Incorrect mappings of ac_points_req_next_tier and ac_spend_to_next_tier blocked the data push.
- Tier type script updated to correctly fetch data and handle new user/order transactions.
- Queries for enable_proportional_calculation added and logical conditions implemented in model script.
Key Highlights:
- Fixed tier parameter logic to ensure all records are pushed to ESP.
- Confirmed tier setup functionality is correctly reflected in ESP.
Impact:
- Ensures timely and accurate data push to ESP for all users.
- Resolves failures in 5-minute frequency uploads.
- Improves reliability of tier-based calculations in bulk uploads.
September 2025
Mid Week Releases, September 2025
Bug Fix (LB-4987) | Broken Text Display in Review Section on PDP
Summary:
Resolved an issue where the Review section on the product page displayed broken or incomplete text when no reviews were available.
Overview:
The Review section showed incorrect text formatting when no reviews were present due to UI handling inconsistencies between different page access scenarios. Missing elements caused the section to render improperly.
Key Highlights:
- Updated the UI logic to correctly manage scenarios where no reviews exist.
- Ensured the display renders cleanly without placeholder or broken text.
- Standardized handling for both solicitation-redirected users and regular users.
Impact:
Provides a clean and consistent Review section experience, preventing confusing or broken text from appearing when no reviews are present.
Enhancement (LT-36029) | New Endpoint Added for PHP User Activity API
Summary:
Introduced a new endpoint to extend the PHP User Activity API, enabling improved handling and retrieval of user activity data.
Overview:
A new API endpoint was created to support additional activity-related operations.
The enhancement expands backend capability to process user activity data more efficiently and supports upcoming functionality that relies on structured activity logs.
Key Highlights:
- Developed a new PHP endpoint dedicated to user activity operations.
- Integrated the endpoint into the existing activity service architecture.
Impact:
Provides improved API flexibility and supports future expansions to user activity tracking, ensuring better data availability for analytics and reporting.
Enhancement (IMP-7678) | Update Shipping Address Logic for Order Capture
Summary:
Updated the order capture process to apply the newly approved shipping address logic for all incoming transactions.
Overview:
The client approved the transition to using shipping address–based logic for processing orders.
This update modifies the order handling workflow to correctly reference shipping address details when identifying and validating orders.
The change ensures consistent behavior across all relevant order flows and aligns the logic with the client’s requested configuration.
Key Highlights:
- Implemented updated order capture logic utilizing shipping address attributes.
- Replaced previous address dependency to ensure accurate order identification.
Impact:
Ensures orders are processed using the correct address source, improving accuracy and reducing discrepancies in downstream activity and reporting.
Bug Fix (LT-36101) | Point Calculation Discrepancy Between API and Reports
Summary:
Resolved a mismatch where points shown in the API response differed from the points reflected in reporting for certain order scenarios using tier-based multipliers.
Overview:
During validation, point totals returned by the API (e.g., 73 points) did not match the points on hold displayed in reports (e.g., 58 points). The discrepancy occurred in scenarios where tier-based multipliers were applied for subscription orders.
The update ensures that:
- Transaction-type multipliers (such as 1.25×, 1.5×, and 2×) are applied consistently across all calculation layers.
- Hold-point values and API response values are aligned for all supported scenarios.
- Order-level and order-detail calculations match the final point totals displayed across all reporting views.
Key Highlights:
- Updated the calculation flow to ensure consistent point values across API responses and reporting.
- Standardized multiplier application for subscription and loyalty scenarios.
- Enhanced consistency in hold-point and on-award calculations.
Impact:
Provides members with consistent point totals across APIs, reports, and subscription views, improving accuracy and transparency for all point-based transactions.
Bug Fix (LT-35927) | Arabic Text Display Issue in Translations
Summary:
Resolved an issue where Arabic text pasted into the Translations tab appeared reversed, causing incorrect rendering for right-to-left (RTL) languages.
Overview:
Users reported that when Arabic content was added to translation fields, the characters were being reversed in both the configuration interface and API output. This prevented proper setup of RTL translations.
Key Highlights:
- Implemented right-to-left (RTL) rendering support to maintain proper text direction.
- Fixed the issue causing Arabic characters to appear in reverse order.
- Ensured accurate display of RTL content in both configuration screens and API responses.
Impact:
Ensures accurate and consistent handling of RTL languages, improving translation accuracy and preventing content formatting issues.
Bug Fix (LT-35798) | Campaign Bonus Not Syncing to Postgres
Summary:
Addressed an issue where campaign bonus data was not syncing to Postgres, resulting in incomplete or missing campaign benefit records.
Overview:
Campaign bonus entries were not being reflected in Postgres, causing inconsistencies between the primary database and reporting layers. This affected verification of campaign benefits, milestone tracking, and overall data accuracy.
Key Highlights:
- Corrected the logic responsible for syncing campaign bonus data.
- Ensured campaign bonus and milestone benefit information is now consistently stored.
- Validated updated sync behavior for both purchase and non-purchase actions.
Impact:
Ensures accurate campaign bonus data is available in Postgres, improving reporting reliability and maintaining consistent reward records.
September 29th, 2025
Enhancement (LT-35341) | Member Reward Status Compatibility with Journey
Summary:
Introduced compatibility for Member Reward Status with the Journey framework to ensure seamless integration between reward assignment and journey-based campaign logic.
Overview:
The enhancement focused on extending Member Reward Status functionality to work within the Journey flow. Updates were made to both reward eligibility and reward assignment endpoints, ensuring that reward actions triggered by journeys correctly reflect a member’s reward status. Testing and validation were carried out across Dev environments to confirm smooth alignment between reward services and Journey processes.
Key Highlights:
- Updated reward eligibility and assignment APIs to support Journey-driven campaigns.
- Completed impact analysis and aligned development with inputs from the Journey team.
- Coordinated with cross-functional teams to ensure consistent behavior across loyalty and Journey services.
Impact:
- Enables accurate tracking of Member Reward Status within Journey-driven flows.
- Improves consistency between rewards management and customer journey orchestration.
Enhancement (LT-35651) | Optimized RNR Image Upload Function
Summary:
Optimized the RNR image upload function to improve performance, streamline file handling, and enhance error management during image uploads.
Overview:
The uploadToAmazon function used for RNR image uploads was refactored to eliminate unnecessary code and improve reliability. The batch function was removed to simplify execution, file name generation logic was optimized, and error handling was strengthened. Testing was completed across multiple environments, including Develop, Stage A, and Test Bed, ensuring stable functionality.
Key Highlights:
- Removed unused batch function from the image upload code.
- Improved file name creation logic for consistency and efficiency.
- Enhanced error handling to provide better reliability during uploads.
Impact:
- Provides faster and more reliable RNR image uploads.
- Reduces potential upload failures with improved error handling.
- Ensures smoother performance across all supported environments.
Enhancement (RF-4282) | Prepopulated Company Details for Search Functionality
Summary:
Implemented prepopulated company details in production to enhance the search functionality and improve user experience.
Overview:
This update introduces prepopulated company information within the search feature, allowing users to quickly access relevant company details without manual entry. The enhancement was tested and prepared for production deployment as part of the BFX_4 release.
Key Highlights:
- Added prepopulated company details to improve search accuracy and usability.
- Reduced manual input required for search queries.
- Prepared and validated changes for production rollout.
Impact:
- Provides faster, more intuitive search functionality.
- Improves overall user experience by surfacing relevant company details automatically.
- Ensures consistent search performance in production.
Enhancement – Support for Multi-Template RAF API Scheduled Job
Ticket: RF-4288
Summary:
Enhanced the Refer a Friend (RAF) API-based scheduled job to support multi-template configurations.
Overview:
Previously, the Refer a Friend program faced limitations when using multiple templates, as the scheduled job only supported single-template setups. This update extends scheduled job functionality to handle multi-template scenarios, ensuring consistent program behavior across both iFrame and API-based implementations.
Key Highlights:
Added multi-template support for RAF API-based scheduled job.
Resolved limitations identified during internal testing.
Ensured benefits are awarded correctly to both sharer and friend in multi-template setups.
Impact:
Provides seamless RAF program functionality for multi-template accounts.
Aligns scheduled job processing with iFrame behavior for consistency.
Improves reliability of benefit allocation and email notifications.
September 22nd, 2025
Bug Fix (LB-4938) | Receipt Moderation Approval Failure
Summary:
Fixed an issue where receipt approvals were failing and causing the system to freeze, preventing moderators from approving receipts.
Overview:
When attempting to approve receipts, the system displayed a loading icon without completing the approval process. The issue was identified as template-specific, with some templates functioning correctly while others consistently failed. Additional issues included receipts remaining in “Pending” status after rejection and duplicate entries appearing in the product selection dropdown.
Key Highlights:
- Resolved the template-specific issue causing the approval process to freeze.
- Corrected handling of receipt statuses to ensure rejected receipts are no longer shown as “Pending.”
- Fixed duplicate product entries in the product list dropdown.
Impact:
- Ensures receipts can be approved consistently across all templates.
- Improves moderator efficiency by eliminating freezes and inaccurate status handling.
- Provides a cleaner product list for faster and more accurate moderation.
Enhancement (LT-35570) | Member Report Export Optimization
Summary:
Implemented major performance enhancements to the Member Report Export process, reducing database load and significantly improving batch and Excel preparation speed.
Overview:
The Member Report Export previously relied on per-row SQL queries, leading to excessive database calls, slow performance, and scalability issues. The process has been restructured to preload required data into maps, use batched queries, and centralize date formatting logic. This ensures faster execution and more efficient memory usage for large datasets.
Key Highlights:
- Removed SQL queries from loops by preloading badges, tiers, attributes, and statuses into maps.
- Consolidated per-user queries into bulk batched queries using buffered row handling.
- Improved user status retrieval with a single set-based query (ROW_NUMBER()), replacing multiple per-user lookups.
- Bulk-loaded attributes and tiers, eliminating thousands of redundant queries.
- Added a centralized formatDateOptimized() utility for consistent, fault-tolerant date handling.
Impact:
- Significantly faster batch and Excel preparation.
- Drastically reduced database overhead.
- Improved scalability and stability for large datasets.
- Cleaner and more maintainable codebase.
Enhancement (LT-35553) | Tier v2 Scheduled Job logic Update for User Tier Migration
Summary:
Enhanced the TierV2 Scheduled job process to improve logic for migrating users from TierV1 to TierV2, ensuring smoother and more accurate tier transitions.
Overview:
The existing TierV2 Scheduled job logic has been updated to handle user migration from the older TierV1 system to TierV2. These improvements focus on ensuring consistent and accurate tier assignment, reducing errors during automated migrations, and streamlining the transition process for all members.
Key Highlights:
- Refined migration logic for accurate tier transitions.
- Addressed potential inconsistencies between TierV1 and TierV2 data.
- Improved automation within the scheduled job process for greater reliability.
Impact:
- Provides accurate and reliable tier migration from TierV1 to TierV2.
- Reduces manual intervention by automating more cases.
- Ensures members are consistently placed in the correct tier during migration.
Bug Fix (LT-35107) | Campaign Eligibility with Blank Exclude Category ID
Summary:
Fixed an issue where campaigns were incorrectly becoming eligible when the Exclude Category ID was passed as blank during order placement.
Overview:
The defect caused campaigns configured with an excluded category to still be applied if the order payload included a blank category ID. This led to incorrect campaign eligibility being granted to users.
Key Highlights:
- Corrected campaign logic to ensure excluded categories are properly honored, even when category ID is blank.
- Added safeguards in the eligibility logic to prevent recurrence of this issue.
Impact:
- Ensures campaign rules respect excluded category IDs consistently.
- Prevents users from receiving unintended campaign benefits.
- Strengthens campaign eligibility validation for more accurate results.
September 15th, 2025
Enhancement (LT- 35448) | Custom Language Code for Translation Support
Summary:
Introduced support for custom language codes in the configuration and translation APIs, ensuring flexibility in managing translations with both standard and custom codes.
Overview:
This enhancement extends the language translation configuration by adding a custom language code field, while maintaining backward compatibility. The system now auto-fetches standard language codes for selected languages, but allows users to override them with custom codes if needed. API logic was updated to handle translation requests using either standard or custom codes, ensuring broader compatibility and smoother integration across features, including Journey API.
Key Highlights:
- Added a configurable field for custom language codes in language settings.
- Implemented fallback logic to ensure consistency between standard and custom codes.
- Enhanced API logic to support translation retrieval using both standard and custom codes.
- Updated related APIs to align with the new translation logic.
Impact:
Enables more flexible and robust translation management by supporting custom language codes, improving adaptability for diverse requirements while maintaining backward compatibility.
Enhancement (LT-35430) | Reward Issuance Scheduled Job Compatibility with Time Zone Groups
Summary:
Updated the reward issuance scheduled job to support time zone group compatibility, ensuring accurate scheduling and execution across different time zones.
Overview:
This enhancement introduces compatibility for reward issuance processes with time zone group handling. The scheduled job logic was adjusted to align reward issuance with respective configured time zones, improving reliability and accuracy of scheduled operations.
Key Highlights:
- Enhanced job scheduling to respect configured time zone groups.
- Improved consistency of reward issuance across multiple time zones.
- Ensured backward compatibility with existing reward issuance functionality.
Impact:
Provides accurate, time zone–aligned reward issuance, reducing discrepancies in scheduled jobs and improving overall system reliability.
Bug Fix (LT-35250) | Loyalty Member Unable to Access Dashboard and Transactions
Summary:
Addressed an issue where a loyalty member was able to log in but could not access their dashboard or view transactions due to API timeouts.
Overview:
The member experienced repeated errors when attempting to access the dashboard, even after clearing cache and testing on multiple devices. Investigation revealed the problem was caused by the Reward Dashboard API’s totalSpend calculation, which was unable to handle high activity volumes efficiently.
Key Highlights:
- Identified performance bottleneck in the Reward Dashboard API related to large activity volumes.
- Implemented optimizations in the totalSpend calculation to improve response times.
Impact:
Improves dashboard accessibility for members with large transaction histories, ensuring reliable and efficient performance across all loyalty accounts.
Bug Fix (LB-4919) | Coupon Codes Not Issued for Quarterly Rewards
Summary:
Resolved an issue where coupon codes were not being issued to members as part of their quarterly rewards, despite rewards being correctly assigned.
Overview:
The system was successfully assigning quarterly rewards to eligible members, but the associated coupon codes from the designated coupon group were not allocated. Investigation revealed that the issue was caused by the “Allow redemption with or without code” configuration in combination with automated reward issuance. This configuration prevented coupon assignment during automated reward distribution.
Key Highlights:
- Corrected handling of reward code configuration to ensure proper coupon assignment.
- Updated logic so that coupon codes are now issued reliably alongside quarterly rewards.
- Implemented backend assignment for previously missed coupon codes.
Impact:
- Ensures all eligible members receive valid coupon codes with their quarterly rewards.
- Provides consistent and reliable coupon allocation, preventing missed entitlements.
- Improves overall trust in the automated reward issuance process.
Bug Fix (LB-4889) | Tier Report Export Missing Member Data
Summary:
Resolved an issue where the Tier Report export did not display all eligible members when filters were applied, leading to discrepancies between the admin view and the exported file.
Overview:
When applying tier filters to generate the export, certain members who met the criteria were not included in the output file. Investigation revealed that the filter logic in the export process was not aligned with the admin Tier Report display logic. This caused inconsistencies in member visibility between the admin report and the exported data.
Key Highlights:
- Corrected the filter condition in the export process to match the admin Tier Report logic.
- Ensured all members meeting tier criteria are consistently included in exports.
Impact:
Provides accurate and complete Tier Report exports, ensuring consistency with the admin view and reliability in data usage for reporting and analysis.
Bug Fix (LB-4882) | Incorrect Store ID associated with Voucher Redemption
Summary:
Resolved an issue where an incorrect Store ID was associated with a voucher redemption in transaction records, leading to inconsistencies between the system data and exported files.
Overview:
During validation of voucher redemptions, it was observed that the same voucher ID was assigned to two users simultaneously due to a race condition in the voucher assignment process. This resulted in mismatched Store IDs and confusion in transaction reconciliation. Investigation revealed that:
- Voucher status was not consistently updated from ACTIVE to REDEEMED because the “Redeem Code” API trigger was missing.
- Parallel API calls against an unassigned voucher allowed the same code to be returned to multiple users.
- One user’s voucher assignment persisted correctly, while the duplicate response caused discrepancies in reporting.
Key Highlights:
- Implemented concurrency control at the API level to ensure vouchers cannot be assigned to multiple users in simultaneous requests.
- Verified voucher assignment and redemption flow across Dev and Stage environments.
Impact:
- Prevents duplicate voucher assignment during concurrent redemption or purchase attempts.
- Ensures Store ID, Voucher ID, and redemption details remain consistent across interaction reports and exports.
- Improves reliability of transaction data for reconciliation and reporting.
Bug Fix (LB-4829) | Group Deletion Not Reflected in Data Warehouse
Summary:
Resolved an issue where customers continued to appear as members of a group in the Data Warehouse (DWH) even after the group was deleted, leading to inconsistencies between reports and warehouse data.
Overview:
The system was designed to retain group membership in reports for historical visibility, but DWH records were not updated when groups were deleted. As a result, members still appeared linked to deleted groups. To fix this, updates were made so that group deletion status is consistently reflected in both reports and the DWH.
Key Highlights:
- Implemented logic to update the group_status to Deleted (2) when a group is removed.
- Ensured all members of deleted groups are marked as inactive in the DWH.
- Adjusted reporting logic so deleted groups show zero members while preserving only activity history.
- Enhanced filters to ensure deleted groups only appear when explicitly queried by group ID, name, or status.
Impact:
- Eliminates inconsistencies between group reports and DWH records.
- Provides accurate member-to-group associations in queries and exports.
- Retains historical visibility of group activity while preventing members from being shown in deleted groups.
September 8th, 2025
Enhancement (LT- 35256) | Journey API Translation Support
Summary:
Enhanced the Journey API to support translations for journey names, descriptions, and future attributes, enabling multi-language compatibility through the existing API translation framework.
Overview:
Previously, Journey endpoints lacked translation support, restricting their usability in multilingual environments. This enhancement extends the API to handle translatable attributes, ensuring that journey-related information can be localized effectively. Development tasks included grooming, ADR changes, and adding support for custom language codes in loyalty APIs. Testing and rollout are aligned with release schedules to meet customer requirements.
Key Highlights:
- Added translation support for journey names and descriptions via the API.
- Implemented custom language code handling for better localization flexibility.
- Integrated with the existing translation framework for consistency across APIs.
Impact:
- Enables localized customer experiences by supporting multiple languages in Journey APIs.
- Improves usability for global markets with region-specific language requirements.
- Strengthens consistency of translation handling across loyalty APIs and journeys.
Bug Fix (LT-35246) | Store ID Field Locked in Edit Stores Popup
Summary:
Updated the edit stores popup to ensure that the storeId field remains un-editable during edit operations, preventing accidental or unintended modifications.
Overview:
Previously, users were able to modify the storeId while editing a store through the popup. Since the storeId is a unique identifier, this created inconsistencies and potential issues in store management.
This update ensures that the storeId is always preserved as-is during edits, while still allowing new store IDs to be entered when adding a store.
Key Highlights:
- StoreId field is now un-editable in the edit stores popup.
- Existing storeId values are automatically retained in the payload.
- New store creation continues to allow adding a storeId.
Impact:
Prevents unintended changes to store identifiers, ensuring data consistency and integrity across ADR store configurations.
Bug Fix (LB-4825) | Consistent Opt-In Date Display Across Member Screens
Summary:
Resolved an inconsistency where a member’s Opt-In date displayed differently between the Member Report screen and the Member Dashboard edit view.
Overview:
The Opt-In date for members was not aligned across reporting and dashboard edit screens, causing confusion in data interpretation. The fix ensures that both locations now reflect the same, correct Opt-In information. This update also aligns date and time handling across multi-template and non-multi-template sites for better consistency.
Key Highlights:
- Standardized Opt-In date display across Member Report and Member Dashboard edit views.
- Applied consistent handling of date formats and time zones.
- Verified behavior for both multi-template and non-multi-template site configurations.
Impact:
Ensures accurate and consistent Opt-In information across all member views, improving data reliability and supporting smoother campaign and reporting workflows.
Bug Fix (LB-4826) | Correct Handling of Zero Tier and Purchase Ratios
Summary:
Resolved an issue where the system did not recognize the tier purchase ratio as zero when both the tier ratio and purchase action ratio were set to zero.
Overview:
The manual spend adjustment API was incorrectly ignoring zero values for tier and purchase action ratios, leading to misinterpretation of configured parameters. The update ensures that explicitly set values, including zero, are correctly applied and reflected in API responses. Default behavior now applies only when no tier is configured.
Key Highlights:
- Fixed handling of zero values for tier and purchase ratios in manual spend adjustments.
- Ensured API reflects configured values accurately, including zero.
- Default ratio of 1 only applies when no tier configuration is present.
Impact:
Guarantees accurate application of tier and purchase ratios, preventing discrepancies in spend adjustment calculations and ensuring consistency across tier-based loyalty use cases.
Bug Fix (LB-4743) | Issuance Order Details Report Not Processed
Summary:
Resolved the issue where Issuance Order Details Reports requested were not being processed or delivered.
Overview:
The report generation system failed to process and send requested Issuance Order Details Reports, causing delays in accessing critical data. The fix ensures reliable processing and delivery of these reports.
Key Highlights:
- Fixed report generation and delivery failures for Issuance Order Details Reports.
- Validated report filters (Order ID, Member ID, etc.) to ensure accurate data retrieval.
- Improved reliability and stability of report processing.
Impact:
Ensures timely and accurate delivery of Issuance Order Details Reports, restoring trust and enabling stakeholders to review and act on critical data without disruption.
Bug Fix (LB-4654) | Manual Spend Adjustment Ratio Handling
Summary:
Addressed an issue where manual spend adjustments incorrectly treated a purchase ratio of 0 as 1, resulting in unintended point awards and deductions.
Overview:
The system did not respect a 0 ratio set in the purchase action or tier configuration when processing manual spend adjustments. Instead, it defaulted to treating the ratio as 1, causing discrepancies in point calculations. The logic has been corrected to align with the configured ratio values.
Key Highlights:
- Corrected handling of purchase action ratios in manual spend adjustments.
- Ensured that a configured ratio of 0 is respected in both credit and debit operations.
- Improved consistency between manual adjustments and tier-based ratio settings.
Impact:
Prevents unintended point awards or deductions by ensuring the system adheres strictly to configured purchase ratios, maintaining accurate rewards calculations and alignment with business rules.
Enhancement (INT20-12302) | Loyalty ID as Primary Key
Summary:
Introduced Loyalty ID as the primary key to enhance identification and ensure consistent data handling across systems.
Overview:
The integration process was updated to replace the previous identifier with Loyalty ID as the primary key. This ensures standardized record mapping, improves synchronization reliability, and simplifies data management.
Key Highlights:
- Configured system to use Loyalty ID as the primary key.
- Updated supporting functions for smooth retrieval and handling of records.
- Validated integration with the updated identifier mapping.
Impact:
Strengthens data consistency and reliability across integrations, enabling accurate synchronization and improved downstream processing.
September 1st, 2025
Bug Fix (LB-4890) | Multi-Template Reporting: Dashboard Report Blank
Summary:
Fixed an issue where dashboard reports generated in the multi-template reporting view displayed no data.
Overview:
The dashboard reporting functionality was not designed to aggregate data across multiple templates. When users attempted to generate a dashboard from the multi-template reporting view, the result was an empty report with zero data. This caused confusion for users expecting aggregated results. To resolve this, the dashboard option has been disabled for multi-template reports, while retaining full functionality for individual template-specific reports.
Key Highlights:
- Identified root cause: dashboard does not support multi-template aggregation.
- Removed dashboard icon from multi-template reporting pages.
- Retained dashboard functionality for template-specific reporting.
Impact
- Prevents users from encountering blank dashboard reports in multi-template scenarios.
- Improves usability by only showing dashboards where supported.
- Ensures accurate reporting functionality and avoids confusion.
- Sets the stage for potential future enhancements if multi-template dashboarding is required.
Enhancement (LB-4850) | Coupon Groups UI Not Visible
Summary:
Optimized the GET: /users/{{memberId}}/actionseries to ensure consistency with the POST: /users/{{memberId}}/actionseries, resolving discrepancies where pending points were not matching under rolling, calendar and minimum criteria is set as based on points.
Overview:
Previously, differences were observed in pending points returned by the GET and POST Action Series APIs when certain conditions were applied, such as rolling calendar and criteria based on points. This optimization aligns both APIs to return consistent results.
Key Highlights:
- Resolved mismatch in pending points between GET and POST Action Series APIs.
- Optimized logic to handle scenarios based on count, purchase, and points.
- Improved overall consistency and reliability across Action Series use cases.
Impact:
- Ensures accurate and consistent pending points calculations across GET and POST APIs.
- Improves reliability of Action Series for loyalty and campaign management.
August 2025
August 25th, 2025
Bug Fix (LB-4850) | Coupon Groups UI Not Visible
Summary:
Fixed an issue where the coupon group UI on the Additional Loyalty Settings page was not visible due to excessive reward codes.
Overview:
The coupon group UI failed to load when handling a very large dataset of reward codes, making it inaccessible to users. To resolve this, performance improvements were implemented along with a loader indicator to show progress while the UI loads. With this fix, the coupon group UI now displays correctly and remains functional under heavy data loads.
Key Highlights:
- Enhanced system performance for handling large datasets.
- Ensured smooth and reliable UI loading in the Additional Loyalty Settings page.
Impact:
- Improved user experience with visible and accessible coupon group UI.
- Increased system stability and performance for large reward datasets.
- Reduced confusion and downtime by providing a clear loading indicator.
Bug Fix (LB-4838) | Campaign Issue when Two Campaigns are Applied to an Order
Summary:
Resolved an issue where, in an order, if two campaigns were applied, points from the second campaign were not being added to the total points calculation.
Overview:
Earlier, when two campaigns were applied to an order, the second campaign was correctly tagged to the product, but its points were excluded from the total points calculation. This happened because the limit of the first campaign was incorrectly applied to both campaigns. With this fix, points from both campaigns are now calculated independently, ensuring members receive the full benefit as configured.
Key Highlights:
- Correct tagging and points calculation for multiple campaigns.
- Fix ensures both campaigns apply benefits independently.
- Eliminates confusion where product-level points didn’t match the total.
Impact:
- Members now receive full campaign benefits as intended.
- Accurate points calculation improves user trust and satisfaction.
- Aligns product-level and total points reporting.
Bug Fix (LB-4625) | Used Vouchers not showing Order ID in Reward Report
Summary:
Fixed an issue where the Reward Report did not display Order IDs for used vouchers, even though the Order Report captured them correctly.
Overview:
Previously, when multiple vouchers were applied to the same order, the system correctly updated their status from “Claimed” to “Used”. However, in the Reward Report, the corresponding Order ID was not being displayed against these used vouchers. This bug has now been resolved, and the Reward Report properly shows the Order ID for each used voucher.
Key Highlights:
- Correct handling of multiple vouchers used in a single order.
- Reward Report now displays the corresponding Order ID for each used voucher.
- Alignment between Reward Report and Order Report data.
Impact:
- Improves accuracy and transparency of reporting.
- Ensures better tracking and reconciliation of voucher usage.
- Reduces confusion for users monitoring voucher redemptions.
Enhancement (LB-4749) | Issues with Order Failing
Summary:
Improved validation for email addresses in Order API to ensure loyalty points are awarded even if the email format is non-standard.
Overview:
Previously, when loyalty members placed an order via the Order API with a non-standard email address format, the system threw an error and failed to award points. With this enhancement, the validation logic has been updated to accept all email address formats, ensuring that members continue to receive their loyalty points regardless of email formatting.
Key Highlights:
- Updated email validation rules in Order API.
- Prevents order failures caused by non-standard email formats.
- Ensures members receive loyalty points consistently.
Impact:
- Reduces customer complaints related to missing points.
- Enhances overall user experience and trust in the loyalty program.
- Minimizes support effort by preventing order failures due to email validation issues.
Enhancement (LT-35104) | No List Selection Dropdown in Field Mapping (Integration Platform)
Summary:
No dropdown option available for list selection in field mapping.
Overview:
While configuring a new integration under the data stream, there is no dropdown list available for selecting fields in the field mapping section. Currently, the user needs to manually configure the fields under the field mapping page instead of directly selecting from a predefined dropdown list.
Key Highlights:
- Absence of dropdown functionality in the field mapping process.
- Users are required to manually enter or configure fields instead of selecting from a list.
Impact:
- Provides greater flexibility to add custom fields that may not be available in a predefined dropdown, allowing more tailored integrations as per business needs
Enhancement (LT-35105) | User Input Field for Field Mapping (Integration Platform)
Summary:
Users can now manually enter new fields during field mapping, in addition to selecting from the available field options.
Overview: Earlier, while creating a new integration, users could only select from the predefined list of available fields during field mapping. With this enhancement, users have the flexibility to add and map custom fields manually, apart from the existing options. This improves adaptability for diverse integration requirements.
Key Highlights:
- Introduction of a user input option in the field mapping process.
- Allows entry of additional fields that are not part of the predefined list.
Impact:
- Reduces dependency on fixed/predefined fields.
- Improves adaptability for integrations with unique data requirements.
- Increases efficiency by avoiding external workarounds for missing fields.
- Ensures smoother data mapping and better integration accuracy.
Enhancement (INT20-12353) | Replace Reward API with Query Builder (Integration Platform)
Summary:
Replaced the Reward and User Reward API with a custom Query Builder logic to improve performance and efficiency in self-server integrations with ESP.
Overview:
Previously, the integration platform relied on Reward and User Reward APIs to send and receive data. These APIs have now been deprecated and replaced with a Query Builder–based custom logic. This enhancement ensures faster processing and better scalability for handling large data transactions.
Key Highlights:
- Introduced Query Builder for handling data exchange.
- Eliminated dependency on Reward and User Reward APIs.
- Improved performance and reliability of integrations.
Impact:
- Faster and more efficient data communication in the integration platform.
- Increased scalability and maintainability of the integration platform.
Enhancement (INT20-12352) | Log Tab: Display Loader During Date-Filtered Search (Integration Platform)
Summary:
A loader has been added to the log records search functionality.
Overview:
In the Integration Dashboard log records search page, there was no loader previously. When users searched for log records by providing a date range, the system would begin processing the request, but users had no indication whether the search was in progress. With this enhancement, a loader now appears when a date range is entered, and a search is initiated. This provides a clear indication that the system is actively searching for records.
Key Highlights:
- Improved the search screen by adding a loader in the Integration Dashboard logs page.
- Provides clear visual feedback to the user when the system is processing search requests.
- Enhances user experience by removing uncertainty during longer searches.
Impact:
- Users can now see that the process is in progress while records are being fetched.
- Reduces confusion and improves user trust in the system’s responsiveness.
Bug Fix (INT20-12350) | Pagination Issue in Log Table (Integration Platform)
Summary:
Pagination in the ESP log page has been limited to 5 records per page.
Overview:
Previously, when searching for log records in the ESP log page, the system displayed more than 5 records on a single page. This caused the table to extend beyond the defined page setup, making it difficult to view and navigate through all records. With this bug fix, pagination is now limited to 5 records per page. Users can navigate to the next page to view additional records until all records are displayed.
Key Highlights:
- Fixed pagination issue in the ESP log page.
- Limited records displayed per page to 5.
- Enabled smooth navigation to subsequent pages until all records are shown.
Impact:
- Records are now displayed properly within the UI without layout distortion.
- Improves readability and user experience when browsing log records.
- Makes record traversal more structured and manageable.
August 18th, 2025
Bug Fix (LB-4624) | PCM File Upload Enhancement
Summary:
Addressed an issue where PCM CSV uploads were not processed when product names included special characters or non-UTF-8 encoding.
Overview:
The PCM upload process encountered issues with files containing unsupported special characters in product names. The validation logic has been updated to correctly handle UTF-8 encoding and to provide clear guidance when unsupported characters are present. A help link with documentation on accepted characters has been added, and the process was enhanced to split large files into smaller batches for more efficient handling.
Key Highlights:
- Enhanced UTF-8 encoding handling in PCM upload validation.
- Added user-friendly messages for unsupported special characters.
- Included help link to documentation on accepted character formats.
- Improved processing for large files by handling them in batches of 100 records.
Impact:
- Ensures PCM file uploads work seamlessly with supported formats.
- Provides clear user guidance for character formatting.
- Improves processing efficiency for large datasets.
Bug Fix (LB-4839) | Corrected Points on Hold Calculation for Orders with Discounts
Summary:
Resolved an issue where the displayed points on hold for an order were calculated incorrectly when a discount was applied.
Overview:
In certain orders placed through the Order API (POST), the presence of a discount caused the points-on-hold value to display inaccurately. The calculation logic has been refined to ensure accurate point representation in such scenarios, including cases where the auto-delivery flag is enabled. Testing confirmed consistent results across applicable use cases.
Key Highlights:
- Updated points-on-hold calculation logic for orders with applied discounts.
- Addressed scenarios where the auto-delivery flag impacted calculation results.
Impact:
- Ensure members see the correct points-on-hold value for discounted orders.
- Improves consistency between calculated and displayed loyalty points.
Enhancement (LT- 33020) | Advanced HM: Points Limit for Group Members
Summary:
Introduced a group-level points limit in the Advance HM system to ensure actions consider both individual and group credit limits for accurate points management.
Overview:
This enhancement adds logic to enforce points limits when members belong to a group within Advance HM. The update ensures that both group-level and user-level limits are respected during points allocation.
Key Highlights:
- Enforced group-level points limit alongside individual member limits.
- Applied changes across action handling, group actions, and scheduled job.
- Included validation for API responses covering scenarios with and without hold points.
Impact:
- Provides accurate points allocation in group-based loyalty structures.
- Enhances compliance with defined group limits, preventing over-crediting.
- Improves consistency in loyalty data displayed via API and activity tracking.
Bug Fix (LT- 33583) |Group Points Expiration Discrepancy
Summary:
Resolved an issue in the Group Points Expiration API where the points shown as pending expiration did not match the actual points deducted after the scheduled job execution.
Overview:
This issue occurred due to a mismatch between the points calculation logic in the Group Points Expiration API and the actual expiration process during scheduled jobs. The logic was corrected to ensure that the points shown in the expiration API match the final points expired after the job runs. Testing confirmed accuracy across both calendar-based and rolling expiration configurations.
Key Highlights:
- Aligned API calculation logic with scheduled job expiration logic.
Impact:
- Ensures expiration API reflects the correct upcoming points expiration.
- Eliminates confusion for users and administrators reviewing group balances.
- Improves consistency between pre-expiration reports and actual deductions.
Enhancement (LT- 34994) | Improved Eligibility Handling for Excluded Store Segments
Summary:
Updated the segment eligibility logic for excluded stores to ensure that orders without store information are correctly processed for campaigns.
Overview:
Previously, if an order did not contain a storeId key or had a blank storeId value, it was automatically marked ineligible for segments with excluded stores. This caused web orders (which often omit store details) to miss campaign benefits despite meeting other criteria. The enhancement ensures that such orders are treated as eligible unless they explicitly contain an excluded store ID.
Key Highlights:
- Orders without the storeId key are now treated as eligible.
- Orders with a storeId key but no value are also treated as eligible.
- Orders with storeId values matching excluded store IDs remain ineligible (existing behavior retained).
- Orders with valid store IDs not in the excluded list remain eligible (existing behavior retained).
Impact:
- Ensures web orders without store details can still qualify for campaigns.
- Prevents unintended ineligibility due to missing or blank store IDs.
Enhancement (PBL-1465) |Display Action ID with Action Names in Campaign and Segment Selection
Summary:
Updated the campaign and segment configuration UI to display both the Action ID and the Action Name/description in dropdowns and filters. This helps in accurately identifying the correct Action when multiple actions have similar descriptions.
Key Highlights:
- Added Action ID alongside Action Name in campaign and segment selection lists.
- Improved clarity in Action selection to reduce configuration errors.
- Consistent display applied across dropdowns and filters in relevant modules.
Impact:
- Enhances usability and accuracy during campaign and segment setup.
August 11th, 2025
Bug Fix (LT- 33020{34229}) | User Activity API now displays Hold Points Activity for Group Members
Summary:
Resolved an issue where after releasing hold points for a group member, the corresponding action activity was not being displayed in the User Activity API (GET /users/{{email_id}}/activity).
Overview:
Previously, when action points were placed on hold for a member within a group and later released via the Hold Points report, the points were credited correctly to the group, but the associated action activity failed to appear in the User Activity API. This fix ensures that hold point releases are now accurately reflected in the API activity logs for group members.
Key Highlights:
- Updated logic to correctly retrieve and display hold point activity for group members.
- Enhanced API to ensure released hold points are included in the User Activity API response.
- Coordinated changes between the User Activity API and Group Activity API for consistent data representation.
Impact:
- Improves accuracy and completeness of activity tracking for group members.
- Ensures transparency in loyalty transactions involving hold points.
- Reduces discrepancies between API data and reports, improving trust in exported data.
Bug Fix (LT- 33583) | Corrected Group Points Expiration Discrepancy
Summary:
Fixed an issue where the Group Points Expiration API displayed a lower points-to-expire value before expiration, but a higher number of points expired after the points expiry job execution.
Overview:
In certain scenarios involving both Calendar-based and Rolling-based point expirations, the Group Points Expiration API would show an incorrect value prior to expiration. For example, the API displayed 90 points as due to expire, but after scheduled job execution, 100 points were expired. This misalignment caused inconsistencies between pre-expiration data and post-expiration results.
Key Highlights:
- Adjusted expiration calculation logic to align pre-expiration API values with the actual points expired after scheduled job execution.
- Applied fixes to handle mixed expiration rules (Calendar and Rolling) applied to the same group.
- Enhanced consistency between the Group Points Expiration API, User Points API, and Group Activity records.
Impact:
- Ensures accurate and reliable points-to-expire reporting for groups.
- Reduces confusion in reconciliation processes by aligning displayed and actual expired values.
- Improves data integrity across expiration APIs and related reports.
Bug Fix (LT-34989) | Improved Summary Table Update Logic for Assign Badge API
Summary:
Resolved an issue where concurrent (multi-threaded) calls to the Assign Badge API caused incorrect updates to the badge summary table.
Overview:
Previously, when multiple calls to the Assign Badge API were processed simultaneously, race conditions could result in inaccurate summary data. The update logic has been revised to ensure atomic and consistent updates regardless of the number of concurrent requests.
Key Highlights:
- Implemented atomic increment operations for updating badge summary data.
- Eliminated race conditions during concurrent Assign Badge API calls.
- Ensured accurate and consistent summary records for all badge assignment scenarios.
Impact:
- Improves data accuracy in badge summary tables.
- Enhances system reliability when handling high-volume or concurrent API requests.
- Prevents discrepancies in badge-related reporting and analytics.
Bug Fix (LT-34998) | Corrected Error Message for Invalid member_reward_status Filter
Summary:
Fixed an issue where the wrong error message was displayed when an invalid value was provided for the member_reward_status filter in the GET eligibility API.
Overview:
When users passed an unsupported value for the member_reward_status filter, the API returned an incorrect error message referencing unrelated status values (Draft, Scheduled, Live, Archived). The logic has been updated to return a precise error message specific to the allowed values for member_reward_status.
Key Highlights:
- Updated validation logic for the member_reward_status filter.
- Correct error message now displayed: "Unsupported value for member_reward_status. Allowed values are Available or Unavailable."
- Improved clarity and accuracy of API error handling for invalid filter inputs.
Impact:
- Enhances API usability by providing clear and relevant error messages.
- Reduces confusion for developers integrating with the GET eligibility API.
- Ensures consistent validation feedback across API endpoints.
Bug Fix (LT-35093{34247}) | Group Details Not Being Removed
Summary:
Resolved an issue where group details were not being removed when selecting “Select” from the dropdown, particularly for groups that had descriptions.
Overview:
The system failed to clear group details after update operations when a group with an associated description was deselected. This caused outdated group information to persist, leading to inconsistencies in group assignments.
Key Highlights:
- Identified root cause: mismatch during column comparison in the removal logic.
- Updated comparison logic to ensure group removal works for both cases — with and without descriptions.
Impact:
- Ensures accurate removal of group details in all scenarios.
- Improves data consistency across group management workflows.
- Reduces manual cleanup and user confusion during updates.
Bug Fix (LB-4850) | Coupon Groups Not Visible or Loading Slowly
Summary:
Resolved an issue where coupon groups were not immediately visible or took longer to appear during initial page access.
Overview:
Enhancements were made to the Coupon Group UI to ensure prompt visibility and faster loading of groups. The update improves responsiveness while maintaining all existing coupon distribution functionality.
Key Highlights:
- Optimized data fetching and rendering logic for coupon groups.
- Significantly reduced page load time from ~60 seconds to near instant.
- Enhanced responsiveness of the UI for smoother navigation.
Impact:
- Administrators can now instantly view coupon groups upon accessing the page.
- Eliminated delays in monitoring and managing coupon groups.
- Improved overall operational efficiency for managing promotional campaigns.
Bug Fix (LB-4847) | Improved Product List Loading in Receipt Moderation
Summary:
Fixed slow and inconsistent loading of the product list in Receipt Moderation, ensuring faster search response and smoother dropdown behavior.
Overview:
The product search functionality in Receipt Moderation was optimized to handle large datasets (~200K products) more efficiently. Enhancements to Angular rendering and database query performance have significantly reduced loading delays and eliminated dropdown glitches during typing.
Key Highlights:
- Optimized backend queries for large product datasets.
- Improved Angular rendering to prevent dropdown disappearance.
- Enhanced search responsiveness for quicker results.
Impact:
- Faster product list loading during receipt moderation.
- Consistent dropdown behavior improves moderator efficiency.
- Reduced workflow interruptions, enabling smoother operations.
Bug Fix (LB-4843 & LB- 4763) | Duplicate Action ID in API Response
Summary:
Fixed an issue where the Get Action Status by User API returned duplicate entries for the same Action ID, ensuring each Action ID is now returned only once in the response.
Overview:
The Get Action Status by User API was updated to resolve a duplication issue caused by the POST method logic. This fix ensures the API returns a single, accurate record per Action ID, improving data consistency across systems.
Key Highlights:
- Corrected POST method logic to prevent duplicate Action IDs in responses.
- Improved API reliability for action tracking.
Impact:
- Eliminates duplicate Action ID entries in API responses.
- Ensures accuracy in reporting and downstream integrations.
- Enhances data integrity for API consumers.
Bug Fix (INT20-12039) | Bulk Upload Data Not Pushed to ESP Accounts
Summary:
Resolved bulk upload failures where user records were not consistently pushed to ESP accounts during scheduled jobs, especially for uploads exceeding 2,000 users.
Overview:
Testing revealed that bulk uploads at various job frequencies were partially successful for smaller batches but failed or pushed incomplete data for larger volumes. Failures were linked to ESP rate limits, timeouts, and cron job execution issues. Code optimizations and retry-after handling were implemented, improving push rates in most scenarios. Related tickets were created for specific ESP/frequency issues, with the functionality now ready for targeted retesting.
Key Highlights:
- Identified and addressed rate limit (429) and timeout issues affecting bulk pushes.
- Optimized code for handling large data batches and retry-after logic.
- Verified successful pushes for large data sets in multiple test runs.
- Created separate tickets for failures at specific job frequencies.
- Pending additional refinements for certain ESPs at higher volumes.
Impact:
- Improves reliability of bulk user uploads to ESP accounts.
- Enables smoother large-scale campaign launches with reduced data loss.
- Provides clearer monitoring and logging for diagnosing ESP push issues.
August 4th, 2025
Feature Enhancement (LT-35038) | RAF Checkbox in Field Mapping UI for Targeted Data Export
Summary:
This release introduces two significant enhancements to the Field Mapping UI:
- A new RAF-specific export control option.
2. Streamlined identity mapping by removing dependency on email validation.
Enhancement: RAF Checkbox for Targeted Data Export
Overview:
A new configuration checkbox “Trigger export based on RAF Actions” has been added to the Field Mapping UI. This enables more refined export control tied specifically to Refer-A-Friend (RAF) interactions.
Key Highlights:
- Exports are now selectively triggered based on specific RAF events.
- Reduces unnecessary data transfers by narrowing export triggers to relevant referral activities.
- Administrators can tailor exports to fit RAF-specific workflows with greater precision.
Impact:
Improves campaign efficiency by enabling RAF-specific export logic, reducing processing load, and ensuring more relevant data delivery.
Enhancement: Removal of Email Address Validation & Loyalty ID as Primary Key
Overview:
To enhance mapping flexibility and ensure broader compatibility, email address format validation has been removed from the Field Mapping configuration. Loyalty ID is now established as the primary identifier.
Key Highlights:
- Email field validation is no longer mandatory.
- Loyalty ID will serve as the unique primary key for mapping and exports.
- Especially useful for systems or campaigns that don’t rely on email as a primary identifier.
Impact:
- Enhances system compatibility for non-email-based engagements.
- Reduces setup errors tied to invalid or missing email addresses.
- Ensures more consistent data synchronization using a standardized loyalty identifier.
Bug Fix (LB-4836) | Receipt Rejection Reason Not Displayed in Auto-Rejection Emails
Summary:
Resolved an issue in the receipt moderation workflow where auto-rejection emails failed to display the correct rejection reason when a duplicate receipt was detected. Instead of showing a meaningful reason (e.g., "Duplicate receipt found"), the email displayed the placeholder #RejectionReason#, leading to confusion for users.
Fix Highlights:
- Mapped the correct rejection reason string for auto-rejected receipts triggered by duplicate detection via OCR (Optical Character Recognition).
- Updated the email template logic to ensure dynamic replacement of rejection reason tokens.
Impact:
Ensures that users now receive clear and actionable feedback in rejection emails, specifically when a receipt is rejected due to duplication. Improves overall communication clarity and user experience.
Bug Fix (LB-4824) | Incorrect ‘Points on Hold’ Displayed in Issuance Order Report Excel
Summary:
Resolved an issue where the "Points on Hold" field in the Issuance Order Report Excel file displayed incorrect values for previous orders. When a user placed multiple hold orders, the hold points from the latest order were incorrectly reflected against earlier orders, even if those orders were canceled.
Fix Highlights:
- Corrected the logic in the data population for the Excel export of issuance order reports.
- Ensured that hold points are dynamically updated per order status and are not retained across unrelated orders.
- Validated accurate behavior when multiple orders are placed and canceled in sequence, maintaining order-level data integrity.
Impact:
Ensures precise and order-specific reporting of hold points in the Excel export. Enhances data accuracy for loyalty issuance reports and prevents confusion in audit or reconciliation processes.
Bug Fix (LB-4791)| Duplicate Issuance Entry When Order Status Changes from HOLD to SHIP
Summary:
Resolved a production issue where a duplicate issuance entry was incorrectly created when an order’s status was updated from HOLD to SHIP. Instead of updating the original product line, the system added a second entry, resulting in duplicate credit issuance activity.
Fix Highlights:
- Identified the root cause in the PUT: /issuance method of the Issuance API, where product details were being soft-deleted and reinserted rather than updated.
- Refactored logic to update product line items on order status change, preventing data duplication.
- Ensured consistent handling of issuance status transitions and proper reconciliation of hold and ship values.
Impact:
Eliminates duplicate entries in issuance activity logs for orders moved from HOLD to SHIP, ensuring data integrity and accurate reward allocation. Improves system behavior in affiliate order workflows and maintains cleaner audit trails.
Bug Fix (LB-4749) | Orders Failing to Accrue Loyalty Points due to Email Validation
Summary:
Resolved an issue where certain orders were not accruing loyalty points, even though all associated customer attributes were valid and loyalty enrollment was confirmed. The problem was traced to overly strict email validation in the Order API, which incorrectly rejected valid transactions based on email format.
Fix Highlights:
- Removed unnecessary email format validation from the Order API to prevent valid transactions from being blocked.
- Updated logic to prioritize unique customer identifiers for loyalty point issuance.
- Validated the fix across multiple user scenarios to ensure accurate and reliable accrual processing.
Impact:
Ensures that all eligible orders accrue loyalty points as expected, improving system reliability and customer satisfaction. Enhances flexibility by allowing transactions without strict reliance on email formatting.
Bug Fix (INT20-12339) | Incorrect non_local_purchase Flag on Recurring Orders
Summary:
Resolved an issue where recurring purchases made in a user's home market were incorrectly marked with the non_local_purchase flag. This misclassification occurred even when the recurring orders were aligned with the user's default market.
Fix Highlights:
- Updated validation logic to ensure the non_local_purchase flag is only set when a purchase is truly outside the user's home market.
- Ensured that recurring purchases within the home market leave the flag blank, as expected.
- Verified accuracy of the non_local_purchase field in order reports.
Impact:
Improves reporting accuracy by correctly reflecting the geographic nature of purchases. Prevents false positives in non-local purchase tracking, supporting better analytics and campaign logic.
Bug Fix (INT20-12305) | Incomplete Referral Data Sync to ESP for High-Volume Email Shares
Summary:
Resolved an issue where referrals made via the "Share via Email" option from the embedded iframe were only partially reflected in the connected ESP system. When 50 users were referred in sequence, only 25 entries were synced.
Fix Highlights:
- Identified that referral email data was limited by a default query cap.
- Increased referral sync limit to handle higher volumes accurately.
- Ensured consistent handling of referral batches initiated via the iframe email share flow.
- Verified updated logic reflects the correct referral count in reporting and ESP integrations.
Impact:
Ensures accurate and complete syncing of all referred users to the ESP system, supporting campaign performance tracking and reducing data discrepancies. Enhances reliability of referral reporting for bulk email shares via embedded components.
Enhancement (INT20-12254) | Oracle Responsys Integration as New Destination
Summary:
Introduced Oracle Responsys as a new destination in the integration platform to enable seamless data delivery from the loyalty system to Responsys.
Enhancement Highlights:
- Supports scheduled, batch-mode export of loyalty attributes.
- Allows field mapping between loyalty program fields and Responsys profile list attributes.
- Incorporates secure authentication, error handling, and retry mechanisms as per platform standards.
Impact:
Empowers marketing teams to leverage enriched loyalty data for targeted campaigns and audience personalization in Oracle Responsys, enhancing cross-channel engagement and segmentation capabilities.
Enhancement (RF-4252) | Refined Date Logic for Interaction Report in CSV Export
Summary:
Improved the data logic in the Interaction Report CSV export to reflect the most recent 24 hours of activity, instead of defaulting to year-to-date data.
Enhancement Details:
- Adjusted backend cron job to export only the last 24 hours of interaction data.
- Validated changes in both development and production environments.
Impact:
Delivers more relevant and time-sensitive data in scheduled SFTP exports, enhancing report usability and campaign responsiveness.
Bug Fix (LB-4841) | Opt-In Status Not Syncing with Emarsys
Summary:
Resolved an issue where updates to a user's opt-in status in the loyalty platform were not syncing with Emarsys, resulting in inconsistent communication preferences across systems.
Fix Details:
- Implemented logic to detect changes in opt-in/opt-out status.
- Integrated new query to accurately push updated values to Emarsys.
Impact:
Ensures accurate and real-time sync of user consent preferences with Emarsys, improving compliance and communication targeting.
Enhancement (INT20-12320) | Country Code-Based Market Mapping for Recurring Orders
Summary:
Implemented a logic to accurately determine a user's market for recurring orders when the customer_local parameter is missing.
Enhancement Details:
- Introduced logic to derive market using the billing address country code.
- Enabled configuration to map country codes to respective template IDs.
Impact:
Improves market identification accuracy for recurring orders, reducing errors in market assignment and ensuring proper data flow for downstream processes.
Bug Fix (INT20-12314) | SSO Login Failure due to Missing Tenant ID Condition
Summary:
Resolved an issue where SSO login was failing due to a missing tenantId condition in the authentication flow.
Fix Details:
- Implemented the necessary tenantId validation in the login logic.
- Applied the fix consistently across all relevant environments.
- Verified successful login functionality post-deployment.
Impact:
Restored access via SSO login and ensured consistent authentication behavior across the platform.
Enhancement (RF-4244) | Supression of Default Referrer Notification on Sign-up
Summary:
Modified the default behavior where a referrer receives an automated email notification when a referee signs up and action_id 152 is triggered.
Enhancement Details:
- Introduced an additional conditional check in the mail trigger logic tied to action_id 152.
- Disabled the email notification when the specified condition is met.
Impact:
Prevented unwanted referrer email notifications, ensuring better control over referral communications and improved flexibility in configuring campaign behaviors.
Enhancement (RF-4243) | Interaction Report CSV Export Update
Summary:
Added updates to the Refer-a-Friend standard CSV reporting, specifically enhancements made to the Interaction Report.
Enhancement Details:
- Adjusted the remote file path and report file naming convention.
- Enabled smoother data export functionality for reporting tools.
- Conducted unit testing post-deployment to confirm export behavior aligns with expectations.
Impact:
Improves data consistency and usability in standard reporting workflows, enhancing analytics reliability for referral program interactions.
Enhancement (LB-4823) | Product List Visibility in Receipt Moderation
Summary:
Improved the Receipt Moderation feature to ensure the product list populates as expected, supporting workflows where users match uploaded receipts to products from a large catalog.
Enhancement Details:
- Optimized handling of large product datasets to enable proper loading of product names in the dropdown.
- Implemented front-end adjustments to improve responsiveness during receipt validation.
- Completed validation through testing to confirm consistent behavior in the interface.
Impact:
Provides a seamless experience in receipt processing by ensuring that all available products are visible during moderation, supporting better accuracy and efficiency in verification tasks.
Bug Fix (LB-4822) | Corrected Pagination Metadata in Rewards APIs
Summary:
Resolved discrepancies in pagination metadata for the following endpoints:
GET: /rewards
GET: /users/{{member_id}}/rewards
In some scenarios, total pages and reward counts were inaccurately calculated when filters were applied.
Fix Highlights:
- Adjusted pagination and filtering logic to ensure accurate reflection of rewards data.
- Optimized query handling for better performance.
Impact:
Provides accurate pagination metadata across user reward and external reward list APIs, improving data consistency and reliability in response structures.
Enhancement (LT-34932) |Transaction Control Logic Added to Issuance API
Summary:
Introduced transaction control handling in both the POST: /issuance and PATCH: /issuance methods of the Issuance API for better consistency and traceability of transactional events.
Implementation Details:
- Added logic to record and manage transaction control during issuance operations.
- Ensured data integrity by preventing duplicate or unintended transactions.
Impact:
Enables structured and auditable transaction management in the Issuance API, ensuring robust issuance flows and maintaining transactional accuracy.
Enhancement (RF-4243) | Interaction Report CSV Export Update
Summary:
Added updates to the Refer-a-Friend standard CSV reporting, specifically enhancements made to the Interaction Report.
Enhancement Details:
- Adjusted the remote file path and report file naming convention.
- Enabled smoother data export functionality for reporting tools.
- Conducted unit testing post-deployment to confirm export behavior aligns with expectations.
Impact:
Improves data consistency and usability in standard reporting workflows, enhancing analytics reliability for referral program interactions.
July 2025
July 28, 2025
Bug Fix (LB-4822) | Corrected Pagination Metadata in Rewards API
Summary:
Resolved an issue in the user rewards eligibility endpoint (GET /api/3.0/users/{user_id}/rewards) where pagination metadata, including total pages and reward counts, was incorrectly calculated when filters like member_reward_status were applied. This caused discrepancies between expected and returned values in paginated results.
Fix Highlights:
- Refined pagination and filtering logic to correctly reflect the number of eligible rewards.
- Developed a common function to handle user reward details across reward APIs.
- Added parameter validation for collected_data in associated APIs.
- Improved query logic for better accuracy and performance.
Impact:
Delivers accurate and reliable pagination metadata for reward eligibility queries, enhancing consistency in data representation and user experience across systems.
Bug Fix (LB-4813) | Corrected Points on Hold Calculation in Issuance Order Report
Summary:
Fixed an issue in the Issuance Order Report where the “Points on Hold” value was incorrectly displayed for a previously cancelled order after a subsequent order was placed on hold. The report incorrectly reflected the new order’s hold points on the older cancelled order.
Fix Highlights:
- Adjusted logic to ensure cancelled orders no longer reflect updated hold values from new transactions.
- Resolved data overlap where hold points were associated across unrelated orders.
- Improved report consistency for multiple sequential orders involving hold and cancellation states.
Impact:
Ensures accurate reflection of hold points per individual order in the Issuance Order Report, particularly when older orders are cancelled and new ones are placed on hold.
July 21, 2025
Validation Improvement (LT-32281) | PATCH Rewards API for Collected Data
Summary:
Implemented validation to prevent submission of invalid data types in the collected_data array when using the PATCH Rewards API (PATCH: /rewards/{{rewardId}}/users/{{memberId}}/assign) in External Rewards. Previously, the API accepted incorrect data types (e.g., text instead of date), causing data integrity issues.
Fix Highlights:
- API now restricts input to only the supported VARCHAR data type.
- Other unsupported data types (e.g., DATE, TIME) are no longer allowed and are excluded from the redemption data configuration.
Impact:
Ensures proper validation of user input and maintains consistency in reward redemption data.
Enhanement (INT20-12232)| Date Filter and UI Improvements for Log Section
Summary:
Implemented a From and To Date filter for the log section in the self-serve ESP product, allowing refined log searches based on date range. Additional UI enhancements include:
- Proper alignment of page numbers and log table headers
- Sorting functionality for columns
- Template selection dropdown added
These improvements enhance usability and data filtering for better log tracking.
Bug Fix (LT-33759) | Corrected Limited Availability Dates in Audit Log Reports
Summary:
Resolved an issue where the limited availability start and end dates for external rewards were displayed incorrectly in audit log reports. The fix ensures accurate logging of date changes across various formats and scenarios.
Impact:
Improves reporting accuracy and ensures consistency between reward settings and audit logs.
Bug fix (LT-32060) | Date Format Support for Availability Period Range
Summary:
Resolved validation errors in Badges and Rewards when setting the Availability Period date range using various date formats, including M-d-Y, M-d-y, Y-M-d, d-M-Y, and d-m-Y.
Fix Highlights:
- Improved handling of multiple date formats to ensure proper validation and form submission.
- Added restrictions to prevent selecting invalid date combinations, including disallowing past dates for the "To Date" field.
Impact:
Ensures consistent and error-free behavior for availability period date selection across all supported formats and use cases.
Bug Fix (LB- 4805) | Edit Functionality Enabled for SSO Users on Data Feed Page
Summary:
Resolved an issue where users authenticated via SSO were unable to access the Edit Data Sync functionality. Clicking the edit button previously caused the page to reload without opening the edit screen.
Fix Highlights:
- Removed restrictive user-type validation that blocked access to the edit function for SSO users.
- Ensured consistent behavior across user types for the Data Feed edit feature.
Impact:
SSO users can now successfully access and edit data feed settings without page reload issues.
Bug Fix (LB-4797) | Corrected Referral Status and Order API Response for Referrer Points Disabled
Summary:
Resolved an issue where, when the "Auto Assign Points to Referrer" configuration was turned off, the system returned an error on the Order API and incorrectly displayed the referral status in the RAF Interaction Report as Purchased instead of Waiting for Purchase.
Fix Highlights:
- Order API now handles scenarios with "Auto Assign Points to Referrer" set to OFF without throwing errors.
- RAF Interaction Report accurately reflects the referral status as Waiting for Purchase when conditions are not yet met.
Impact:
Ensures accurate tracking of referral progress and stable API behavior for reward programs where automatic point assignment is disabled.
Bug Fix (LB-4791) | Duplicate Product Line Added on Order Status Change in Issuance API
Summary:
Resolved an issue where a second product line was erroneously added during order status transitions from HOLD to SHIP. The system previously retained the original product line with HOLD status and created a new line with SHIPPED status, resulting in duplication in issuance activity.
Fix Highlights:
- Corrected logic in the issuance update flow to properly update existing product entries.
- Ensures only one line is maintained per product, with accurate status transition handling.
Impact:
Prevents duplication in issuance data, improving data consistency in reports and user-facing order details.
Bug Fix (LB-4729) | Incorrect Points Display for Partial Shipments in Order API
Bug Fix (LB-4654) | Manual Spend Adjustment Honors 0 Purchase Ratio
Summary:
Resolved an issue where the Manual Spend Adjustment API incorrectly awarded points when the purchase action ratio was set to 0. The system previously treated the ratio as 1, leading to unintended point issuance and deductions.
Fix Highlights:
- Manual adjustments now correctly respect a 0 ratio setting in the purchase action.
- Ensures no points are awarded or deducted when the ratio is zero, as intended by configuration.
Impact:
Prevents erroneous point allocation during manual spend adjustments, ensuring consistency with configured business rules.
Bug Fix (LB-4810) | Resolved Error Code 500 in Points Redemption API
Summary:
Fixed an issue where points redemption API calls intermittently failed with error code 500 on the endpoint (GET: /api/3.0/points/{id}). The failure impacted certain accounts and returned the response {"error":"An error occurred"} during GET requests.
Fix Highlights:
- Handled unresponsive scenarios in the redemption flow to prevent 500 errors.
- Improved error handling and response stability in the points API.
- Validated API behavior across multiple account conditions to ensure consistent performance.
Impact:
Ensures reliable execution of points redemption transactions and improves overall API stability for affected users.
Fix (LB-4651) | Manual Bulk Upload Validations for Purchase Actions
Summary:
Resolved an issue where bulk uploads using the Points Report format allowed unsupported purchase actions, resulting in successful upload messages without actual point allocations or visible reporting.
Update:
Validation logic has been introduced to restrict purchase actions (e.g., Action IDs 109 and 148) from being used in the Points Report bulk upload. The email logic has also been adjusted to generate confirmation only after successful processing, ensuring consistency in user reporting and system feedback.
Fix (INT20-12264) | Correct Display of Currency Symbols in Reward Parameters
Summary:
Resolved an issue where currency or special character symbols were not displaying correctly in the ac_available_rewards and ac_highest_available_reward parameters within ESP templates.
Update:
The symbol rendering logic has been corrected to ensure accurate display across different templates. Testing confirmed that symbols such as $, C$, €, and £ now appear correctly in both ESP previews and reward views.
July 14, 2025
Campaign Report | Bug fix (LB-4769)
We have fixed an issue where exported campaign reports did not align with the data displayed in the platform dashboard. Specifically, benefit point values were either missing or incorrectly shown as zero in the exports, despite being correctly reflected within the system. This discrepancy was due to inconsistencies in data mapping between the reporting and export layers. The issue has now been resolved, and campaign benefit points are accurately reflected and consistent across all reporting views.
Incorrect Point Expiry Date| Bug fix (LB-4768)
We have fixed an issue where points were shown as expired earlier than expected in reporting interfaces due to a mismatch between milestone rule updates and expiration logic. The fix ensures consistent and accurate expiration dates across the API, reports, and platform dashboard.
Tier History Report – Missing Current Tier Entry on Requalification | Bug fix (LT-34817)
We've fixed an issue where the Tier History Report failed to display a current tier entry when a user requalified for the same tier during the retention period. This occurred in tiered programs using a calendar year time dimension. The report now correctly reflects the updated achievement date when users requalify for a tier, ensuring the current tier entry appears as expected.
Enhancement: Duplicate Receipt Detection via File Hashing| (LT- 34810)
Implemented a file hashing mechanism to detect and prevent duplicate receipt uploads. During the upload process, the system now calculates a hash value for each receipt image. If the hash already exists in the designated database table, the receipt is flagged as a duplicate and not saved. If the hash is new, the receipt is accepted and the hash is stored for future comparison. A backfill script was also developed to compute and update hash values for all existing receipts without data loss. This enhancement improves data integrity and reduces redundancy across receipt submissions.
External Rewards | (LT-34638)
We've fixed an issue where external rewards with statuses such as draft, scheduled, or archived were not appearing in the text translation listing when the synchronization process was configured with the relevant submodule and status set to inactive. This prevented inactive external rewards from being pulled into the translation interface as expected. The fix ensures that all external rewards with inactive statuses are now properly retrieved and displayed during synchronization.
Enhancement: All Rewards Compatibility under External Rewards APIs | (LT-34518/ PBL-1488)
Enhanced the External Rewards APIs to support full compatibility with the All Rewards module. This update ensures that rewards configured under the All Rewards section are now accessible and manageable through the External Rewards APIs, including retrieval, filtering, and metadata handling. This improvement streamlines integration with third-party systems and ensures consistent reward visibility across internal and external modules.
Incorrect Reward Code Expiration Date & Time on Code Claim Setting | Bug fix (LT-34111)
June 2025
June 23, 2025
Activity-Web API | Bug fix (LB-4754)
Resolved Data Type Inconsistency in Activity Endpoints
We've fixed a data type inconsistency between the legacy /activity endpoint and the new /activity-web endpoint for the groupDebit field. Previously, the legacy endpoint returned integer values (e.g., "0") while the new endpoint returned decimal values (e.g., "0.00"), causing parsing errors for clients using both endpoints with the same response model.
Both endpoints now return integer values without decimals for the groupDebit field, ensuring seamless integration across customer service and partner/web applications.
User API | Loyalty Member Management | Bug fix (LB-4750)
Resolved Point Expiration Date Display in Member API
We've fixed an issue in the Loyalty User API where milestone data (within the activityBasedStatus object) was showing incorrect point expiration dates. Previously, when members had points deducted and then earned new points, the API response would display past expiration dates from previous point balances instead of the correct future expiration dates for current active points.
The API now properly calculates and returns accurate upcoming point expiration dates, ensuring external systems display the correct future expiration information to members.
Multi-Language Configuration | Enhanced API Translation Feature
Enhanced API Translation Feature with Additional Fields and Languages
We've expanded the existing API translation feature to include additional fields and language support based on client requirements. Key enhancements include:
Extended Localization Support: Added support for translating all Rewards and Badges extended attributes, providing more comprehensive multi-language capabilities for loyalty program elements.
New Language Support: Added Swiss German to the supported languages list, with additional languages being evaluated for future inclusion.
Issuance Report | Bug fix (LB-4743)
Resolved Issuance Order Details Report Generation Issue
We've fixed an issue where Issuance Order Details reports were not being processed or delivered to requestors. The system was failing to generate and send these reports despite successful submission requests, causing delays in critical reporting workflows.
Campaign Points | Campaign Report | Bug fix (LB-4688)
Resolved Campaign Point Calculation and Reporting Issues
We've fixed two related issues affecting campaign point calculations and reporting:
Campaign Point Award Issue: Resolved an issue where qualifying orders were not receiving campaign points despite meeting all campaign criteria, particularly affecting orders placed on campaign start dates.
Campaign Report Accuracy: Fixed incorrect reporting where the campaign report would show zero campaign points even when campaign points were correctly awarded to members, or conversely, would show zero when points should have been awarded.
Note: These fixes ensure accurate campaign point calculations and reliable campaign performance reporting.
Reward Issuance | Birthday Event | Bug fix (LB-4746)
Fixed Birthday Event Detection for Reward Issuance
We've resolved an issue where the automated reward issuance engine was incorrectly looking at member 'extendedAttribute' instead of the standard member attribute "birthDate" when determining birthday events. The system now properly references the standard "birthDate" attribute to trigger birthday-based reward issuance as designed.
June 16, 2025
Opt-In/Opt-Out Logging | Bug fix (LB-4669)
Enhanced Opt-In/Opt-Out Logging and Validation
We've resolved two issues with member opt-in/opt-out functionality for Explicit without-retro and Opt-in Loyalty with retro earning program types:
Improved Logging: Fixed missing log entries for member re-opt-in and re-opt-out actions. The system now properly maintains comprehensive opt-in/opt-out logs for all member status changes, including subsequent opt-in and opt-out events.
Enhanced Validation: Added validation checks to prevent processing of invalid opt-out requests, such as attempting to opt-out members who are already opted out. The system now validates member status before processing opt-out requests.
Note: These improvements ensure accurate member status tracking and prevent duplicate or invalid opt-out processing.
Opt-Out Deduction | Member Report | Bug fix (LB-4668)
Resolved Opt-Out Deduction Tracking in Member Summary Reports
We've fixed an issue affecting Explicit without-retro and Opt-in Loyalty with retro earning program types where opt-out deduction entries were being incorrectly deleted by the Opt-out Member Cron job. Previously, when members opted out, the system would create opt-out deduction entries on alternate site IDs for reporting purposes, but these entries were subsequently removed during the cron cleanup process, causing opt-out deduction points and counts to not display properly in Dashboard Member Summary reports.
Note: This fix ensures accurate tracking and reporting of opt-out deductions while maintaining proper member activity cleanup processes.
Campaign Benefit Removal | Manual Testing Sites | Bug fix (LB-4621)
Resolved Campaign Benefit Removal on Full Order Cancellation
We've fixed an issue where not all campaign benefits were being removed when orders were fully cancelled on MT (manual testing) sites. Previously, when multiple campaigns were triggered by the same order (such as "After Campaign Completion" and "After First Shipment" campaigns), only some campaign points would be reversed upon full order cancellation, leaving remaining campaign benefits incorrectly in the member's available balance.
Note: This fix ensures complete removal of all campaign-related benefits when orders are fully cancelled, maintaining accurate point balances.
Campaign-Based Rewards | Bug fix (LB-4685)
Resolved Campaign-Based Reward Expiration Date Issue
We've fixed an issue where expiration dates were not being populated when campaign-based rewards (such as Birthday and Anniversary rewards) were assigned to users. Previously, these automatically assigned rewards would show blank expiration dates in reward reports and user records, even when expiration settings were configured.
Rewards |Automated Reward Issuance for Birthday & Anniversary Events
Automated Reward Issuance for Birthday & Anniversary Events
We've introduced an automated reward issuance engine that allows you to configure rewards to be automatically issued to members on their birthdays or loyalty anniversaries. This new functionality includes a "Reward Issuance" tab in the Rewards section where you can set up automated reward distribution.
Key features include:
- Event-based triggers: Configure rewards for member birthdays (based on birthDate attribute) and loyalty anniversaries (calculated from opt-in date)
- Flexible timing options: Issue rewards on the event day, specific day of the event month, or a specified number of days before the event
- Full reward compatibility: Works with all existing reward settings including eligibility rules, tier restrictions, claim limits, and reward codes
- Comprehensive tracking: Maintains detailed issuance logs and integrates with existing reward APIs and reporting
Note: This feature is currently available via super admin flag and will be expanded to support additional event types in future releases.
June 9, 2025
Refer a Friend |Centralized Minimum Spend Configuration for Refer a Friend
Centralized Minimum Spend Configuration for Refer a Friend
We've introduced a centralized "Minimum Spend Amount" configuration in the Refer a Friend module that applies uniformly across all referral methods (invite codes, Bitly links, email, Facebook, and X/Twitter). This enhancement consolidates spend threshold management by moving the configuration from individual loyalty actions (Action ID 125) to a single, centralized setting in the RAF Additional Settings section.
Point Calculation| Member Merge | Bug fix (LB-4683)
Resolved Point Release Calculation Error After Account Merge
We've fixed an issue where point release calculations were incorrect following account merges, particularly affecting PCM-based product orders. Previously, members could receive inflated point amounts when points were released after an account merge operation. The system now correctly calculates and awards the appropriate order points based on the original order value.
Opt-In Status| Member Report | Bug fix (LB-4691)
Resolved Opt-In Status Update Error
We've fixed an issue where changing a member's opt-in status to "No" through the member report edit function was generating an "Invalid parameter Value Passed" error. Users can now successfully update member opt-in preferences without encountering validation errors when selecting "No" from the dropdown menu.
Data Field Mapping | Enhanced UX
Enhanced Field Mapping Page User Experience
We've improved the Field Mapping page with educational content and smart nudging features to guide users through the mapping process. Updates include strategically placed education banners to provide contextual guidance and enhanced alert modals with clearer messaging and improved visual design.
Note: These UX improvements help users navigate field mapping more effectively and reduce configuration errors.
Data Flow | Loyalty ID Confirmation Field Added
Loyalty ID Confirmation Field Added for Numeric Unique ID Mapping
We've added a Loyalty ID confirmation field to the final step of the data flow process when loyalty fields are mapped using Numeric Unique ID instead of Email Unique ID. This enhancement provides verification and confirmation of proper data flow when using numeric identifiers for loyalty member mapping.
Orders API | Point Balance Object | Bug fix (LT-33774)
Resolved Point Balance Object Issues in Order Component
We've addressed multiple critical issues with the Point Balance Object's Order Component that were identified during testing. These fixes resolve production issues across three key categories:
Category 1: Max limit handling issues with hold types (Order Placed Date and All Items from Order Shipped Date)
Category 2: Discount calculation and related problems with hold type: Order Placed Date
Category 3: Operational issues with hold type: Order Item Ship Date
These improvements ensure more reliable point balance calculations and order processing functionality.
June 2, 2025
Email Validation| Bug fix (LB-4675)
Enhanced Email Validation for Dash Characters
We've updated email validation to properly support dash characters (-) in email addresses and domains. Previously, emails containing dashes were incorrectly rejected during member creation and bulk uploads, causing failures for legitimate email addresses that include this common character.
Hierarchy Management| Groups | Bug fix (LT-34311)
Reward Codes| Bulk Upload | Bug fix (LB-4635)
Resolved Reward Code Upload Assignment Error
We've addressed an issue in the reward code upload process to ensure codes are correctly assigned to their intended rewards. This improvement addresses an issue where bulk uploaded codes could sometimes be distributed across multiple reward categories instead of being assigned to the specific target reward, ensuring accurate coupon inventory tracking.
Issuance Report | Product Total Points Column
Product Total Points Column Added to Issuance Report
We've enhanced the Issuance report by adding a new "Product Total Points" column that displays the productTotalPoints value. This addition provides better visibility into point allocations at the product level within issuance transactions.
May 2025
May 26, 2025
Action Series| Points-Based Trigger | Bug fix (LT-33717)
Fixed issue preventing action series completion when based on points and specific actions
We’ve resolved an issue where action series milestones configured with a minimum point requirement and specific actions were not being marked as complete—even when members met the criteria.
Previously, if a member earned the required points (e.g., 100) by completing one or more listed actions (e.g., Action IDs 174, 1221, 1222), the action series would not trigger as complete. This occurred inconsistently and led to incorrect milestone tracking.
This fix ensures that action series now correctly trigger and complete when the required points are earned through any of the configured milestone actions.
Segmentation Logic| AND Condition Fix | Bug fix (LB-4656)
Fixed segment evaluation when using multiple user attributes with AND logic
We’ve resolved an issue where segments configured with multiple user extended attributes using AND logic were incorrectly evaluating as OR. This caused campaigns to trigger even when only one condition was met.
This fix ensures segments now correctly require all specified conditions to be satisfied before qualifying a user, restoring accurate targeting for campaigns.
Tier Report | Mismatch in ‘Spend to Next Tier’ Value | Bug fix (LB-4622)
Fixed discrepancy between tier report export and admin report
We’ve resolved an issue where the “Spend to Next Tier” value in the Tier Report export did not match the value shown in the Admin report, leading to inconsistencies in tier progression data.
Previously, some members were shown with Spend to Next Tier = 0 in the export—implying they should have moved up a tier—while the Admin report correctly showed a remaining balance. This mismatch caused confusion and inaccurate reporting of member tier status.
This fix ensures that the Tier Report export now reflects the correct "Spend to Next Tier" values consistent with the Admin, enabling accurate tier assessments and reporting.
Campaign Benefits| Not Removed on Full Return for HM Users| Bug fix (LB-4620)
Fixed issue where campaign benefits were not removed after full return in HM Group
We’ve resolved an issue where campaign benefit points were not removed from the HM Group when an order was fully returned, despite the campaign being configured with hold type: SELECT and purchase actions as milestones.
This occurred when the Points Deduction Behavior setting was configured as “Do Not Allow Negative Points OR Set Balance to Zero.” In such cases, benefit removal logic was not correctly triggered during full cancellations or returns.
This fix ensures that campaign benefits are now properly revoked from the HM Group when orders are fully returned under this configuration.
Campaign Benefits| Not Removed on Full Cancellation for HM Users| Bug fix (LB-4619)
Fixed issue where campaign benefits were not revoked after full order cancellation in HM Group
We’ve resolved an issue where campaign benefit points were not removed from the HM Group when an order was fully cancelled, even though the campaign used purchase actions as milestones and a SELECT hold type.
This occurred due to missing logic when the Points Deduction Behavior setting was configured as “Do Not Allow Negative Points OR Set Balance to Zero.” Under this condition, campaign benefits were not correctly revoked upon cancellation.
This fix ensures that campaign benefits are now properly removed from the HM Group when orders are fully cancelled under this configuration.
Points Not Issued | Orders | Bug fix (LB-4615)
Fixed issue where points were not issued for shipped orders
We’ve resolved an issue where points were not awarded for certain orders even after the products had been successfully shipped. This affected multiple customers, despite order and shipment data being correctly updated in the system.
This fix ensures that points are now correctly issued once the shipment status is updated for qualifying orders.
May 19, 2025
Actions API | Action Name Filtering Added to GET Actions API
Action Name Filtering Added to GET Actions API
Summary
We've added a new query parameter to the GET Actions API (/actions/{{status}}) that enables filtering actions by name.
New Parameter: action_name
- Type: String or List of Strings (comma-separated)
- Description: Retrieves specific actions by their names (case insensitive)
-
Examples:
action_name=Purchaseoraction_name=Purchase,Return
Value
This enhancement allows for more precise API requests when retrieving action information.
Rewards | Automated Rewards | Expanded Automate Reward Capabilities
Expanded Automate Reward Capabilities
Summary
We've enhanced the Automate Reward functionality to support "Available Points" as a triggering criterion, complementing the existing Lifetime Points and Purchase Amount options. This enhancement allows for automatic reward issuance whenever a member's available point balance reaches specified thresholds.
Key improvements include:
- Automatic reward issuance based on available point balance thresholds
- Intelligent handling of multiple reward triggers when large point balances are achieved
- Proper point accounting during purchases, returns, and reward redemptions
- Full compatibility with Multi-Template environments
- Removal of site ID restrictions, enabling this feature for all site types
Value
This enhancement automates reward distribution based on available points, eliminating manual processes and providing more flexible loyalty program options that can respond instantly to customer activity.
ESP Integrations | Bug fix
Fixed Connection Auto-Update Issue
We've resolved an issue where ESP connection details were being automatically saved without clicking the Update button. Previously, when editing connection authentication details and navigating between pages using the Continue and Back buttons, changes would be permanently saved even if the user didn't explicitly confirm the update. This fix ensures that connection modifications are only saved when users explicitly click the Update button with valid credentials.
Note: This improvement prevents accidental connection updates and ensures proper validation before saving changes.
Cart API | Bug fix (LB-4573)
Resolved Cart API Performance Issues
We've fixed intermittent timeout errors affecting the Cart API on development and staging environments. Previously, order submissions were experiencing extended response times and socket timeout exceptions, particularly when processing orders through the POST /api/3.0/cart endpoint. This optimization significantly improves response times and eliminates the timeout errors.
Hierarchy Management | Campaigns | Advanced Group Point Limits for Campaign Milestones and Benefits
Advanced Group Point Limits for Campaign Milestones and Benefits
Summary
We've enhanced the Hierarchy Management (HM) system to apply point limits at the campaign level for both milestones and benefits.
Value
This improvement ensures that campaign milestone rewards and benefit allocations now respect configured point limits when members are earning points through group activities.
Data Feed | GCP | Google Cloud Platform Connectivity for Data Feeds - Admin Dashboard Updates
Google Cloud Platform Connectivity for Data Feeds - Admin Dashboard Updates
We've implemented Admin Dashboard enhancements to support Google Cloud Platform connectivity for data feeds. These changes lay the groundwork for improved data transfer capabilities between our platform and GCP storage services.
Data Feed | GCP |Google Cloud Platform Data Connection Capability
Google Cloud Platform Data Connection Capability
We've established the foundational connectivity with Google Cloud Platform (GCP) for enhanced data management. This new capability includes connection establishment protocols, defined connection methods, and discovery mechanisms for data transfer with GCP storage services.
May 12, 2025
Cron Job | Automated Job | New Standard Anniversary Job
New Standard Anniversary Job
Summary
We've introduced a new automated job for tracking and rewarding member anniversaries. This cron job allows you to automatically trigger anniversary actions based on a member's opt-in date, similar to how birthday rewards function.
Key features of the Standard Anniversary Job:
- Identifies and processes anniversary dates based on the member's latest opt-in date (particularly useful when multiple opt-in dates exist)
- Triggers the configured customer anniversary action when the anniversary date is reached
- Fully compatible with Multi-Template (MT) environments
- Available across all sites without site ID restrictions
Value
This capability automatically celebrates member loyalty anniversaries, creating new engagement opportunities without manual intervention.
Member Report | Extended Attributes | Bug fix (LB-4631)
Resolved Extended Attribute Update Error
We've fixed an issue in the EU Azure production environment where users were unable to update extended attribute values for members. Previously, attempting to modify these values through the member report would trigger an "invalid parameter passed" error message, preventing any changes from being saved.
This fix ensures that users can successfully update extended attribute values for any member without encountering error messages. The solution has been thoroughly tested in both the EU Azure production environment and affected customer environments.
May 5, 2025
Integrations |Credentials | Enhanced Credential Security in Connections
Enhanced Credential Security in Connections
Summary
We've improved security in the Connection section by implementing password masking for authentication credentials. Authentication details are now hidden by default and displayed as asterisks to protect sensitive information from unauthorized viewing.
Key features include:
- Automatic masking of credentials when entered or displayed
- Toggle visibility with a convenient eye icon
- Improved security for sensitive connection information
Value
This enhancement helps protect your integration credentials while still allowing authorized users to verify information when needed.
Issuance Order Report | Bug fix (LB-4549)
Fixed Store Name Display in Issuance Order Report
We've resolved an issue where store names were either missing or incorrectly displayed in the Issuance Order Report and the exported Excel report. Previously, when creating users and orders through the Issuance API, the store name field would either not appear in the web interface or would show incorrect values when exported to Excel.
This fix ensures that:
- Store names appear correctly in the online Issuance Order Report
- Excel exports accurately display the proper store name associated with each transaction
Hold Points | Campaigns | Points API | Bug fix (LB-4608)
Corrected Hold Point Information in API Response
We've fixed an issue with inaccurate hold point values displayed in the Get Point Details API responses across various order states. Previously, when placing points on hold for campaign benefits, the API would show incorrect hold point values after order placement, full cancellation, and full shipment. The system was incorrectly doubling the hold point values at order placement and failing to properly reset them after order status changes.
This fix ensures that:
- Accurate hold point values are displayed immediately after order placement
- Hold points correctly reset to zero after full order cancellation
- Hold points properly clear after full order shipment
Hold Points | Multi-Template | Bug fix (LB-4609)
Fixed Hold Point Release Confirmation for Multi-Template Sites
We've resolved an issue specific to Multi-Template sites where the confirmation popup displayed incorrect information when releasing hold points through the Hold Points report. While the points were being released correctly, the confirmation message contained inaccurate details. This fix ensures that the popup displays the correct information when hold points are released on Multi-Template sites.
All Interaction Report | Issuance Order Report | Bug fix (LB-4616)
Fixed Point Consistency Across Reports
We've resolved an issue where the same transaction would display different point values across different reports or within the same report when using different filters. This fix ensures consistent point values are displayed for the same transaction across all reporting interfaces regardless of how the data is filtered.
Segment-Based Campaigns | Order API | Bug fix (LB-4623)
Resolved Order API Error with Segment-Based Campaigns
We've fixed an issue where the Order API would return an "Oops! Something went wrong" error message when processing orders with specific segment-based campaign configurations. The problem occurred when segments were defined using product category filters or product-specific conditions with certain purchase size configurations. This fix ensures that orders are processed correctly regardless of the segment criteria being used in associated campaigns.
Integrations | Klaviyo | Enhanced Klaviyo Integration with Reward Details Array
Enhanced Klaviyo Integration with Reward Details Array
Summary
We've added a powerful new field specifically for Klaviyo ESP integrations: "Reward Details in Array." This enhancement enables more sophisticated customer segmentation and personalization capabilities by transmitting comprehensive reward data from your loyalty program to Klaviyo.
The new array field includes detailed reward information such as:
- Reward category details (ID and name)
- Reward specifics (ID, name, required points, currency, and amount)
- Reward status information (claim status, redemption dates, expiration dates, and usage dates)
Value
This structured data format allows marketers to create advanced campaigns based on user reward activity and lifecycle, including eligibility notifications, claim confirmations, and usage reminders.
Badges API | External Rewards API | BETA
Standardized Issuance Source Details in Badge and Reward APIs
Summary
We've standardized how issuance source information is handled across Badge and External Reward APIs. Previously, there was inconsistency in how issuance details were presented when the source was a Journey versus manual assignment. This update introduces a unified structure using issuance_details with consistent fields across all related endpoints.
Updated API Payloads:
POST assign badge (/badges/{{badge_id}}/users/{{email_id}}/assign):
{
"badge_id": "{{badge_id}}",
"user_id": "{{email_id}}",
"issuance_details": {
"source_type": "Journey",
"source_details": {
"source_id": "journeyId",
"source_name": "JourneyName",
"notes": ""
}
}
}
POST assign reward (/rewards/{{reward_id}}/users/{{email_id}}/assign):
{
"reward_id": "{{reward_id}}",
"user_id": "{{email_id}}",
"benefit_status": "Awarded",
"issuance_details": {
"source_type": "Journey",
"source_details": {
"source_id": "JourneyId",
"source_name": "JourneyName",
"notes": ""
}
}
}
Note: The same issuance_details structure will now be returned consistently in GET /users/{{email_id}}/badges and GET /users/{{email_id}}/rewards/history responses. If you're using these APIs in your integration, please update your implementation to use these new payload structures.
Value
This standardization simplifies integration development and provides more consistent tracking of how badges and rewards are issued, regardless of whether they come from Journeys or manual assignments.
Point Calculations | Hold Points | Bug fix (LT-33917)
Fixed Point Calculation Issues with Hold Points and Purchase Limits
We've resolved interconnected issues affecting point calculations when purchase limits and hold points are used together. Previously, various scenarios involving the hold point system would display incorrect point values in APIs, reports, and the database. Specific fixes include:
- Corrected point allocation when using the “All Items from Order Ship Date” hold type with purchase limits
- Fixed available/awarded point calculations after order modifications (partial/full returns) when rewards are claimed between transactions
- Resolved discrepancies in hold point reporting across full shipping, partial shipping, returns, and cancellations
This comprehensive fix ensures consistent and accurate point calculations across all order scenarios when using purchase limits with any hold type configuration.
April 2025
April 28, 2025
Receipt Scanning | Receipt API | Receipts: API Submission
Receipts: API Submission
Summary
Receipts can now be submitted using our new Receipt API. This enhancement expands our receipt processing capabilities by providing a direct API method for receipt submissions, complementing the existing submission options (SMS, WhatsApp, Dashboard).
Value
This new API path opens up additional opportunities for omnichannel receipt collection and streamlined loyalty program participation.
Hierarchy Management | Hierarchy Management Report | Groups | Improved Group Member Management
Improved Group Member Management
Summary
We've addressed issues related to group member management in the admin dashboard:
- Fixed audit logging when adding members through the admin dashboard - Previously, the system wasn't generating audit logs for group behavior when members were added through the admin dashboard. This fix ensures proper audit trail creation for all member additions.
- Enhanced error messaging - We've updated the error message that appears when clicking the "Add Members" option without specifying a member. Instead of showing a "missing parameter" technical error, the system now displays the more user-friendly message “Please enter user ID.”
Value
These improvements support better tracking of group membership changes and provide clearer guidance when managing group members.
Multi-Point Bucket | Bug fix (LT-31615)
Fixed Campaign Benefit Data Persistence
We've resolved an issue on Multi-Point Bucket (MPB) sites where campaign benefit information wasn't properly updating across the system. Previously, when the Benefit Type was deselected in the Campaign Benefit Tab, the system would continue displaying the previously selected campaign points in the POST Action API and Campaign API responses. This fix ensures that campaign benefit details are accurately reflected in all APIs and the Admin Dashboard when configurations are changed.
Note: This correction provides more consistent behavior when managing campaign benefits on MPB sites.
Tiers V2 | BETA
Program Schedule Date Validation
We've added validation to ensure program schedule dates must be set in the future for a program to go live. If a past or current date is entered, an error message will now be displayed, helping prevent scheduling issues.
Tiers V2 | Tiers V2 Report | BETA
Enhanced Tier V2 Reporting
We've improved tier-related reporting features:
- Dashboard Report: Tier data now specifically displays for the selected live program
- Tier History Report: When viewing a live program, you can now see both past and current tiers for members (e.g., if a member was previously in Gold tier and has been downgraded to Silver, both tiers will be displayed)
Badges API | Bug Fix | BETA
Corrected Badge Requalification Limit in API
We've fixed an inconsistency in the Badges API response regarding requalification limits. Previously, when a badge was configured with "No Limit" in the Member Requalification section, the member_requalification_limit parameter would incorrectly return a value of "1" instead of being blank. This fix ensures the API accurately represents the badge configuration by returning a blank value for this parameter when "No Limit" is selected.
Note: This correction provides more accurate data for applications that rely on badge qualification settings.
Badges API | BETA
Streamlined Badges API Response
We've improved the GET /users/:User_UID/badges API by removing the redundant user_badge_status_image parameter from the response. This parameter didn't provide any additional value and has been removed to streamline the API response and prevent potential confusion for developers.
Segments | Bug fix (LT-33477)
Fixed Time Window Processing for Product-Based Segments
We've resolved an issue with segment application when using product-based criteria with specific time window settings. Previously, when a segment was based on an event set as "a product OR product category" with a time window set as "before," the segment would not be properly applied to eligible members when purchase details were set to "multiple." This fix ensures that segments correctly process time-based conditions for all product purchase scenarios, including multiple product purchases.
Data Feed | Multi-Template | Bug fix (LB-4449)
Fixed Template Selection Persistence in Data Feed
We've resolved an issue affecting multi-template sites when creating or updating data feeds. Previously, when "All Inactive Template" was selected from the dropdown menu, the system would incorrectly switch the selection to "All Active Template" after the data feed was created or updated. This fix ensures that the selected template option ("All Inactive Template") properly persists throughout the data feed configuration process.
ESP Integrations | Data Streams | Bug fix (INT20-12032)
Improved Connection Error Notifications
We've enhanced the error notification system for ESP connections. Previously, when data processing stopped due to an error (such as a deleted API key in the ESP account), the system would display an error notification for the DataStream but not for the associated Connection. This fix ensures that Connection status now properly displays error notifications in the UI when authentication or connectivity issues occur, matching the behavior already present for Data Streams.
Note: This improvement provides better visibility into the root cause of data transmission failures between Annex Cloud and ESP partners.
ESP Integrations | Rewards | Bug fix (INT20-12085)
Fixed Point Requirement Data Sent to ESPs via Data Stream
We've resolved an issue affecting the accuracy of reward data sent to ESPs (Email Service Providers). Previously, when reward-related parameters were mapped in the Data Stream and activities were processed, the "Points Required for Next Reward" value being sent to ESP partners was incorrect. This fix ensures that accurate point requirement data is consistently transmitted to ESPs, allowing for more precise targeting and messaging based on members' reward progress.
Integrations | Multi-Template | Bug fix (INT20-12109)
Improved Multi-Template Connection Validation
We've enhanced connection security for sites supporting multiple templates. Previously, it was possible to establish a connection by directly accessing a URL without selecting a template. This update ensures that connections cannot be created without a valid multi-template ID, preventing unauthorized or improperly configured connections.
Activity API | Hierarchy Management |Groups | Improved Group Dissolution Notifications
Improved Group Dissolution Notifications
Summary
We have enhanced the group dissolution process to improve transparency for all members. Previously, when a group was deleted, an activity was triggered only for the member who deleted the group (associated with Action ID 185). However, other members of the group were unable to view any activities related to this deletion, as they were no longer part of the group.
With this update, we are now tagging all active members of the group with the activity associated with Action ID 185 when a group is deleted. This ensures that all members have clear visibility into group dissolutions, promoting transparency in group transactions.
Note: This activity will be triggered automatically when a group is deleted and will be visible through the Activity API.
Value
Gain full transparency into group dissolutions—now all members can see when a group is deleted, ensuring a clearer activity history and reducing confusion around group-related actions.
April 23, 2025
Extended Attributes | Campaigns | Campaign Extended Attributes
Campaign Extended Attributes
Summary
We now support extended attributes for our Campaign feature under Additional Loyalty Settings > Extended Attributes. Once the campaign extended attribute is defined, it will be displayed in the Campaign configuration dashboard on the General Information tab. These will serve as informational fields to make distinctions between campaigns based on specific attributes that can be defined and customized based on your business needs.
Value
Extended campaign attributes provide customizable fields for tagging and differentiating campaigns based on your specific business criteria, allowing teams to better organize and quickly identify campaign types. This eliminates confusion when managing multiple campaigns and creates standardized classification that can be tailored to match your unique operational workflow.
Hierarchy Management API | Groups | Enhanced Group Configuration and Permissions
Enhanced Group Configuration and Permissions
Summary
We've introduced comprehensive group-level permission controls through new parameters in the POST and PATCH methods of the /group API. These enhancements enable administrators to set and update various rules and permissions for groups during both creation and updating processes. Key configuration options include:
- Auto-transfer points when joining groups
- Automatic group points redemption controls
- Group invitation acceptance requirements
- Restrictions on members leaving groups
- Group dissolution permission settings
- Points distribution methods for group deactivation
- Maximum member limits for groups
Note: These settings are available when the "Enable Group Level Permission" flag is activated.
Parameters:
"allowAutoTransferPointsOnJoining": "no",
"enableAutoGroupPointsRedemption": "no",
"groupInvitationAcceptanceRequired": "no",
"restrictUserToLeaveGroup": "no",
"groupDissolvePermissions": "owner",
"pointsDistributionOnGroupDeactivation": "EQUAL",
"maxMemberToGroup": "no",
"maxMemberLimit": 41
Value
Loyalty members have the ability to establish various rules and permissions for their groups during both the creation and updating processes. These permissions can differ significantly from one group to another to provide members with the conditions that best fit their group needs.
Hierarchy Management Report | Groups | Enhanced Group-Level Permissions and Rules
Enhanced Group-Level Permissions and Rules
Summary
We have implemented new flags and fields in the Hierarchy Management Report → Create New Group to establish group-level permissions and rules. This enhancement enables administrators to define various rules and permissions when creating a new group. Additionally, these settings can be modified later through the provided configuration options. The loyalty administrator will have the capability to set and configure group-level permissions for member requests, and existing groups can be edited or modified as needed.

Value
Permissions can differ significantly from one group to another to provide members with the conditions that best fit their group needs.
Hierarchy Management Report | Groups | Advanced Group Member Management in the Report Dashboard
Advanced Group Member Management in the Report Dashboard
Summary
We have introduced additional capabilities in the Hierarchy Management Report to edit member roles, accept/decline invitations, and remove members from the group. This functionality enables loyalty administrators to modify member roles and accept or decline group invitations on behalf of members. Furthermore, it allows for the removal of members from the group as needed. Previously, these actions were possible only through the API.
Value
This functionality enables loyalty administrators to modify member roles and accept or decline group invitations on behalf of members directly through the report dashboard without the use of API calls. Ultimately, making it easier for administrators to manage hierarchy management groups.
Hierarchy Management Report | Groups | Historical Group Data Access
Historical Group Data Access
Summary
We have introduced a new feature that allows users to view group information and activities even after a group has been marked as deleted. Previously, when a group was deleted, its details and activities became completely inaccessible. This enhancement provides the capability to access historical data and transaction records of deleted groups. Please note that this is read-only access; the group itself cannot be restored, and no existing members will be able to interact with it.
Note: The API and report will display group details with a status of "DELETED."
Example in Hierarchy Management Report:

Example API response:
{
"siteId": "169368240",
"groupId": "282",
"groupStatus": "DELETED",
"groupAvailablePoints": 0,
"groupExpiredPoints": 0,
"groupRedeemedPoints": 0,
"groupActivity": [
{
"actionId": "185",
"actionName": "HM Group Dissolve",
"memberId": "0000353936",
"emailAddress": "",
"firstName": "SA",
"lastName": "Annexcloud",
"activity": "DEBIT",
"groupCredit": 0,
"groupDebit": -750,
"pointStatus": "Deducted",
"pointType": "Standard",
"reason": "",
"displayText": "HM Group Dissolve",
"createDate": "2025-04-17T11:28:16+0000"
}
],
"pages": 1,
"currentPage": 1,
"totalActivityCount": 1
}
Value
This enhancement ensures continued access to historical group data for auditing, reporting, and analysis—supporting better decision-making and data integrity even after a group has been deleted.
Hierarchy Management Report | Groups | Advanced Report Filtering Options
Advanced Report Filtering Options
Summary
We have introduced new capabilities to filter groups based on Member Name, Member Email, Group Status, and Member Roles. This enhancement significantly improves the effectiveness of group searches, allowing administrators to quickly locate specific groups based on multiple criteria.
Note: These additional filtering options are automatically available in the existing report interface.
Value
Quickly find the groups you need by filtering based on Member Name, Member Email, Group Status, and Member Roles—making it easier to manage and analyze group data efficiently.
Hierarchy Management API | User API | Groups | Expanded Group Information in APIs
Expanded Group Information in APIs
Summary
We have added new parameters to the GET group info API, GET group activity API, and GET user API. This feature offers comprehensive details about group points in a single request, while also providing information on member roles.
Key additions include:
- GET /group and /group/{groupId}/activity now include groupExpiredPoints and groupRedeemedPoints
- GET /users now includes userRole information
Note: These additional parameters are accessible through the existing API endpoints.
Value
Access richer group and user insights in fewer calls. With the added parameters, you can now retrieve point activity and role information more efficiently—streamlining reporting, analysis, and integration workflows.
April 15, 2025
Hierarchy Management Groups | Bug fix (LB-4586)
Points Expiration Date Missing for Points After Group Dissolution
We resolved an issue where group points transferred to a member after they dissolved their group were missing the expiration date. Previously, when a group was dissolved, the points transferred to the individual member who dissolved the group would not carry over their expiration information. This enhancement ensures that all group points maintain their proper expiration dates even after group dissolution.
Refer a Friend | Multi-Template | Bug fix (LB-4568)
Resolved Point Allocation Issue for Referral Sign-ups on Multi-Template Sites
We fixed an issue specific to multi-template sites where referrers and referees were not receiving their designated points for successful referral sign-ups. This resolution ensures that points are now properly awarded for both action ID 151 (referee sign-up) and action ID 152 (referrer reward) upon successful completion of the referral process.
Refer a Friend | Multi-Template | Bug fix (LB-4567)
Fixed Cross-Template Referral Points Issue
We resolved an inconsistency in the referral system when referrer and referee users belong to different templates. Previously, when a referee from a different template than their referrer placed an order, only the referee would receive points (action ID 166) while the referrer would not receive their expected points (action ID 125). This fix ensures proper point allocation for both parties in cross-template referral scenarios.
Activity API | Bug fix (LB-4551)
Resolved Gateway Timeout in Activity API
We optimized the Activity API to properly handle complex filtering combinations. Previously, requests with multiple actionId_in parameters could trigger a gateway timeout when combined with other filters. This improvement ensures reliable performance for all Activity API calls, even with extensive filtering criteria.
Extended User Attributes | User API | Bug fix (LB-4466)
Enhanced API Validation for Extended User Attributes
We improved the POST:/user API to properly enforce validation rules for mandatory extended user attributes. Previously, user accounts could be created via API without providing values for attributes marked as mandatory in the configuration. This fix ensures all required user profile information is consistently collected regardless of the creation method.
Order API | Points | Bug fix (LB-4288)
Corrected Points Refund Calculation for Partially Shipped, Then Canceled Orders
We fixed an issue with points refund calculations that occurred in a specific order scenario. Previously, when an order was partially shipped and then fully canceled for the remaining items, the system was refunding all original points instead of just the points for the canceled portion. This fix ensures that only the appropriate amount of points are refunded when canceling remaining items after a partial shipment.
April 7, 2025
Tiers V2 API | BETA
Tier V2 API
The Tiers V2 API has been updated to include retention conditions, upgrade conditions, downgrade conditions and an error-tracking log.
Tiers V2 | BETA
Tier V2 Reports
We have made the Current Tier Report and the Tier History Report available to beta testers. Using the Current Tier Report, administrators can manually assign member tiers. Both reports can be filtered and/or exported to refine the data.
Segments | Bug fix (LB-4566)
Segment Date Range Changing Upon Saving Configuration
We resolved the issue in the segmentation configuration process to ensure date ranges are consistently preserved exactly as entered. Previously, some users noticed that date ranges could appear differently after saving segment configurations in the Annex Cloud platform. This improvement ensures all segment date ranges are saved with complete accuracy.
Automated Data Imports | Standardization of Format for Coupon Code Importing
Standardization of Format for Coupon Code Importing
Summary
This enhancement introduces a streamlined process for uploading coupon codes, automating the task, and eliminating the need for manual and repetitive efforts. Additionally, it allows uploading coupon codes for multiple rewards through a single file. With this enhancement, we can efficiently manage duplications, append new coupon codes to the existing set, or replace old codes with new ones.
Value
The standardized format for importing coupon codes into Annex Cloud via automated jobs will streamline operations and reduce errors, allowing for faster campaign deployment.
For more details on this enhancement, please visit the following Annex Cloud documentation page:
Refer-a-Friend | Points for Referrer (Auto Assign and Minimum Spend Amount)
Points for Referrer (Auto Assign and Minimum Spend Amount)
Summary
- The Auto Assign Points to Referrer flag has been added as an option when configuring Action 125 (Invite Code Share Refer Back Purchase).
If this flag is enabled, the referrer code will only need to be entered at the time the loyalty member is created using the User API. The code will not need to be included in the Order API when the referee goes to make a purchase. Once the referee makes their first valid purchase, the system will automatically retrieve the necessary information, and the points will be credited to the referrer based on the criteria set by the administrator.
2. When configuring Action 125, a Minimum Spend Amount field will appear on the Point Limitations page of the Action Settings.
This field allows you to set a minimum amount which a referee must spend in order for the referrer to receive reward points. For example, if the Minimum Spend Amount is set to $50, then the referrer will earn the reward points designated by the administrator only if the referee spends $50 or more.
Use Case(s):
Auto Assign Points to Referrer: This update simplifies the referral process by eliminating a key friction point.
- It reduces customer drop-off during the purchase process (no need for referees to remember and enter codes)
- It decreases the chance of missed referral rewards due to forgotten codes
- It creates a smoother experience for both the referrer and referee
Minimum Spend Amount: This update gives clients more control over their referral program economics by:
- Ensuring referral rewards are only given for meaningful purchases
- Allowing them to align referral costs with customer acquisition value
- Helping prevent rewards abuse from very small purchases
- Enabling them to encourage higher initial spend from new customers
- Providing flexibility to adjust the threshold based on their specific product pricing and margins
Value
Auto Assign Points to Referrer
This feature eliminates the need for referral code entry at checkout, reducing friction in the purchase journey while ensuring referrers always get credited—resulting in higher referral completion rates and improved customer satisfaction.
Minimum Spend Amount
This feature ensures you're rewarding referrals that drive meaningful revenue, allowing you to control program costs while incentivizing higher-value first purchases from new customers.
For more details on this enhancement, please visit the following Annex Cloud documentation page:
Products API | Show Flat Points and Campaign Ratio
Summary
Show Flat Points and Campaign Ratio
We have fixed the calculation for the potential points of products in the Product APIs, and it is now aligned with the Order API calculations.
We are not introducing a new parameter nor removing any existing parameter. The only change is in the response of the parameter named "calculation".
Previous response of this parameter in the Product API:
"calculation": "purchase ratio (2) * product ratio () * tier ratio () * sale amount (100) * quantity (1) [auto_delivery_overwrite=0] "
New response of this parameter when the above purchase configuration is set:
"calculation": "flat points (100) * quantity (2)",
"calculation": "purchase ratio (3) * tier ratio (2) * flat points (100) * quantity (2)"
To summarize, the flat points text was not there previously, which we are adding now. Additionally, we will only display dynamic, applicable text, rather than static text.
Use Case:
Purchase Action Setting
Purchase Point Type = Only Flat Points
When this configuration is set for the Purchase action, the points for a purchase are calculated based on the flat points defined for the products in the PCM only with applicable ratios.
Value
By correctly applying campaign ratios to PCM flat points in the API responses, customers see the exact loyalty rewards they'll earn while shopping—not just at checkout. This consistency across all touchpoints eliminates confusion, builds trust in the loyalty program, and helps members make more informed purchasing decisions with complete visibility into their potential rewards.
Points API | Include storeId When Crediting Points
Include storeId When Crediting Points
Summary
The storeId parameter can now be included in the request body when crediting ("activity": "CREDIT") points to a member using the POST:/points method.
Use Case(s):
storeId can be passed with any credit or debit activity and same will be visible in the interaction report and user activity API.
If the storeId exists in our store metadata then the system will return all the additional store information as well, if available.
Value
When crediting points to a member via the POST:/points API method, you can now include the specific storeId parameter to precisely track which physical locations or digital storefronts are driving engagement. This enhanced attribution enables more granular analytics on store performance, allows for location-specific loyalty campaigns, and provides deeper insights into which stores are most effectively converting transactions into loyalty program participation.
App-Based Integration | One View Commerce | Real Time Order data exchange between Annex Cloud and OVC
Real Time Order data exchange between Annex Cloud and OVC
Integration Type: App-Based
The enhancement allows Annex Cloud to read the order data from One View Commerce in real time. We have used a lambda function in AWS for reading the order data in real time, which has resulted in not needing to use cron jobs.
April 2, 2025
User Journeys| BETA
Event Group Enhancements
We introduced powerful new Event Group functionality that allows grouping multiple events into a single journey step:
- Unordered Event Group with Cumulative Count: Configure events where a total cumulative count across multiple actions completes a step

- Unordered Event Group with Individual Counts: Define individual repetition requirements for each event with support for OR logic within sub-groups and AND logic between sub-groups

User Journeys | Bug Fix | BETA
Graceful Deletion of Journeys
We resolved a bug where deleting events and then recreating new events with the same name would cause issues within journeys. Event deletion will no longer interfere with the creation of new events using the same name.
User Journeys | Journey API | BETA
Enhanced Journey API Filtering
We've added support for an optional journey_id parameter in the GET /users/{user_id}/journeys endpoint. This allows querying and returning data for a specific journey associated with a user.
Example Usage:
GET /api/3.0/users/user_uid/journeys?journey_id=e077d862-4663-4a21-a848-295eb97507c3
User Journeys | Event Ingestion API | BETA
New Flexible Event Ingestion API
Introducing a new API endpoint that enables customers to send flexible events from third-party systems. This data can be leveraged in real-time across journeys and other loyalty tactics. The API supports a flexible schema, allowing you to pass custom data attributes that can be used for comparison, calculations, or conditions within journey steps.
Example Payload:
{
"event_name": "name of event of be tracked",
"event_id": "unique alphanumeric id for events",
"event_datetime_utc": "timestamp for the event",
"user_id": "loyalty user id",
"data": { // the parameters in the data elements can flexible and defined by the customer as needed
"numeric_param": 10, // to sum across events for a journey step completion
"text_param": "United States", // to enable text matching operation in a journey step
"boolean_param": true, // checking a boolean expression
"date_time_param": "2025-04-09T01:52:44.755Z" // checking frequencey or recurrance
},
"metadata": {
"brand": "Brand A",
"product": "se-SE",
"source": "customer_support",
"campaign_type": "loyalty activity"
}
}
March 2025
March 24, 2025
Points API | Hierarchy Management | Option to Redeem Individual or Group Points
Option to Redeem Individual or Group Points
Summary
Previously, the only way members could redeem group points was by turning the Enable Auto Group Points Redemption toggle to ON, in the Hierarchy Management settings. If this toggle is ON, then members can only redeem group points.
With this update, we have made point redemption more flexible. Now, if the Enable Auto Group Points Redemption toggle is set to OFF, members of the group can redeem their individual points, or the Group ID can be passed in the POST-Points API call to redeem points from the group point bank.
Example:
API Endpoint: POST:/points
Individual Points Redemption Sample Payload:
{
"id": "customer@gmail.com",
"rewardId": "650765",
"debit": "100",
"activity": "DEBIT",
"reason": "claim reward"
}
- From this request, 100 points from the individual points balance will be debited.
Group Points Redemption Sample Payload:
{
"id": "customer@gmail.com",
"rewardId": "650765",
"debit": "100",
"activity": "DEBIT",
"groupId": "1234",
"reason": "claim reward"
}
- From this request, 100 points from the group points balance will be debited.
Value
The dual redemption option gives members freedom to choose between personal or group point balances at checkout. This flexibility removes redemption barriers when individual balances fall short, increases purchasing power through access to pooled resources, and maintains personal autonomy while enabling group benefits. The result: higher redemption rates, improved program satisfaction, and a more seamless customer experience that accommodates both individual preferences and collective advantages.
Points API | Hierarchy Management | Group Points Transfer to Individual Members
Group Points Transfer to Individual Members
Summary
Using the (POST:/points) method, members of a hierarchy management group can transfer points to individual members of the group using action ID 176.
If the Enable Auto Group Points Redemption toggle is set to ON, all points transferred to members will automatically come from the group point bank.
If the Enable Auto Group Points Redemption toggle is set to OFF, members of the group can transfer their individual points, or the Group ID can be passed in the POST:/points API call to transfer points from the group point bank.
Examples:
API Endpoint: POST:/points
The Enable Auto Group Points Redemption toggle is set to ON:
{
"id": "Sender123",
"actionId": "176",
"activity": "DEBIT",
"debit": 100,
"reason": "Group Points Transfer",
"recipientData": {
"recipientId": "Member123"
}
}
- From this request, 100 points from the group’s points balance will be transferred to Member 123.
The Enable Auto Group Points Redemption toggle is set to OFF:
1. A group member wants to transfer points from their individual bank to another member:
{
"id": "Sender123",
"actionId": "176",
"activity": "DEBIT",
"debit": 100,
"reason": "Group Points Transfer",
"recipientData": {
"recipientId": "Member123"
}
}
- From this request, 100 points from the individual's points balance will be transferred to Member 123.
2. A group member wants to transfer points from the group bank to another member.
{
"id": "Sender123",
"actionId": "176",
"activity": "DEBIT",
"debit": 100,
"reason": "Group Points Transfer",
"groupId":"467",
"recipientData": {
"recipientId": "Member123"
}
}
- From this request, 100 points from the group's points balance will be transferred to Member 123 because the group ID was added in the request.
Value
The ability to transfer points from a shared group bank to individual members unlocks greater flexibility and personalization within loyalty programs. Members can now strategically allocate pooled rewards to whoever needs them most—whether it's gifting points to a spouse for their anniversary purchase, distributing points to a team member for business travel, or allowing the family points-saver to treat themselves. This enhanced control strengthens program engagement by accommodating real-world relationship dynamics, encouraging collaborative point-earning behavior, and creating meaningful moments when members can benefit individually from their collective loyalty.
March 3, 2025
Receipt Scanning | SMS/WhatsApp Receipt Submission
SMS/WhatsApp Receipt Submission
Summary
This functionality allows loyalty members to submit receipts via a unique phone number (generated via Twilio). The receipt is then filtered and verified in the database, and once confirmed, points are awarded.
The Receipt Report and Moderation Report have been updated to include the Receipt Source field to indicate the method in which the receipt was uploaded (SMS, WhatsApp, or Dashboard).
For more details on this enhancement, please visit the following Annex Cloud documentation pages:
Value
Members can now submit receipts instantly via SMS or WhatsApp by simply taking a photo and sending it to a dedicated number, eliminating the need to save receipts and log into a dashboard later. This mobile-first approach integrates seamlessly with members' everyday messaging habits, making it significantly easier to participate in the loyalty program and earn points for their purchases.
Issuance API | Validation on Order Return
Validation on Order Return
Summary
- The API now checks the "Points Adjustment and Deductions" setting in the loyalty configuration.
- Supports individual member and group hierarchy point validation
- Returns clear validation messages based on the loyalty configuration
For more details on this enhancement, please visit the following Annex Cloud documentation pages:
Value
This update gives businesses more control over their loyalty program by adding flexible point validation options during returns via the Issuance API. Businesses leveraging this API can choose how their system handles returns based on available point balances, allowing them to customize their loyalty experience.