Skip to main content

48 posts tagged with "release"

View All Tags

Console Mid June release

David Sevenoaks
Co-Founder

Our mid June release improves Reporting, adds new Insight documentation, expands team member permissions, and adds more campaign controls for percentage discounts.

Reporting and analytics

  • Reporting is now organised around Realtime reports and Downloadable reports, making it clearer whether you are opening live on-screen analysis or generating a file for later collection.
  • The main loyalty dashboards now have dedicated report pages for Loyalty, Signups, Baskets, Top Customers, Wallet Entries, Vouchers, and Personal Pricing.
  • A new Transaction value buckets report helps teams review basket value distribution by configurable transaction buckets.
  • Several analytics reliability improvements have been added, including more accurate comparison date ranges and more resilient campaign sales reporting for large barcode sets.

Realtime reports in Spaaza Console

Insights

Campaign controls

  • Percentage-based basket discounts and percentage vouchers can now be limited with Maximum basket discount.

Team members and permissions

  • The Team members settings page now supports filtering by name or email.
  • Team member permission columns are clearer, with new permission visibility for Analytics, Export, and Segment query access.
  • Creating or editing a team member now uses a clearer settings form, including a secure password generator for new users.
  • Console now shows a permission notice when a user tries to open a page they are not allowed to view.
  • Analytics, exports, campaign creation, and the global Create action now respect the relevant team member permissions more consistently.

Other improvements

  • Product, voucher, wallet, and campaign reports include smaller data matching and display fixes.
  • Monetary resource values are now displayed with cents where needed.
  • User form labels and input IDs have been improved.
  • Settings pages have received smaller layout and form consistency improvements.

Enjoy!

API mid June 2026 improvements (1.6.6)

Sam Critchley
Co-Founder

Additional API features, improvements and fixes that shipped to production in mid June 2026, on top of the earlier early June 2026 release.

  • Added max_basket_discount_amount campaign field, allowing a per-voucher cap on the discount value of percentage basket vouchers at redemption time. The cap is enforced per voucher during get-basket-price and add-basket.
  • Added new admin permission fields permission_analytics, permission_export, and permission_segment_query on add-user, alter-user, and permission-related endpoints, enabling more granular access control for admin accounts.
  • Added created_date and last_modified_date as sort parameters for the Business and AllowedIpRange resources in the Resources API.
  • Changed percentage basket voucher application on chains that allow double discounting: get-basket-price and add-basket now apply all eligible campaign-level standalone percentage basket vouchers by threshold allocation — sorted by campaign reward_priority, then cap-aware delivered discount for same-priority vouchers, then created_date — instead of keeping only the single best percentage voucher. The max_basket_discount_amount cap applies per voucher.
  • Changed voiding/cancelling a transaction via an empty get-basket-price (no items and basket_total_value 0) to also unlock the shopper's standalone vouchers: any claimed, non-expired voucher locked to the same retailer_basket_code / voucher_locking_code now has its lock cleared, not only on-the-fly basket campaign vouchers.
  • Improved event handling so that deferred events (such as OTP SMS notifications) are no longer triggered when the API request that staged them fails.
  • Improved get-basket-price to no longer return misleading warnings for auto-loaded vouchers that do not match campaign spend-assignment parameters.
  • Fixed an issue where voucher key generation under high concurrency could produce duplicate keys.
  • Fixed a get-basket-price error that occurred when the basket had no items and the user held vouchers from inactive campaigns.

Console Early June release

David Sevenoaks
Co-Founder

Our early June release improves customer filtering, Personal Pricing safeguards, and reporting reliability.

Customer lists, segments, and exports

  • Customer lists now use the improved resource table experience, giving a more consistent filtering and export workflow.
  • Segment filters are easier to manage, with clearer save, rename, and delete actions.
  • Deleting a segment now makes clear that only the segment is removed, not the customer profiles inside it.
  • Filtered customer views are more stable when navigating, refreshing, or sharing filtered pages.

Personal Pricing settings

  • A new Personal Pricing settings page has been added to Settings.
  • Teams can now require active Personal Pricing basket campaigns to include barcode, store format, or store/store group targeting before they can be enabled.
  • These settings help reduce the risk of activating promotions with incomplete targeting.

Personal Pricing settings

Reporting and analytics

  • Campaign assignment and barcode reporting now handles grouped barcode assignments more reliably.
  • Barcode reporting now shows missing sales data more clearly instead of hiding affected rows.
  • Product and campaign reporting views include smaller reliability and data-matching improvements.

