Skip to main content

Console Mid-March release

David Sevenoaks
Co-Founder

Our March release introduces a new way to schedule rewards, clearer navigation and a new way to view product variants.

Scheduled rewards

  • You can now create Scheduled rewards campaigns directly from Campaign Groups.
  • Scheduled rewards can issue vouchers or wallet entries once, or on daily, weekly, or monthly schedules.
  • Each scheduled task can target all customers, a segment, or a CSV list.
  • Campaign overviews now show scheduled task timing, audience, and status so it is easier to check whether a campaign is ready to activate.
  • Scheduled rewards campaigns are designed to replace the "Issue vouchers" and "Issue Wallet Entries" functionality.

Scheduled rewards

Campaigns, tasks, and settings

  • Campaign lists now have stronger filtering and sorting, including title, barcode, tag, and type filters.
  • Task pages now support clearer status and type filtering, pagination for larger task lists, and faster status refresh while tasks are running.
  • The Settings page has been reorganized into clearer sections for configuration, integrations, mobile wallets, and scheduled program tasks.

Catalog and transactions

  • The Catalog navigation now separates All products and All variants.
  • Product variant pages show clearer barcode details and improved reporting layouts.
  • Resource tables now link more records directly to their related customer, store, product, campaign, voucher, or transaction page.
  • Transactions now support Till Code in tables, filters, and exports.

Other improvements

  • We also made a range of smaller UI, navigation, and data-display improvements across Console.

Enjoy!

Console Mid-February release

David Sevenoaks
Co-Founder

This release introduces a refreshed campaign management experience, change tracking, voucher redemption restrictions, and an improved calendar for better planning.

Campaign form overhaul

  • A redesigned, sectioned layout with sticky headers and smoother in-form navigation.
  • Clearer form sections with improved save controls.
  • A new "Tips & guidance" panel that shows activation tasks and links directly to relevant sections.

Targeting feature improvements

  • Business targeting now uses improved region/format multi-selects with clearer help text.
  • Store, channel, and currency targeting layouts are now more consistent and responsive.

New campaign form

New voucher redemption restrictions

  • You can now apply channel and store redemption restrictions to vouchers.

Voucher targeting

Campaign change history (BETA)

  • We added a new Change history tab on campaign pages.
  • You can now see what changed, when it changed, and who changed it.
  • Historical versions now include highlighted field-level differences for easier auditing.

Campaign groups

  • Campaign Groups now has separate List and Calendar views.
  • We added a new year-style calendar view, including fullscreen mode, to improve campaign planning.
  • We added bulk actions to Enable all campaigns and Disable all campaigns within a group, with progress feedback and activation checks.
  • We improved empty states and general Campaign Group navigation consistency.

Campaign group calendar Campaign group activate all

Reporting

  • We added a new Campaign group audit report.
  • The report includes campaign group breakdowns by region, format, and campaign type, with CSV export support.

Other

  • We improved discount value display consistency across campaign lists and overviews.
  • We fixed a range of campaign form, barcode assignment, and navigation issues.
  • Additional UI and under-the-hood performance improvements were made across Campaigns and Analytics.

Enjoy!

API February 2026 improvements (1.6.3)

Sam Critchley
Co-Founder
  • Added phone number validation and duplicate checks in add-user and alter-user endpoints.
  • Added composable campaign and reward method foundations for modular campaign configuration.
  • Added location search for the Resources API Business resource.
  • Added text search support across multiple properties for get-businesses and the Resources API using search[*] syntax.
  • Added task-triggered campaign support.
  • Added spend basket-level campaign assignments.
  • Fixed add-user so admin user creation now works correctly when an end-user with the same username already exists in the chain.
  • Changed alter-user so API version 1.6.3 and above requires user_id when updating admin users by username.
  • Improved alter-user so username clash checks now run in the target user's app when both user_id and username are supplied.

Console January release

David Sevenoaks
Co-Founder

Our January release focuses on a smoother login experience, clearer date filtering, and navigation improvements across tasks and campaigns.

Login and security

  • A new login screen now supports two-factor authentication with code entry, resend, and clearer error messages.
  • Authentication and session handling have been upgraded behind the scenes.

Date filtering

  • Date and comparison selection now use a cleaner modal picker instead of dropdowns.
  • Filters now show when changes are pending so you can apply or cancel with confidence.

