An agency with eight clients has eight brands, eight domains, eight sets of campaign links and at least sixteen people who need different levels of access. Run that in one shared shortener account and the first mistake is a matter of time: a client's link edited by the wrong account manager, a report that shows another client's campaign, a domain that lapses because nobody knew who owned it.
To manage branded URLs across multiple client accounts you need isolation by default, a domain per client that the client owns, roles that keep agency and client access separate, and a checklist for the two moments that go wrong most: onboarding and offboarding.
One workspace per client, isolated by design
The structural decision is the one that prevents the rest. Each client gets its own workspace: its own links, domains, analytics, team members and secret links, invisible to every other client. The agency sees all of them from one dashboard.
In LinkPilot, Agency plans provide that structure. The Agency plan at $299 a month covers up to 25 isolated client workspaces and 10 agency seats under one bill, and larger tiers extend both. Each workspace is a separate tenant enforced at the database layer with row-level security, so isolation does not depend on anyone remembering to filter. Agency branding (logo, palette, branded domains) rolls up across workspaces on the dashboard and on shared report pages, so client-facing output looks like the agency, not the tool.
If your platform only offers one account with folders, isolation is a convention, and conventions fail at the eighth client.
A domain per client, owned by the client
Every client's links should sit on the client's own domain, usually a
subdomain: go.client.com, link.client.com. Two rules make this
work long term:
- The client registers and controls the domain. The agency configures it; the client owns it. When the engagement ends, the domain and every link on it stay with the client, and nothing printed breaks.
- Record the facts. Registrar, renewal date, who holds DNS access, the CNAME target, verification date, fallback destination for the bare domain, and a named contact on each side. Put it in the client's workspace notes and in your CRM.
Set-up is the same for each: add the domain in the client's workspace, give the client's IT the CNAME record, wait for verification and the automatic TLS certificate, and test a link on a phone before anything goes live.
Roles that separate agency, client and contractor
Five roles in LinkPilot (owner, admin, editor, member, viewer) cover the usual arrangement:
| Person | Role in the client workspace | Why | | --- | --- | --- | | Agency account lead | Admin | Manages members, domains and settings | | Agency campaign staff | Editor | Creates and edits links, cannot change domains or members | | Freelancer or contractor | Member, time-limited | Creates links for their deliverable only | | Client marketing contact | Viewer | Sees links and reports, cannot change destinations | | Client IT | Nothing, or viewer | Handles DNS outside the tool |
Require strong authentication on every agency seat, because a branded client domain redirecting to the wrong page is a client incident with your name on it. Review access at every contact change on either side.
One naming rule across every client
Client workspaces are isolated, but the agency team moves between them. A single convention keeps everyone fluent:
<campaign>-<channel>-<placement>
spring-sale-email-hero
spring-sale-meta-carousel
spring-sale-print-poster
Tag each link with campaign and channel, keep the campaign token
identical in utm_campaign, and set the client's default UTM source
values once. The dashboard
guide
has the structure; it applies per workspace.
Keep links healthy across all workspaces
- Monthly redirect check across every client's live links with the redirect checker: broken destinations, chains, stripped parameters.
- Fallbacks, not errors. Expired campaign links point at the client's homepage or a current offer, archived so the history stays. Printed links never return an error page.
- Edit destinations, not links. When a client's landing page moves, change the destination in the workspace. The URL in the brochure keeps working.
- Renewal calendar for every client domain, owned by the account lead, with the client's registrar contact noted.
- Per-client reporting. Each workspace's analytics is already only that client's. Export it or publish a shareable report page with the agency's branding for the monthly review.
Onboarding a new client
- Gather the branding, the domain the client will use, DNS contact, default destinations and the campaign calendar.
- Create the workspace, apply the brand kit, invite the account lead as admin and the client contact as viewer.
- Add the domain, send the CNAME to the client's IT, verify, test.
- Record the domain facts and the naming convention in the workspace notes.
- Create the first campaign's links together on a call, so the client sees how destinations, tags and reports work.
- If the client is moving from another tool, export their links to CSV and import them into the workspace, then re-point the branded domain. Old links keep working under the new platform.
Offboarding without breaking anything
- Export the client's links and analytics.
- Hand over the workspace to the client, or transfer ownership of the links, so nothing they printed dies.
- Remove agency seats from that workspace and rotate any credential shared during the engagement, using a one-time secret link for anything that has to be handed back.
- Confirm in writing that the client controls DNS for their domain.
- Archive the workspace on your side and close the renewal calendar entries.
A client who leaves with working links, their own domain and a clean export is a client who refers you. The structure above is what makes that the default outcome rather than a scramble.