Top Rep · Delivery Dashboard

Phase 2: the live dashboard, built.

The single pane of glass is no longer a concept. It now reads real Top Rep data live through the official GHL and LearnWorlds APIs, behind a login. Here is how it works and how it stays reusable across every program.

Live GHL + LearnWorlds Verified 2026-05-31
Open the live dashboard Access-gated because it shows real client names (Contract O). Sign in with your Top Rep email.
Open live dashboard See the prototype layout

The concept in one diagram

Live systems feed a small server-side function. The function is authorized by a private token (never exposed to the browser), shaped by a program config, and turns raw tags into stage status. The result is cached and shown behind a login.

flowchart TD
  GHL["GHL / Scaling Engine\ncontacts, tags, pipeline stages"]
  LW["LearnWorlds\ncourse completion"]
  PIT(["Private Integration Token\nserver-side secret"])
  CFG(["Program config\nwebinar / CSI / TR 101"])
  FN["Cloudflare Pages Function\n/api/data?program=X"]
  XF["Transform\ntags to stage status"]
  CACHE["Edge cache\n~5 min"]
  GATE(["Login gate\nemail allowlist"])
  UI["Dashboard\nprogress grid, cohort roll-up, engagement"]

  GHL --> FN
  LW --> FN
  PIT -. authorizes .-> FN
  CFG -. shapes .-> FN
  FN --> XF --> CACHE --> UI
  GATE -. protects .-> UI

  classDef src fill:#e0f2fe,stroke:#0ea5e9,color:#0f172a;
  classDef sec fill:#fef3c7,stroke:#b45309,color:#0f172a;
  classDef app fill:#f0fdf4,stroke:#16a34a,color:#0f172a;
  class GHL,LW src; class PIT,GATE,CFG sec; class FN,XF,CACHE,UI app;
  

Why it is reusable (the key idea)

The dashboard does not know anything about a specific program. A program config describes a journey as a set of cohorts and stages, each mapped to GHL tags. The same engine renders any program. Point the config at a new tag set and you get a new board, no code changes.

ProgramCohortsStages (from tags)Status
Champion Sales IntensiveGA, VIPPurchased → ConfirmedLive now, 163 clients
Service Tech WebinarGA, VIPRegistered → Confirmed → AttendedLive, fills toward 06-18
Top Rep 101per cohortS1 ... S8 → CertifiedAuto-populates once the program is built

What was verified

To point it at Top Rep 101

The engine is done. To make the TR 101 board show real data, the program itself needs to exist in GHL first (this is the part that needs Jet sign-off and Chuck's open curriculum decisions):

  1. A Top Rep 101 pipeline with a stage per session.
  2. Per-session tags (tr101 s{n} prework sent / complete) and a cohort tag.
  3. The LearnWorlds course whose completion signals back to GHL.

Once those exist, the TR 101 program config is filled in and the board populates automatically. No further build.

Note on email open / click stats Those are not exposed by the GHL official API, so the live engine drives completion from tags (which the LearnWorlds to GHL sync already produces). An email-performance panel can be added later via the internal API as a small follow-on.

Built and verified 2026-05-31.  ·  TR 101 delivery plan  ·  Automation documentation home