Complete Guide · EN

Loyalty Platform — Administrator Manual

The full reference for running a restaurant's loyalty program: every admin-panel screen, every setting, and how the cashier and guest experiences connect back to it.

01 Introduction

What this document covers, and who it's for.

This is the complete reference manual for the loyalty platform — every screen in the admin panel, what each setting does, and how it affects what your cashiers and guests see. If you're setting the program up for the first time, configuring campaigns, or just need to look up what a field does, this is the document to search.

There are three roles in the system, each with its own login and its own URL. As the owner or manager, you'll mostly live in the admin panel, but it helps to know how the other two work too.

RoleHow they sign inURL pattern
Owner / adminEmail + passwordhttps://loyalty.solvit.work/login
Cashier / staffA 4–8 digit PIN, set by the admin in Settings — no email or passwordhttps://loyalty.solvit.work/staff/{restaurant-slug}
GuestNo login at all — a personal link/QR code, or self-registration/card/{guestId} or /join/{restaurant-slug}
Note

Section 13 covers chains — how the platform connects more than one of your locations together, if you run more than one. Sections 14–17 summarize staff management and the cashier and guest experiences for context. The cashier flow is also documented on its own, as a short till-side cheat sheet, for staff who don't need the full manual.

02 Plans & licensing

DEMO, BASIC, PRO, ENTERPRISE — what each unlocks.

Your restaurant's account runs on one of four plans. Plans are assigned by the platform, not self-serve — you can't upgrade yourself from inside the app; you request a change and get contacted.

PlanGuestsProgramsPush & automationNotes
DEMONo capAll 4 typesIncludedFull feature trial, time-limited
BASICCapped countOnly 1 program — any one of the 4 types (discount, cashback %, fixed cashback, or a stamp card)No push notificationsAlso limited to a single tier; no referrers; no fiscal-receipt scanning or the analytics built on it (see below)
PROHigher / no capAll 4 types, multiple at oncePush notifications, segments & campaignsReferrers and receipt scanning included
ENTERPRISEEverything in ProAll 4 typesPush, segments & campaignsPlus multi-location management for restaurant groups
Warn

On BASIC, screens for extra programs, tiers, segments, campaigns, and push notifications show upsell prompts instead of the full feature. This manual is written and screenshotted against an Enterprise-tier demo account, so every screen described here is unlocked — your own account may show fewer options depending on its plan.

A second, separate flag controls fiscal-receipt scanning specifically — a restaurant can be on PRO or above and still have this off if the platform team hasn't switched it on yet, though in practice every Pro+ account ships with it enabled. It's worth knowing exactly what this one flag turns on, because it cascades into several sections of this manual:

Gated by receipt scanning (Pro+ only)Stays available on BASIC
The till's 🧾 Scan receipt button and the whole receipt-QR flow behind it (see The cashier module)The till's ordinary manual-amount keypad
The till's proactive personal-recommendation and paired-item hint on the charge/redeem screenThe dish-specific stamp condition — satisfied by manually checking a dish off a list at the till, no scanning involved (see Loyalty programs)
Analytics — ABC analysis, visit-time charts, guest preferencesThe Menu catalog itself — manual entry and Excel import work on every plan; only its "add from receipts" shortcut is naturally empty without scanned data
Item pairingsDangerous operations (fraud alerts) — unrelated to scanning, available everywhere
The Dashboard's Top purchases widget 

To request a plan change or renewal, go to Settings. The Plan and license box at the top shows your current plan and expiration (or No expiration date, as on the Enterprise demo account) with a Request renewal button — clicking it starts the conversation with the platform team, it doesn't change anything instantly.

Settings page showing the Plan and license box with Plan: Enterprise, No expiration date, and a Request renewal button
The Plan and license box at the top of Settings — current plan, expiration, and the Request renewal button.

03 Logging into the admin panel

Email + password, one login per restaurant.

  1. Open the login URL

    Go to https://loyalty.solvit.work/login in a desktop or mobile browser.

  2. Enter your email and password

    These are the owner/admin credentials set up when your restaurant's account was created.

  3. You land on the Dashboard

    From there, the top navigation bar — Dashboard, Guests, Segments, Campaigns, Programs, Tiers, Card design, Notifications, Settings — takes you anywhere else in the panel, plus a Staff sign-in link and a Log out link on the right.

Tip

The language switcher (RU / EN / CG) sits in the top-right corner of every admin page and changes the panel's own labels. It does not translate program, tier, or segment names you typed yourself — see A note on multilingual guests.

04 Dashboard

Your at-a-glance view of program health.

The Dashboard is the landing page after login. At the top, a line under the page title lists every currently active program by name, so you always know what's live at a glance.

MetricWhat it means
Total guestsEvery guest who has ever registered, self-registered or added by staff.
Cashback issued, €Total cashback ever credited to guests across all cashback programs, lifetime.
Cashback redeemed, €Total cashback guests have actually spent against a bill, lifetime.
Outstanding, €Issued minus redeemed — the cashback liability currently sitting on guest balances, unspent.
Total transactionsEvery purchase and redemption ever recorded, combined.

Below the metric cards, the Last 14 days chart is a daily bar chart with three series — Spent (€), Earned (€), and Redeemed (€) — so you can see purchase volume and program activity move together day by day.

The Guest sources bar shows the split between guests Added by staff (cashier manually created a card) and Self-registered (guest filled in the join form themselves). If any self-registered guests came through one of your referrers' personal links (Referrers section in the menu), a third segment, Via referrer link, breaks that number out separately. Next to it, the Guest segments box shows a colored bar plus a list of how many guests sit in each RFM segment (Champion/Loyal/Drifting/At risk/New — see Segments); clicking any segment in that list opens Guests pre-filtered to it.

Below that, the Guest tiers box works the same way but for tiers — including any tier with zero guests in it, shown as "0" rather than being hidden, so you can see a tier exists even if nobody has reached it yet. Clicking a tier opens the same pre-filtered Guests view.

The Top spenders table lists the eight guests with the highest lifetime spend — name, visit count, and total spent, with each name linking to that guest's detail page. Next to it, Birthdays has a 7/30/90-day toggle and lists which guests have a birthday coming up in that window, with the date and days remaining — handy for a manual glance even with the automatic Birthday campaign already enabled.

Program performance lists every program with its Status, how many times it has Triggered, and how much it has Issued — in € for cashback and discount programs — the fastest way to see which program is actually doing work and which one is sitting idle. For a stamp card, Issued shows owner-meaningful numbers instead of raw stamps: how many rewards (free coffees, mugs, etc.) have already been given to guests, and — when any are currently banked but not yet claimed — how many you'd still owe if every guest came to redeem today. Every program's name in this table is a link — clicking it opens its full statistics: daily activity, a list of guests with a reward ready (for stamp cards), and a complete event log so any number here can be checked by hand (see Loyalty programs for a worked example of that drilldown).