Embed Elements

  • Spaaza Embed Elements integrations have been simplified by removing the old environment wrapper requirement.
  • Event and error handling documentation has been updated to make web and mobile app integrations easier to support.

Other improvements

  • Store, Customer and Product pages now use more of the available screen width for easier table viewing.
  • Several campaign, customer, filtering, and layout issues have been fixed.
  • New and updated guides have been added for Personal Pricing settings, Embed Elements, Shopify data synchronisation, SMS integrations, and Spotler.

Enjoy!

API early June 2026 improvements

Sam Critchley
Co-Founder

Additional API features, improvements and fixes that shipped to production in early June 2026, on top of the earlier mid May 2026 release.

  • Added get-campaigns support for JWT-based shopper authentication, extending the JWT auth support introduced in version 1.6.4 to campaign listing.
  • Added Chain resource to the Resources API with GET, PUT, and PATCH support, including nested allowed_ip_ranges and a new standalone AllowedIpRange resource.
  • Added chain-level configuration flag for partial-redemption voucher regeneration, allowing chains to control whether partially-redeemed vouchers are automatically regenerated with the remaining value.
  • Added chain-level basket campaign assignment restriction settings.
  • Added composable reward-method voucher-shaping configuration fields: voucher_claimed_by_default, voucher_expiry_seconds / voucher_expiry_date, and spend_on_promotional_items, enabling fine-grained control over voucher behavior at the reward-method level.
  • Added reward-method-level return_reclaims_earned_rewards field for wallet_contribution reward methods, allowing chains to prevent clawback of earned purchase progress when the earning purchase is returned.
  • Changed add-user and alter-user to no longer automatically trigger phone number verification SMS; clients must now explicitly initiate verification through the phone verification flow.
  • Improved call-processing error handling across multiple API endpoints to return structured API error responses for concurrent request timeouts.
  • Improved segment CSV exports to handle larger datasets without timing out.
  • Improved task-based data exports to exclude deleted users.
  • Improved Spotler webhook integration with updated payload format.
  • Fixed cashback campaign calculation that incorrectly double-subtracted voucher discounts from item prices.
  • Fixed handling of deleted campaign restrictions.

Console May release

David Sevenoaks
Co-Founder

Our May release improves bulk Personal Pricing campaign creation, improves Settings and makes tables easier to filter and customize.

Personal Pricing campaign imports You can now import Personal Pricing campaigns from CSV, this reduces the time needed to set up large sets of member pricing promotions. See our new guide for more detail on how to use this new feature.

Importing Personal Pricing campaigns

Improved Settings with new configuration option

  • The Settings overview has been reorganized into more focused configuration pages.
  • Program rules is now a dedicated page for reviewing member number ranges, setting whether discounted basket campaign items can earn rewards, and configuring basket claim limits.
  • Store formats now has its own page for adding and removing the format values used in store setup and campaign targeting.

Program rules

Vouchers, Transactions and Wallet Entry table improvements

  • We significantly improved the performance of filtering and loading tables, especially for customers with large scale data in Spaaza.
  • Optional column customization has been improved with search, category grouping and column descriptions.

Transaction insights

  • Transaction tables and overview pages now include new insights to highlight unusual and fraudulent program activity (for some insights the latest version of the add-basket API needs to be used, in particular we require the till code to be included in requests).
  • We have more insights coming soon in upcoming releases.

Other improvements

  • Barcode group activation checks now handle bundle campaigns more accurately.
  • We fixed a bug so "earn" barcodes are preserved when campaign group assignment updates are saved.
  • We also fixed a range of smaller UI, filtering, loading, and data-display issues across Console.
  • New and updated Console guides have been added for campaign imports, settings, program rules, store formats, and store groups.

Enjoy!

API mid May 2026 improvements (1.6.5)

Sam Critchley
Co-Founder

Additional API features, improvements and fixes that shipped to production in mid May 2026, on top of the earlier early May 2026 release.

  • Added basket-level discount calculation and percentage-based basket voucher support for composable campaigns, extending composable campaigns to handle basket-discount reward flows.
  • Added win_chance configuration to composable campaign reward methods, enabling probabilistic reward issuance so that only a configured percentage of interactions trigger a reward (for example a 5% chance per basket).
  • Changed get-user-vouchers to return voucher campaign details in a nested campaign object for API version 1.6.5 and above, including bounded campaign assignment rows with assigned business details, assignment_count, assignment_count_by_type, and assignment_types_excluded fields. Older versions keep the legacy flat campaign_* fields.
  • Improved API response times for basket endpoints (get-basket-price and add-basket) through caching improvements.
  • Improved create-voucher with concurrency protection to prevent duplicate voucher creation from simultaneous requests.
  • Improved robustness of API requests involving segment lookup through improved retry logic.
  • Fixed campaign segment-restriction handling so that campaigns with segment restrictions correctly fail closed.
  • Fixed get-tags, get-assigned-groups, and get-reward-methods endpoints returning server errors instead of proper API error responses when the chain_id parameter is missing.

