Skip to content

QR CODES FOR AGENCIES

QR codes for client projects, kept apart 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 workspace per client, folders per project

A workspace is the unit of separation: it has its own members, codes, folders, tags, assets, templates, analytics settings and custom domain, and you move between them from the switcher in the sidebar. A client cannot see a workspace they are not in, which is a property of the structure rather than of anyone remembering.

Inside a workspace, a code sits in exactly one folder and carries as many tags as you like. Folders suit places and objects — a venue, a product line, a campaign wave — and nest as deep as the work does. Tags suit the things that cut across them, which is usually the campaign itself.

  • One workspace per client, switched from the sidebar
  • Folders for places and objects; a code sits in one at a time
  • Tags for campaigns that cross folders; a code can carry several
  • Assets, stickers and templates belong to the workspace, not to you

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.

In practice that means a client contact can be an analyst, reading every number without touching artwork, and a stakeholder can be a viewer who sees the work and changes nothing. Data export can be narrowed to the owner alone, and the workspace can be set to require two-factor authentication from everyone in it.

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?

Yes. Put each client in its own workspace. Membership, codes, assets, analytics and settings all belong to a workspace, and nobody sees a workspace they have not been invited to.

Can a client see the analytics without being able to edit anything?

Yes. The analyst role reads reporting without editing codes; a viewer can be shown the workspace without either. Roles are granted per workspace and listed in settings with what each one allows.

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

BEFORE THE NEXT CLIENT RUN

One workspace per client, one code per placement

Roles, approvals, templates, custom domains and the public API, with no plan quota during the first release.

Set up a client workspace