Two more widgets appear when the relevant feature is in use. If you've set up any referrers, a Top referrers table lists each one by name with their guest count, revenue, and average check — the same per-referrer numbers as the Referrers page itself. If receipt scanning is available on your plan, a Top purchases table lists dishes by how often they've been ordered, guest count, and revenue, with a See full analytics → link through to the full Analytics section.

Dashboard with metric cards, a 14-day activity chart, guest sources, guest segments and tiers, a top-spenders table, birthdays, a program performance table, a top referrers table, and a top purchases table
Dashboard — top-line metrics, the 14-day activity chart, guest sources (with the "Via referrer link" bar), guest segments and tiers, top spenders, birthdays, per-program performance, top referrers, and top purchases.
Note

Program, segment, and tier names throughout the dashboard are whatever the restaurant owner typed when creating them — this demo account happens to have named everything in English ("Cashback 5%", "Stamp card: every 10th coffee free"), but the platform never translates free text like this on its own. See the note on multilingual guests.

05 Guests

Your full guest list, filters, and each guest's detail page.

The Guests page lists every guest with a Filters panel above the table: Segment (defaults to "All guests"), Gender, Tier, Not visited for, days, Avg. check from/to, €, Total spent from, €, and Visits from, with Apply and Reset buttons. The table itself is sortable by any column: Name, Card, Phone, Balance, Tier, Segment, Total spent, Visits, Avg. check, Last visit.

Guests list with a Filters panel above a sortable table of guest names, card numbers, balances, tiers, RFM segments, and visit stats
Guests list — filters and RFM columns for every guest, tier badges shown as configured by the owner.

Two buttons sit above the table: Self-registration QR opens the printable QR code that sends guests to your join form (the same form as the Guest self-registration link in Settings), and + New guest lets staff or admin create a card manually for a guest standing in front of them.

Self-registration form asking for First name, Last name, Phone, Email, Birthday, and Gender, with a Get my card button
What a guest sees after scanning the Self-registration QR — the join form (First name*, Last name, Phone*, Email*, Birthday, Gender, then Get my card).

Clicking any guest's name opens their detail page: a balance card for every cashback program they hold, a tier badge next to their name with an Edit link to override it manually and a Tier history link next to that (see Tiers), a Statistics box (Total spent, Total earned, Total redeemed, Visits, First visit, Last visit), their personal Guest card (QR) with an Open guest page → link, and a full transaction history table (Date, Type, Description, Amount) — identical in substance to what the guest sees on their own card.

Guest detail page for Milica Vuković showing per-program balance cards, a Statistics box, a green ready-reward banner, Simulate purchase and Redeem boxes, a Personal notification composer, a QR code, and a transaction history table
Guest detail page — balances, stats, QR code, the two simulator boxes, personal notifications, and full history.

If a stamp reward is ready, a green banner reading e.g. 🎁 Ready: Stamp card: every 10th coffee free appears with a Grant link — same as on the till.

Two boxes let you act on the guest without a physical till at all:

  1. Simulate purchase (POS)

    Enter a Purchase amount, € and tap Process purchase. All matching active programs apply at once, exactly as they would at the cashier's till — useful for correcting a missed purchase or testing a new program's conditions.

  2. Redeem

    Shows the guest's combined Bonus: €X.XX. Enter an Amount and tap Redeem to deduct it — the same combined-balance behavior as the till (see Loyalty programs).

Tip

These simulator boxes exist on the admin guest detail page too, not just at the till — handy for back-office corrections or demoing the program without touching a shift device.

The Personal notification box sends a push to this one guest only: fill in Title and Message text, then tap Send to this guest. It only reaches them if they've opted in and installed the card page — see Push notifications.

06 Segments

Automatic RFM buckets, plus your own custom groups.

Every guest is placed automatically into one recency/frequency ("RFM") segment, recalculated live with no manual work. The Segments page lists the five built-in segments first, each tagged built-in, followed by any custom ones you've created.

SegmentRule
NewNo purchase yet
ChampionVisited in the last 14 days and has 5+ lifetime visits
LoyalVisited in the last 45 days
Drifting45–90 days since last visit
At risk90+ days since last visit
Segments page listing five built-in RFM segments and two custom segments, one dynamic filter-based and one static manually-picked list
Segments — the five built-in RFM buckets plus two custom segments: "Men" (dynamic, filter-based) and "VIP list" (static, manually picked).

Each row shows its Segment type and current guest count. Built-in segments are always Dynamic — filter-based, updates automatically. Tap + New segment to build your own, in one of two ways:

  1. Dynamic (filter-based)

    Define a rule — e.g. gender, a spend threshold — and the segment membership recalculates automatically as guests' stats change. Editable later via Edit filter.

  2. Static (manually picked)

    A hand-picked, fixed guest list — e.g. a "VIP list" — that only changes when you add or remove someone yourself via Manage guests.

Note

Even the built-in segments' display names are editable free text, just like program and tier names — this demo account happens to have them in English ("Champions", "Loyal", "Drifting", "At risk", "New"), but the platform doesn't translate them for you if you rename them into another language. See the closing note.

Every guest-list filter described in Guests — gender, average check, total spend, visit count — doubles as a way to scope a custom segment.

07 Campaigns

Three automatic scenarios that run daily, unattended, once configured.

The Campaigns page holds three built-in automations, each with its own Enabled checkbox. Once turned on and saved, they run on their own, once a day, with no further admin action needed.

Campaigns page with a Birthday panel and a Reactivation panel, each with settings fields, an Enabled checkbox, a Save button, and a run history table
Campaigns — Birthday and Reactivation, each with its own settings and run history.

🎂 Birthday — grants a bonus ahead of a guest's birthday, then lets it expire if unused:

FieldDemo valueMeaning
Grant bonus this many days before3How many days before the birthday the bonus is granted
Bonus amount, €5How much is credited
Expires after, days past birthday14If unused by then, the unused bonus is automatically removed
Program to grant fromCashback 5%Which cashback program's balance receives the bonus

🔄 Reactivation — the instant a guest's segment crosses from Loyal into Drifting (that is, they pass 45 days without a visit), they automatically receive a push with a "come back" offer, no admin action required. Configure a Push notification title and Notification text, and optionally a Welcome-back bonus, € (optional) credited to a chosen Program to grant from (optional).

Both panels end with a Run history table (Guest, Event, Date) so you can confirm the automation is actually firing — e.g. "Milica Vuković — Bonus granted — 2026-07-12" or "Jovana Radulović — Offer sent — 2026-08-16".

Tip

Run history is the fastest way to sanity-check a new campaign: save your settings, then come back the next day and confirm the expected guests show up in the table before trusting it long-term.