API early May 2026 improvements (1.6.4)

Sam Critchley
Co-Founder

Additional API features, improvements and fixes that shipped to production in early May 2026, on top of the earlier mid April 2026 release.

  • Added stateless JWT-based shopper authentication, allowing chains to configure trusted JWT issuers via jwt_jwks_url, jwt_issuer, and optional jwt_audience fields on alter-chain and get-chain. Shopper JWTs are validated using JWKS with automatic key-rotation support, and alter-user enforces an explicit customer_profile.write scope when called with JWT authentication.
  • Added a fixed_value calculation method to composable campaign reward methods, alongside the existing basket-value and items-value methods.
  • Added a context field to composable campaigns, with context-based filtering of available restrictions and reward methods.
  • Changed composable campaign budget and usage-limit configuration to be set at the reward-method level rather than the campaign level.
  • Changed admin and user permission payloads so that the legacy empty businesses block is no longer included in auth/login, auth/session, auth/get-user-permissions, and get-user responses for API version 1.6.4 and above. Older versions still return businesses: null for compatibility.
  • Improved phone-number verification so that re-submitting the same phone number on alter-user or add-user preserves the VERIFIED status instead of resetting to VALIDATED, avoiding unnecessary OTP re-verification.
  • Improved phone-number validation so that invalid phone numbers submitted via legacy API versions (below 1.6.1) are now stored with INVALID status instead of UNCHECKED, giving better data visibility.
  • Improved Stripe subscription handling to fix cancellation webhooks silently failing when a subscription's annual expiry had passed, and to prevent duplicate Stripe subscriptions being created by failed renewal retries.
  • Fixed composable campaign segment-restriction evaluation returning an incorrect type when the segment response was empty, which could cause campaigns with segment restrictions to behave unexpectedly.

API mid April 2026 improvements

Sam Critchley
Co-Founder

Additional API features, improvements and fixes that shipped to production in mid April 2026, on top of the earlier late March 2026 release.

  • Added phone-number verification via SMS one-time passcode (OTP) during user signup and phone-number change, controlled by a chain-level setting.
  • Added a reward object to the interact-campaign response when a reward is issued, so clients can display the reward that was won (for example in scratch-card-style flows).
  • Added content pages to the Resources API via the /resources/content_pages resource, including filtering by name, a parent link for page hierarchy, and display_name, order and active/inactive support.
  • Changed add-product and add-product-variant (and the related product and product-variant importer scripts) so that price is now optional; products and variants can be created without a price where one is not yet known.
  • Fixed a case where email-marketing-consent state from Shopify customer payloads was not recognised consistently across webhook and GraphQL shapes, which could leave subscribed customers stored as unsubscribed.
  • Fixed basket-campaign distribution when a basket_fixed rule is not set, so distribution totals are calculated correctly for these campaigns.
  • Fixed a case where a campaign with only spend assignments would incorrectly allow every basket item to qualify for the reward when no items matched the spend assignments.

API late March 2026 improvements

Sam Critchley
Co-Founder

