Sign In
← Back to Docs
For Agencies · Platform Guide

Agency & Multi-Workspace

Run dozens of clients from a single PPC TNT login. Each client gets an isolated sub-account workspace with its own sites, leads, dashboard, and integrations. Team members are invited with scoped roles — and the entire stack supports white-label branding and custom domains so your agency stays front-and-centre.

The two-layer model

PPC TNT's agency model has two layers:

Why isolated workspaces? A client's leads, conversion data, and ad spend are sensitive. Workspace isolation means a member invited to Client A can never see Client B's data — even by accident. It also keeps dashboards clean: per-workspace metrics are not contaminated by other clients' campaigns.

Switching between clients

The Account Switcher at the top of the sidebar is how you navigate between sub-accounts. Picking a sub-account scopes every page in the app — Dashboard, Sites, Stats, Leads, AI, Intelligence — to that workspace. Switch back at any time without losing context.

The Agency page (sidebar → 🏢 Agency, only visible when no workspace is active) shows your full roster: every sub-account, every member, and quick links to enter each workspace.

Member roles

RoleWhat they can doWhat they can't
Agency OwnerEverything — invite members, create/delete sub-accounts, change billing, edit any workspace.
Agency Member (write)Edit any workspace they're assigned to (sites, pages, integrations, leads).Cannot manage billing or invite agency-level members.
Agency Member (read-only)View dashboards, leads, and stats for assigned workspaces.Cannot edit sites, change integrations, or export sensitive data.
Client UserSign in to their own workspace only. Sees their leads and dashboard.Cannot see other workspaces or agency-level data.

Creating a new sub-account

  1. From the Agency page, click + New Client.
  2. Enter business name, type, and integrations intent (which CRMs, ad platforms, and call tracking the client uses).
  3. The wizard provisions an empty workspace and seeds default sections.
  4. Invite the client (read-only) and your account-manager teammate (write) as members.
  5. Hand the client a deeplink to /bulk-pages/site — sub-accounts that own one site land directly in the editor.

Client onboarding forms

Writing an account brief from scratch for every new client doesn't scale, so you author one onboarding form under Agency → Forms and reuse it. It's plain Markdown — sections as headings, questions as list items — with a live preview showing how it will parse, and you can attach instructions telling the AI how to answer a given question.

When you onboard a client with a form attached, PPC TNT pre-fills what it can from a scrape of their website plus Google Places data. Every AI-filled answer carries a confidence level, so the low-confidence ones get a human look before you publish — an intake form that quietly guesses is worse than a blank one. Publishing generates that client's Business Profile, which is what every AI tool in the platform then reads.

Rewording is safe. Questions can be pinned to a stable key, so you can rewrite the wording later without orphaning the answers already collected under it.

Budgets, target CPA, and portfolio reporting

Agency → Reporting rolls every client up into one view: combined spend month-to-date and projected, how each client is pacing against their own monthly budget, cost per lead measured against that client's target CPA, the gap between tracked leads and platform-reported conversions, Google Ads change counts, and per-client lead trends.

Budgets and target CPA are set per client — from the client row's Budget panel on the Agency page, or on the Reporting page itself. Leaving a field blank means inherit the agency default rather than "zero", so a client you haven't configured yet is treated as unset instead of as having no budget. Editing these is owner-only. Each account gets a plain-language status, so a monthly review starts from the clients that need attention rather than from the top of an alphabetical list.

Connecting Google Ads once for the whole agency

You no longer need a separate Google Ads OAuth per client. Connect Google Ads at the agency (MCC) level under Agency → Integrations, and each client's Google Ads card then offers a dropdown of the accounts under that MCC — pick the right one and you're done. The account list is fetched only when you open the picker, since it costs several round trips to Google.

For a client whose account sits outside your MCC, Connect a different Google account still does a per-workspace connection, so mixed setups work.

Asking your AI about the whole portfolio

The Agency and Reporting pages show you the portfolio one view at a time. For questions that span every account — "which clients aren't fully set up?", "which have gone quiet?", "where are we losing money?" — add PPC TNT to Claude, ChatGPT or any MCP client as a custom connector and ask. It's scoped to exactly the accounts your own login can see, and it reads the same roll-up code the Reporting page uses, so the two can't quote you different numbers. See the AI Connector guide.

