Top Rep · Delivery Dashboard
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 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;
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.
| Program | Cohorts | Stages (from tags) | Status |
|---|---|---|---|
| Champion Sales Intensive | GA, VIP | Purchased → Confirmed | Live now, 163 clients |
| Service Tech Webinar | GA, VIP | Registered → Confirmed → Attended | Live, fills toward 06-18 |
| Top Rep 101 | per cohort | S1 ... S8 → Certified | Auto-populates once the program is built |
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):
tr101 s{n} prework sent / complete) and a cohort tag.Once those exist, the TR 101 program config is filled in and the board populates automatically. No further build.
Built and verified 2026-05-31. · TR 101 delivery plan · Automation documentation home