For the complete documentation index, see llms.txt. This page is also available as Markdown.

2026

Keep up to date with all released features and improvements!

July 2026

New FeatureEnhancement

🏷️ Custom Attributes on Campaign-Generated Unit Transfers

Point transfers created automatically by campaign "Add Units" effects can now carry custom attributes. Attributes are defined in the campaign configuration and are automatically applied to every transfer the campaign generates.

Why it matters: Reporting and reconciliation pipelines that need to tag point movements with business metadata — such as campaign type, budget category, or source — can now receive that context directly on campaign-generated transfers, without relying on manual transfers or post-processing.

👉 Learn more about Campaigns

More July updates

⚙️ Enhanced

  • Member timeline, Audit Logs, and Custom Events — Default date range extended from 30 to 60 days; a new "All" option in the timeline view lets admins see a member's full history without a date limit

  • Navigation RBAC — Menu items that a user does not have VIEW permission for are now hidden from the navigation

🛠️ Fixed

  • Segment member count remaining incorrect after a member is deleted when incremental segment statistics are enabled


June 2026

⚡ Points Were Activated Campaign Trigger

Campaigns can now fire automatically the moment a member's pending unit transfers transition to active. Use this trigger to reward members as soon as enough stamps clear, kick off a follow-up campaign, or push any downstream workflow that depends on freshly activated points.

Why it matters: Loyalty workflows that previously had to poll for balance changes or use workarounds can now react instantly to the activation event — enabling more responsive, event-driven experiences without custom integration overhead.

👉 Learn more about Campaigns

Enhancement

🔄 Cancel Order Support

Return transactions can now automatically cancel the associated unit transfers, reversing points earned on the original purchase when a return is processed.

Why it matters: Loyalty programs handling product returns no longer need manual point corrections — submitting a return transaction triggers automatic reversal of the points, keeping member balances accurate without any extra admin work.

👉 Learn more about Campaigns

Enhancement

🏆 Leaderboard Sub-Groups

Leaderboards can now optionally group participants into independent sub-rankings by address field (postal code, city, province, or country) or by a custom attribute. Each group maintains its own Top-1000 ranking and its own reward distribution.

Why it matters: You can run localized competitions within a single leaderboard campaign — members compete against peers in their city or group rather than the entire member base, driving more relevant engagement.

👉 Learn more about Leaderboards

More June updates

⚙️ Enhanced

  • Unit Transfers list — Removed "Expired On" column and added descriptive tooltips to column headers for improved readability

🛠️ Fixed

  • Challenge edit form — trigger condition value disappearing when the form is re-opened for editing

  • Unit transfer timestamps — timezone conversion issue affecting microsecond-precision sorting

  • Segment form — incorrect layout for "Custom event within last N days" criterion

  • Admin panel — infinite React update loop causing crashes on certain member views

  • Webhook PUT request — false validation error raised incorrectly on update

  • Member Overview — Latest Activity panel not refreshing when the filter is changed

  • PATCH Member API — 409 Conflict error on custom field update caused by a duplicate key violation


May 2026

IntegrationNew Feature

WalletBalanceUpdated Webhook

A new WalletBalanceUpdated webhook event fires whenever a member's wallet balance changes, enabling real-time downstream integrations to stay in sync without polling.

Why it matters: Any system that tracks points balances externally — mobile apps, CRMs, data warehouses — can now react instantly to wallet changes instead of polling or reconciling.

👉 Learn more about Webhooks

More May updates

⚙️ Enhanced

  • "Show legacy campaigns" toggle — Campaigns listing now defaults to hiding migrated legacy campaigns; use the toggle to show them when needed

  • Spanish translations — Missing Spanish UI strings have been added across the admin panel

🛠️ Fixed

  • Pagination reset sort order to oldest-first when navigating to next page across multiple list views

  • Validation message not shown on invalid Custom Attribute keys on member profile

  • "Name" filter on Tier Sets list was not working correctly

  • Static segments not rebuilding on recalculation trigger

  • S3 challenge progress export — total count mismatch in reconciliation reports (count was including challenge progresses that the export excluded)


April 2026

New FeatureEnhancement

⏱️ Unit Transfers Mass Actions — Set/Delete Expiration Date

Admins can now set or remove expiration dates on multiple unit transfers at once using mass actions, directly from the transfers list.

Why it matters: Managing expiry across large member bases previously required individual edits. This change makes bulk expiry management practical at scale.

👉 Learn more about Managing Unit Transfers

More April updates

🆕 Added

  • "Copy to different tenant" for Challenges — Quickly replicate challenge configurations across tenants from the Challenges listing

  • "Challenges" tab in Config duplication — Challenges are now included in the Global Management config duplication workflow

  • "Download JSON" for Challenges — Export challenge configurations as JSON directly from the listing view

  • Card number field hint — When LCN auto-generation is enabled, the card number field displays as disabled with an explanatory hint in Member form

  • Global validation for Custom Attributes — Empty values are now blocked on save across all Custom Attribute inputs

⚙️ Enhanced

  • "Migrated" pill moved to Name column — In the Campaigns listing, the pill indicating a migrated Referral campaign now appears next to the campaign name (with a tooltip link to the corresponding Challenge)

  • Hide Custom Fields section in Member form when no custom fields are configured

  • Badge icon updated in Badges empty state view

  • Migration Guide documentation for Achievements → Challenges

