
QR-codes in bulk genereren: de complete gids voor bureaus
Leer hoe je QR-codes in bulk genereert: serialisatie, batchlimieten, variabele datadruk (VDP) en waarom dynamische codes onmisbaar zijn voor traceerbare campagnes op schaal.
ScanKit · Organization
· 16 min. leestijd
Eén campagne kan een andere QR-code nodig hebben voor elke winkel, elke fliervariant, elke productlijn of elke vertegenwoordiger. Maak je ze één voor één, dan ben je een middag bezig met URL's kopiëren naar een generator en bestanden downloaden met namen als qr (37).png. Erger nog: later heb je geen idee meer welke code waar terecht is gekomen. QR-codes in bulk genereren lost het volumeprobleem op, maar alleen een doordachte opzet lost het deel op waar het een bureau echt om gaat: elke code uniek, traceerbaar en aanpasbaar houden nadat hij naar de drukker is gegaan.
Dit is een gids voor het goed aanpakken van bulk-QR-codes. We behandelen hoe bulkgeneratie echt werkt, wat serialisatie betekent en wanneer je het nodig hebt, de overdracht naar een drukker die de meeste grote opdrachten stilletjes laat mislukken, en waarom dynamische codes bijna onmisbaar zijn zodra je duizenden fysieke stukken drukt die je niet kunt terughalen.

