Control what a client sees
Set the portal kind and section switches, pick a portal profile, grant services per project, manage the portal account, roles and seats, retire a portal, and preview the result.
Most of what a client can see is decided on their portal. This page covers the three places that decide it — Client visibility (sections and services), the portal's Account tab and the portal lifecycle — and how to check the result without logging in as them. Three things live on the project instead of the portal: SEO reporting and Map Pack results (switched per project on Client visibility, or in the SEO Command Center's Settings), and the GA4 property (the project's Analytics & SEO setup card).
Before you start
Editing sections, the portal's status, role, seats and notification preferences, and every lifecycle action need an owner or admin. Team members with Client Portals (edit) open the Sections sheet read-only and see the login email and photo on the Account tab, beside Billing. Changing services under Client visibility needs Billing (edit); without it the page reads "You don't have billing permission to change services."
Portal kind
Full portal, Leads, SEO, Backlinks or Ads — presets every toggle
Section toggles
The eleven portal areas, ticked one at a time
Add-on entitlements
Purchased or granted services, per project
Notification preferences
Which emails reach this client at all
What this client actually sees
Portal kind
Open the client and go to Client visibilitySectionsEdit sections. The Sections card lists one row per portal, reading All sections on or Off: followed by what is hidden; Edit sections opens that portal's Sections sheet on the right, with Save and Cancel. Without an owner or admin role the sheet is read-only and closes with Close.
Portal kind is a row of pills: Full portal, Leads, SEO, Backlinks or Ads. Minimal kinds land the client on their product surface and hide the agency-workflow navigation around it.
Pick the kind first, then hand-adjust
Picking a different kind rewrites every section switch from that kind's preset and discards your hand edits. Re-picking the same kind does nothing. Choose the kind, then adjust the switches, then Save.
Under the Leads, SEO, Backlinks and Ads kinds, Account & Billing and Services always stay on regardless of what you tick.
Section toggles
| Setting | What it changes | Default |
|---|---|---|
| Messages | Shows or hides the portal Messages area. | On |
| Files | Shows or hides the Files tab and the two-way file lane. | On |
| Analytics | Shows or hides the Analytics page. | On |
| Advertising | Shows or hides the Advertising page. | On |
| Meetings | Shows or hides Meetings and client booking. | On |
| Training | Shows or hides the Training hub. | On |
| Account & Billing | Shows or hides Plan & Billing and invoice detail. | On |
| Leads | Shows or hides the Visitor ID lead surfaces. | On |
| Authority | Shows or hides the SEO add-on (authority and backlink) panels. | On |
| Services | Shows or hides the add-on catalog page where a client buys more services. | On |
| Announcements | Shows or hides Announcements. | On |
Every section is on until you turn it off, so a brand new portal shows everything until you narrow it. The switches sit under the portal's own navigation groups — Workspace, Collaboration, Growth and Account — and Announcements stays on under every kind and outside the preview. To check the result, save, then use Preview as client at the top of Client visibility.
Hiding a section hides the surface, not the producers
The records behind a hidden section are still created. Files still arrive, notification emails still send, and the new-files dot on Projects still lights up — only the project's Files tab honours the Files switch. If you want a category to go quiet, turn the matching notification toggle off on the portal's Account tab as well. Account & Billing is the exception that reaches the database: with it off, the portal cannot read your Stripe plan cards or invoices (add-on offers stay readable), and composing a Stripe subscription turns it back on.
The sheet has no SEO switch. SEO reporting, blog posts and Map Pack are switched per project under SEO, per project on the same Client visibility page — one switch each, described under Services, per project below. Where the portal panel still carries a Sections tab (a project's portal dialog and the internal portals workspace), its SEO reporting card switches nothing and points back here.
Account: status, role, seats and notifications
Open SettingsAccount, picking the portal under Project scope first if the client has more than one. The Account card shows the login email and the client photo; for an owner or admin it also holds the portal's Status and Portal role pills, Resend onboarding email, the client's notification preferences and extra Seats.
| Setting | What it changes | Default |
|---|---|---|
| Status | Active, Pending, Archived, Revoked or Legacy. Anything other than Active stops the login working. | The portal's current status |
| Portal role | Client or Admin. | Client |
| Resend onboarding email | Sends the invite again. Use it when the client never set a password. | — |
| Email notifications enabled | The master switch for this client's notification emails. With it off, the individual categories below do nothing. | — |
| Messages & tasks | Emails when an approval or task needs the client. | — |
| Files & deliverables | Emails about new files and deliverables. | — |
| Meeting updates | Emails about meeting changes. | — |
| Content Center updates | Emails about the content calendar. | — |
| SEO reports | Emails when an SEO report is shared. | — |
| Stripe billing updates | Emails about subscriptions and invoices. | — |
| Request status + comments | Emails when you change a request's status or comment on it. | — |
| New leads (ad campaigns) | Emails when an ad campaign produces a lead. | — |
Seats
A seat is an extra client login on the same portal. Add them under Seats and press the invite action on each one.
- Capped at five members beside the primary login.
- A seat's chip reads Not invited → Invite sent → Active. It only reaches Active once that person sets a password. Disabled turns the seat off.
- You cannot add the portal's own primary login email as a seat.
- Payment methods, personal notifications and account settings stay per-login. Billing and meetings are visible to everyone on the portal.
Services, per project
Client visibility is the one screen that answers "what does this client actually see", service by service and project by project.
Open the client and click Client visibility
Work the add-on queue at the top
Pending add-on requests offer Activate or Decline.
Switch SEO per project
SEO, per project has one column per project and three switches: SEO reporting (their SEO tab, reports and Map Pack results — the SEO Reporting & Technical SEO service included in their plan), Blog posts (the autoblog schedule's posts on their content calendar, with Blog content included) and Map Pack results (the Local tab, shown inside SEO reporting). SEO reporting is on when the service is included; off cancels it. Switched off, the client can see the offer to buy it when your catalog sells it, unless you press the eye-slash button beside the switch; reports you've already attached stay on their SEO tab. The eye beside Map Pack results is the same control: Map Pack shows inside SEO reporting, so hiding that offer hides Map Pack with it. A paused service stays on with Resume beside it. Turning Blog posts on notifies the client of this month's scheduled posts, so it asks first. A switch never writes to a portal another project owns, and never stops a Stripe charge — when something it can't reach keeps the client seeing it, the switch stays on and says why. Blog posts and Map Pack need the project enrolled in the SEO Command Center.
Read the add-ons grid
Add-ons, per project has one row per add-on and one column per project, plus an Account portal column when the client has a portal with no project of its own. Each cell has a switch that is on when that project has the add-on, and an eye-slash button that hides the offer from that project. A project without a portal of its own is switched on its own too, on the portal it signs in through. An add-on switched on in the Account portal column is account-wide: every project that reaches that portal reads it on, locked, and it is switched off there.
Flip a switch or hide an offer
Switching a service on opens the grant dialog (included in the plan, or billed through Stripe); switching it off asks you to confirm. The eye-slash button hides or restores the upsell offer; it only appears while the service is off. A paused service stays on with Resume beside it, and a service the client requested is activated from the add-on queue so the request resolves.
Website Visitor ID is the one add-on whose switch opens a setup dialog instead of the grant dialog: an owner or admin on a plan with Website Visitor ID enters the site URL, confirms the privacy-policy disclosure and clicks Add site — the site rides your own LeadPost account, so no platform credits are used. The dialog then shows the webhook URL once with the LeadPost steps; paste it there, come back and click I've installed it. Until you do, the cell reads on with the word Pending install (the site is still activated under GrowthLead Automations). For everyone else the switch stays locked and the add-on still turns on from the client's request in the queue above.
Or pick a Portal profile
Portal profile applies a preset — All areas open, Website only, SEO reporting, SEO reporting + blog, Google Ads or **SEO reporting
- Google Ads** — through the switches below it: the Advertising section, the services it includes as part of the plan, and SEO reporting. SEO reporting + blog also turns Blog posts on for every project that has an autoblog schedule; a project without one is listed under what cannot change ("No autoblog schedule yet"), and no profile ever turns posts off. A confirm list names what will change and what cannot before anything is written. It never touches Map Pack, Billing, enrollment or a service the client already has, and the picker reads Custom when the stored switches match no preset.
A service shows for the projects it is on. Every project is switched on its own: a project that has no portal of its own signs in through the client's first portal and holds its own services there, so switching it never changes another project. A service marked included in the plan is part of what the client already pays for — the client sees "Included in your plan" with no price.
The Account portal column is account-wide
A service switched on in the Account portal column (a portal with no project of its own) reaches every project that signs in through that portal. Those projects read it on, locked — switch it off in the Account portal column.
Removing access is not cancelling the charge
Taking a Stripe-billed add-on away from a portal does not cancel the Stripe subscription. Cancel the recurring charge through the client's billing door first, then remove the access.
Add-on changes are not realtime on the client's side. Their portal refreshes entitlements on focus, or within roughly 15 seconds of navigating, so a recent change can take a moment to appear.
Preview a client's portal
Use Client visibilityPreview as client for a read-only snapshot: projects, open requests, tasks, approvals, message threads, files, reports, meetings, notifications, billing and onboarding. Every read runs under the client's own permissions, and each preview writes one portal event.
Use Open on platform address (or Open on your domain, which appears once your custom domain is live) when you need the real, interactive thing. The preview is a snapshot, not a login.
Portal lifecycle
At the bottom of SettingsPortal lifecycle sit the owner-or-admin actions that retire a portal.
| Action | What it does |
|---|---|
| Cancel invitation | Only on invited portals. Permanently deletes the portal — this is not a soft undo |
| Deactivate | Revokes access. Status becomes revoked and the auth user is disabled. The data stays |
| Delete | Wipes the portal and its data. Requires you to type the portal's access email |
| Mark discovery complete / Reopen discovery | Flips the discovery status, and resets progress on reopen. A tracking flag only |
What Delete destroys
Messages and thread history, requests with their comments, tasks, uploaded files, discovery answers, portal notifications and the client's login. Preserved: the client record, and the project itself — it is reassigned to you with its checkpoints, notes, deliverables and campaigns intact.
If you only want to stop the client getting in, use Deactivate.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Section toggles reset after you edited them | You clicked a different Portal kind pill, which rewrites every toggle | Pick the kind first, then hand-adjust, then Save |
| A section is off but the client still gets emails | Section flags hide the surface, not the producers behind it | Turn the matching category off on the portal's Account tab (Settings → Account) as well |
| The Sections sheet has no SEO switch | SEO reporting, blog posts and Map Pack are switched per project on Client visibility | Close the sheet and use the SEO, per project switches on the same page |
| SEO reporting is greyed out on Client visibility | The project is not enrolled in the SEO Command Center — hover the greyed switch for the exact reason | Click Enroll in SEO Command Center under the project's column, then return. If the enrollment check failed, click Couldn't check SEO Command Center enrollment — retry |
| The Portal profile reads Custom | The stored switches match no preset — usually one service or one project differs | Pick the profile you want and read the confirm list; it names what will change and what it cannot |
| A service shows on one project but not another | Entitlements live on a portal; a project with no portal inherits the first portal's services | Grant the service on the shared portal, or hide its offer there. A second per-project portal is not created from the admin yet |
| The Sections sheet is read-only, or the Account tab has no Status or Portal role | Editing sections, status, role, seats and notification preferences needs an owner or admin | Ask a workspace owner or admin to make the change |
| Cancelling an add-on did not stop the Stripe charge | Access and subscription are separate | Cancel the subscription in billing, then remove access |
| A change has not appeared in the client's portal | Entitlement reads are not realtime | Wait about 15 seconds, or have them reload the page |
| Deleting a portal lost history you wanted | Delete wipes messages, requests, tasks, files and discovery answers | Use Deactivate next time — it revokes access and keeps the data |