🛠️ Fixed

  • Event frequency limit displayed incorrectly on single Challenge view when set to "1 in total"

  • Transaction UUID shown instead of Document Number on single transaction view

  • Empty string values were incorrectly accepted for Labels in PATCH Member API

  • Challenge progress not refreshed after adding a transaction for a migrated achievement campaign

  • Incorrect calculation of cumulative earned units in Tier Progress for member

  • Missing date interval filter on member's custom events view

  • Wallet Type detail view now displays the correct wallet name

  • Challenge campaigns no longer incorrectly shown in direct campaign list with broken editing

  • Fixed reward coupon creation/editing with "on a specific date" expiration rule

  • Fortune Wheel import option no longer selectable (not supported, but was available in UI)


March 2026

Enhancement

🔄 Achievements → Challenges Migration & Navigation Redesign

The major Achievements-to-Challenges rebranding continues with migration tooling, new navigation layout, and enhanced challenge management. A completely redesigned top navigation bar improves the overall admin panel experience.

Why it matters: The transition from "Achievements" to "Challenges" provides clearer terminology and improved management workflows. The new navigation makes it faster to find what you need.

👉 Learn more about Challenges

Integration

🔐 HMAC Webhook Signatures

Webhook security gets a major upgrade with HMAC signature support for verifying webhook authenticity.

Why it matters: HMAC signatures let you cryptographically verify that webhook payloads genuinely come from Open Loyalty, protecting against spoofed events.

👉 Learn more about HMAC Webhook Signature

Enhancement

🏅 Badges Integration with Campaign Effects

Badges system integrates with campaign effects, allowing badges to be automatically awarded through campaign rules. Challenges also get enhanced visibility controls and migration readiness improvements.

👉 Learn more about Badges Integration with Campaign Effects

Enhancement

🔢 Loyalty Card Auto-Generator

A new configuration option enables automatic generation of Loyalty Card Numbers (LCN) for members, removing the need for manual entry or external systems.

Why it matters: Reduces friction in member enrollment and eliminates duplicate or invalid card numbers.

👉 Learn more about Loyalty Card Auto-Generator

More March updates

🆕 Added

  • Date validation on API ingestion — Prevents future-dated or invalid timestamps from entering the system

  • Issued Reward references in Unit Transfer webhook and API — Unit transfer webhooks now include associated reward details

  • High-precision timestamps for Points History — Deterministic sorting with sequence fields for transfer records

  • Active Campaign limits per Tenant — Configure maximum active campaigns per tenant with exclusions for gamification modules

  • Per-store wallet creation limit — Prevent unlimited wallet type proliferation

  • Optional Comment Field for Admin P2P Point Transfers — Admins can add context when performing peer-to-peer transfers

  • Soft delete for Badges — Badges can now be soft-deleted with feature flag for incremental badges

🛠️ Fixed

  • Custom Events: Fixed incorrect mapping of attributes to 'false' instead of text value

  • Fixed unitPluralName incorrect value in GET /api/points response

  • Fixed race condition allowing multiple redemptions of the same QR code

  • DateTime display fix on purchasedAt column in transactions

  • Fixed Allow spaces in Custom Attributes keys during points import and member PATCH updates

  • Missing "Find by badge name" translation restored

  • Fixed reward image upload limit (2MB enforced correctly)

  • Fixed incorrect documentType field mapping in S3 Transaction exports

  • Fixed reward webhook payload size issue when updating coupons


February 2026

New Feature

🎮 Challenges Rebranding

The full rebranding from "Achievements" to "Challenges" lands across the UI, API, and data model. Admins can now manually edit member challenge progress.

Why it matters: The "Challenges" terminology better communicates the feature's purpose. Manual progress editing lets support teams resolve edge cases without workarounds.

👉 Learn more about Challenges

Enhancement

📝 Custom Attributes for Manual Unit Transfers

Manual unit transfers can now carry custom attributes — opening up integration possibilities for external systems.

Why it matters: Custom attributes on transfers let you tag point movements with metadata (e.g., reason codes, campaign IDs).

👉 Learn more about Custom Attributes for Manual Unit Transfers

More February updates

🆕 Added

  • Partial Custom Attributes Updates via PATCH — Member custom attributes can be partially updated without overwriting others

⚙️ Enhanced

  • Achievement progress export refactored with improved date tracking

  • Challenge progress endpoint filtering improvements

  • Password recovery copy updated

  • Webhook contract unified

🛠️ Fixed

  • Fixed reward webhook payload size issue

  • Fixed expired unit transfer created past expiry date upon unlocking

  • Fixed static segment recalculation

  • Fixed leaderboard calculation bug in February

  • Fixed reward webhook payload overflow when updating coupons


January 2026

New Feature

📦 Campaign Code Import

A new import feature for external redemption codes brings campaign codes into the platform.

Why it matters: Campaign code import allows you to use the generated list of codes (e.g., already printed out on your products).

👉 Learn more about Campaign Code Import

More January updates

🆕 Added

  • Tiers from Targeted Tiersets in Rewards — Add tiers from any targeted tier set to reward targeting selection

⚙️ Enhanced

  • Navigation tabs renamed: Achievements → Challenges (main nav and single member view)

  • Segments protected against empty conditions

  • Added updatedAt and createdAt columns to Segment Export files

  • Transfer list filtering logic aligned with mass actions payload

  • Segment criterion names updated to challenge terminology

  • Analytics/dashboard data display and chart fixes

🛠️ Fixed

  • Fixed 400 error when creating Segment with Achievement Completion condition

  • Fixed missing conditions display for Achievement Completion campaigns

  • Fixed incorrect error message for Transaction target attribute validation in Goals

  • Fixed rewards targeted to non-default TierSet tiers not visible for members

  • Fixed static segment recalculation

  • Fixed Fortune Wheel Internal Server Error when unit effect exceeds wallet limit

  • Fixed inconsistency in Members List Filtering UI — estimated count from API now displayed on frontend


This page covers 2026 releases. For earlier releases, see What's New in 2025.

Last updated

Was this helpful?