⏳ Bonus expiration — warns a guest ahead of time, before their accumulated bonus is automatically deducted for inactivity (the deduction itself is configured on the Settings page, under "Automatic bonus expiration"). Sends two separate push reminders: the first this many days before expiration, the second closer to it (defaults: 3 and 1 day). Each reminder has its own title and body, written by you in any language, with {name} (guest's name), {amount} (the amount that will actually expire — respecting the "Percent"/"Fixed amount" mode from Settings, not the whole balance), and {days} (how many days are left) available as placeholders.

The campaign itself never deducts or grants anything — it only reads the guest's balance and warns. The actual deduction still happens lazily, on the guest's next purchase or redemption, exactly per the rules in "Automatic bonus expiration". If that setting is still off, the panel shows a warning with a direct link to turn it on — otherwise the reminders would check in every day with nothing to warn about.

Bonus expiration campaign settings: two reminders with their own texts and a run history table showing two real sends
⏳ Bonus expiration — two independent reminders (3 and 1 day before expiration), each with its own title and text, plus a run history of real sends.

08 Loyalty programs

Four program types, each a "condition → action" rule.

The Loyalty programs page describes itself well: "Each program is a 'condition → action' rule. You can keep several active at once — e.g. 5% cashback + a separate stamp program + a weekend discount." Tap + New program to add one; existing rows offer Edit, Disable, and Delete.

TypeWhat it doesTypical conditions
Cashback %Guest earns a percentage of the purchase as spendable balanceOptional max cashback per purchase; optional minimum purchase amount
Cashback fixedGuest earns a flat € amount per qualifying purchase, regardless of bill sizeSame shared conditions below
Discount %An automatic percentage off the bill, applied immediately — a smaller charge, not a balanceCan be restricted to specific guest tiers
Stamp cardOne stamp per qualifying purchase; after N stamps the reward is ready for one-tap redemptionSame shared conditions below

Any program type can also be limited by: minimum/maximum purchase amount, specific days of week, specific hours, first-purchase-only, guest's-birthday-only, or restricted to specific tiers.

A stamp card has one more condition available, on top of all of the above: Award stamp only for a specific dish ties stamp-earning to one item from your Menu catalog, instead of any qualifying purchase at all — for example, so "10th cappuccino free" only counts a purchase that actually includes a cappuccino, not just any coffee. The dish list for this condition is pulled straight from the Menu section, so set that up first if you want to use it. At the till, the cashier satisfies it by checking the matching dish off a small checklist shown above the keypad — nothing needs to be scanned, so this condition works on every plan, including BASIC, even though receipt scanning itself doesn't. When set, the programs table's Condition column shows it plainly, e.g. "dish only: Cappuccino."

Loyalty programs list with Name, Condition, Action, and Status columns, showing a stamp card restricted to a specific dish and a plain unrestricted cashback program
Loyalty programs — a stamp card ("Штамп-карта: 10-й капучино в подарок", condition "dish only: Капучино") and a plain cashback program with no restrictions. Program and dish names are free text the restaurant owner typed, so they stay exactly as entered regardless of the admin panel's own language — see the closing note.

Clicking a program's name (in either the table above or the Dashboard's Program performance list) opens its own statistics page: how many times it has fired, total turnover it's driven, how many rewards it has actually granted, how many distinct guests have participated, a 30-day activity chart, and a full event log of individual awards by guest name — everything you'd need to check a summary number by hand.

Program statistics drilldown for a stamp card showing fired 14 times, €49.00 turnover, 0 rewards granted, 4 guests participated, a 30-day activity chart, and an event log of individual stamp awards by guest name
Program statistics for "Штамп-карта: 10-й капучино в подарок" — fired 14 times, €49.00 turnover, 4 guests participated, plus a 30-day chart and a per-guest event log.
Tip

A guest can hold balance in several cashback programs at once. The till (and the admin Redeem box) debit across them automatically, oldest balance first, and always show the guest one combined total to redeem — the cashier is never asked to pick which program to draw from.

09 Tiers

Automatic levels based on lifetime spend.

A guest's tier is determined automatically from their lifetime purchase total at your restaurant — you just set the € threshold each tier unlocks at. As the page itself puts it: "Any names work: Silver/Gold/Platinum, Bronze/Ruby, or your own."

Guest tiers list with three tiers and their spend thresholds: from €0, from €80, from €200
Guest tiers — three levels here, named Silver / Gold / Platinum on the demo account.
Tier (demo)Threshold
Silverfrom €0
Goldfrom €80
Platinumfrom €200

Tiers show as a colored badge next to the guest's name everywhere — the admin guest list, the guest detail page, and the guest's own card. Their real power, though, is gating: a Discount % program can be restricted to a specific tier, e.g. this demo's "10% off for Platinum", which only applies once a guest has crossed the €200 lifetime-spend line into the top tier.

A tier can also be set manually, overriding the automatic threshold — via the Edit link next to a guest's tier badge on their detail page (see Guests). This is meant for VIP exceptions: a guest who hasn't technically spent their way to Platinum yet but deserves the status by relationship or agreement. A manual override is logged as its own entry in that guest's Tier history (date, direction of the change, and the admin email that made it) — a natural tier-up from ordinary spending is not logged there, since nobody made a decision, it's just the normal consequence of purchases.

Note

If two tiers share the same entry threshold (e.g. both "from €0"), any guest without a manual override always shows the base tier, never a newer tier that happens to tie on threshold — the platform distinguishes "tier assigned by hand" from "tier computed from spend" even when the thresholds are tied.

Warn

On the BASIC plan, only one tier is available — tier-gated discounts aren't practically usable until you're on Pro or Enterprise.

10 Card design

One set of branding, three places it shows up.

The Loyalty card design page lets you set: Title on the card, Subtitle (e.g. program name), a Logo (an emoji, or an uploaded image via Upload image), a Card background image (uploaded, or a gradient built from Primary color / Secondary color / Text color if no image is set), with a live Preview (demo data) panel on the right showing exactly how it will render.

Loyalty card design editor with Title, Subtitle, Logo, Card background image, and three color pickers on the left, and a live card preview on the right
Card design editor — fields on the left, a live preview on the right.

This one set of branding choices reaches three places at once:

  1. The guest's card page

    Exactly what the preview shows — background, logo, title, subtitle, and text color.

  2. The join/login page header

    The same branding frames the self-registration form and staff/admin sign-in screens.

  3. The home-screen icon

    As the page itself notes: "This logo also becomes the app icon when a guest or staff member adds the page to their Home Screen." See Installing on the guest's phone.

11 Push notifications

Broadcast to everyone who's opted in.

The Push notifications page shows your current Subscribed guests count, with the reminder that "Guests enable notifications themselves on the card page ('Get bonus notifications' button)" — nothing is ever pushed to a guest who hasn't opted in. Below that, a composer (Title, Message text) sends a one-off broadcast to every subscribed guest via Send to all.

Push notifications page with a Subscribed guests count, a Title and Message text composer, a Send to all button, and a campaign history table with Delivered, Failed, and Reach percentage columns
Push notifications — composer above, delivery history below.

The Campaign history table below it — described on the page as being "to evaluate marketing campaign effectiveness" — logs every broadcast with Date, Title, Delivered, Failed, and Reach, %, whether it was sent manually here or triggered by an automatic campaign (see Campaigns).

Warn