Tasks navigation

  • Task links are now centralized, making back navigation more consistent across task pages.
  • Task routes (including Settings tasks) now preserve your previous location.

Campaigns and reporting

  • The Assign Group modal now supports search and pagination for large lists.
  • Purchase counts now appear in Campaign overview screens and PDF exports.
  • Minor duplication fixes in campaign flows.

Business navigation

  • Redemptions are now split into Vouchers and Personal Pricing so you can easily access different redemption data for a store.

Other UI and data improvements

  • Alert messages only display when logged in, with clearer error rendering.
  • Many other small UI improvements and bug fixes

Enjoy!

Console mid-November release

David Sevenoaks
Co-Founder

Analytics Filters

We have created a new integrated filter for analytics data in Console that includes the following improvements and new features:

  • You can now filter on store regions and formats (you can add store regions and formats in the settings in Console and then set these on the relevant stores).
  • You can now filter by multiple stores at a time
  • Channel, region, format and store filters now also work across more data types in Spaaza

Campaign reporting periods

  • On Campaign and Campaign Group pages the reporting periods now default to the campaign start and end date, with the option to set a custom period

Customer Personal Pricing Discounts tab

  • We improved the Discounts tab on Customer pages to make it easier to see a customer's redemption history for a active Personal Pricing campaigns.

Other

  • We fixed a number of UI and other bugs.

Enjoy!

API November 2025 improvements (1.6.1)

