Top Rep 101 · Delivery System

Build spec: completion-aware, tailored delivery.

How TR 101 runs as an automated 8-session program where each client gets emails tailored to their own progress, and the system only advances people who actually completed the prior session. For Jet and Chuck to review before we build.

Draft for sign-off 2026-05-31
Nothing is built yet This touches Top Rep's live GHL, so we are not building until you approve. What we need to start is in the last section.

The idea in one diagram

LearnWorlds is the source of truth for what each learner has actually done. A small sync reads that and writes two things into GHL: completion tags (so the workflow can branch) and per-client fields (so the email can be tailored). The workflow sends, the dashboard watches.

flowchart TD
  LW["LearnWorlds\nper-section progress (API)"]
  SYNC["Sync job, hourly\nreads LW, writes GHL"]
  TAGS["GHL completion tags\ntr101 s{n} complete"]
  FIELDS["GHL per-client fields\npace, weak module, coach note"]
  WF["Reusable workflow\nbranches at each send"]
  EMAIL["Tailored email\none template, merged per client"]
  DASH["Dashboard\nGHL stage + LW %"]
  CLIENT(["Client"])

  LW --> SYNC
  SYNC --> TAGS
  SYNC --> FIELDS
  TAGS --> WF
  WF -->|"done? send next : nudge"| EMAIL
  FIELDS --> EMAIL
  EMAIL --> CLIENT
  CLIENT -->|"watches videos + simulator"| LW
  TAGS --> DASH
  LW --> DASH

  classDef src fill:#e0f2fe,stroke:#0ea5e9,color:#0f172a;
  classDef job fill:#fef3c7,stroke:#b45309,color:#0f172a;
  classDef app fill:#f0fdf4,stroke:#16a34a,color:#0f172a;
  class LW src; class SYNC,WF job; class TAGS,FIELDS,EMAIL,DASH,CLIENT app;
  

Why each GHL piece exists

PieceWhat it doesNeeded?
Reusable workflowThe engine. Sends each session's prework + postwork email, does the date math, runs the completion branch. One workflow, every cohort.Yes
Field: Session 1 DateAnchor the schedule counts from (Session N = start + N weeks).Yes
Cohort tagGroups a batch to enroll + report together.Yes
Per-session tags (tr101 s{n} complete)The completion signal the workflow branches on. Written by the sync from LearnWorlds.Yes
Pipeline (stage per session)GHL-native board for staff who live in GHL. Advances as sessions complete.Optional

Completion-aware: the branch

Emails do not just fire on a clock. Before each session, the workflow checks whether the learner finished the previous one in LearnWorlds:

For that to be correct, GHL must know completion at send time. That is the sync's job, below.

The LearnWorlds to GHL sync (the linchpin)

A small scheduled job, hourly. Recommended as our own job rather than Zapier, because we need section-level detail that maps cleanly to "session N," which Zapier's course-level triggers cannot do. It also avoids per-task Zap cost. Hourly is plenty for a weekly cadence.

  1. Pull the cohort's contacts from GHL (email is the join key).
  2. Read each learner's LearnWorlds progress (progress_per_section_unit).
  3. If every unit in section N is complete, ensure the GHL tag tr101 s{n} complete exists (idempotent).
  4. Write the per-client tailoring fields (next section). Optionally advance the pipeline stage.

Tailored to each client (data-driven, no AI)

Every client gets a different email from one template, by merging per-client fields the sync computes from their real LearnWorlds data. Deterministic, so it is safe to auto-send with no review step. It is just their own numbers, phrased.

FieldFrom LearnWorldsExample
tr101_progress_pctprogress rate63%
tr101_sessions_donesections complete3 of 8
tr101_weak_modulelowest score / least timePricing Conversations
tr101_pacevs cohort medianahead / on track / a session behind
tr101_coach_notepre-rendered sentence (rules)"You're ahead of your cohort, nice work."

One template:

Hi {{first_name}}, you're {{tr101_pace}} in TR 101 ({{tr101_sessions_done}} done, {{tr101_progress_pct}} overall). {{tr101_coach_note}} Before Session {{tr101_current_session}}, give {{tr101_weak_module}} another pass.

Renders two different emails:

What we need from you to start

NeedWhoWhy
Approval to build in Top Rep GHLJetWe do not change production GHL without sign-off
Curriculum lock: 8 session titles + cadenceChuckSets the labels, dates, and email content
LearnWorlds TR 101 course built (8 sections)Content ownerThe sync maps sections to sessions
GHL write scope on the integration tokenGHL adminThe sync writes the completion tags + tailoring fields
Already done and ready The read engine and the dashboard are built and verified against live data. The LearnWorlds progress API is confirmed working. On your approval, the GHL build is the remaining piece, then it goes live.

Live dashboard · How the dashboard works · TR 101 delivery plan · Documentation home