Push only works once a guest has installed the card page to their home screen (see Installing on the guest's phone) — a real technical limitation, not a bug. A guest who has merely opted in but never installed the page will not receive anything, and that's expected.

12 Settings

Restaurant identity, timezone, currency, staff access, and the two links you'll share most.

Beyond the Plan and license box covered in Plans & licensing, the Settings page holds:

Field / sectionWhat it's for
Restaurant nameShown across the admin panel and guest-facing pages
TimezoneThe restaurant's local time (e.g. "Europe/Podgorica"). Drives when day-of-week/time-window loyalty program conditions fire, when birthday greetings go out, when bonus-expiration checks and reminders run, and how the dashboard's daily chart buckets activity — all follow this local time, not the server's
CurrencyWhat guests see their balance, bonuses and discounts denominated in: Euro (€), British Pound (£), or US Dollar ($). This only changes how amounts are displayed — switching to £ or $ doesn't convert or re-issue anything. If this restaurant is part of a chain (see Chains), all locations must share one currency — changing it requires contacting support so every location is updated together
Staff PINsEach cashier now has their own personal PIN, not one shared code — PINs are issued, reset, and revoked on the dedicated Staff page, not here
Tax number (PIB)The venue's own tax identification number. Used only as an anti-fraud cross-check when a receipt is scanned at the till — it confirms the scanned receipt really did come from this venue, not a copy-pasted or mismatched one
Disable manual amount entry at the tillA checkbox that removes the numeric keypad from the charge screen entirely, leaving only the 🧾 Scan receipt button — purchases can then only be recorded from an actual scanned receipt. It only takes effect when receipt scanning is actually available on your plan; on BASIC the checkbox has no effect, so the till is never accidentally bricked with no way to charge a purchase
Bonus payment limitA Maximum % of the check field capping how much of a bill may be paid with bonus balance at the till. Once set, the redeem flow's check-amount step (see The cashier module) becomes mandatory instead of optional, since the till needs the check total to enforce the cap
Staff fraud protectionAn alert threshold, € and a manager-approval threshold, €, each set separately for charges and redemptions — see Staff for what each does
Dangerous-operation alertsSend Telegram alerts and Send email alerts checkboxes. When a fraud-alert threshold fires, a new staff device needs approval, or a manager approval is used, the notification is pushed to a Telegram bot and/or an email inbox as well as appearing in the admin panel's own Dangerous operations list — handy so a manager doesn't have to keep that page open to notice something needs attention
Lock till on screen offA checkbox that signs a cashier out the moment their phone's screen locks or turns off — useful when a shift device changes hands or might be left unattended
Automatic bonus expirationAn Enable bonus expiration checkbox — "If a guest hasn't visited for longer than this period, part or all of their accumulated bonus is deducted". A heads-up push reminder a few days before this happens is a separate setting, on the Campaigns page ("⏳ Bonus expiration" campaign).

A single Save button applies these settings together. Two more boxes at the bottom give you the links you'll actually hand out:

Settings page showing Restaurant name, tax number, disable-manual-entry checkbox, bonus payment limit, staff fraud protection thresholds, Dangerous-operation alerts checkboxes for Telegram and email, lock-till-on-screen-off, an Automatic bonus expiration checkbox, and Staff link and Guest self-registration link boxes with their URLs
Settings — restaurant name, tax number (PIB), the manual-entry and bonus-limit fields, fraud protection, Dangerous-operation alerts, till auto-lock, bonus expiration, and the staff and guest links.
  1. Staff link

    This is the URL from the role table in the introduction (/staff/{restaurant-slug}) — open it once on the shift device; each cashier then signs in with their own personal PIN.

  2. Guest self-registration link

    "A QR code for this link is on the 'Guests' page." Same link as the Self-registration QR button described in Guests — print the QR on a table tent, receipt, or physical card.

13 Chains: independent locations vs. a unified brand

Two different ways to run more than one location under the platform, with worked examples.

A chain links two or more of your restaurant's locations together so guests, and optionally programs, are recognized across all of them instead of staying siloed per location. Chains are an ENTERPRISE-plan feature and are set up by the platform team when you request it (see Plans & licensing) — you can't create one yourself from the admin panel. Once your locations are linked, a My chain link appears in the top navigation of every location in it, and a location switcher dropdown appears next to your restaurant's name.

Every chain is set up as exactly one of two modes, decided once when the platform team creates it: Independent locations or Unified brand. The mode is not a matter of degree — it's a completely different answer to the question "does this guest's card work the same way everywhere?" The rest of this section walks through both, with two real demo chains screenshotted side by side.

Note

Nothing about chains is optional infrastructure bolted onto a single restaurant — a location inside a chain still has its own PIN-based cashier module, its own license and plan status, and (for Independent locations) its own programs, tiers, and card design, exactly as described everywhere else in this manual. A chain only changes how guest identity and, for Unified brands, configuration are shared between locations.

Independent locations

Use this mode for a group of restaurants that happen to share ownership or back-office management but are otherwise separate businesses — a hotel's beach café and its rooftop bar, for example, with different menus, different pricing, and no reason a coffee cashback bonus earned at one should be spendable at the other.

By default, an Independent location is no different from a standalone restaurant — its guests, programs, and card design are entirely its own, and a guest who signs up at one location is completely unknown at the other. The one thing a chain adds on top is the shared QR code toggle on the My chain page:

My chain page for Adriatic — Beach Café, Independent locations mode, with a checked Use a shared QR code across the chain checkbox, a Copy settings button, and a locations table listing Beach Café (current) and Rooftop Bar with a Switch to link
My chain — Adriatic Hospitality Group, Independent mode. This example has "Use a shared QR code across the chain" turned on.
Shared QR codeWhat a guest experiences
Off (the default)A guest's card only works at the location where they signed up. Scanning it or searching for their phone/name at a sibling location finds nothing — as far as that location's staff and admin can tell, the guest doesn't exist.
OnThe same card/QR code is recognized at every location in the chain — a guest never needs a second card. But their balance, tier, and stamp progress stay local to each location: earning cashback at one location does not add to, or even show up in, their balance at another.
Warn

This is the one detail worth memorizing about Independent chains: turning shared QR on shares the guest's identity (their card is recognized everywhere), never their balance. Balance, tier, and stamp progress are pooled only in Unified mode — see below. If a guest asks "why doesn't my bonus from the beach café show up at the rooftop bar," this is why: it's how Independent mode is designed to work, not a bug.

Here's that distinction in the actual demo data. Marko Petrović signs up and makes a €42 purchase at Adriatic — Beach Café, which runs its own 8% cashback program:

Guests page at Adriatic — Beach Café showing Marko Petrović with card LC-881408391, balance €3.36, tier REGULAR, segment Loyal, total spent €42.00, 1 visit
Adriatic — Beach Café's own Guests page: Marko has a €3.36 balance from his 8% cashback purchase, and is already in the "Loyal" segment.

Switch to the sibling location, Adriatic — Rooftop Bar (via Switch to on the My chain page, or the location dropdown next to the restaurant name), and search the same card number:

Guests page at Adriatic — Rooftop Bar showing the same Marko Petrović, card LC-881408391, tagged (Adriatic — Beach Café), but with balance €0.00, tier REGULAR, segment New, total spent €0.00, 0 visits, Last visit No purchases yet
The exact same card at Adriatic — Rooftop Bar: recognized (shared QR is on) and tagged with his home location, but every number resets to zero — a completely separate account for this location.

Marko's name, card number, and phone are the same at both locations — that's the shared identity at work, and it's why the Rooftop Bar's guest row shows (Adriatic — Beach Café) under his name, a small home-location tag that only appears for a guest recognized from elsewhere in the chain. But his balance, tier, segment, total spent, and visit count are each computed independently per location, starting from zero at the Rooftop Bar despite his purchase history at the Beach Café.

Two more tools exist specifically for Independent chains, both on the My chain page:

  1. Copy settings

    A one-time, one-directional copy of the current location's tiers, programs, and card design to one or more sibling locations you pick — matched and updated by name where a name already exists on the target, created fresh where it doesn't. This is a convenience for setting up several similar locations quickly, not an ongoing sync: edit a program afterward and it does not propagate again automatically. A result panel reports exactly what was created, updated, or skipped (skipped happens when a name matches more than one thing on the target ambiguously).

  2. Switch to

    Every location in the chain, current guest counts, and license/expiration status are listed in one table — click Switch to next to any sibling to move your admin session there instantly, without logging out and back in with different credentials. Independent-chain locations don't share a login the way Unified ones do (see below), but if you're the same owner/admin across several, this saves you from juggling separate accounts.

Unified brand

Use this mode when every location is genuinely the same loyalty program wearing different addresses — a coffee chain where a stamp card started downtown should keep counting up at the airport branch, because to the guest (and to the brand) it's one loyalty relationship, not several.

A Unified chain has exactly one login, shared across every location — created once for the chain's first ("owner") location, with every other location added later reachable only by switching into it, the same Switch to mechanism as Independent chains. There's no separate shared QR code toggle to think about: identity, balance, tier, and stamp progress are always fully shared across every location in a Unified chain — that's the entire point of the mode, so it isn't optional.

Guests page at Bean & Bloom — Downtown showing Ana Jovanović with card LC-428832885, balance €0.00, tier SILVER, segment Loyal, total spent €4.50, 1 visit
Ana Jovanović joins Bean & Bloom — Downtown and buys a €4.50 coffee, earning her first stamp.
Guests page at Bean & Bloom — Airport showing the same Ana Jovanović, card LC-428832885, tagged (Bean & Bloom — Downtown), with the identical balance €0.00, tier SILVER, segment Loyal, total spent €4.50, 1 visit
The same guest at Bean & Bloom — Airport: not just recognized, but showing the identical total spent, tier, and segment — one pooled account, not a fresh one.

Compare this to the Independent example above: at the Rooftop Bar, Marko's numbers all reset to zero. At the Airport, Ana's numbers are exactly what they were at Downtown — €4.50 total spent, tier SILVER, one visit already counted. That's pooling, and it's what "unified" means in practice.

 Independent, shared QR offIndependent, shared QR onUnified
Guest recognized at a sibling locationNoYesYes
Balance / tier / stamps pooled across locations—No, local per locationYes, always
Programs, tiers, card designIndependent per locationIndependent per locationOne shared configuration
Admin loginSeparate per locationSeparate per locationOne shared login, switch between locations

Two ways a Unified brand's configuration is managed

Every Unified chain shares one configuration, but the platform has two different mechanisms for keeping it shared, and which one your chain uses changes what the My chain page and the Programs page look like. Both mechanisms produce identical results for the guest and cashier — this difference is purely about how the admin panel keeps locations in sync behind the scenes, and it's worth recognizing on screen because the wording is genuinely different.

The classic mechanism (every Unified chain starts here): each location physically holds its own copy of every tier, program, and card design setting. Editing one from any location writes through to every sibling's copy automatically and immediately — from the admin's point of view it behaves like one shared configuration, but under the hood it's N synchronized copies, not one thing.

My chain page for Nordic Bakery — Central, Unified brand mode, note reading Programs, tiers, and card design are managed from the regular Programs, Tiers, and Design pages — changes apply to every location in the chain immediately, locations table listing Central (current) and Riverside
My chain — Nordic Bakery Co., a Unified chain still on the classic synced-copies mechanism.

The newer HQ-owned mechanism: for chains the platform team has migrated (a one-time, reversible cutover), there is no fan-out at all — programs, tiers, and card design live as a single physical row at the chain's owner location, and every other location simply reads that one row. The My chain page's note changes to reflect this, and mentions one extra capability that only exists in this mode:

My chain page for Bean & Bloom — Downtown, Unified brand mode, note reading This chain runs on HQ: programs, tiers, and card design are one shared configuration for the whole chain, edited from the regular Programs, Tiers, and Design pages from any location. Programs can additionally be assigned to specific locations — see the Locations column on the Programs page, locations table listing Downtown (current) and Airport
My chain — Bean & Bloom Coffee, an HQ-owned Unified chain. Same "one shared configuration" idea, but the note calls out per-location program targeting.
Tip

You don't need to do anything differently day to day because of which mechanism your chain uses — you still edit programs, tiers, and card design from the same regular Programs, Tiers, and Card design pages either way, from any location, and changes still apply chain-wide immediately. The only thing that changes is whether the Programs page shows a Locations column (see next).

Per-location program targeting (HQ-owned chains only)

An HQ-owned chain can additionally restrict any individual program to specific locations, instead of it always being live everywhere. This is genuinely new capability, not available on the classic synced-copies mechanism — there, a program is either active chain-wide or disabled chain-wide, nothing in between. On the Programs page of an HQ-owned chain, an extra Locations column appears with one toggle chip per location:

Loyalty programs page for Bean & Bloom — Downtown showing two programs. Airport Travel Bonus has only the Bean & Bloom — Airport location chip highlighted green (Bean & Bloom — Downtown is greyed out). Bean & Bloom Stamp Card has both location chips highlighted green
Programs — Bean & Bloom Coffee (HQ-owned). "Bean & Bloom Stamp Card" is targeted at both locations; "Airport Travel Bonus" is targeted at Airport only — Downtown guests never see it apply.

Click a location's chip to toggle that program on or off there — green means active at that location, grey means not. A brand-new program created on an HQ-owned chain starts with no locations targeted at all (an explicit, deliberate choice on the platform's part — a program never silently goes live somewhere by default); switch every chip on to make it behave like the classic "everywhere at once" model, or leave it partial for something like an airport-only travel bonus that shouldn't apply to guests who never leave downtown.

