Back to Blog

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.

Karan Bhakuni
Karan Bhakuni
Founder, Flyn
StrategyJan 18, 202613 min readUpdated May 5, 2026
Dynamic QR Codes: Bridge Print and Digital

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.

PropertyStatic QRDynamic QR
Destination URL locationInside the dot pattern (permanent)In your dashboard (editable)
Change destination after printing?No, reprint requiredYes, instant via dashboard or API
Per-scan analyticsNoneTimestamp, device, OS, browser, location
A/B test destination at redirect layerNoYes, built into Flyn
Geo or device routingNoYes
Pattern density (at same encoded data)Often denser (longer URL)Less dense (short URL = simpler pattern)
Best forOne-off, throwaway use, encoded vCardsAnything with a lifespan > 24 hours
Cost on FlynN/AFree 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).

Watch out

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

  1. You create a short link in the dashboard or via the API: flyn.to/springyoursite.com/spring-promo.
  2. 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.
  3. You download the SVG and hand it to your design team for the print artwork.
  4. A customer scans the printed code → their phone opens flyn.to/spring → Flyn redirects to your real destination.
  5. The redirect server logs the scan: timestamp, IP-derived location, device, OS, browser, referrer.
  6. Six months later, you rebuild the lander at yoursite.com/promotions/2026. You update flyn.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.

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.

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.

Note

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.

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?
Yes, this is the entire reason dynamic QR codes exist. Because the printed code points to a Flyn short URL (not directly to the destination), you can change the destination at any time from the dashboard or via the API. The change takes effect on the very next scan. No reprinting, no recall, no broken assets. This is the single most important advantage over static codes, see our QR marketing playbook for the placement strategies that take advantage of this.
Does Flyn charge extra for QR codes?
No. Every short link in Flyn includes a QR code at no additional charge, on the free plan and on Pro, with no per-code and no per-scan fee. PNG export and a centre logo are free on every plan. Pro adds SVG export, the format print shops prefer, along with your exact brand colours and the vCard, email, call and SMS code types.
What is the best file format for printing a QR code?
SVG, always, for any print job. It's a vector format that scales from a business card to a billboard without pixelation, and print shops accept it natively. PNG works for digital use or small print runs where vector isn't required, but request the highest resolution available (1024px minimum). Flyn exports PNG on every plan and SVG on Pro from the link dashboard. Flyn does not export EPS: if a print shop insists on it, convert the SVG in Illustrator or Inkscape.
How do I track scans from different physical locations separately?
Create one unique short link (and therefore one unique QR code) per physical placement. The shelf-talker, the postcard, the billboard, and the trade-show badge all get their own short URL even if they share the same artwork and destination. Tag each link with the placement name in the Flyn dashboard. You can then filter analytics by tag to compare scan performance across every surface individually, the foundation of cost-per-conversion comparison across offline channels.
Can I generate QR codes in bulk via the Flyn API?
Yes, two ways, both on Pro. Create many turns one destination into up to 50 unique short links per run and exports the batch as CSV, which covers per-asset and per-placement tracking. Programmatic: call 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?
Yes, Flyn supports geo routing (different destinations by country), device routing (iOS vs Android vs desktop), and A/B testing at the redirect layer. A single printed QR can send US visitors to /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?
Export your active links from Flyn as CSV, then run them through the bulk link health checker. It checks every URL for 404s, redirect chains, HTTPS issues, and mobile rendering problems, returning a report of broken or compromised destinations. For deeper per-URL checks (page speed, mixed content, mobile lander quality), use the QR Destination Audit on individual high-stakes destinations.
What happens if Flyn goes down? Are all my printed QR codes dead?
Flyn's redirect infrastructure runs on a global edge network. The uptime commitment is the one in our terms. For enterprise customers concerned about single-vendor risk, the recommended pattern is to use a custom domain (e.g., 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.

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
Karan Bhakuni· Founder, Flyn

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.