Additional API features, improvements and fixes that shipped to production in late March 2026, on top of the earlier mid-March 2026 release.

  • Added a new composable campaign type that combines configurable reward-handling behaviour (independent or random_draw, for example competition-draw rewards), reward methods with their own restrictions, usage limits and usage costs, and voucher-style rewards. Composable campaigns can also be triggered via interact-campaign for scratch-card-style flows.
  • Added a rewards_handling_behaviour field (independent/random_draw) on composable campaigns.
  • Added a usage_cost restriction on composable campaigns so that a wallet balance is deducted per interaction.
  • Added usage_limit and selection fields on reward methods, including competition-style random-draw weighting.
  • Added reward-method-level restrictions (currency, business, basket_item) so that spend-context restrictions can be applied directly to a reward method.
  • Added an honour_voucher reward-method type with honour_code configuration.
  • Added member-number-range fields to chain endpoint responses.
  • Added a chain-level setting that controls how long after a user is created a referral_code can still be applied to trigger referral-campaign rewards.
  • Added a new auth/apply-referral-code endpoint so that an existing user can submit a referral code after signup (within the chain's configured submission window).
  • Added explicit is_default create and alter handling to loyalty campaigns, with the API enforcing that only one active default loyalty campaign can exist per chain.
  • Changed loyalty-level-change side effects so they are only triggered for the campaign that owns the progress entry, preventing duplicate side effects when a chain has multiple active loyalty campaigns.
  • Improved database performance for voucher and voucher-distribution reporting through additional database indexes.
  • Fixed min_earn_quantity handling for fixed-monetary and quantity-unit basket campaigns so that an empty min_earn_quantity no longer triggers a type error, and a submitted value of 0 is preserved rather than silently coerced to 1.
  • Fixed claim-basket so that campaign barcode assignments are preloaded consistently with add-basket, ensuring only items matching a campaign's barcode-assignment list qualify for rewards.
  • Fixed delete-voucher and expire-voucher so they no longer delete or expire a voucher that has already been redeemed (previously this could incorrectly restore wallet balance for wallet-campaign vouchers).

API mid-March 2026 improvements

Sam Critchley
Co-Founder

Additional API changes, improvements and fixes that shipped to production in mid-March 2026, on top of the earlier early March 2026 release.

  • Improved phone-number validation so that certain additional South African number prefixes (+27500, +27501, +27502) that were previously rejected as invalid are now accepted.

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!

API early March 2026 improvements

Sam Critchley
Co-Founder

API changes, improvements and fixes that shipped to production in March 2026, on top of the earlier late February 2026 release.

  • Changed admin-user handling across add-user, get-user, alter-user, and delete-user so admin operations are strictly scoped to the requested chain: existing admin users can be granted permissions for an additional chain via a cross-chain upsert, duplicate adds for the same chain return user_already_exists, chain-scoped super-users can only see and alter other admins within the requested chain, and delete-user removes only the requested chain's permissions before fully deleting an account once no permissions remain.
  • Changed alter-user admin handling so admins cannot alter their own permission fields or login_2fa_exempt flag (self-escalation protection).
  • Changed chain endpoints (including alter-chain) so image_url, receipt_logo_url, and password_reset_url can be cleared by passing an empty string or null.
  • Improved basket campaign reward-exclusion performance by caching and reusing campaign-type information, reducing repeated campaign lookups during reward calculation on larger baskets.
  • Fixed a Shopify integration issue where an empty username in an alter-user request could null out the customer's Shopify email address and disable the Shopify customer account.

API late February 2026 improvements

Sam Critchley
Co-Founder

Additional API features, improvements and fixes that shipped to production in late February 2026, on top of the earlier February 2026 release (1.6.3).

  • Added support for a product unit field via add-product, returned by the product endpoint (for example g, l, or item).
  • Added a chain-level option to exclude rewards on basket items that have already been discounted by a basket campaign.
  • Added a chain-level multiplier for scaling competition win rates per chain or region.
  • Added a till_code field on baskets, exposed through basket and transaction documents.
  • Changed basket campaigns so they no longer require campaign rules; rule-free basket campaigns now qualify and apply implicitly.
  • Changed claim-basket so admin users and privileged-auth requests are no longer subject to the anonymous-basket claim rate limit.
  • Changed the product variant importer so it accepts either owner_code or product_variant_owner_code as input, and allows a blank owner code.
  • Changed the Resources API so mutating requests (POST, PUT, PATCH) must use a JSON object body, lookups or deletes with empty identifiers are rejected, unknown resource types fail deterministically, and singular and plural routes no longer accept each other's reserved parameters.
  • Changed the Resources API Business resource so business_id is no longer globally required in its OpenAPI schema.
  • Improved voucher redemption_count so it is normalised consistently across receipts and indexing (taking min_earn_quantity into account).
  • Improved database performance for user phone number lookups.
  • Fixed matching item threshold campaign reward distribution across multiple basket items so the correct remaining quantity is used.
  • Fixed get-webhooks and get-webhook so webhook secrets shorter than three characters are obfuscated correctly in API responses.
  • Fixed campaign responses so minimum_matching_item_value is returned as null (rather than 0) when the value is unset.
  • Fixed an authentication issue affecting user-wallet-ledger for user and Shopify authentication.
  • Fixed Stripe subscription webhook handling so the interaction result is captured and reported when a subscription interaction does not complete.

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