Changelog

Follow new updates and improvements to Carrott.

March 31st, 2026

The Scanner app is now available as a native app on both platforms:

πŸ“± App Store (iOS) πŸ€– Google Play (Android)

The native app gives you the best experience β€” faster scanning, push notifications, and reliable offline support.

Already using the PWA? The native app uses the same login β€” just download, sign in, and you're good to go.

March 30th, 2026

πŸ“Š Dashboard Analytics Fix

  • Fixed an issue where points card activity wasn't showing up on the dashboard β€” visits, redemptions, and repeat visit rates now track correctly across all card types

  • The Top 10 Customers table now shows Visits, Spend, and Redemptions for a cleaner, card-type-agnostic view

πŸ“± Scanner App

  • Fixed a crash that could occur on startup β€” the scanner is now more resilient and recovers gracefully

  • Improved camera permission prompts for a smoother first-time setup

🎨 Card Builder

  • Stamp grids now balance rows evenly β€” 8 stamps show as 4+4 instead of 5+3, and similar improvements for other stamp counts

🧹 Under the Hood

  • Cleaned up deprecated database fields for a leaner, faster backend

  • Fixed several small UI bugs: number input validation, terms checkbox errors, and OTP race conditions

  • Performance improvements: preloaded fonts, edge rendering, and reduced skeleton flicker

March 17th, 2026

Faster join page β€” The page where customers sign up for loyalty cards has been completely rebuilt. It now loads 7x faster and works instantly on any device, with no blank screen while loading.

March 16th, 2026

You can now set rules that control how customers earn stamps and points. These are configured per card template and apply automatically when staff scan a customer's card.

  • Minimum spend β€” Require a minimum purchase amount before a customer can earn. For example, set a $10 minimum so small purchases don't count toward rewards.

  • Daily limit β€” Cap how many times a customer can earn per day. Useful for preventing misuse or repeat visits from stacking up too quickly.

  • Max per scan β€” Limit the maximum stamps or points a customer can receive in a single transaction.

  • Coupon cooldown β€” After a customer redeems a coupon, you can set a waiting period before they can earn again. Staff will see a clear message showing how much time is left.

When a rule is triggered, the scanner shows a plain-language explanation to your staff so they know exactly why a transaction was limited or blocked.

Bug Fixes

  • Fixed an issue where the transaction history screen could freeze or become unresponsive.

  • Fixed a case where the minimum spend rule wasn't being applied correctly for certain coupon types.

  • Various stability improvements to the scanner experience.

March 14th, 2026

Bug Fixes

  • Tier limit validation hotfix: fixed edit mode silently converting unlimited (null) to default numbers, and tier limit fields sending empty strings instead of null

  • Fixed totalCards and totalWalletInstalls to respect the template filter on the customers page

  • Removed default active status filter on customers route

  • Fixed pagination bug and maxUses falsy check (0 was being treated as falsy)

  • Fixed web app references to renamed cardName field in customer search

Performance

  • Refactored getCustomers with parallel queries, single-pass card loop, and shared utils

March 9th, 2026

Smoother CSV Imports

We’ve overhauled the import process to make sure your data gets where it needs to go without the guesswork.

  • Auto-Create Customer Cards: If you’re importing customers who don't have a card yet, the system will now automatically create one for them. No more "silent" data loss.

  • Smart Validation: The importer now checks if your templates are active and alerts you if the data types don't match (e.g., trying to put text into a number field).

  • Negative Value Protection: Imported values are now "clamped" to prevent accidental negative balances.

  • Helpful Hints: We’ve added an info alert inside the import modal to explain exactly how the system handles your data.

Accurate Dashboard Stats

Your data should give you the full picture, not just a snapshot.

  • Real "Cards Issued" Counts: This stat now reflects your entire filtered list of customers, rather than just the people on the first page.

  • Global "Wallet Install" Rates: Like the card stats, your install rate now calculates across your entire customer base for much more accurate reporting.

Bug Fixes & Improvements

  • Subaccount Fix: Resolved an issue where the template selector would appear empty for newly created subaccounts.

  • Improved Column Detection: Fixed a logic error to ensure the system correctly identifies card data, even if the values are zero or empty.

March 7th, 2026

Public API (Beta, Message Support for Access)

  • Public REST API for programmatic access to your loyalty platform

    • Manage customers, cards, and transactions via API

    • Earn points, add stamps, and redeem rewards programmatically

    • Built-in rate limiting, idempotency keys, and comprehensive error handling

    • OpenAPI documentation included

    • Wallet pass generation endpoint for Apple & Google Wallet

    • Feature flag controlled per tier β€” enable via your plan settings

Billing & Plans

  • Agency admins can now access the billing page and generate payment links

  • Tier edits now cascade feature/limit changes to all subscribed subaccounts

  • Confirmation dialog when editing tiers that affect active subscriptions

  • Fixed a race condition when switching between subscription and manual billing modes

  • Fixed billing mode switch not detecting changes to expiry date or custom pricing

  • Hardened webhook handling against race conditions and duplicate events

Card Builder

  • Card type options no longer flash briefly when creating a new card

  • In edit mode, only the card's current type is shown (no switching allowed)

  • Points cards now display available rewards on the card back

  • Inactive templates are now visually dimmed and grouped by status

Customer Management

  • Customer deletion is now properly scoped per-subaccount (no cross-subaccount side effects)

  • Fixed card retention expiry affecting cards across unrelated subaccounts

  • Fixed customer restore not properly clearing archived status

  • "Add Customer" button now correctly enforces your plan's customer limit

Scanner & Cards

  • Fixed rewards display consistency on points and stamp cards

  • Broadcast tips updated with link formatting guidance

Wallet Passes

  • Google Wallet pass generation is now faster with caching

UI & Polish

  • Fixed dark mode flicker on page load

  • Fixed active cards count accuracy

  • Removed "Stripe Ready" badge from billing page

  • Fixed Featurebase chat widget overlapping table pagination

  • Fixed various loading states and race conditions in modals

  • Fixed franchise limit checks and rollout timeout handling

March 1st, 2026

  • Resolved an issue that prevented Google Wallet passes from being generated when no header field was specified.

  • Resolved an issue that blocked Apple Wallet passes from being generated when a customized country code was used on a subaccount.

February 28th, 2026

Promo Codes

  • Added promotion code support to agency and direct business signup flows

Subaccount Regional Settings

  • Added phone country code support across the platform β€” phone inputs now default to the correct country flag based on subaccount/agency config instead of hardcoded GB

  • Fixed currency mismatch in the card builder when agency admins edit subaccount templates (now uses the subaccount's currency, not the agency's)

Welcome Emails

  • Users now receive a welcome email after verifying their account

February 27th, 2026

Available Rewards Display Field

  • When using β€˜Available Rewards’ field on Stamp Cards, it will now display what the user has on the front of there card. eg. β€˜1x Free Coffee, 1x Free Donut’

Scanner App Updates

  • Camera improvements β€” Updated camera resolution settings for better scanning

  • Scanner layout & dark mode β€” Visual updates to scanner layout and improved dark mode handling

  • Reward tier progress layout β€” Updated how staggered reward tier progress is displayed

Bug Fixes

  • Fixed doubled dashboard stats β€” All 5 analytics aggregates were sharing a single component instance, causing counts to bleed across aggregates. A subaccount with 1 customer showed "2 Total Customers", "2 Installed Cards", etc. Affects both subaccount and agency dashboards.