Gratis abonnement, geen creditcard nodigDynamische QR-codes die je na het printen kunt aanpassenGDPR-conforme scananalysesGemaakt voor bureaus, freelancers en interne teamsGratis abonnement, geen creditcard nodigDynamische QR-codes die je na het printen kunt aanpassenGDPR-conforme scananalysesGemaakt voor bureaus, freelancers en interne teamsGratis abonnement, geen creditcard nodigDynamische QR-codes die je na het printen kunt aanpassenGDPR-conforme scananalysesGemaakt voor bureaus, freelancers en interne teamsGratis abonnement, geen creditcard nodigDynamische QR-codes die je na het printen kunt aanpassenGDPR-conforme scananalysesGemaakt voor bureaus, freelancers en interne teams
Alle artikelen
Een QR-code die verwijst naar een digitale spaarkaart in een wallet-app, met een rij stempels en een gouden ster als beloning.
Praktijkvoorbeeld

Loyaliteitsprogramma's met QR-codes voor bureaus: spaarkaarten, punten en fraudecontrole voor meerdere klanten

Praktische gids voor bureaus die spaarkaarten, puntenprogramma's of tiers met QR-codes bouwen voor meerdere klanten: architectuur, fraudepreventie, data-isolatie, AVG en prijsstelling.

ScanKit

ScanKit · Organization

· 18 min. leestijd

Loyaliteitsprogramma's met QR-codes voor bureaus: spaarkaarten, punten en fraudecontrole voor meerdere klanten

Een café wil een digitale spaarkaart. Een schoonheidssalon wil een stempelkaart die terugkerende afspraken bijhoudt. Een retailklant wil een puntenprogramma gekoppeld aan de bestedingen. Vraag het aan elk bureau dat QR-campagnes runt voor klanten in horeca en retail: een loyaliteitsprogramma is meestal het eerste waar een klant om vraagt zodra ze hebben gezien wat dynamische QR-codes al kunnen doen voor hun signing en drukwerk.

Het probleem is dat vrijwel alles wat er over "loyaliteitsprogramma's met QR-codes" wordt geschreven, gericht is op het bedrijf dat zijn eigen ene kaart runt, niet op het bureau dat dit voor tien, twintig of vijftig klanten tegelijk bouwt en beheert. Dat is een ander vraagstuk. Het vraagt om data die nooit tussen klanten kruist, rapportages die voor jou worden opgeteld zonder in iemand anders' dashboard te lekken, en een inwisselmodel dat overleeft als iemand een screenshot van zijn spaarkaart maakt en de foto aan een vriend doorstuurt.

Dit is een praktische gids om dat te bouwen: hoe QR-loyaliteit onder de motorkap echt werkt, de drie programmastructuren die het aanbieden waard zijn, wat de fraude tegenhoudt waar papieren kaarten al gevoelig voor waren, en de multi-tenant architectuurvraag die je moet beantwoorden voordat je klant nummer twee onboardt.

Hoe een QR-spaarkaart écht werkt

Een gedrukte stempelkaart is zijn eigen database. Het inktpatroon op de kaart is de volledige registratie van hoeveel koffies iemand heeft gekocht, en als de kaart kwijtraakt, is die geschiedenis weg. Een QR-spaarkaart draait dit om. De code zelf bevat vrijwel niets: hij verwijst naar een uniek klant-ID, en elke stempel, elk punt of elke tier staat in een server-side grootboek dat het bedrijf (of het bureau, namens het bedrijf) beheert.

Dat ene architecturale verschil maakt al het andere in deze gids mogelijk. Omdat het saldo op een server staat en niet op een kaart, kun je een verkeerde inwisseling corrigeren, exact controleren wanneer en waar elke stempel is verdiend, de geschiedenis van een klant over meerdere vestigingen samenvoegen, en een "kwijtgeraakte" kaart direct herstellen door de klant op te zoeken. Niets daarvan bestaat voor een geperforeerde papieren kaart.

