Dynamic QR Codes: Bridge Print and Digital
You printed 50,000 packaging inserts with a QR code last quarter, and the destination page is being renamed next sprint. If the QR is static, that's a reprint. If it's dynamic, it's a one-click swap. This guide makes sure you never make the wrong choice again.

Static vs Dynamic: The 60-Second Decision
This is the QR-code question with the highest stakes and the lowest awareness: which type are you producing? Most "free QR code generator" sites default to static codes, the cheapest to deliver and the most dangerous to use. The moment you understand the difference, the answer is obvious for every campaign with a lifespan over 24 hours.
What's actually encoded in the dots
A QR code is just a visual encoding of a string of characters. In a static code, that string is your destination URL directly: https://yoursite.com/spring-promo is literally drawn into the pattern of black squares. If the page moves to /promotions/spring-2026, the code is dead. You have two choices: leave it broken or reprint every asset.
In a dynamic code, the encoded string is a short URL like flyn.to/spring. When scanned, the user's phone hits Flyn's redirect server, which sends them to whatever destination you currently have configured. Move the destination, update the short link, the printed code keeps working. Need a different destination per country, per device, per time window? Configure that at the redirect layer too.
| Property | Static QR | Dynamic QR |
|---|---|---|
| Destination URL location | Inside the dot pattern (permanent) | In your dashboard (editable) |
| Change destination after printing? | No, reprint required | Yes, instant via dashboard or API |
| Per-scan analytics | None | Timestamp, device, OS, browser, location |
| A/B test destination at redirect layer | No | Yes, built into Flyn |
| Geo or device routing | No | Yes |
| Pattern density (at same encoded data) | Often denser (longer URL) | Less dense (short URL = simpler pattern) |
| Best for | One-off, throwaway use, encoded vCards | Anything with a lifespan > 24 hours |
| Cost on Flyn | N/A | Free with every short link |
If you've read our QR codes marketing playbook, you'll recognise this table, every campaign-grade placement is dynamic for a reason, because only a dynamic code records per-scan analytics like geo, device, and time. Static codes only make sense for genuinely permanent encodings (your phone number on a personal business card, a Wi-Fi password on a kitchen wall).
Some free QR generators sell themselves as "dynamic" but bury the redirect domain in their own infrastructure. After 30-60 days, they revoke the redirect unless you pay. Always test the redirect URL: if the platform's name appears in your scan, you don't own the destination. Flyn dynamic codes route through flyn.to or your own custom domain, and never expire.
How Flyn's Dynamic QR Codes Actually Work
Every short link created in Flyn automatically gets a paired QR code. There's no separate "QR code" object, the code is just a visual representation of the short URL. Same management interface, same analytics, same routing rules.
The lifecycle of one dynamic QR code
- You create a short link in the dashboard or via the API:
flyn.to/spring→yoursite.com/spring-promo. - Flyn renders a QR image for that link: PNG from the dashboard on any plan, SVG on Pro, or a PNG data URL programmatically from
GET /api/links/:id/qr. - You download the SVG and hand it to your design team for the print artwork.
- A customer scans the printed code → their phone opens
flyn.to/spring→ Flyn redirects to your real destination. - The redirect server logs the scan: timestamp, IP-derived location, device, OS, browser, referrer.
- Six months later, you rebuild the lander at
yoursite.com/promotions/2026. You updateflyn.to/spring's destination in the dashboard. Every existing printed asset still works.
Export formats and when to use them
- SVG, vector, scales to any size without pixelation. Use for anything going to a print shop. Always default to SVG.
- PNG (1024px), raster, fine for digital use (slide decks, social, email banners). Acceptable for small print (under 4cm × 4cm) where vector isn't required.
- EPS, a legacy vector format some print shops still ask for. Flyn does not export EPS. Export SVG and convert it in Illustrator or Inkscape, which takes seconds and loses nothing.
Customisation that doesn't break scanning
A centre logo is free on every Flyn plan; your exact brand colours and SVG export are Pro. Two constraints matter, and Flyn enforces both while you build. The logo is capped automatically against the symbol's real capacity rather than a fixed percentage, because the ceiling depends on how much data the code carries: a short link encodes to a smaller symbol with less room to spare than a long URL. Contrast is measured as a difference in linearised reflectance, not as a ratio; the widely repeated "QR codes need 4:1 contrast" rule traces to no primary source, and ISO/IEC 18004 specifies no contrast ratio at all. If a colour pair sits too close to read, you get a warning before you download. For a deeper take on operational design rules, see the design section of the QR codes marketing playbook.
Print Marketing Use Cases
The killer feature of dynamic QR codes is "I shipped the artwork and then the destination changed." This happens constantly in print marketing, and it's the single biggest source of broken QR codes in market today.
Restaurant menus and hospitality
Print one set of menus with QR codes that link to seasonal specials, allergen info, or wine pairings. Update the destination weekly, soup of the day, this week's tasting menu, the new cocktail, without reprinting. Hospitality groups managing 20+ locations centralise this through the Flyn dashboard and update all locations' QRs from one place.
Product packaging and inserts
SKU revisions, instruction updates, replacement-product launches, all happen on a faster cadence than packaging refreshes. A dynamic QR on the back of a product box points to the current setup guide. Year two, the product gets a minor revision; update the destination, every still-on-shelves product now points to the new guide.
Real estate and property marketing
QR codes on yard signs traditionally point to a specific MLS listing, and break the moment the property sells. Use a dynamic QR that points to the active listing while the property is on the market, then reroute to "Recently sold, see similar properties" when it closes. The same physical sign, with the same QR code, becomes a lead-generation asset post-sale instead of a dead link.
Trade-show and conference materials
Booth signage with dynamic QRs pointing to the day's schedule, current demo session, or a real-time lead-capture form. On day two, switch the destination to the day-two schedule. After the event, switch to a "Thanks for visiting" page with replay links. One printed sign, three months of utility.
Magazine and out-of-home advertising
A magazine's print run hits newsstands for 2-8 weeks, but stays in waiting rooms for 12+ months. Dynamic QRs let you adjust the offer over the asset's full life: a 20% off offer during the issue's primary run, then a graceful "this issue's promo has ended, get our newsletter" page after.
For any printed asset with a lifespan longer than your weekly sprint cycle, treat the QR code's destination as a separate piece of content with its own update schedule. Add a calendar reminder for the destination review (monthly for active promos, quarterly for evergreen) so the printed asset never silently degrades into a 404.
Tracking Offline Campaigns with Dynamic QR Codes
Dynamic QR codes give offline channels the same per-scan analytics that digital ads have always had. Once every printed surface has its own short link, the attribution gap between print and digital closes.
What you actually capture on every scan
- Timestamp, to the second. Bucket by hour of day, day of week, time-since-print.
- Approximate location, IP-derived, accurate to city level.
- Device and OS, iOS / Android, OS version, model class.
- Browser and referrer, Safari from Camera app, Chrome from Lens, in-app browser from Instagram, etc.
- Custom UTMs, anything you tagged on the destination flows through to GA4 or your analytics platform.
One short link per placement, always
The discipline that makes offline tracking real: never use the same short link on two different physical surfaces. Shelf-talker gets flyn.to/spring-shelf. Receipt gets flyn.to/spring-receipt. Postcard gets flyn.to/spring-postcard. The QR designs can be visually identical, but the encoded short URL differs by one character, and now your dashboard tells you which physical surface produced each scan.
UTM tagging at the destination
The short link captures scans; UTMs carry channel information downstream. Build them with the UTM Builder:
utm_source=billboard-sf&utm_medium=offline&utm_campaign=spring-2026&utm_content=panel-a
Flyn appends UTMs automatically when you fill in the campaign fields at link creation. Need to validate a UTM-tagged URL before printing? Run it through the UTM Parser to confirm it parses cleanly. If you're auditing whether your existing short links preserve UTMs correctly through the redirect, the UTM Redirect Preservation Checker tests every link in a batch.
The biggest unlock from dynamic QR codes isn't the editability, it's that for the first time, offline marketing becomes directly comparable to paid digital channels on a cost-per-conversion basis.
Bulk QR Generation for High-Volume Campaigns
Manual QR creation works for the first 10-20 codes. Past that, you need automation. The most common reason to scale up is variable-data printing, every recipient or SKU gets a unique code, which requires hundreds or thousands of QR codes in a single batch.
The CSV bulk import pattern
Flyn's Create many (Pro) turns one destination into up to 50 unique short links in a single run and exports the batch as CSV, which is what you want when every printed asset needs its own trackable code. Generate the QR for each link from the dashboard, or fetch them programmatically, then drop the CSV into your variable-data print workflow (Adobe InDesign data merge, EngageOne, and similar).
The API pattern for programmatic workflows
For continuous integration (every new product gets a QR, every new event registrant gets a personalised mailer), use the API:
POST /api/links { destination: 'https://yoursite.com/setup/123', slug: 'setup-sku-123', tags: ['packaging-2026', 'sku-123'] }
Then call GET /api/links/:id/qr for each new link, which returns the short URL and a PNG data URL. Loop through your SKU list, call both endpoints per SKU, and hand the images to your packaging artwork system. For vector artwork, export SVG per link from the dashboard on Pro, since the API returns PNG only. The full reference is in the API docs.
Naming conventions for bulk runs
At volume, the slug becomes your filing system. Use a structured pattern: <campaign>-<type>-<identifier>. Examples: spring-shelf-sku123, conf-saastr-badge-jane-doe, mailer-q2-prospect-4567. The structure makes it easy to filter analytics by campaign, by physical type, or by recipient in the dashboard.
For variable-data mail campaigns where every recipient gets a unique QR, plan your slug strategy before the data merge. The slug appears in the short URL the customer sees, so flyn.to/mailer-prospect-4567 exposes the prospect ID. Use hashed or random slugs (flyn.to/mxq8) for anything customer-facing where the slug could leak segmentation. Flyn auto-generates these on request.
Industry-Specific Playbooks
The general dynamic-QR pattern adapts to almost any industry. Below are the specific workflows that consistently produce returns across verticals.
Retail
Shelf-talkers and POS displays with QR codes linking to product reviews, comparison pages, or limited-time promos. Update the destination when inventory changes or pricing shifts. Pair with Instagram and TikTok destinations to drive in-store scans into your social funnel.
Healthcare
Patient intake forms, appointment booking, post-visit feedback surveys, all live on clinic signage with dynamic QRs. Refreshable per visit type (new patient vs follow-up vs telehealth). Code stays on the wall; destination changes by appointment context.
Real estate
Yard-sign QRs that resolve to the active MLS listing during the marketing window, then to "Recently sold, see similar" post-close. Open-house collateral with dynamic QRs to the booking form, redirected to feedback form after each event.
Hospitality and F&B
Table QRs to menus, daily specials, allergen info, online ordering. Centrally managed across location chains, update the city's lunch special from headquarters and all locations reflect the change.
Education
Course handouts with QRs to supplementary resources, refreshed semester to semester. Conference badges with QRs to attendee profiles or session feedback forms.
Manufacturing
Equipment ID plates with QRs to current maintenance manuals and service records. Each scan logged for compliance. When a manual revision ships, update the destination across the entire fleet without re-stickering machines in the field.
Integrating QR Scan Data with Your Marketing Stack
Scan analytics live in Flyn by default. To turn that data into operational signal, pipe it into the tools your team already uses.
GA4 and product analytics
UTM-tag every destination, and scans flow into GA4 as standard sessions with proper source/medium/campaign attribution. Build a Looker Studio dashboard combining GA4 conversion data with Flyn click-volume data, the GA4 side gives you conversion, the Flyn side gives you ground-truth click counts unaffected by cookie restrictions or ITP.
Looker, Metabase, Google Sheets
Export Flyn analytics as CSV (manual) or pull the analytics API into your warehouse for SQL-friendly reporting. Build slice-and-dice dashboards: scans by placement, by city, by time-of-day, by device, comparable across QR-tagged offline channels and your purely-digital marketing.
Webhooks for real-time triggers
Flyn fires a webhook on every scan if you configure one. Use cases:
- Event check-ins, attendee scans badge QR, webhook fires to your event app, marks them as checked in.
- Limited-availability promos, first 100 scans get the discount, webhook tracks the count, switches the destination to "out of stock" page on hit.
- Sales team alerts, prospect scans the QR on a leave-behind document, Slack alert fires to the rep with prospect ID and timestamp.
- Fraud signals, abnormal scan rates trigger an alert so you can investigate before bot traffic skews the analytics; see our deep dive on click fraud prevention.
Operational hygiene at scale
Bulk-audit every active QR's destination every quarter. The bulk link health checker takes a CSV export and returns a report of dead, redirecting, or compromised destinations. The QR Destination Audit runs deeper checks per URL, mobile speed, redirect chains, mixed content. Together they're the difference between "we have dynamic QRs" and "we have a working QR programme".
Common Mistakes That Kill Dynamic QR ROI
After auditing thousands of QR campaigns, the same handful of mistakes show up everywhere. Avoiding these alone gets you most of the way to a working programme.
1. Using a single short link across every placement
The single biggest mistake: the shelf-talker, the postcard, the trade-show badge, and the billboard all route to flyn.to/promo. Now you have a total scan count and zero attribution. Always one short link per physical surface.
2. Forgetting UTMs on the destination URL
Without UTMs, scans land in GA4 as direct traffic and you can't compare them to your paid channels. Build UTMs with the UTM Builder on every QR destination. The UTM parameters guide has the naming conventions that scale.
3. Pointing QRs at pages that aren't mobile-optimised
QR scans are 95%+ mobile. A QR pointing at a desktop-only landing page is a wasted print run. Run every destination through the QR Destination Audit before printing to catch mobile rendering issues, and decode a sample print with the QR Code Reader to confirm it carries the right link.
4. Not setting an end-of-life behaviour
What happens to the QR code when the campaign ends? If the destination just 404s, you've trained customers that your brand ships broken codes. Always set a graceful fallback page ("This promo has ended, explore our latest").
5. Using a free QR generator that paywalls or revokes after 30 days
Hard-learned lesson. The "free" tool charges $19/month after a trial period, and if you don't pay, every code goes dark. Verify the redirect domain in the URL before you go to print. If you don't own the redirect, you don't own the campaign.
Not every QR needs to be dynamic, though. A WiFi QR code for your guest network and a vCard QR on a business card are best as static codes, generate them free in the QR Code Generator, while anything you'll re-point or measure belongs on a dynamic short link.
Frequently Asked Questions
Can I update where a QR code leads after it has been printed?
Does Flyn charge extra for QR codes?
What is the best file format for printing a QR code?
How do I track scans from different physical locations separately?
Can I generate QR codes in bulk via the Flyn API?
POST /api/links for each destination, then GET /api/links/:id/qr to fetch the QR for that link as a PNG data URL. There is no CSV-import-to-QR pipeline and no SVG endpoint; for vector artwork, export SVG per link from the dashboard. The API documentation has working examples.Can dynamic QR codes route different users to different destinations?
/promo-us, EU visitors to /promo-eu, and Asia visitors to a localised page. The same physical asset becomes a multi-market campaign. See A/B testing short links for the experimentation setup.How do I bulk-audit hundreds of existing QR destinations for broken pages?
What happens if Flyn goes down? Are all my printed QR codes dead?
links.yourcompany.com) for QR codes, that way, even in a worst-case migration scenario, you can re-point the DNS to a different redirect provider without changing any printed asset. The custom domains guide covers the setup. Static codes don't face this risk because they have no redirect, but they also have no editability or analytics.Free tools for this
Three Flyn tools that pair well with the strategy in this article, all free, no signup needed.
UTM Builder
Build campaign-tracked URLs in seconds.
Open Graph Checker
Preview how URLs unfurl on social.
Broken Link Checker
Scan any page for dead links and 404s.
Keep reading
Three related deep-dives from the Flyn blog.

Short Links in SMS Marketing: The Complete Guide
11 min read

Geo-Targeting Links by Country: One URL, Every Market
11 min read

Link-in-Bio Strategy for Creators: Beyond Linktree
13 min read
Ready to try Flyn?
Free plan includes 25 links/month, full analytics, and access to all 30+ free tools above. No credit card required.
Already a member? Log in

Karan Bhakuni is the founder of Flyn. He writes about branded links, click analytics, and the link-management tooling growth teams and creators actually need, drawn from building Flyn and reading a lot of user feedback.