Note

A new location added to an already HQ-owned chain is an exception to "starts with nothing targeted" above — it automatically inherits every program that's currently active chain-wide, exactly like joining a classic Unified chain would. Targeting is something you narrow deliberately afterward, not something a new location has to be manually opted into from zero.

Choosing between the two chain types

This is a decision the platform team makes with you when a chain is set up, not something you configure yourself later — but it helps to know which questions decide it:

  • Should a bonus earned at one location be spendable at another? If yes, that's Unified. If each location should keep its own books, that's Independent.
  • Do all locations run genuinely the same menu of programs, tiers, and branding — or does each one need its own pricing, its own tier thresholds, its own look? Same everywhere points to Unified; meaningfully different points to Independent.
  • Do you still want a guest's card to be recognized (even if their balance isn't shared) across locations that otherwise run independently — e.g. so a hotel's front desk can look up a guest who's also a regular at its restaurant? That's Independent with shared QR code turned on — the middle ground between the two extremes.

14 Staff: PINs, roles & devices

Every cashier's personal PIN, roles, and approved devices, in one place.

The Staff page is where you manage everyone who touches the till — from issuing a cashier's first PIN to approving a new device. It's built from two panels.

Cashiers

A table of everyone with till access: name, role, and status. Each cashier has their own personal PIN, separate from everyone else's. Per row:

  • Role — a Cashier / Manager dropdown. A Manager can approve another cashier's transaction that crosses the manager-approval threshold (see below and Settings) by entering their own PIN.
  • Reset PIN — issues a fresh PIN if the old one is forgotten, or if you suspect it's been seen by someone it shouldn't have.
  • Deactivate — removes till access without deleting anything; past transactions still correctly show who processed them.

