Guests can order via their phone by scanning a QR code at the table. Everything happens in a mobile-friendly AI chat, and in March 2026 the online flow gained support for gift cards, loyalty points and stamp card rewards.
The basic flow:
- The guest scans the QR code on the table
- A chat view opens in the mobile browser
- The AI assistant welcomes and asks what the guest would like to order
- The guest types (e.g. "A burger and a coke")
- The AI matches against the menu and adds to the cart
- The AI suggests sides and drinks (upsell)
- The guest confirms → the order is created
- The kitchen sees the order on KDS in real-time
- The guest pays by card – optionally redeeming gift card/points/stamps
AI assistant behaviors:
- Fuzzy matching: "a cava please" → finds the right product in the menu even with typos
- Allergen handling: Asks early about allergies and filters the menu
- Upselling: Suggests drinks with food, dessert after main course
- Required modifiers: Asks about sauce/size before adding
- Confirmation optimization: "Yes", "Yes please", "Go for it" → AI adds immediately
- Multi-language: Swedish, English, more coming
What the guest can do in the chat:
- View the menu with interactive menu cards
- Filter by allergens (14 EU allergens)
- Get recommendations
- See popular dishes right now
- Add special requests ("No onion, extra spicy")
- Call a waiter
- View their current order
Loyalty redemption online (new – March 2026):
When the guest has verified their phone number via an SMS code (OTP) and is a member of the loyalty program, an expandable card labeled "Gift card, points or stamp card?" appears above the payment button with three sections:
1. Loyalty points:
- Card shows the guest's current balance, tier and SEK value
- Input field for the number of points to redeem
- Real-time preview of the discount
- Validation against minimum redemption and max discount per order
- Example: 500 pts × 10 öre = 50 SEK discount
- On approval the order total is reduced and the points balance updates instantly
2. Gift card redemption:
- Input fields: card code (e.g. "XXXX-XXXX") and amount
- Validation: code exists, active, not expired, sufficient balance
- Supports chain scope (if the restaurant is part of a chain with shared gift cards)
- Partial payment: 300 SEK gift card + the rest by card
- Errors: clear messages ("This card has expired", "Insufficient balance", "Card code not found")
- Remaining balance shown: "Remaining on card: 245.50 SEK"
3. Stamp card rewards:
- List of the guest's available rewards
- Example: "☕ Free coffee (3 stamps redeemed)", "🍰 Free dessert (5 stamps redeemed)", "🥂 Champagne (8 stamps redeemed)"
- Each shows progress (current stamps / required stamps)
- Click "Redeem" → reward applied (discount or free item)
- Multiple rewards can be redeemed on the same order
Split payment online:
The guest can combine methods in one order:
- 200 SEK gift card
- 100 SEK via 1000 points
- The rest by card
Each partial payment is recorded separately.
What happens after payment?
- The order is marked as paid (however without CCA signing in the online flow – see known limitations)
- The receipt appears on its own receipt page with 90-day validity
- Option for SMS receipt
- The kitchen already received the ticket when the order was sent
- The guest gets confirmation in the chat
CRM effects:
- Customer is created/linked automatically via the OTP-verified phone number
- Loyalty points credited overnight
- Auto-tagging ("New customer", "Online booker", "Regular")
- The order is visible immediately in Marketing → Guest Profile
Known limitations:
- 🔴 CCA/control box: Online orders lack a control code in the current implementation (documented Swedish fiscal-law risk, fix on the roadmap)
- 🟠 Card payment is mock-only (no live payments yet)
- 🟡 SMS receipts for online are planned but not yet launched
- 🟡 Redemption cannot be undone mid-order – the guest must restart
Tips:
- Place the QR code visibly on the table (laminated foil lasts longer)
- The onboarding video via the help button in the chat explains loyalty to new guests
- If the guest has been there before they are recognized by phone ("Hej Anders! Welcome back 👋")
- Test restaurants: use demo restaurants to test the flow before go-live