Free tier, no card requiredDynamic QR codes that update after printGDPR-compliant scan analyticsBuilt for agencies, freelancers & in-house teamsFree tier, no card requiredDynamic QR codes that update after printGDPR-compliant scan analyticsBuilt for agencies, freelancers & in-house teamsFree tier, no card requiredDynamic QR codes that update after printGDPR-compliant scan analyticsBuilt for agencies, freelancers & in-house teamsFree tier, no card requiredDynamic QR codes that update after printGDPR-compliant scan analyticsBuilt for agencies, freelancers & in-house teams
All posts
Diagram of an agency organizing QR codes into a separate workspace for each client
Guide

One workspace per client: organizing QR codes for an agency

QR code management for agencies: a workspace per client keeps every code, group, and scan report separate, so reporting is fast and mistakes are rare.

ScanKit

ScanKit · Organization

· 7 min read

The first few QR codes you make for a client are easy to keep straight. The fiftieth, spread across a dozen clients and as many campaigns, is not. They pile up fast, and without some structure built around clients you end up with one long list where everyone's work runs together. That is where the mistakes and the slow reports come from. Knowledge workers already lose something like a fifth of the week just hunting for information they know exists somewhere; an unlabelled pile of codes is that problem in miniature. One workspace per client is the fix, and it takes about five minutes to set up.

What one big pile of codes costs you

When every code lives in one undivided list, a few predictable things go wrong. Reporting turns into archaeology, digging one client's codes out from everyone else's. Mistakes get easier, because the code you are about to repoint for Client A is sitting right next to a near-identical one for Client B. And handing a client to a colleague means a guided tour of whose codes are whose. None of that holds up as you grow, and all of it gets quietly more expensive every month you put off fixing it.

A workspace per client

Give each client their own workspace: a contained space holding only their codes, their groups, their tags, and their scan analytics. Nothing bleeds between clients. When you are in one client's workspace, that is all you see, and that narrow focus is exactly what keeps the work clean.

Think of a shared junk drawer versus a labelled folder for each client. Same stuff inside. Far less friction getting to it, and far less chance of grabbing the wrong thing.

What that separation actually buys you

Reports that are basically already done

Since a workspace holds only one client's codes, the analytics are scoped to that client by default. Nothing to filter, nothing to untangle, and no chance a competitor's numbers wander into the wrong deck. For what to do with those numbers once they are scoped, see which scan metrics matter.

Mistakes get hard to make

The most expensive QR mistake is repointing or deleting the wrong code. Isolate each client in their own workspace and the dangerous lookalike is not there to click. You cannot fat-finger Client B while you are heads-down on Client A.

Handovers stop being painful

When a colleague picks up a client, you hand them one workspace and they have the whole picture: every code, where it points, how it is doing. Onboarding someone new or covering a week off stops being a tour and starts being a single link.

Inside a workspace: groups and tags

Workspaces keep clients apart. Two more tools keep things tidy within each one. Groups bundle a single campaign's or location's codes together, so a client with three live campaigns gets three clean groups instead of one endless scroll. Tags cut the other way, across groups: flag codes by medium or placement, like print, in-store, or packaging, and call them all up by that label whenever you need. The rule of thumb is that groups answer "which campaign," tags answer "what kind," and you want both.

Name codes so they sort themselves

Structure only helps if the names inside it are readable, and this is where most setups quietly fall apart. Adopt one naming pattern and use it everywhere. A reliable shape is client, then campaign, then placement, broad to specific, for example acme-springsale-flyer or acme-springsale-window-a. A few rules keep the names machine-friendly and human-readable at once:

  • Lower case, always, so nothing depends on capitalisation.
  • Hyphens instead of spaces, because these names often end up in URLs and reports.
  • Dates as year-month-day, like 2026-05-30, when you need them, so they sort into order on their own.
  • Real words, not codes only you understand. "summer-menu" beats "sm3".

Write the pattern down somewhere the whole team can see it. The convention matters more than any single clever name, because the value is in everyone using the same one.

A structure that scales

Two more habits keep the system working when the client list doubles.

Keep the tag vocabulary short and controlled. Tags are powerful precisely because they cross groups, but left unchecked they sprawl: print, Print, printed, and flyer-print all meaning the same thing, none of them returning the full set when you filter. Agree on a small fixed list (print, in-store, packaging, ooh, digital) and stick to it.

Archive finished campaigns, do not delete them. A code that has been printed and sent into the world is a live thing. Deleting it breaks every copy already out there and sends anyone who scans one to a dead end. When a campaign ends, retire or archive the group so it is out of the way, while the codes keep resolving and their history stays intact. On a printed code, repointing is almost always the right move rather than deleting, and there is more on that in changing a code's destination.

A worked example

Say you run codes for two clients, a restaurant group and a furniture shop. The whole setup looks like this. Each client gets a workspace, "Bella Cucina" and "Northwood Interiors," and you only ever see one at a time. Inside Bella Cucina, a group per campaign: table-tents-2026 for the in-restaurant codes, spring-flyer-2026 for the local drop. Inside that flyer group, one code per placement, named bella-springflyer-doordrop and bella-springflyer-counter, both tagged print. When the restaurant asks how the spring flyer did, you open one group and the numbers are already theirs alone, already split by placement. Six months later the campaign is over, so you archive the group; the codes keep resolving for anyone still holding a flyer, and the history is there if it is ever needed. Nothing about Northwood was ever in the way, and a colleague covering for you could read the whole thing at a glance.

Reporting that matches how you invoice

Most agencies bill by client, and often by campaign within the client. A workspace per client, with a group per campaign inside it, lines up with exactly that. So when a client asks what their budget bought, the answer is already sorted the way the invoice is. Short conversation, obvious value, and no late night rebuilding a report from a spreadsheet.

Frequently asked questions

How should a marketing agency organise QR codes?

By client first, then by campaign. Give each client an isolated workspace, group codes by campaign inside it, tag them by medium for the cross-cuts, and name every code with the same client-campaign-placement pattern. That structure scopes reporting automatically and makes cross-client mistakes almost impossible.

What is the difference between a workspace, a group, and a tag?

A workspace isolates one client from all the others. A group bundles the codes for one campaign or location inside that workspace. A tag is a cross-cutting label, like print or in-store, that finds codes across groups. Workspaces and groups give you structure; tags give you flexible search on top of it.

What happens to QR codes when a campaign ends?

Archive the group rather than deleting the codes. Anything already printed keeps resolving, and the scan history stays intact for later reporting. Deleting a code breaks every printed copy of it and sends scanners to a dead end.

The short version

Codes multiply faster than the structure most people give them, and an unstructured pile is where the errors and the slow reports live. A workspace per client, a group per campaign, a short list of tags for the cross-cuts, and one naming pattern everyone follows: five minutes of setup that quietly saves hours every month after. Do it before the fiftieth code, not after.

Share

Keep reading