A + New cashier button adds someone new: name, role, and an auto-generated PIN you hand to them once, in person.

Devices

The first device a cashier signs in from is approved automatically. Any later new device — a replacement phone, or someone attempting a known PIN from an unfamiliar device — shows up here pending approval, and sign-in on it is blocked until an admin or manager taps Approve. Already-approved devices can be pulled at any time with Revoke, e.g. after a lost phone or a departing employee.

Tip

Requiring new-device approval adds a real barrier against someone who learns a cashier's PIN quietly signing in from their own phone — knowing the correct PIN alone isn't enough on an unapproved device.

Staff page with a cashiers table showing roles and actions, and a devices list pending approval
Staff — just the cashiers table with roles and actions, and the devices list. Flagged transactions have their own page now — see the note below.
Note

Reviewing flagged transactions used to live at the bottom of this page as a "Suspicious activity" list — it has since moved to its own standalone Dangerous operations page in the main navigation, alongside pending device approvals and manager-approval events. If you're looking for that list, that's where it is now.

15 The cashier module

What staff see at the till — covered in full depth in the separate cashier quick guide.

Cashiers use a stripped-down, PIN-only, mobile-friendly module — no email, no menus beyond what a till needs. Each cashier signs in with their own personal PIN, issued and managed on the Staff page, not a single shared code.

  1. Sign in with your personal PIN

    The Staff sign-in screen — a PIN field and a Sign in button. The first device a cashier signs in from is approved automatically; signing in from a new device afterward may need an admin or manager's approval (see Staff).

  2. Find the guest

    There are three ways in, all landing on the same screen: point the camera at the guest's QR code and it opens their card automatically; start typing a name, phone number, or card number into the search field under the camera and matching guests appear live, before any button is pressed — tap the right row; or, if you already know the card number in full, type it and tap Find by number to skip the list. If the camera can't start, a yellow warning appears above the search field and the same live search works exactly as it would otherwise — manual lookup isn't a fallback bolted on for emergencies, it's an everyday way to find someone.

  3. Charge or redeem

    Once a guest is found, the top bar (language switcher and Log out) also gains a 🔄 Select client button, so you can jump to the next guest at any point without scrolling back up through the charge screen. Below it sits a compact single-line guest summary — name, tier badge, balance, card number, active program names, and a tier-progress hint — followed by the Charge (purchase) / Redeem (€X.XX) mode toggle and, in Charge mode, the keypad. See the dedicated steps below for what appears above that keypad before you type anything.

Staff sign-in screen with a PIN field and a Sign in button
Staff sign-in.
Scan guest card screen showing the camera view above a clean manual search field
Find the guest — camera above, live search below.
Live search-as-you-type showing card number DC19A411C3 typed in, with one matching result Katarina Simić in a dropdown below the field
Typing a card number, name, or phone surfaces matches instantly — no button needed until you pick one.

Charging a purchase