Tracking client work

PPC TNT has a work tracker built in. Every client gets a service line per discipline — Google Ads, Meta, SEO, Design, Development, Account Management — and a tool run files a comment on the matching one automatically, so the record of what was done builds itself. Add tasks, assign them, and track them on a list, board or calendar. Migrating from Jira? Export the issue list and bring epics, tasks, statuses, dates and comments across in one step from Tasks → Import, or save it as a template to stamp onto every new client.

Answering "why isn't this client's revenue showing up?"

The Match Debugger is open to agencies, at /agency/debug, across your own sub-accounts. It walks a single call or job through the attribution rules and states, per step, why it did or did not match — the phone number as normalized, whether an earlier call already claimed the identity, whether the job was paid, and which click it landed against.

Every verdict comes from the server running the matcher's own rule, not from a second implementation in the browser, so what the debugger says is what production did. The point is that whoever fields the question can answer it without escalating.

White-label & custom domains

PPC TNT supports per-agency branding: when a client signs in via your agency's domain, they see your logo, colours, and product name rather than the default PPC TNT look. The branding system pulls per-request configuration through getBranding() at the layout level, so every page they see is white-labeled.

For client landing pages, point each site at a custom domain via the editor's Info → Custom Domain field. Add a CNAME at the client's DNS provider pointing to ppctnt.com and SSL is auto-provisioned. The site is then reachable at the client's own domain — no PPC TNT branding visible to end-visitors.

How agency data shows up across the app

SurfaceScoped to active workspace?
Dashboard (calls/jobs/revenue)Yes — switch workspace to see another client's KPIs.
AI RecommendationsYes — it reports the active workspace's account.
Bulk Pages → Sites / Leads / StatsYes — every site row, lead, and event filters to the active workspace.
Intelligence Suite (all tools)Yes — watchlists, saved research, and tool results are stored per-workspace.
Business ProfileYes — one profile document per client, read by that client's AI tools.
Files libraryYes — each workspace has its own folder tree.
Integrations (Vendors)Mostly — credentials are per-workspace, except Google Ads, which can be connected once at the agency (MCC) level with an account picked per client.
Agency pageNo — agency-wide roster, only visible to agency owners and members.
Agency → ReportingNo — deliberately cross-client: spend, pacing, and cost per lead for every client at once.
AI connectorNo — deliberately cross-client, scoped to whichever workspaces your own login can see.

FAQ

How many sub-accounts can I have?

Sub-account count is governed by your plan. Most agency plans include unlimited sub-accounts; site and seat counts are the meaningful caps. See your plan settings for current quota.

Do I have to connect Google Ads separately for every client?

No. Connect it once at the agency (MCC) level under Agency → Integrations, then pick each client's account from a dropdown on their Google Ads card. Clients outside your MCC can still be connected per workspace.

What does leaving a client's budget blank do?

It inherits your agency default, rather than being treated as a budget of zero. That distinction matters — an unconfigured client shouldn't look like one that's spending against nothing.

Can I ask my AI about all my clients at once?

Yes — that's what the AI connector is for. It's scoped to exactly the accounts your login can already see, and only ever writes one thing: a comment on your own task board, and only if you grant that permission. It cannot create, edit or move a task.

Can a single human be a member of multiple agencies?

Yes — invitations are per-email. A freelance PPC manager could be a member of three different agencies, each with different role assignments.

Are leads from a client's site visible to other clients?

Never. Leads are stored against the workspace that owns the site. Sub-accounts cannot read each other's data. Only members explicitly granted access to a workspace see its leads.

Can I migrate an existing client's setup into a sub-account?

Yes. Use the CSV import on the Pages tab to bulk-load existing pages, and re-point any existing custom domain via the Info → Custom Domain field. Lead history typically stays on the source platform.

What happens if I delete a sub-account?

The workspace and its sites are archived. Lead and event data is retained per the platform's retention policy in case of accidental deletion. Custom domains are released, so re-route DNS first if you intend to migrate elsewhere.

Run an agency? Sign In and click 🏢 Agency in the sidebar to set up your first sub-account.