De hele klus verloopt in vier fasen, en het genummerde diagram hierboven brengt ze in kaart:
- Databron. Eén schone spreadsheet, één rij per code, met in elke rij een bestemming en een naam.
- Bulkgeneratie. Het platform zet dat bestand in één keer om in een batch codes en geeft ze terug als een set afbeeldingen.
- Dynamische redirect. Elke code wijst naar een korte redirect die jij beheert, zodat elke bestemming na het drukken kan worden gewijzigd.
- Analytics per code. Elke code rapporteert zijn eigen scans, en dat is precies de reden om elke plaatsing zijn eigen code te geven.
Wat "bulk-QR-codes" echt betekent
Onder dezelfde term schuilen twee verschillende klussen, en juist het door elkaar halen ervan is waar campagnes misgaan.
De eerste is één ontwerp, veel kopieën. Je wilt dezelfde code, dezelfde bestemming, duizend keer gedrukt. Dat is eigenlijk helemaal geen bulkgeneratieprobleem. Je maakt één code en de oplage dupliceert hem. Elke scan ziet er identiek uit in je analytics omdat elke code identiek is.
De tweede is veel unieke codes. Elk gedrukt stuk draagt een andere code die naar iets specifieks wijst of apart wordt gevolgd: een unieke URL per winkel zodat je ziet welke locatie scans oplevert, een landingspagina per regio, een link per product, of dezelfde landingspagina die via een aparte, getrackte code wordt bereikt zodat elke plaatsing afzonderlijk rapporteert. Dit is de klus die bulkgeneratie nodig heeft, en die het waard is om goed te doen.
Voor bureaus is die tweede klus bijna altijd het hele punt. De reden dat je een QR-code op de campagne van een klant zet, is attributie: bewijzen dat de bushokjesposter beter presteerde dan de schapkaart in de winkel, of dat de winkels in Hamburg twee keer zo vaak werden gescand als die in München. Dat krijg je alleen als elke plaatsing zijn eigen code draagt. Eén gedeelde code vertelt je dat er een campagne heeft plaatsgevonden; een set unieke codes vertelt je wat werkte.
Hoe bulkgeneratie werkt
Bijna elke bulktool volgt hetzelfde stramien, dus zodra je het op één platform hebt gedaan, heb je het op allemaal gedaan.
- Download het CSV- of spreadsheetsjabloon van het platform.
- Vul één rij per code in: minimaal een bestemmings-URL en een naam, plus optionele kolommen voor ontwerp, frame of UTM-parameters.
- Upload het bestand.
- Het platform genereert elke code en geeft je een ZIP met afbeeldingsbestanden terug, meestal vernoemd naar je "naam"-kolom zodat je elk bestand aan zijn rij kunt koppelen.
Het detail waar mensen over struikelen is dat batchlimieten geen eigenschap van QR-codes zijn, maar van je abonnement. Er is geen universele bovengrens. Om een idee te geven van de spreiding op basis van de documentatie van de aanbieders zelf: Uniqode (voorheen Beaconstac) verdeelt batches dynamische codes over niveaus van 15 op het instapplan tot 10.000 op enterprise, en stelt dat een batch van 10.000 codes in ongeveer een minuut wordt verwerkt. De Bitly-eigen QR Code Generator PRO begrenst een batch op 5 in de proefversie, 100 op Advanced en 500 op Professional, en laat per batch maar één codetype toe. QRCodeChimp stelt geen vast aantal per batch maar begrenst je via de totale codelimiet van je plan en raadt aan opdrachten boven een paar duizend op te splitsen voor de prestaties.
De praktische les: controleer de batchlimiet voordat je de campagne bouwt, niet erna. Als je klant 4.000 unieke codes nodig heeft en je plan batches op 500 begrenst, splits je de klus in acht uploads of upgrade je. Beide zijn prima; erachter komen op de deadline is dat niet.
De spreadsheet-shortcut, en waar die ophoudt
Je hebt niet per se een betaald platform nodig om een kolom URL's in een kolom codes te veranderen. Een spreadsheetformule doet het ook. In Google Sheets rendert dit een QR-afbeelding rechtstreeks in de cel vanuit de URL in A2:
=IMAGE("https://quickchart.io/qr?text="&ENCODEURL(A2))
Het QuickChart QR-endpoint is sleutelvrij en gratis voor lage volumes, en accepteert handige parameters: size, margin, ecLevel (L, M, Q of H, standaard M), dark- en light-kleuren, en format (PNG, SVG of base64). Het is een echt handige manier om een batch te bekijken of snel een proof of concept te bouwen.
Het houdt ook stilletjes op gratis te zijn. De community-tier van QuickChart staat 1.000 codes per maand en 60 per minuut toe, wat een echte campagne van enkele duizenden codes ruim overschrijdt. En de diepere beperking is structureel: codes die zo zijn gemaakt, zijn statisch. De URL zit in de afbeelding gebakken. Er is geen tracking en geen manier om een bestemming na het drukken te wijzigen. Voor een wegwerpsheet voor intern gebruik is dat prima. Voor een klantcampagne waarover je rapporteert is het een doodlopende weg. Dat onderscheid, statisch versus dynamisch, is het scharnierpunt van dit hele onderwerp, en we komen erop terug.
Serialisatie: wanneer elke code uniek moet zijn
Serialisatie is de discipline om ervoor te zorgen dat elke code in een batch een waarde draagt die bij één en slechts één ding hoort. Eén code per winkel. Eén per fliervariant. In retail en farma: één per fysieke producteenheid.
De retailwereld heeft hier een formele versie van die het waard is om te kennen, want klanten in food, drank, cosmetica of farma zullen er uiteindelijk over beginnen. Binnen het GS1-systeem combineert een geserialiseerde productidentificatie (een SGTIN) de GTIN van een product met een uniek serienummer, en de moderne drager van die identiteit is steeds vaker een GS1 Digital Link QR-code: een QR die een web-URL codeert met de identificatoren van het product. Als je klant richting GS1-conforme verpakking gaat, is dat een project op zich, en we behandelen de verpakkingskant in ons stuk over QR-codes op productverpakking en GS1 Digital Link.
De meeste bureaucampagnes hebben geen volledige GS1-conformiteit nodig. Wat ze nodig hebben, is dezelfde onderliggende gewoonte: een schone bron van waarheid waar elke rij naar precies één code verwijst, zonder per ongeluk dubbele waarden. Dat betekent meestal een unieke slug of token per code in plaats van één URL hergebruiken met een aangepast label. De spreadsheet die je batch genereert is ook de spreadsheet die je campagne documenteert, dus behandel hem als een deliverable, niet als kladpapier. Benoem codes consistent (klant-campagne-stad-plaatsing), houd de bestemming en eventuele UTM-waarden in eigen kolommen, en dat bestand wordt de kaart waarmee je drie maanden later je analytics leest.
Over capaciteit, één eerlijke beperking: een lange URL met een stapel UTM-parameters maakt een dichtere, lastiger te scannen code. QR-codes bevatten in principe veel (tot 4.296 alfanumerieke tekens bij de grootste versie en de laagste foutcorrectie), maar je wilt dat budget niet besteden aan trackingrommel die op klein formaat wordt gedrukt. Korte redirect-URL's houden codes schoon. We gaan hier dieper op in bij hoeveel data een QR-code kan bevatten.
De drukoverdracht die bulkopdrachten breekt
Hier is de stap waar niemand je voor waarschuwt. 3.000 unieke codes genereren is het makkelijke deel. 3.000 verschillende codes op 3.000 verschillende gedrukte stukken krijgen, daar lopen opdrachten vast, en de reden is hoe drukken werkt.
Op elk stuk in een oplage andere content zetten heet variabele datadruk (VDP). Het is een digitale druktechniek: de pers stelt elk stuk ter plekke samen uit een databestand. Cruciaal: je kunt het niet op een traditionele offsetoplage. Offset drukt vanaf vaste platen, dus elk vel is per definitie identiek. Als de drukpartner van je klant een offsetprijs offreert voor een geserialiseerde opdracht, klopt er iets niet aan de briefing. Geserialiseerde codes hebben een digitale of VDP-geschikte pers nodig.
Aan de ontwerpkant is de gangbare tool Data Merge van Adobe InDesign, dat per record een andere afbeelding kan binnenhalen. Het werkt, maar het heeft scherpe randjes: Data Merge staat per veld maar één plaatshoudergrootte toe, verwijst naar afbeeldingen via bestandspad, en voegt records niet samen als velden over meerdere stamouderpagina's staan. Een andere voorgerenderde QR-PNG betrouwbaar in elk record krijgen, juiste pad, juiste frame, geen schaalverrassingen, is de kwetsbare stap. Voor eenvoudige URL-codes kan InDesign de QR per record zelfs zelf genereren, maar dat valt uit elkaar voor branded of gestylede codes, en daarom grijpen bureaus met grote of ontwerpzware opdrachten naar speciale VDP-engines als XMPie of FusionPro.
Je hoeft de pers niet zelf te bedienen. Je moet hem correct briefen. Geef de drukker een schoon databestand, benoem je afbeeldingsbestanden zodat ze exact bij de rijen passen, bevestig dat de pers VDP-geschikt is, en vraag om een proef van een paar records voor de volledige oplage. En let ondertussen op de fysieke specs: geserialiseerde codes zijn nog steeds QR-codes, dus dezelfde regels voor stille zone, contrast en resolutie gelden. Onze gids over een QR-code klaarmaken voor druk behandelt de vector-, resolutie- en kleurvalkuilen die een schone code in een onscanbare veranderen.
Waarom bulk bijna altijd dynamisch betekent
Alles hierboven is lastiger, en meer de moeite waard, wanneer de codes dynamisch zijn. Dit is de beslissing die een grote campagne beschermt.
Een statische code codeert de bestemming rechtstreeks in zijn patroon. Hij kan niet worden bewerkt en draagt geen tracking. Een dynamische code codeert in plaats daarvan een korte redirect-URL; de echte bestemming staat in een dashboard, de redirect is bewerkbaar, en juist die redirect laat je scans per code tellen, met tijdstip, locatie en apparaat. Het verschil tussen statisch en dynamisch is het verschil tussen een gedrukte doodlopende weg en een code die je kunt beheren, en we zetten de volledige afweging uiteen in dynamische versus statische QR-codes.
Bij één of twee codes is de keuze academisch. Bij duizend is dat niet zo, om twee redenen.
De eerste is herstel. Een verkeerde bestemming in een batch van duizenden is met statische codes een herdruk. Fysiek materiaal dat al in het veld ligt, kun je niet terughalen; je herdrukt en herverdeelt, en je legt de kosten uit aan je klant. Met dynamische codes is diezelfde fout een dashboardbewerking. Je verandert waar de redirect naartoe wijst en elke gedrukte code, overal, lost nu correct op. De volledige werking van die fix staat in de bestemming van een QR-code wijzigen zonder herdruk. Bij een geserialiseerde opdracht, waar één foute rij duizenden verkeerde stukken kan betekenen, is dit geen nice-to-have. Het is een verzekering.
De tweede is de hele reden dat je überhaupt serialiseerde: tracking per code. Dynamische codes rapporteren onafhankelijk over elke unieke code, en dat is wat een batch in data verandert. Per winkel, per regio, per plaatsing zie je wat de scans echt opleverde. Dat is de input voor de scanstatistieken die ertoe doen, en als je klant in Google Analytics leeft, is het wat een schone GA4- en UTM-opzet voedt zodat scans niet langer als direct verkeer opduiken.
De eerlijke afweging: dynamische codes betekenen een doorlopend abonnement en een afhankelijkheid van een redirect-service die online blijft, terwijl statische codes gratis zijn en van niets afhangen. Voor een wegwerpcode is dat een reële kostenpost. Voor een geserialiseerde campagne over honderden plaatsingen waarover je rapporteert en die je niet kunt herdrukken, zijn de bewerkbaarheid en de analytics het hele punt, en is het abonnement de goedkoopste regel in de begroting.
Bulkcodes draaien over meerdere klanten
Nog één laag die alleen op bureauschaal bijt: je draait niet één bulkcampagne, je draait er meerdere tegelijk voor verschillende klanten. Duizenden codes in één ongedifferentieerde lijst is een faalmodus op zich. De Hamburgse retailcodes, de SaaS-launchcodes en de verlopen eventcodes van vorig kwartaal lopen allemaal door elkaar, en het inwerken van een nieuw teamlid wordt een rondleiding langs onuitgesproken kennis.
De oplossing is structurele scheiding: één werkruimte per klant, met de codes van elke campagne daarbinnen gegroepeerd en getagd, zodat de eigenaar, campagne en status van een code in één oogopslag duidelijk zijn. Dat is een discipline op zich, en we lopen er stap voor stap doorheen in QR-codes organiseren met één werkruimte per klant. Bulkgeneratie creëert het volume; werkruimtestructuur houdt dat volume zes maanden later nog leesbaar.
Veelgestelde vragen
Hoe genereer ik QR-codes in bulk?
Download het CSV- of spreadsheetsjabloon van je QR-platform, voeg één rij per code toe met minimaal een bestemmings-URL en een naam, upload het, en het platform geeft een ZIP met gegenereerde codes terug, vernoemd naar je spreadsheet. Controleer eerst de batchlimiet van je plan: die loopt uiteen van enkele cijfers in proefversies tot 10.000 per run op enterpriseniveaus, en wordt bepaald door je abonnement, niet door QR-codes zelf.
Kan ik een unieke QR-code maken voor elk product of elke winkel?
Ja. Dit heet serialisatie: elke rij in je bronbestand verwijst naar één unieke code, zodat elke winkel, regio of producteenheid zijn eigen code krijgt. De sleutel is een schone bronspreadsheet zonder dubbele waarden, idealiter een unieke slug per code. Gebruik dynamische codes als je elke code apart wilt volgen, wat meestal de reden is om überhaupt te serialiseren.
Hoeveel QR-codes kan ik in één keer genereren?
Er is geen universele limiet; het hangt volledig af van het platform en het plan. Als voorbeelden uit de documentatie van de aanbieders zelf: QR Code Generator PRO begrenst batches op 5, 100 of 500 per niveau; Uniqode loopt van 15 tot 10.000 en verwerkt een batch van 10.000 codes in ongeveer een minuut; QRCodeChimp stelt geen vast batchaantal maar begrenst je via het totaal van je plan en stelt voor zeer grote opdrachten op te splitsen. Bevestig de bovengrens altijd voordat je de campagne bouwt.
Kan ik bulk-QR-codes maken vanuit een Google Sheet of Excel-bestand?
Ja, op twee manieren. De meeste platforms accepteren een CSV- of spreadsheet-export als bulk-uploadsjabloon. Of, voor een snelle statische batch, rendert een spreadsheetformule als =IMAGE("https://quickchart.io/qr?text="&ENCODEURL(A2)) per rij een code rechtstreeks in Google Sheets. De formulemethode is alleen gratis bij lage volumes en levert statische, niet-traceerbare codes op, dus hij past bij proofs of concept, niet bij klantcampagnes.
Wat is variabele datadruk en waarom is het belangrijk voor QR-codes?
Variabele datadruk (VDP) is digitaal drukken dat de content van stuk tot stuk binnen één oplage verandert, aangestuurd door een databestand. Het is belangrijk omdat geserialiseerde QR-codes (een andere code op elk stuk) alleen zo gedrukt kunnen worden. Traditioneel offsetdrukken gebruikt vaste platen en produceert identieke kopieën, dus daarmee kun je geen geserialiseerde codes maken. Bevestig dat je drukpartner een VDP-geschikte digitale pers gebruikt.
Moeten bulk-QR-codes statisch of dynamisch zijn?
Dynamisch, in vrijwel elk geval waarin de codes worden gedrukt en gevolgd. Met dynamische codes kun je een verkeerde bestemming na het drukken corrigeren met een dashboardbewerking in plaats van een herdruk, en volg je elke code afzonderlijk zodat je data per winkel of per regio krijgt. Statische codes zijn gratis en afhankelijkheidsvrij, wat past bij wegwerpcodes voor eenmalig gebruik, maar ze kunnen niet worden bewerkt of gevolgd, wat ze op schaal riskant maakt.
Hoe voorkom ik dubbele QR-codes in een batch?
Behandel je bronspreadsheet als de enige bron van waarheid: één rij per code, elk met een unieke bestemming of trackingslug, en een consistente naamconventie zodat dubbele waarden zichtbaar zijn. Genereren vanuit één schoon bestand (in plaats van codes ad hoc maken) is de eenvoudigste bescherming tegen twee stukken die per ongeluk een code delen.
De korte versie
Bulk-QR-codes zijn pas de moeite waard wanneer elke code uniek is, en uniciteit is pas de moeite waard wanneer elke code wordt gevolgd. Bouw vanuit één schone bronspreadsheet waar elke rij naar een enkele code met een duidelijke naam verwijst; controleer de batchlimiet van je platform voordat je begint; brief de drukker voor variabele datadruk op een digitale pers, niet op offset; en maak de codes dynamisch zodat een verkeerde bestemming een dashboardbewerking is in plaats van een herdruk van vijf cijfers, en elke code over zichzelf rapporteert. Houd de hele batch vervolgens binnen een gestructureerde klantwerkruimte zodat hij volgend kwartaal nog klopt. Zet het één keer zo op en een campagne van duizend codes wordt een spreadsheet en een upload, met attributie ingebouwd. Begin je volgende batch in een speciale werkruimte en laat de structuur het onthouden voor je doen.
Verder lezen

· 13 min. leestijd
QR-code op beurs en evenement: het agency-draaiboek voor leads, tracking en opvolging
Zo zet je QR-codes in op beurzen en evenementen: een trackbare, dynamische code per touchpoint, eerlijke leadcapture met toestemming en snelle opvolging. Het complete draaiboek voor agencies.
Lees meer
· 13 min. leestijd
QR-code menukaart voor restaurants: de complete gids voor bureaus
Een goede QR-code menukaart is sneller dan papier, direct bij te werken en toegankelijk. Praktische gids voor bureaus: alleen-lezen of bestellen-en-betalen, dynamische codes, toegankelijkheid, privacy (AVG) en het meten van scans per locatie.
Lees meer