With Charge (purchase) selected (the default, highlighted orange), the guest's compact info row is followed by whatever the plan and the active programs make relevant to this specific guest, all visible before a single digit is typed:

  • On a Pro+ plan, a yellow recommendation banner can appear right away: 💡 Guest usually orders: <dish> (or, for a guest who hasn't been in for a while, "hasn't visited in a while, usually ordered <dish>"). If that dish also has a configured item pairing, the same line grows a second clause: "Suggest to the guest: <paired dish>." It's built entirely from the guest's scanned-receipt history and the Item pairings list, so it's absent on BASIC, where there's no scanned history to draw the recommendation from.
  • If any active stamp program requires a specific dish (see Loyalty programs), a checklist block appears above the keypad — Check the dish to award the stamp precisely — with one checkbox per qualifying dish. This works on every plan, since it's a manual tick, not a scan.
  • If receipt scanning is available on the plan, a 🧾 Scan receipt button sits above the keypad too, leading to the dedicated scanning screen below.
Charge screen before any amount is entered, showing the compact guest-info row, the yellow recommendation hint, and the Scan receipt button above the keypad
The charge screen before typing anything — guest row, recommendation hint, and the Scan receipt button, uncluttered by the keypad.

From there, key in the bill total and tap Record purchase — every matching active program applies automatically, with nothing to pick manually.

Charge screen with an amount of 5.00 already entered, the recommendation hint visible, and a checked dish checkbox for the stamp condition
Amount entered, recommendation hint still visible, and the "check the dish" box ticked for Капучино — ready for Record purchase.
Note

If an admin has turned on Disable manual amount entry at the till in Settings and receipt scanning is available on the plan, the numeric keypad is removed entirely — the 🧾 Scan receipt button plus explanatory text is all that's shown, and a purchase can only be recorded from an actual scanned receipt.

Warn

If the amount exceeds the manager-approval threshold, € set in Settings, a regular cashier's PIN isn't enough — the screen asks for a manager to approve by entering their own PIN right there. Smaller operations still go through with just the cashier's own PIN, as usual.

Scanning a receipt

Tapping 🧾 Scan receipt from the charge screen opens a dedicated Scan the receipt's QR code screen. This is the same QR code printed on an ordinary paper till receipt — the one that links to the tax authority's site — and it's a different code from the guest's own card QR: the guest is already selected at this point, and this screen is only reading the paper receipt for the purchase just rung up. A Cancel link returns to the ordinary charge screen at any time.

Receipt QR scan screen with an empty camera box and a Cancel link
Scan the receipt's QR code — the paper till receipt's own code, not the guest's card.

On success, the server fetches the receipt's verified item list and total straight from the tax service and applies the purchase automatically — no amount typing at all — then shows a result screen with a checkmark, what was applied, and the same recommendation/paired-item hint if one applies. On failure (the tax service is down, the receipt was already scanned once before, or the QR code is unreadable), the screen shows an error and, for anything that looks like an external-service hiccup, an Enter manually button that falls back to the ordinary keypad screen. Scanning is built to never fully block the till — there's always a manual way through.

Redeeming a bonus

Switching to Redeem (€X.XX) mode starts a two-step flow instead of a single amount field:

  1. Step 1 — check amount

    An optional Check amount field, entered on the same keypad, with Skip and Next buttons. Skip is hidden — the field becomes mandatory — when the restaurant has set a Bonus payment limit in Settings, since the till needs the check total to enforce that cap.

  2. Step 2 — bonus amount

    Enter how much of the balance to redeem. As soon as it's non-zero, a live box appears underneath: green with Payable: €X.XX and Discount off the check: Y.Y% once the amount is valid, or red with a validation message if it exceeds the check total or the org's % cap. A ‹ Back link returns to step 1 to change the check amount.

Redeem flow step 1: check-amount entry screen with Skip and Next buttons
Redeem, step 1 — the optional check amount (mandatory when a bonus payment limit is set).
Redeem flow step 2 with a bonus amount of 2.00 entered against a check of 20.00, showing a green result box: Payable €18.00, Discount off the check 10.0%
Redeem, step 2 — a €2.00 redemption against a €20.00 check shows "Payable: €18.00" / "Discount off the check: 10.0%" live.
Tip

If a guest holds balance across more than one cashback program, both steps still work against one combined total — the cashier is never asked to choose which program to draw from.

Granting a stamp reward

If a stamp-card reward is ready, a green banner reading e.g. 🎁 Ready: Stamp card: every 10th coffee free appears above the mode toggle, in both Charge and Redeem mode, with a Grant link. Tapping it replaces the need for any amount entry entirely.

Tip

For the condensed, till-side version of this whole section, with more troubleshooting scenarios for a busy shift, see the dedicated cashier quick guide.

16 The guest card

Everything a guest sees about their own loyalty status.

A guest's personal card page is the one screen they'll return to over and over. Top to bottom, it shows:

  • Restaurant name and logo, in the branding set on the Card design page
  • The guest's name and tier badge (e.g. "Milica Vuković" with a "PLATINUM" badge)
  • Their total combined balance, and a one-line summary of active programs underneath
  • Their card number (e.g. "Card № LC-820156493")
  • An Add app to Home Screen button (see Installing on the guest's phone)
  • A reward-ready banner when applicable — e.g. "🎉 Your reward is ready: Stamp card: every 10th coffee free — tell the staff!"
  • A stamp-card progress chip when applicable, e.g. "Stamp card: every 10th coffee free: 12 ×/10"
  • A personal QR code, for the cashier to scan or for the guest to save/share
  • A Get bonus notifications opt-in toggle, and any push messages already received under a Notifications heading
  • A full Transaction history — every earn and redeem, with a plain-language description (e.g. "+€0.78 cashback (5%) — 'Cashback 5%'") and the amount. Once the history spans enough time, older entries collapse into per-month groups — the newest month is expanded by default, and a header like "May 2026 (12 transactions)" expands the rest on tap, so a long history doesn't turn into an endless scroll.
Guest card page for Milica Vuković showing balance, tier badge, Add app to Home Screen button, a reward-ready banner, a QR code, a Get bonus notifications toggle, and a long transaction history
Guest card page — the guest's whole relationship with the restaurant on one scrollable screen.
Note

This is the same underlying data as the admin guest detail page (Guests) — a guest can always see exactly what you can see about their own balance and history, nothing hidden.

17 Installing on the guest's phone

No native app — a home-screen install, with one platform-specific catch.

There's no app-store app. The guest's card page is installed straight from the browser as a PWA (progressive web app) via the Add app to Home Screen button, which behaves differently depending on the guest's platform.

Guest card page with the Add app to Home Screen button shown prominently near the top
The install button sits right under the card, impossible to miss.
An in-app instruction dialog titled Install the app, with three numbered steps: tap the Share icon, choose Add to Home Screen, tap Add
iOS: tapping the button opens this instruction dialog instead of installing automatically.
PlatformWhat happens
iOS Safari (iPhone)No browser API can trigger install directly, so the button opens an instruction dialog: "1. Tap the Share icon ⬆️ at the bottom of Safari · 2. Choose 'Add to Home Screen' · 3. Tap 'Add' — the icon will appear on your Home Screen."
Android ChromeThe browser's native one-tap install prompt fires directly — tapping the button triggers the OS's own "Add to Home Screen" / "Install app" confirmation, no manual steps.
Any other browserA generic fallback: open the browser's own menu (usually ⋮ top-right) and look for "Install app" / "Add to Home Screen".
Bad

The iOS instructions only work from Safari itself — not from an in-app browser (Instagram, Telegram, Messenger, etc.). The install dialog says as much: "Only works in the Safari browser (not inside apps like Instagram/Telegram)." If a guest opened your link from a chat app, they must first tap that app's own "open in Safari" / "open in browser" option before the Share-icon steps will work at all.

Tip

Once installed, the home-screen icon uses the restaurant's own logo and color scheme from Card design — and, critically, this is also the point at which push notifications start actually working for that guest (see Push notifications).

18 A note on multilingual guests

Free-text names don't get auto-translated — plan for it.

Note

Program names, tier names, segment names, and card design text (title/subtitle) are all free text you type once when creating them. They are not automatically translated per guest language — the platform's own EN/RU/CG switcher only translates its own interface labels, never text you entered yourself. This demo restaurant happens to have named everything in English ("Cashback 5%", "Platinum", "Champions"), which is why every screenshot in this manual reads cleanly in English — but if your own restaurant's owner types those same fields in Russian or Montenegrin, that's exactly how every guest will see them too, regardless of which language they've switched their own interface to.

If your guests read different languages, a program named entirely in one language will show that way to everyone, regardless of which language they've switched their own view to. This is real, current product behavior, not a bug — plan your naming around it:

  • Favor universal terms where you can — numbers, %, and emoji read the same in every language (e.g. "☕ ×10" instead of a sentence).
  • Where a word is unavoidable, pick one short and recognizable across your guests' languages rather than a full phrase.
  • Remember this applies to tier badges too, since they're shown next to every guest's name everywhere — the admin guest list, the guest detail page, and the guest's own card.

20 Analytics

Everything built from scanned-receipt data — which dishes actually drive the business, and when guests show up.

Warn

Analytics is built entirely from scanned fiscal receipts, so it needs receiptFeaturesEnabled on — it's unavailable on BASIC (see Plans & licensing). Without scanned receipts there's simply no data to analyze.

At the top, three stat tiles give the headline numbers: total receipts scanned, guests with any purchase history, and guests with an identified preference (someone the recommendation engine can confidently say usually orders a particular dish).

The All purchases table is a classic ABC analysis: for every dish, how many times it's been ordered, what percentage of total revenue it represents, and an A / B / C tier badge — A for the biggest revenue contributors, C for dishes rarely ordered. It's the fastest way to see which menu items are actually worth featuring, discounting, or dropping.

The Visits block has a Day / Week / Month / Year / Custom time-range toggle driving a chart, plus a day-of-week histogram and an hour-of-day histogram underneath — useful for staffing decisions and for timing a promotion to when guests are actually walking in.

The Personal recommendations table lists every guest with purchase history: their current recommendation — FAVORITE (ordered a dish two or more times) or MISS YOU (used to order regularly but hasn't visited in a while) — along with times ordered, last-ordered date, and receipt count. This is exactly the recommendation that surfaces as the till's proactive yellow hint (see The cashier module).

Analytics page with stat tiles for receipts scanned, guests with history, and guests with identified preference, an ABC-analysis table, a visits chart with day-of-week and hour-of-day histograms, and a personal recommendations table
Analytics — 21 receipts scanned, 6 guests with history, 6 with an identified preference; an ABC table led by Капучино, Чизкейк, Латте, and Круассан; visit charts; and personal recommendations, e.g. guest Katarina Simić (card DC19A411C3) shown as FAVORITE Капучино, ordered 3×.

21 Item pairings

Short upsell rules that feed the till's recommendation hint.

Warn

Like Analytics, Item pairings depends on receipt-scanning data and is a Pro+ feature, unavailable on BASIC.

The Item pairings page holds a short list of upsell rules: a two-field form — If the guest usually orders and Suggest alongside it — plus an Add pair button. The table below lists existing pairs with a Delete action.

When a guest's favorite dish (from Analytics) has a configured pairing, the till's recommendation hint grows an extra clause: "Suggest to the guest: <paired dish>" — a natural upsell prompt shown right on the charge screen, before the cashier has even asked what the guest is having.

Item pairings page with a form to add a new pair and a table listing one existing pair, Капучино paired with Круассан
Item pairings — one seeded pair on this demo account: Капучино → Круассан.

22 Referrers

Personal referral links for bloggers, influencers, and partners.

Warn

Referrers follow the same plan gating as push notifications — unavailable on BASIC (see Plans & licensing).

The Referrers page lets you give bloggers, influencers, or partners their own personal referral link and QR code. Tap Add referrer to create one with a name — e.g. "Instagram — @podgorica.food" or "Hotel Podgorica (partner)" — and the platform generates a unique link in the form /join/{slug}?ref=.... A guest who registers through that link is attributed to that referrer automatically, with no manual step for either the guest or your staff.

The table lists Name, Link (with Copy and QR code actions), Guests (how many signed up through that link), Revenue (their total lifetime spend), Average check, and Status (Active/disabled). A summary line at the top reads Total guests referred: N across every referrer combined.

Referrers table listing three referrers with name, link, guest count, revenue, average check, and status columns, and a Total guests referred summary line above the table
Referrers — "Instagram — @podgorica.food" (3 guests, €332.18 revenue, €15.82 avg check), "Marko — Ambassador" (2 guests, €176.61, €11.77 avg), and "Hotel Podgorica (partner)" (2 guests, €173.19, €13.32 avg), all Active. Total guests referred: 7.
Tip

The exact same per-referrer numbers are mirrored in the Dashboard's Top referrers widget (see Dashboard) — no need to visit this page just to check who's driving guests this week.

23 Dangerous operations

Flagged transactions, pending devices, and manager-approval events — one place to review them all.

This page used to be folded into the bottom of Staff as a "Suspicious activity" list; it's since become its own standalone page in the main navigation, covering the same ground: operations that crossed the alert threshold, € set in Settings (an unusually large purchase or redemption), new staff devices waiting on approval, and events where a manager's approval was actually used. Each row shows who was involved, the amount, the guest, and the date, with a Mark reviewed action to clear it once you've looked.

A Set up alerts → link at the top jumps straight to the Dangerous-operation alerts block in Settings, so you can turn on Telegram and/or email notifications for these events instead of remembering to check this page manually.

Dangerous operations page listing two flagged events, a large purchase and a large bonus redemption, each with cashier, guest, amount, date, and a Mark reviewed action, plus a Set up alerts link
Dangerous operations — two seeded alerts, a €62.50 large purchase and a €35.00 large bonus redemption, both processed by cashier "Ана (кассир)" for guest Ivana Backović.

24 Syrve integration

For venues whose loyalty is already configured in Syrve: phone card, sign-up, push and analytics with no plugin at the till

In Syrve mode, Syrve runs the loyalty: rules (cashback, discounts, gifts, coupons), earning and spending happen at the Syrve till as usual. The platform adds what Syrve lacks: the guest's card on their phone and in Google Wallet, QR/link sign-up, push notifications about earnings, referrers, campaigns and analytics. Nothing is installed at the till: the connection uses the Syrve Loyalty API.

How to connect (Syrve integration, under System settings)

  1. Key. Paste the Syrve Loyalty API key (issued by Syrve or your partner) and press "Connect and check". The key is stored encrypted and never sent back to the browser.
  2. Organization. If the key covers several Syrve organizations, choose the one this venue belongs to.
  3. Wallets. Tick which Syrve wallets the guest sees and name them ("Cashback", "Points"). Syrve does not report units, so you set the label and symbol (e.g. "€"). One wallet is primary and shown large. The phone look-up shows a real customer's cards and wallets, which helps to work out what each wallet means.
  4. Card number and code. Numbers are numeric (12 digits) with your prefix (77 by default) so they never clash with physical cards. The code on the card is a QR (read by 2D scanners and the Syrve Waiter camera) or a Code128 barcode (read by any scanner).
  5. Switch on. Tick the box and press "Switch on Syrve mode". From then on new guests get a numeric card and are created in Syrve (or matched by phone) automatically. Our programs, tiers, earning in the cashier app and receipt scanning are switched off.
  6. Guests. Guests registered earlier link themselves when they open their card. "Link all guests" does it right away.
  7. Webhook. "Connect webhook" gives Syrve the platform's address: when a check is closed at the till the guest instantly gets a push about the earning. Without it the platform checks guests itself every few minutes, and the balance refreshes when the card is opened.
Warn

Welcome bonus. If Syrve gives a bonus "for registration", everyone who signs up through our link gets it, including with someone else's or a made-up number: there is no SMS confirmation. If that is a risk, set the Syrve bonus to "for the first purchase".

How it works at the till

The guest shows the QR or barcode from their card (or gives their phone number). The cashier identifies them the Syrve way (scanner, card number or phone) and Syrve applies discounts and spends points itself. After the check is closed the guest sees the new balance and history on the card; the check feeds our analytics (visits, spend, referrers, segments).

What does not work in Syrve mode

Apple Wallet (on iPhone guests use the home-screen app; Google Wallet is available on Android), dish-level analytics (Syrve does not provide check contents), and our own programs, tiers and birthday bonuses, which Syrve itself runs.