Agency mode

Create accounts for your customers, log in as them to fix things, and hand out view-only access — all the agency tools, hosting-gated.

Agency mode is three affordances stacked on top of the regular Users tab: create accounts directly, log in as a customer, and hand out view-only access. All three sit behind hosting — they're the agency-tier tools, not the lifetime baseline.

One trigger: turn hosting on. The "+ Create user" button and the "Log in as" row action appear automatically in Settings → Users once hosting is active. Nothing else to configure.

What you can do

Create an account directly

Open Settings → Users and click + Create user. Fill in:

1
Email. Where they sign in. Must be unique within your tenant — the same email can exist on another Linked.Codes platform, just not yours twice.
2
Role. User = full edit access to their own links and QR codes. Viewer = read-only.
3
Plan. Pick one of your tenant plans (the limits + price you set up in Plans). Optional — leave blank for no caps.
4
Email them a setup link. On by default. The customer gets a one-time link to set their own password, good for 14 days. Turn it off if you'd rather handle the comms yourself — the link gets copied to your clipboard instead.
Why the setup link. We never store a password the customer didn't type themselves. The link is a one-shot — clicking it lands them on a "set your password" page; the moment they submit, the link is dead.

If the customer loses the email or the link expires, open the user row and click Setup link — a fresh 14-day link is generated and copied to your clipboard.

Log in as a customer

Find the row in Settings → Users and click Log in as. We mint a session as that user and drop you into their dashboard.

A black banner sits across the top of every page: "Viewing as customer@example.com · Exit". Click Exit to return to your own session. Closing the tab also ends it on the next sign-in.

Everything you do counts as them. Creating a link, editing a QR, requesting a payout — it's logged against their account. Use the impersonation banner as your reminder.

When you should use it:

  • Support. Customer says "my domain isn't verifying" — easier to look at their dashboard than guess what they're seeing.
  • Onboarding. Walk them through a setup over a screenshare while logged in as them.
  • Demoing. Show another customer what their finished dashboard will look like.

When you shouldn't:

  • Their personal account settings. Don't change billing emails, payout methods, or their own password while impersonating. Those changes show up in their inbox.
  • Production billing actions. Cancelling a subscription "as them" sends them the cancellation email. Confirm with them first.

A history of every impersonation start and exit is kept — visible to admins if there's ever a question.

View-only accounts

A viewer is a sub-user with the same login flow as any other, but every edit, create, and delete endpoint refuses the request. They see what's on the dashboard, they don't change anything.

Who this fits:

  • Clients you want to share the dashboard with read-only — they can see analytics, scan counts, recent activity, without being able to break anything.
  • Junior teammates during onboarding — they observe before they touch.
  • Auditors / accountants who just need to look at the numbers.

To provision one, follow the create flow above and pick Viewer in the role dropdown. The user row in your Users list shows a View-only chip so you can tell them apart at a glance.

Today: read-only across the dashboard. Viewers see everything in your tenant in read-only mode. A future update will let you pick specific links or QR codes a viewer should see — for now, treat it as "they can see everything you can see, but can't change it."

What stays where

Thing Where it lives
The "+ Create user" button Settings → Users (only shown with hosting on)
"Log in as" + "Setup link" buttons Per-row in the Users list
The impersonation banner Top of every page while impersonating
Setup links Emailed to the user, or copied to your clipboard — 14-day expiry
Impersonation history Audit log, visible to admins
Quick-link the customer. If you've turned email off for the invite, the setup URL is already in your clipboard — paste it into your usual customer channel (Slack, email, WhatsApp, whatever).
  • Users and plans — the underlying users + invites + plan system agency mode sits on top of.
  • Custom domain — your customers sign in at yourbrand.com, not linked.codes.
  • Whitelabel email — make the setup-link email come from your domain, not ours.