Twee manieren om de code zelf te implementeren:

  • Een statische QR-code per klant, eenmalig uitgegeven (gedrukt op een fysieke kaart, of opgeslagen op een telefoon), die de kassa bij elk bezoek scant. Simpel te bouwen, maar de code zelf wordt iets om te beschermen, want een foto ervan is functioneel identiek aan het origineel.
  • Een code die ververst binnen een wallet-pas of app, met een korte interval zodat een screenshot binnen een minuut verouderd is. Meer opzetwerk, aanzienlijk lastiger te misbruiken.

Voor de meeste bureauklanten is een statische code per klant, gekoppeld aan een inwisselstap die inloggen vereist (zie het fraudegedeelte hieronder), de pragmatische middenweg: goedkoop om over veel klanten te draaien, en de inlogvereiste haalt het grootste deel van het risico weg dat een kale statische code anders zou meebrengen.

Apple Wallet en Google Wallet: wat een loyaliteitspas écht kan

Als een klant wil dat "de spaarkaart in de wallet van mijn telefoon zit, niet in een aparte app," dan is dat een loyaliteitspas op Apple Wallet of Google Wallet, en beide platforms ondersteunen echt bruikbare mechanieken die verder gaan dan alleen het tonen van een afbeelding.

Apple Wallet-passen ondersteunen tot tien relevante locaties (GPS-coördinaten of iBeacon-ID's) per pas. Als de klant in de buurt van een van die locaties is, verschijnt de pas automatisch op het vergrendelscherm, zonder dat er toestemming voor meldingen nodig is. Voor een klant met meer dan tien vestigingen is de gangbare aanpak om de locatielijst van de pas dynamisch bij te werken naar de tien dichtstbijzijnde, in plaats van te proberen elke vestiging erin te proppen.

Google Wallet-loyaliteitsobjecten ondersteunen gedeeltelijke updates via hun API: alleen een wijziging in het puntensaldo of de beloningstier pushen activeert een door het systeem gegenereerd "wijzigingsbericht" op de telefoon van de klant, zonder dat jij iets hoeft te herbouwen of opnieuw te printen. Google stelt hier een limiet van drie meldingen per pas binnen 24 uur, en API-aanroepen zijn rate-limited, dus een puntenupdate na elke kleine transactie is niet het juiste ritme; batchen naar betekenisvolle mijlpalen (tierwijziging, beloning verdiend, kaart bijna verlopen) wel.

Dit is voor bureaus specifiek belangrijk omdat beide platforms je in staat stellen een wijziging tegelijk naar de pas van elke klant te pushen wanneer een klant het programma aanpast, een nieuwe beloningstier, een gewijzigde inwisseldrempel, zonder iets te printen of klanten te vragen iets opnieuw te installeren. Dat is de echte pitch voor een klant die dit vergelijkt met het herdrukken van een plastic kaart.

De drie programmastructuren, en bij welke klanten ze passen

Niet elke klant heeft dezelfde mechaniek nodig, en de verkeerde kiezen is de meest voorkomende reden dat een loyaliteitsprogramma ondermaats presteert. Er zijn drie structuren die het aanbieden waard zijn, en elk sluit naadloos aan bij een ander soort klantbedrijf.

Stempel- of spaarkaarten ("koop er negen, krijg de tiende gratis") passen bij hoogfrequente, laagdrempelige, gewoontematige aankopen: cafés, fastfoodzaken, broodjeszaken, wasstraten. De mechaniek is voor een klant kinderlijk eenvoudig te begrijpen en voor personeel eenvoudig te beheren bij de kassa, en dat telt wanneer degene die de code scant een barista tijdens de ochtenddrukte is, en niet iemand die instructies leest.

Puntenprogramma's (een vast tarief verdienen per bestede euro) passen bij bedrijven met wisselende mandgroottes en een breder assortiment: retail, salons, horeca met meerdere diensten. Punten laten een bedrijf grote spenders proportioneel belonen in plaats van een aankoop van 4 euro hetzelfde te behandelen als eentje van 40 euro, iets wat een spaarkaart niet kan.

Getrapte programma's (cumulatieve bestedingen ontgrendelen een statusniveau met oplopende voordelen) passen bij duurdere, minder frequente bedrijven: boetieks, spa's, premium salons, overal waar een klant een handvol keer per jaar komt in plaats van wekelijks. Tiers belonen loyaliteit over een langere periode en geven een bedrijf een reden om een klant die nog geen beloning heeft ingewisseld een e-mail of bericht te sturen, iets wat noch stempelkaarten noch eenvoudige punten goed doen.

Vraag welke van deze drie vormen past bij het werkelijke aankooppatroon van de klant, voordat je standaard kiest voor wat voor jou het makkelijkst op te zetten is. Een puntensysteem dat op een café wordt geplakt dat eigenlijk een stempelkaart met tien vakjes nodig had, voelt voor zowel de eigenaar als de klanten overdreven ingewikkeld aan.

Waar QR-loyaliteitsfraude écht gebeurt, en wat het tegenhoudt

Papieren stempelkaarten waren ook nooit fraudebestendig, een vriend kon altijd de bijna volle kaart van iemand lenen, maar een digitaal systeem dat bij elk bezoek dezelfde statische code hergebruikt, introduceert een specifiek nieuw faalscenario, een naaste verwant van de inwisselfraude die al is gedocumenteerd voor eenmalig te gebruiken QR-couponcodes: de code kan worden gefotografeerd en de foto kan onbeperkt worden hergebruikt, of gedeeld worden met iemand die nooit een voet in de winkel heeft gezet.

De tegenmaatregelen die consistent terugkomen bij loyaliteitsplatforms, in ruwweg oplopende volgorde van inspanning:

  • Server-side eenmalig-gebruik-handhaving. Zodra een code wordt ingewisseld, markeer je hem onmiddellijk als ingewisseld in het grootboek, en wijs je elke tweede scan van dezelfde inwisseling af, ongeacht of de afbeelding een perfecte kopie is. Dit is de basis die elke implementatie nodig heeft, en het stopt de eenvoudigste replay-aanval (iemand die een foto van een al gebruikte stempel scant) gratis.
  • Aan account gebonden inwisseling. Vereis dat de klant is ingelogd op het account waar de code bij hoort voordat een stempel of punt wordt bijgeschreven. Dit maakt van "ik heb een foto van jouw QR-code" ineens "ik heb ook je ontgrendelde en ingelogde telefoon nodig," wat de lat aanzienlijk hoger legt.
  • Snelheids- en locatiecontroles. Beperk hoeveel inwisselingen een account per dag kan verdienen, en signaleer inwisselingen die op onwaarschijnlijke locaties of in onwaarschijnlijke opeenvolging plaatsvinden (twee stempels in twee steden binnen tien minuten van elkaar). Dit vangt misbruikpatronen op in plaats van individuele foute codes.
  • Roterende, tijdgebonden codes. De meest robuuste optie: de code die in de wallet-pas of app wordt getoond, ververst elke 30 tot 60 seconden, zodat een screenshot binnen een minuut waardeloos is. Dit is de meest arbeidsintensieve optie qua engineering en meestal alleen de moeite waard voor een klant met een echt, aanhoudend misbruikprobleem, niet als standaard voor elk account.

De meeste bureauklanten hebben alleen de eerste twee nodig. Bewaar roterende codes voor de zeldzame klant bij wie zelfs incidentele inwisselfraude een reële kostenpost is door de marges, in plaats van het standaard voor iedereen te bouwen.

Het lastige deel: dit voor veel klanten tegelijk draaien

Een loyaliteitsprogramma voor één bedrijf is een opgelost probleem; tientallen leveranciers verkopen precies dat. Wat écht lastig is, en wat vrijwel niets wat er over QR-loyaliteitsprogramma's is geschreven behandelt, is het voor veel klanten tegelijk doen zonder dat hun data, huisstijl of rapportages in elkaar overlopen.

Drie dingen moeten vanaf dag één kloppen, want ze er achteraf inbouwen nadat klant nummer vijf heeft getekend, is veel pijnlijker dan ze vanaf klant nummer één mee te bouwen:

Data-isolatie moet op het datalaagniveau worden afgedwongen, niet alleen verborgen in de interface. Personeel van een klant dat inlogt op hun eigen dashboard, zou structureel niet in staat moeten zijn om de klantenlijst van een andere klant op te vragen, zelfs niet door een URL of ID te raden, en niet alleen worden tegengehouden doordat er geen menu-optie voor te zien is. Als je één gedeelde database voor meerdere klanten gebruikt, betekent dit toegangscontrole op rijniveau gekoppeld aan account-identiteit, niet filtering op applicatieniveau die door een bug omzeild kan worden.

Huisstijl en passontwerp moeten per klant zijn, niet een template met het logo van de klant erop geplakt. Een wallet-pas of landingspagina die zichtbaar uit dezelfde generieke template komt als het programma van elke andere klant, ondermijnt het hele punt van een loyaliteitskaart, namelijk dat die aanvoelt als iets van dat specifieke bedrijf. Als je al één werkruimte per klant aanhoudt voor QR-campagnes, breid diezelfde scheiding dan uit naar de loyaliteitslaag in plaats van het te behandelen als een aanvullende functie die buiten de klantstructuur leeft.

Geaggregeerde rapportages voor je eigen bureaudashboard moeten een aparte optelling zijn, nooit een sluiproute via individuele klantweergaven. Je wilt de totale inwisselingen of actieve leden over je hele klantenportfolio zien, zonder dat die aggregatieweergave een achterdeur wordt waardoor de data van de ene klant zichtbaar is vanuit de sessie van een andere. Bouw de samenvatting op bureauniveau als een eigen laag die leest uit geïsoleerde data per klant, niet als een rechtenniveau dat je jezelf geeft binnen het account van één klant.

Krijg je deze drie goed voor elkaar, dan is de multi-klantversie van een loyaliteitsprogramma dagelijks écht niet lastiger te runnen dan eentje voor één bedrijf. Krijg je ze verkeerd, dan ben je één supportticket verwijderd van een klant die volkomen terecht vraagt waarom hij de klantenlijst van een ander bedrijf kan zien.

AVG, en waarom loyaliteitsdata gevoeliger is dan een eenmalige scan

Een eenmalige scan van een printadvertentie, gevolgd door ScanKit of een ander dynamisch QR-platform, levert doorgaans anonieme of pseudonieme analytics op: een tijdstip, een globale locatie, een apparaattype. Een loyaliteitsprogramma is een compleet andere categorie data, omdat het een naam, contactgegevens en een lopende aankoopgeschiedenis koppelt aan een identificeerbare persoon, en die combinatie is gedragsprofilering onder de AVG (in Duitsland de DSGVO), niet zomaar een analytics-event.

Dat legt de lat op drie concrete manieren hoger. Ten eerste heb je een echte rechtsgrond nodig, in de praktijk vrijwel altijd toestemming, om de aankoopgeschiedenis voor marketing te gebruiken in plaats van alleen voor het programma zelf. Ten tweede moet het recht van de klant om die toestemming in te trekken daadwerkelijk werken: een "uitschrijven en verwijder mijn geschiedenis"-actie die het grootboek ondersteunt, niet een supportmail die stilletjes niets doet. Ten derde moet bewaartermijn bewust worden vastgesteld: bepaal hoe lang de aankoopgeschiedenis van een slapend loyaliteitsaccount wordt bewaard voordat die wordt verwijderd, in plaats van alles voor onbepaalde tijd op te stapelen omdat verwijderen er nooit is ingebouwd.

Niets hiervan is een reden om loyaliteitsprogramma's te vermijden, bureaus draaien ze dagelijks compliant, maar het is wel een reden om toestemming en verwijdering vanaf het begin in het grootboek te bouwen, in plaats van ze te behandelen als een verzoek dat je handmatig afhandelt als het zich ooit voordoet. AVG-boetes lopen op tot 4% van de wereldwijde jaaromzet of 20 miljoen euro, wat hoger is, voor de ernstigste overtredingen, en dat is een sterke prikkel om de saaie onderdelen (toestemmingsregistraties, verwijderflows, bewaartermijnen) goed te regelen vóór de leuke onderdelen (punten, tiers, wallet-passen).

Het programma prijzen binnen wat je al in rekening brengt

Loyaliteit is van nature een aanvulling op een klantrelatie die waarschijnlijk al QR-campagnebeheer omvat, geen apart product dat je vanaf nul bouwt. Als je klanten al in rekening brengt voor QR-campagnes, past een loyaliteitsprogramma in dezelfde retainerlogica: het is doorlopende infrastructuur waar de klant van afhankelijk is, geen eenmalige projectkosten.

Kant-en-klare loyaliteits-SaaS-tools vallen ruwweg in drie prijsbanden: basale tools die alleen stempelkaarten bieden met een beperkt aantal leden en beperkte huisstijl zitten aan de onderkant per maand; een uitgebreidere laag met wallet-passen, punten, pushupdates en analytics kost aanmerkelijk meer; en premium- of onbeperkte-ledenlagen kosten weer meer. Waar een klant in die range zit, zou moeten bepalen wat je er bovenop rekent voor beheer, in plaats van stilzwijgend te worden opgeslokt door je bestaande retainer.

De korte versie

Een QR-spaarkaart werkt omdat het saldo op een server staat en niet op de kaart, en juist dat maakt correctie, controle en het samenvoegen van meerdere vestigingen überhaupt mogelijk. Kies stempelkaarten voor hoogfrequente, laagdrempelige bedrijven, punten voor retail en salons met wisselende mandgroottes, en tiers voor duurdere, minder frequente bestedingen. Stop de fraude die ertoe doet met server-side eenmalig-gebruik-handhaving en aan account gebonden inwisseling, voordat je naar roterende codes grijpt. En behandel data-isolatie voor meerdere klanten, huisstijl per klant en een aparte geaggregeerde rapportagelaag als eisen vanaf klant nummer één, niet als reparaties die je doet nadat klant nummer vijf een ongemakkelijke vraag stelt. Krijg de saaie infrastructuur goed voor elkaar, en een loyaliteitsprogramma wordt weer een betrouwbare regel in de retainer, in plaats van een sluimerend supportprobleem.

Veelgestelde vragen

Heb je een aparte app nodig voor een loyaliteitskaart met QR-code?

Nee. De twee meest voorkomende implementaties, een statische QR-code per klant en een loyaliteitspas in Apple Wallet of Google Wallet, werken allebei zonder dat de klant een speciale app installeert. Vooral een wallet-pas kan punten- en tierupdates direct naar de telefoon van de klant pushen via de eigen API van het platform, zonder dat er opnieuw geïnstalleerd hoeft te worden.

Kan één QR-code werken voor meerdere loyaliteitsprogramma's tegelijk?

Niet op een manier die écht bruikbaar is. Een QR-code verwijst naar één klant-ID dat gekoppeld is aan het grootboek van één bedrijf. Wat wel gedeeld kan worden, is het onderliggende platform dat een bureau gebruikt om de programma's van al zijn klanten te draaien, maar het programma en de klantdata van elke klant moeten een aparte, geïsoleerde registratie blijven, niet één gedeelde code.

Hoe voorkom je dat iemand een screenshot van zijn QR-spaarkaart hergebruikt?

Server-side eenmalig-gebruik-handhaving, een code direct als ingewisseld markeren zodra hij wordt gescand, stopt eenvoudige replay gratis. Vereisen dat de klant is ingelogd op zijn account voordat een stempel wordt bijgeschreven, legt de lat verder omhoog, want een screenshot alleen werkt dan niet meer zonder ook toegang tot het ingelogde account. Roterende, tijdgebonden codes zijn de sterkste optie, maar zijn meestal alleen de engineering-inspanning waard voor klanten met een echt, aanhoudend misbruikprobleem.

Wat is het verschil tussen een stempelkaart, een puntenprogramma en een getrapt programma?

Een stempelkaart beloont een vast aantal bezoeken, ongeacht de besteding, en past bij hoogfrequente, laagdrempelige aankopen zoals cafés. Een puntenprogramma beloont bestedingen proportioneel, wat past bij retail en salons met wisselende mandgroottes. Een getrapt programma beloont cumulatieve bestedingen over een langere periode met oplopende status en voordelen, wat past bij duurdere, minder frequente bedrijven zoals boetieks en spa's.

Is een loyaliteitsprogramma voor meerdere klanten anders dan voor één bedrijf?

Technisch gezien wel, en behoorlijk ook. Een programma voor één bedrijf heeft alleen een werkend grootboek en een inwisselflow nodig. Een multi-klantversie heeft data-isolatie nodig die op databaseniveau wordt afgedwongen (niet alleen verborgen in de interface), huisstijl per klant in plaats van een gedeelde template, en een aparte geaggregeerde rapportagelaag voor het bureau die nooit een achterdeur wordt naar de data van een individuele klant.

Behandelt de AVG data van loyaliteitsprogramma's anders dan een gewone QR-code-scan?

Ja. Een eenmalige scan levert doorgaans anonieme of pseudonieme analytics op. Een loyaliteitsprogramma koppelt een naam en contactgegevens aan een lopende aankoopgeschiedenis, en dat geldt als gedragsprofilering onder de AVG. Dat betekent een echte rechtsgrond (meestal toestemming) voor marketinggebruik, een werkende flow om toestemming in te trekken en gegevens te verwijderen, en een vastgestelde bewaartermijn voor slapende accounts, in plaats van standaard alles voor onbepaalde tijd te bewaren.

Kunnen Apple Wallet- of Google Wallet-passen locatiegebonden herinneringen sturen?

Ja. Apple Wallet-passen ondersteunen tot tien relevante locaties die automatisch een melding op het vergrendelscherm activeren zodra de klant in de buurt is, zonder dat er apart toestemming voor meldingen nodig is. Google Wallet ondersteunt vergelijkbare meldingen in de buurt, naast de mechanieken voor punten- en tierupdates. Voor klanten met meer dan tien vestigingen is het dynamisch bijwerken van de locatielijst van de pas naar de tien dichtstbijzijnde de praktische aanpak.

Hoe prijs je een loyaliteitsprogramma binnen wat een bureau een klant al in rekening brengt?

Als uitbreiding van de bestaande QR-campagneretainer, niet als eenmalig project. Loyaliteit is doorlopende infrastructuur waar de klant van afhankelijk is, dus waar de kosten van het onderliggende platform liggen (basale stempelkaarttools kosten minder dan volledige wallet-pas-en-analyticslagen) zou het beheertarief moeten bepalen dat je erbovenop rekent, in plaats van stilzwijgend te worden opgeslokt door een vast tarief dat de extra complexiteit niet weerspiegelt.

Delen

Verder lezen

Loyaliteitsprogramma's met QR-codes voor bureaus: spaarkaarten, punten en fraudecontrole voor meerdere klanten | ScanKit