Zedric.Book
← All filesStatus: delivered · live

CS-19 // Dossier

Agency onboarding platform + client scorecard

An internal admin plus a client-facing portal, running as one application across two subdomains, that takes a signed studio from sales handoff to a fully provisioned CRM sub-account. Its centerpiece: a nine-point client scorecard the agency edits once, rendered live inside every studio’s own CRM dashboard through a signed embed.

Exhibit // CS-19

R-02 · interface redrawn from the live build — zero client pixels

Redrawn exhibit — onboarding tracker: a four-studio milestone tracker with one active provisioning milestone, a nine-point client scorecard widget, and a two-portals-one-deployment stat
Client
R-01SEALED UNDER NDA. SPECIFICS WALK THROUGH LIVE. → BOOK
Industry
Marketing agency · the agency behind CS-01 and CS-18
System
Agency onboarding platform + client scorecard
Stack
Astro · PostgreSQL · Drizzle · Vercel · GoHighLevel
Trigger
A studio signs — and onboarding used to be a 90-minute manual checklist
Metrics
System scope

01 // The problem

Every new client onboarding was a long manual checklist someone ran by hand — sub-account setup, intake collection, pipeline wiring — with no way to see progress across studios, and nothing branded the agency could put in front of the client.

02 // The system

Redrawn — no client data

The system

STUDIO SIGNSSTUDIO CREATEDINTAKE LINK SENTCLIENT INTAKE PORTALDRAFT · SUBMIT · CORRECTIONSSUB-ACCOUNT PROVISIONEDPIPELINES BY NAMESCORECARD EDITEDSIGNED WIDGETLIVE IN CLIENT DASHBOARD

03 // The delta

Before and after go-live

Before

  • Onboarding = a 90-minute checklist run by hand
  • No view across studios; progress lived in someone’s head
  • Client-facing status = screenshots and phone calls
  • Automation hardcoded to one account’s IDs

With the system

  • Sub-account provisioned and intake link sent from the admin
  • One tracker across every studio — milestones and pipelines
  • A branded scorecard live inside each client’s own dashboard
  • Pipelines resolved by name — same code, any sub-account

04 // What got done

6 entries

  1. B-01One deployment, two hosts: agency admin and client portal split by host-based routing in middleware, default-deny, so a portal request can never reach an admin handler
  2. B-02Onboarding modelled in eight Postgres tables — including a dedicated corrections table so a studio can amend a submitted intake without the agency re-keying it
  3. B-03The scorecard built as a signed widget route, iframe-embedded in each studio’s CRM dashboard — the agency edits once, every dashboard reflects it, no re-push
  4. B-04An orchestrator that resolves CRM pipelines, stages and workflows by name at runtime — no hardcoded IDs, so the same code runs against any freshly provisioned sub-account
  5. B-05A real-time webhook receiver plus a daily cron sweep for time-based transitions, both secret-authenticated and both verified to fail closed
  6. B-06CRM sub-account provisioning and tokenized intake links fired from the admin, replacing the manual SOP end to end

05 // Outcome

System scope — capability metrics, honestly labeled

Scope
portals on one deployment — agency admin + client intake
0
Scope
endpoints · 25 test files, fail-closed verified
0
Scope
branded lifecycle emails, strategy call to receipt
0

06 // The result

From the build log

  • Live on the agency’s custom domain, both portals
  • Twenty branded lifecycle emails shipped as reviewable previews — strategy call, no-show recovery, conversion, onboarding, nurture, receipt
  • A five-entry decision log written before building — one risk explicitly accepted, isolated to a single marked module

Want a system like this one?

Free · 30 min · leave with a rough scope either way

Book the intro call