Appearance
New Agency Playbook
For: the founder or operations lead of an agency that just signed up. This is the single-page walkthrough that takes you from empty workspace to fully-operational, with one client onboarded end-to-end, in roughly 4–6 hours of focused work spread over the first two weeks.
If you only have 30 minutes today, do the Quick Start instead and come back to this.
Before you start — the checklist
Don't begin until you have all of these ready. Stopping mid-flow to chase missing assets kills momentum.
About your agency
- [ ] Legal agency name + the "doing-business-as" name you want shown to clients.
- [ ] Agency logo: PNG or SVG, transparent background, at least 200×200 px. Have a square version for sidebar and a wide version for email headers.
- [ ] Brand colors: primary + accent hex codes.
- [ ] Mailing address (appears on invoices).
- [ ] Support email and support phone you want clients to use.
- [ ] One short paragraph about your agency — for storefront and emails. (Three sentences is fine.)
About your first 3–5 clients
For each client you plan to onboard in week one:
- [ ] Business name, address, phone, website, industry.
- [ ] Name + email + phone of the primary contact (usually the owner).
- [ ] Confirmation that you have (or will get) Manager access to their Google Business Profile.
- [ ] Their existing brand voice notes — voice adjectives, audience, what to mention, what to avoid.
- [ ] If they're paying you through the platform: the price you charge them and the service description.
About your team
- [ ] Names + emails of teammates to invite.
- [ ] Each teammate's role (owner / admin / member / viewer / client reviewer). Provider Access for external contractors is a separate grant — see Roles & Permissions.
- [ ] For members and viewers — which clients each should be scoped to (if any).
About money (only if you'll use storefront / Stripe Connect)
- [ ] Stripe account login (or ability to create one in 10 min).
- [ ] Business EIN or SSN for Stripe identity verification.
- [ ] Bank account for Stripe payouts.
About white-labeling (only if you want a custom domain)
- [ ] A subdomain you control DNS on (e.g.
app.youragency.com). - [ ] Access to that domain's DNS provider (Cloudflare, Route53, GoDaddy, etc.).
Phase 1 — Day 1 (60–90 minutes)
Goal: your agency exists in the platform, the first client is loaded, and you can do real work.
Step 1.1 — Sign up + create your organization (10 min)
Two ways in:
Option A — Marketing site checkout (localvisibilitylab.io):
- Visit
localvisibilitylab.io→ Get Started. - Complete Stripe Checkout (this is also where you enter your card).
- Within ~1 minute of payment, you'll receive a "Welcome to Local Visibility Lab — your sign-in link" email.
- Click the magic link → you're signed in automatically. Your organization is already created and your subscription is active.
Option B — Direct dashboard sign-up (dashboard.localvisibilitylab.io):
Visit
dashboard.localvisibilitylab.io→ Sign Up.Use your work email; sign in with Google if your work email is a Google account (it's faster).
On first sign-in, you're asked to create an organization:
- Name: your agency name.
(Branding fields, contact details, and storefront slug are configured after sign-up — see the next step. Storefront slug specifically is set when you configure Stripe Connect in Phase 4.)
Land on the empty Dashboard. You'll be on a 14-day free trial; pick a plan from Billing when you're ready.
✅ Done when: you see the Dashboard with your agency name in the top-left sidebar.
Step 1.2 — Fill out organization details (10 min)
These appear on invoices and customer-facing emails. Worth doing now so your first client-facing email looks professional.
Settings → Branding:
- [ ] App name — your agency name as you want it shown.
- [ ] Logo URL — paste a hosted PNG/SVG URL.
- [ ] Primary color — your brand hex.
Settings → General:
- [ ] Support email (used for GA4 / Search Console contact).
- [ ] Confirm org-wide notification toggles (suspension detected, new review, weekly digest, etc.).
- [ ] Set customer onboarding preferences if you'll use the storefront cascade.
✅ Done when: your logo shows in the sidebar header and your agency name appears on a test invoice (you'll generate one later).
Step 1.3 — Pick a plan (5 min)
You're on a 14-day free trial automatically. If you know you're going to use the platform, pick a paid tier now and avoid the trial-end disruption.
Billing → Plans & Subscriptions:
- [ ] Choose the tier that fits your client volume. (You can change later.)
- [ ] Enter your card via Stripe Checkout.
✅ Done when: the dashboard banner no longer says "Trial ends in X days."
Step 1.4 — Connect Google (15 min)
The single most important integration. Skip this and nothing GBP-related works.
Settings → Integrations → Google → Connect Google Account:
- [ ] Sign in with the Google account that manages your first client's GBP.
- [ ] Approve all scopes.
- [ ] Green "Connected" badge appears.
Then on the same page:
- [ ] Connect GA4 (Google Analytics 4) — same Google login probably has access.
- [ ] Connect Search Console — same.
If you don't have Manager access to the client's GBP yet, send them the request email template. You can come back to this step once they grant access.
✅ Done when: Settings → Integrations → Google shows three green Connected statuses.
Step 1.5 — Load your first client (20 min)
Start with your easiest client. Get the rhythm down, then scale.
Sidebar → Businesses → + Add Business:
- [ ] Name, industry (be specific — "Plumbing & HVAC" not "Services"), website, phone.
- [ ] Save.
On the business detail page:
- [ ] Contacts tab → + Add Contact — name, email, role, mark as Primary.
- [ ] Profiles tab → Import from Google — pick the matching profile from the dropdown.
- If it imports as
pending_verificationorsuspended, that's informational; it doesn't block you.
- If it imports as
✅ Done when: the business has at least one profile and one primary contact.
Step 1.6 — Create a brand profile for this client (10 min)
Without it, every AI generation will be generic and you'll spend time editing. Spend 10 min here, save hours later.
Sidebar → Brand Profiles → + New Brand Profile:
- [ ] Attach to the business.
- [ ] Voice tone: pick a preset from the dropdown (e.g. friendly, professional, witty).
- [ ] Target audience: 1 sentence.
- [ ] Additional guidelines (things to always or never mention).
- [ ] Upload client's logo.
- [ ] Brand color (their brand hex, not yours).
- [ ] Save.
You can add example posts and watermark settings later. The required fields above are enough to start.
✅ Done when: the brand profile saves and the business detail page shows "Brand profile attached."
🎉 End of Day 1. You can stop here and do real work. The next phases polish and scale.
Phase 2 — Day 2–3 (90–120 minutes)
Goal: your team is in, your standards are documented, and you've shipped your first piece of content to a real client.
Step 2.1 — Invite your team (15 min)
Settings → Team → + Invite Member:
For each teammate:
- [ ] Email + role. Invite dropdown options: Admin, Member, Viewer, Client.
- [ ] If they're a member or viewer who shouldn't see all clients, set their scoping to the specific businesses they'll work on.
- [ ] Send.
Quick role guide:
- Owner: co-founders, business partner. Be sparing. (Promote an existing member to owner — not in the invite dropdown.)
- Admin: senior staff who manage operations.
- Member: account managers, content creators.
- Viewer: read-only stakeholders.
- Client: the end customer at the client business when you want to give them limited dashboard access.
For external contractors (designers, freelancers), use Provider Access instead of a team role — see Roles & Permissions.
See Team Management and Business Scoping for the deeper explanation.
✅ Done when: every invited teammate has either accepted (showing in the team list) or has a pending invitation.
Step 2.2 — Document your standards in the library (30 min)
This is the secret to consistent output across your team. Skip it and every team member will improvise.
Brand Profiles → Additional guidelines (one per client business): capture your standing rules so AI generations follow them. Examples to seed:
- "Never include a phone number as text in an image."
- "Always include the city name in posts."
- "End every post with a clear call-to-action."
- "Never make medical or legal claims."
Settings → Libraries (shared image libraries): upload any branded assets, sample images, or reference photography your team reuses across clients.
✅ Done when: each active client's brand profile has a populated "additional guidelines" field, and your shared image library has at least a few reusable assets in it.
Step 2.3 — Ship one real post to a real client (30 min)
The hands-on test that proves you can use the platform.
Sidebar → Content Calendar → + New Post:
- [ ] Target the profile you imported on Day 1.
- [ ] Click Generate with AI. Use one of the prompt templates you just saved.
- [ ] Review the draft text and image. Edit if needed.
- [ ] Set publish time to a few minutes from now (so you can verify quickly).
- [ ] Toggle Send for client approval (recommended for the first time).
- [ ] Save.
The client gets an approval email. Either:
- They approve → post publishes at the scheduled time.
- You approve on their behalf (for the test) by opening the approval link they got and clicking Approve.
Then:
- [ ] Wait until publish time + a few minutes.
- [ ] Open the live Google Business Profile listing — confirm the post is visible.
✅ Done when: the post is live on Google. You've completed the full pipeline.
Step 2.4 — Configure notifications (10 min)
Avoid email overload. Tune what reaches your inbox.
Avatar → Notification Preferences:
- [ ] Choose which events trigger email vs. in-app only.
- [ ] Recommended on: new negative review, failed job, approval received, post published.
- [ ] Recommended off: every individual content calendar entry change.
Each team member tunes their own.
✅ Done when: you've checked or unchecked every category deliberately.
Phase 3 — Week 1 (2–3 hours)
Goal: the rest of your initial clients are loaded, and connected channels (social, GA4) are syndicated.
Step 3.1 — Load remaining clients (1–2 hours)
Repeat Step 1.5 and Step 1.6 for each of your other launch clients.
Tip: do them in rapid batches of 3–5 rather than one-at-a-time over many days. Context-switching cost is real.
If you have many clients (20+), use Settings → Bulk Operations → Import Businesses to load via CSV.
✅ Done when: every active client has a Business, Profile, primary Contact, and Brand Profile.
Step 3.2 — Connect Facebook + Instagram per profile (30 min for 5 profiles)
Per Connecting Social:
For each profile that should syndicate:
- [ ] Profile → Social Accounts tab → Connect Facebook/Instagram.
- [ ] Sign in to the Facebook account that admins their Page.
- [ ] Select Page(s) to attach.
If you have only one client granting Facebook access, do this once per client; for many clients, this is a series of short sessions across weeks (clients often have to be on the call to authenticate).
✅ Done when: each profile shows the connected social accounts in its Social Accounts tab.
Step 3.3 — Attach GA4 + Search Console properties (15 min)
You connected Google + GA4 + GSC at the org level on Day 1. Now attach each profile to its specific GA4 property and GSC site.
For each profile:
- [ ] Profile → Settings tab → Google Analytics 4 Property → pick.
- [ ] Profile → Settings tab → Search Console Property → pick.
This unlocks GA4 metrics in reports and GSC keyword data.
✅ Done when: each profile shows attached GA4 and GSC properties.
Step 3.4 — Set up case templates for your recurring services (30 min)
If your agency runs monthly retainers, build a case template once and the platform reuses it every cycle.
Settings → Task Templates → + New Template:
For a "monthly local SEO cycle" example template:
- [ ] Pre-fill 7 standard tasks: pull metrics, review reviews, draft posts, send for approval, publish on schedule, generate monthly report, send report.
- [ ] Default owner.
- [ ] Default due-date offsets.
Now when you open a new case for a client, pick this template and the case is pre-populated.
✅ Done when: at least one case template exists for your most common service type.
Phase 4 — Week 2 (2–4 hours, optional)
Goal: commerce surface is live (storefront + Stripe Connect), white-label is configured (if you want it).
Skip Phase 4 entirely if you're not using the storefront or marketplace. The platform works fine as an internal-only tool. Phase 4 is for agencies who want the full Agency Partner stack.
Step 4.1 — Connect Stripe (15 min)
See Stripe Connect for the detailed walkthrough.
Settings → Stripe Connect → Connect Stripe Account:
- [ ] Sign in to existing Stripe or create new during onboarding flow.
- [ ] Complete identity verification.
- [ ] Wait for "Charges Enabled" + "Payouts Enabled" (usually instant for US, 1–3 days otherwise).
✅ Done when: Settings → Stripe Connect shows both green badges.
Step 4.2 — Configure your service catalog (30 min)
See Service Catalog.
Add the services you sell:
- [ ] Subscription plans (Starter / Pro / Enterprise of your main service).
- [ ] One-time services (audits, custom posts, etc.).
- [ ] For each: name, description, price, billing interval, onboarding template, brand profile.
✅ Done when: every service you sell exists in the catalog.
Step 4.3 — Set up your storefront (10 min)
Storefront settings live inside the Settings → Stripe Connect tab.
- [ ] Toggle
storefrontEnabledto ON. - [ ] Set
storefrontSlug— this becomes the URL path:dashboard.localvisibilitylab.io/storefront/<slug>. - [ ] Toggle
storefrontPlansEnabled— ON if you want platform subscription plans to appear alongside your one-time services; OFF for services-only.
See Storefront. The richer branding controls (hero copy, testimonials, layout) are on the roadmap — vote at /roadmap.
✅ Done when: the storefront URL loads with your services listed.
Step 4.4 — Add a custom domain (30 min, optional)
See Custom Domains.
Settings → Branding → White Label — Custom Domain → + Add Domain:
- [ ] Enter your subdomain (
app.youragency.com). - [ ] Add the CNAME record to your DNS.
- [ ] Wait through the 6-state lifecycle (10–30 minutes from
pending_dnstoactive). - [ ] Confirm sign-in works on the new URL.
✅ Done when: app.youragency.com loads your dashboard and clients can sign in there.
Phase 5 — Month 1 polish (ongoing)
Beyond the structured setup, these are the habits and tasks of an agency operating well on the platform:
- [ ] Weekly review of the Dashboard. Suspended profiles, pending approvals, failed jobs.
- [ ] Daily review of the Reviews queue. Reply to anything 24 hours old or sooner.
- [ ] Approval queue triage. Nudge clients who've sat for 3+ days.
- [ ] Library growth. Every time you write a great prompt or reply, save it.
- [ ] Brand profile tuning. As AI output drifts, refine the brand profile.
- [ ] Profile groups. Once you have 10+ clients, create groups for batch operations.
- [ ] Monthly reports. Generate and share a standard report for each client at the same point in your month.
Phase 6 — Quarter 1 advanced (optional)
For agencies that want to take it further:
- [ ] Marketplace listing — sell your specialty service to other agencies.
- [ ] Referral program — bring other agencies onto the platform, earn 5% commission.
- [ ] Profit distribution — auto-split incoming Stripe payouts with partners.
- [ ] API + Webhooks (Enterprise) — integrate with internal tools.
- [ ] Bulk operations — CSV import / export, batch updates.
The "I'm stuck" decision tree
| Symptom | Where to look |
|---|---|
Profile imported but shows suspended | Profile Monitoring |
| Google integration shows "needs reauth" | Connecting Google |
| Can't generate AI content / quota error | AI Generation |
| Stripe Connect won't enable charges | Stripe Connect |
Custom domain stuck in pending_dns | Custom Domains |
| Teammate can't see a client's data | Business Scoping |
| Approval email never arrives | Approvals |
| Post failed to publish to Google | Admin → Failed Jobs (or ask your platform admin) |
Cheat sheet — keep this open during onboarding
| Action | Where |
|---|---|
| Add a client | Businesses → + Add Business |
| Import a Google profile | Business → Profiles → Import from Google |
| Connect Google | Settings → Integrations → Google |
| Connect Stripe | Settings → Stripe Connect |
| Invite a teammate | Settings → Team → + Invite Member |
| Restrict teammate to specific clients | Settings → Team → Edit Member → Scoping |
| Set up brand voice | Brand Profiles → + New |
| Schedule a post | Content Calendar → + New Post |
| Send a post for client approval | calendar entry → toggle "Send for approval" |
| Reply to a review | Reviews tab → click review → Reply |
| Generate a report | Reports → Generate |
| See what's failing | Admin → Failed Jobs (platform admin only) |
| Set up your storefront | Settings → Stripe Connect (storefront settings live there) |
| Add a custom domain | Settings → Branding → White Label section |
When you're done
You'll know onboarding is complete when:
- [ ] Every active client has a Business + Profile + Primary Contact + Brand Profile.
- [ ] You can draft, approve, and publish a post end-to-end without looking at docs.
- [ ] Your team is in, role'd correctly, and scoped where appropriate.
- [ ] At least one library item exists in each category.
- [ ] (If using commerce) Stripe is connected, storefront is configured, test purchase completed.
- [ ] (If white-labeling) Custom domain is
active. - [ ] You've shipped one full month of content for at least one client.
At that point you're a fully-running agency on the platform. Welcome aboard.