Sam Critchley
Co-Founder
  • Added - Change log added to Resources API for tracking audit history of entity changes with JSON diffs (API version 1.6.1+)
  • Added - redemption_count field to UserPurchaseProgress for basket reward tracking
  • Added - allowed_business_formats field to Chain model for business format restrictions
  • Improved - Progress campaign reward limiting now caps rewards given within single transaction
  • Improved - Rounding strategy validation for MatchingItemCampaign ensures consistency with wallet rounding rules
  • Improved - Voucher locking behavior and basket campaign discount application
  • Improved - Mobile pass configuration standardization (External dependency: iOS URL records need updating from s3:// to https://)
  • Improved - Database performance for RFM calculation
  • Fixed - Bug where basket campaign discount not applied when voucher locked in different campaign
  • Fixed - Intra-transaction limiting of progress awards for Progress campaigns
  • Fixed - Inactive campaign assignments now properly handled when redeeming vouchers

Console October release

David Sevenoaks
Co-Founder

Voucher table

  • Improved styling and layout to distinguish voucher status
  • Improved dropdown actions button when hovering on voucher table row
  • Fixed issue with deleting a voucher via the voucher table

Campaign Management

  • Improved filters and searching on Campaign Groups and Campaigns
  • Added new subscription campaigns
  • Fixed bug where the count of campaigns assigned to a Campaign Group was only updating after a page refresh
  • Improved restrictions for Personal Pricing campaigns (configuration required by Spaaza support to activate)
  • New store channel targeting features
  • Support for restricting earning on promotional items across all campaigns
  • All entries now added to stamp card and other collectable campaign wallets
  • Fix campaign duplication issue affecting campaigns with targeting assignments

Reporting

  • New data visualisations and KPIs showing impact of campaigns on order value and frequency
  • Improvements to Campaign Reports for campaigns contributing wallet entries
  • Fix UI bug where bar charts in tables were not being rendered properly
  • Stamp card and collectable wallet campaign entry KPIs now included in wallet dashboards

Export tasks

  • Export tasks status will now update without refreshing

Search

  • Campaign Groups and Campaigns now included in search results
  • Improved Search user experience

Other

  • Fixed a bug when setting the birthdays on new or existing customer in Console
  • Many other small UI improvements and minor bug fixes

Enjoy!

API October 2025 improvements (1.6.1)

Sam Critchley
Co-Founder
  • Added - get-campaign-group endpoint to retrieve a single campaign group by ID
  • Added - Resources API (beta) documentation providing RESTful access to (initially) Business and Voucher resources with OpenAPI compliance
  • Improved - business search results in get-businesses endpoint now ordered by relevance when filtering by text search
  • Improved - faster response times for campaigns and basket endpoints through various database optimisations
  • Improved - voucher distribution field in get-basket-price and add-basket endpoints now includes item quantity on which the voucher was distributed
  • Improved - campaign assignment group name maximum length increased from 16 to 64 characters
  • Improved - Klaviyo integration supports Klaviyo "events" and "profiles" APIs instead of deprecated "track" API
  • Fixed - issue where reward_priority field could not be set to 0 in alter-campaign and add-campaign endpoints
  • Fixed - issue with order_by parameter in get-campaigns endpoint not being applied correctly
  • Fixed - issue where count of campaign rewards used was incremented even when voucher was not redeemed in add-basket request

Console early September 2025 Update

David Sevenoaks
Co-Founder

Our early September release includes some small user interface improvements and bug fixes. Additional Personal Pricing campaign restrictions now also apply for select customers (these restrictions need to be activated by Spaaza Support).

1. Campaign Management Improvements

  • New restrictions on product and region assignments required for Personal Pricing campaigns (configuration required by Spaaza support to activate)
  • Improved campaign list summary messaging to highlight products assigned
  • Assign a campaign to a Store Group region (see below)
  • We added an improved search by campaign name feature
  • Download the Barcodes/GTINS assigned to a campaign in CSV
  • Improved store selector UX for assigning stores to a campaign
  • Set the claim status of vouchers issued for Lucky Shopper campaigns

2. Store Groups (new)

  • We've added a new Store Groups feature to allow you to better manage groups of stores
  • Store Groups can be created and managed in Settings

3. Switching between client environments

  • Analytics now automatically updated when you change environments (no more refresh required)
  • All open tabs will switch to new environment when switched in any other tab
  • Automatically redirected to the home page after changing environment

4. Other

  • Numerous small bug fixes and other improvements

Enjoy!

Console August 2025 Update

David Sevenoaks
Co-Founder

Our late August 2025 update brings significant improvements to task management, campaign functionality, and overall system performance. This release focuses on enhancing user experience through better navigation, improved task workflows, and refined campaign management tools.

1. Campaign Management Improvements

  • Campaign paging and filtering improvements
  • Product Assignment Management: Add and delete individual barcodes (GTINs) on a campaign
  • Decreased campaign page load times
  • Campaign Group titles can no longer be edited once the group is active
  • "Draft" campaigns are now referred to as "Disabled" (this is only a terminology change)

2. Voucher Management

  • New voucher detail page
  • Change the expiry date for a voucher

3. Enhanced Task Management

  • New Exports page: dedicated "Exports" section in navigation for better organization of exported reports and tasks
  • Dedicated page for tasks to issue vouchers to a group of customers
  • Dedicated page for tasks to issue wallet entries to a group of customers
  • Dedicated page for loyalty review tasks (via Settings)

3. Filters and tables

  • New predefined filters on Vouchers, Wallet Entry, Transactions and Personal Pricing tables
  • Use standard transaction and voucher tables and filters on customer pages

4. Other changes

  • Bug fixes and many small UI and performance fixes

Enjoy! 🏖️

API August 2025 improvements

Sam Critchley
Co-Founder
  • Added - get-campaigns now supports filtering on business_owner_code campaign assignments
  • Improved - get-campaigns endpoint now supports multiple filters simultaneously
  • Improved - added customisable voucher locking period in get-basket-price request
  • Fixed - issue where Cashback ("Spend and Earn") Campaign with no recipient wallet caused an error in get-basket-price and add-basket endpoints

API August 2025 improvements (1.5.8)

Sam Critchley
Co-Founder
  • Added - 2-Factor Authentication (2FA) for admin login
  • Added - campaign group filter to get-campaigns endpoint to allow filtering campaigns by their campaign group
  • Added - pagination is now available for results in the get-campaign-groups endpoint
  • Added - the ability to use multiple filters at the same time in get-campaigns endpoint
  • Added - a customisable voucher locking period in get-basket-price request
  • Added - user password reset functionality for Shopify customers (in the case of a Shopify integration)
  • Improved - remove rewards on subscription cancellation in case of Stripe subscription integration
  • Improved - zones and items are now optional in alter-content-page endpoint
  • Improved - start and end dates are now optional in campaign and campaign-group endpoints
  • Improved - add-campaign and alter-campaign performance improvements
  • Improved - campaign group information is now shown in voucher distribution in get-basket-price and add-basket responses
  • Improved - user indexing performance
  • Fixed - race condition on auxiliary_identifier parameter when creating a user in Spaaza based on a Shopify customer webhook

Console Summer 2025 release

David Sevenoaks
Co-Founder

The Summer 2025 update represents one of our most significant releases to date. The core functionality in Console remains the same but this update brings major improvements to the user interface, introduces AI-powered features with Oribi, and enhances overall system performance and reliability.

🌟 Major New Features

1. Oribi AI Assistant Integration

We're excited to introduce Oribi, our new AI-powered data scientist that revolutionizes how you interact with your data. Oribi provides intelligent briefings and alerts with personalized insights and recommendations and enables natural language conversations for instant data queries. Talk to a member of the Spaaza team to activate Oribi.

2. New design

Console has been completely redesigned with a modern design system featuring fresh, clean aesthetics and improved typography. We've implemented responsive layouts that provide better mobile and tablet support through container-fluid layouts, ensuring a consistent experience across all devices. The navigation has been enhanced with a redesigned sidebar with improved organization for better usability.

New Console Design

3. Updated Dashboard and date filtering

Console's home page dashboard has been improved and the date filtering system has been redesigned with timezone support. YOu can now also set the precise times you want reported on.

4. Campaign Groups

We've introduced new campaign grouping functionality for better organization. A campaign group now needs to be created before creating campaigns. All campaigns within a group share the same start and end date and will soon also share other attributes. This makes managing member-pricing, micro-programs and other collections of campaigns much easier. Groups also have reports and summary and approval document generation features.

5.App pages

You can now create and edit new pages for your app using Console's Content Management System (CMS). This makes it easy to support initiatives like Clubs, Microprograms and Missions in Spaaza's apps. You can read more about the updates to the mobile app and content management system in the documentation.

🛠️ Other improvements & Enhancements

  • Global Create Button: Quick access to create new items with keyboard shortcuts (Cmd/Ctrl + K)
  • Improved Search: Better search functionality across all resources (more improvements coming soon)
  • Improved Navigation: Enhanced breadcrumb trails for better context
  • CMS change tracking: We fixed some issues and improved change tracking in our app CMS
  • KPIs on Transaction, Voucher and Wallet lists: Filter resources like transactions and see dynamic KPIs for the matching results
  • Performance improvements: We've made many more "under-the-hood" changes to improve the performance of Console

API June 2025 improvements (1.5.7)

Sam Critchley
Co-Founder
  • Added - added add-note, get-notes, delete-note endpoints to manage Note objects (these endpoints are restricted to admin authentication)
  • Added - added get-content-pages and delete-content-page endpoints to manage content pages
  • Added - Added opt_in_secondary_last_modified_date to a user, which is a datetime field that records the last time opt_in_secondary date changed
  • Added - added non-payment error response to API to indicate when Spaaza customers are in payment default and cannot use the API
  • Added - it is now possible to configure an optional maximum_basket_total_value_spend in a campaign - a maximum basket total value for a reward to be redeemed in a basket
  • Added - it is now possible to configure an optional maximum_basket_total_value_earn in a campaign - a maximum basket total value for a reward to be earned
  • Added - the add-basket and get-basket-price endpoints can now override the campaign redemption grace period. By specifying a redemption grace period in a specific basket, the campaign's default grace period can be overridden
  • Added - the alter-chain and get-chain endpoints can now set a chain redemption grace period, which is the number of hours during which a campaign's vouchers can still be redeemed correctly after the active_date_until has passed
  • Added - user authentication against the Shopify API is now supported, allowing end-users to authenticate against the Shopify API using their Spaaza credentials, such as when using the Spaaza whitelabel mobile app
  • Added - issue a reward when a customer subscription renewal is received via a Stripe webhook
  • Improved — improved retry handling when making calls to external APIs such as Magento 2, Green Solutions and other providers
  • Improved - it is now possible to apply basket value restrictions (maximum_basket_total_value_spend and maximum_basket_total_value_earn) to matching item campaigns, allowing for more control over the redemption process
  • Improved - improvements in content page campaign handling
  • Improved - it is now possible to restrict redemption of a competition grand prize to the store in which the prize was issued
  • Improved - updates to IOS mobile pass wallet handling
  • Improved - completed Shopify API communication migration to Shopify GraphQL admin API
  • Improved - improvements to win distribution time algorithm for store-budgeted competition campaigns
  • Improved - performance improvements in competition budget checking when issuing instant win vouchers
  • Improved - webhook handling for Stripe subscription features
  • Improved - event pipeline performance improvements for wallet mutation events
  • Improved - locale (language) field is now synchronised between Spaaza user account and Shopify customer account, allowing for better localisation of content and campaigns
  • Improved - performance when user member number updates take place
  • Improved - issue-avoidance when processing simultaneous duplicate webhooks received from Shopify
  • Fixed - issues in Shopify account activation flow
  • Fixed - bug in matching non-product campaign assignments
  • Fixed - issue with missing title when creating Shopify discount code for wallet voucher
  • Fixed - issue with unhandled exception when no response is received from Green Solutions (formerly Garden Connect) API
  • Fixed - issue with voucher redemption after campaign active date has passed
  • Fixed - issue where wallet mutation event was not dispatched correctly when a customer used points to receive a reward
  • Deprecated - the user-specific notes field has been replaced by the new Note object in the add-note, get-notes and delete-note endpoints, which allows for more flexible and structured note management. The notes field will be removed from the response to the get-card endpoint in version 1.6.0.

API June 2025 improvements

Sam Critchley
Co-Founder
  • Added - Maximum values:
    • maximum_basket_total_value_earn: Maximum basket value allowed for campaigns to issue rewards during basket processing
    • maximum_basket_total_value_spend: Maximum basket value allowed for redeeming standalone vouchers in baskets
  • Added - added opt_in_secondary_last_modified_date, which is a datetime field that records the last time opt_in_secondary date changed in User object.

API April 2025 improvements

Sam Critchley
Co-Founder
  • Added - per-store budgets and wins distribution for competition campaigns, ensuring fair distribution of rewards across stores
  • Improved - competition campaigns now limit the number of wins per store per day and distribute win opportunities throughout the day

API April 2025 improvements (1.5.6)

Sam Critchley
Co-Founder
  • Improved - after a successful Stripe payment notification webhook is received, Spaaza updates the (external) identity handler after user opt_in_secondary is set
  • Improved - when nullifying user username in alter-user, use a chain's dummy email domain, if available, to set a dummy email address
  • Improved - if a chain does not allow repeated use of retailer_basket_code values for baskets, an exclusive retailer_basket_code parameter in claim-vouchers and lock_voucher will now generate a basket_already_exists error when an associated basket already exists.
  • Improved - the get-campaigns endpoint now supports pagination for API requests.

API January 2025 improvements (1.5.5)

Sam Critchley
Co-Founder
  • Improved - in a return transaction, if it is not possible to match a returned item to an original purchase item, the item will be treated as a negatively-priced purchase item in the returning basket and the excluded_from_spaaza parameter will be set to true to avoid applying any Spaaza campaign logic to the item. See returns documentation for more information.
  • Improved - return a parameter_mismatch warning in basket endpoints when sum of item_price amounts for items does not match basket_total_price value
  • Improved - return a warning in basket endpoints when a returned item cannot be matched to an original purchase transaction

API November 2024 improvements

Sam Critchley
Co-Founder
  • Improved - when all purchase items in a basket have both item_price and item_original_price fields populated, the difference between the two values is used to calculate the redemption amount and distribution of vouchers being redeemed instead of making any reference to previously calculated voucher redemption values. This allows client-specific discounts to still be applied between calls to the get-basket-price and add-basket endpoints, although we recommend caution. See the subsection called Basket Discounts and Vouchers for more information about voucher redemption. (versions >= 1.5.4)
  • Improved - added address fields to Profile Completion campaign
  • Improved - excluded delete campaigns from campaign groups in responses
  • Improved - return a warning in basket endpoints when a returned item cannot be matched to an original purchase transaction
  • Improved - return a warning in basket endpoints when sum of item_price amounts for items does not match basket_total_price value. (versions >= 1.5.4)
  • Fixed - fixed issue creating duplicate rewards in Profile Completion campaign
  • Fixed - fixed issue with checking active campaigns in basket campaigns
  • Fixed - fixed issue with transactions when using update_if_exists flag in add-user