QR CODES FOR AGENCIES
QR codes for client projects, kept in order on purpose
Running QR codes on somebody else’s behalf fails in a predictable way: one account holding everybody’s codes, a spreadsheet recording whose is whose, and a printed code whose destination nobody now dares to touch. The separation has to be structural — per client, per project, per person — and most of it has to be decided before anything reaches a press.
QUICK OVERVIEW
What this changes in practice
01
A folder per client, tags per campaign
Today every account has one workspace, and a code sits in exactly one folder inside it while carrying as many tags as you like. A folder per client — with folders inside it per venue, product line or campaign wave — keeps the list readable; tags suit the things that cut across them, which is usually the campaign itself.
Separate workspaces per client, each with its own members, codes and custom domain, are on the way as a paid option. Until they arrive, remember that folders organise the work but do not hide it: everybody in the workspace sees every folder.
- A folder per client; folders inside it per project
- Tags for campaigns that cross folders; a code can carry several
- Assets, stickers and templates belong to the workspace, not to you
- Separate client workspaces are on the way as a paid option
02
Give each person exactly the access the relationship needs
Roles are granted per workspace and apply to every code in it: admin, editor, analyst and viewer, alongside the owner. Settings shows the matrix plainly — who can create and edit codes, view analytics, manage folders and tags, invite members, export data and delete the workspace.
A role covers the whole workspace, so a client contact you invite as an analyst reads every number in it — including other clients’ — and a viewer sees every code. Until separate workspaces arrive, show a client their own work through share links rather than membership. Requiring two-factor authentication and limiting data export to the owner are on the way.
03
Show the work before it reaches a press
A share link puts a code in front of somebody with no account at all: view permission, an optional password, an expiry date, and revocable the moment the review is over. It is the honest alternative to emailing a screenshot that stops matching the code an hour later.
Inside the workspace, comments live on the code itself, and an approval is submitted against a specific revision with a note and decided by somebody who can. That turns “which version did they sign off” from an argument about an email thread into a record with a date on it.
04
Rebuild nothing at the start of each campaign
Templates are stored as the editable scene rather than a flattened image, so a client’s layout is still adjustable a year later instead of being a picture somebody has to redraw. The asset library and stickers hold their logos and marks in the workspace they belong to.
Every code keeps its revisions, so a change made in a hurry can be read back — what it was, what it became, and who moved it.
05
Volume, and getting the numbers back out
A run of hundreds belongs in a CSV job or the public API with a scoped key, not in an afternoon of clicking. Webhooks push events into whatever the agency already reports from, and scan data exports as CSV per code.
One rule decides whether that reporting is worth anything: analytics separates what you separated. Give every print site, every version and every city its own code, or the client’s report collapses into a single number that answers nothing they will ask.
06
Settle whose account owns the redirect before print
A dynamic code resolves through the workspace that owns it. If the client leaves and the workspace stays with you, their printed material now depends on your account — and if the workspace goes with them, your reporting ends the day the relationship does. Neither is wrong; being unclear about which one you chose is.
Two things lower the stakes. A verified custom domain means the printed address is the client’s own, so the codes can outlive any single tool. And knowing the exit terms in advance matters: a workspace scheduled for deletion serves a controlled unavailable page on its live links rather than dropping scans into nothing, which is a consequence to plan for rather than discover.
FAQ
Frequently asked questions
Can I keep one client from seeing another client’s codes?
Not through membership yet: a member sees every code in the workspace. Show each client their own codes through share links, which need no account. Separate workspaces per client are on the way as a paid option.
Can a client see the analytics without being able to edit anything?
Yes, with one caveat. The analyst role reads reporting without editing codes, and a viewer sees the workspace without either — but both cover the whole workspace, so they suit your own team better than a client while all clients share one.
Can I get a code approved before it goes to print?
Yes. Submit the revision for approval and have it decided with a note, or send a share link — view-only, optionally password protected, with an expiry — to somebody who has no account.
Can I reuse a client’s brand setup across campaigns?
Yes. Save the layout as a template in that client’s workspace. Templates keep the editable scene rather than a rendered image, so they stay adjustable and versionable long after the first campaign.
Whose account should own a printed client code?
Whoever will still be answerable for that destination in three years. Agree it before the print run, and consider a verified custom domain so the printed address belongs to the client rather than to any one tool.
NEXT STEP