Everything between "we should run this" and a page people can buy from. Work top to bottom.
flowchart TD S["fa:fa-lightbulb A class is decided
date, venue, trainer"]:::plain --> Q1{"Has this class been
taught before?"}:::dec Q1 -- "no, brand new" --> NEW["fa:fa-file-circle-plus Accounting issues a new letter code
and sets the program up"]:::acct NEW --> PAGES["fa:fa-globe Build the catalogue entry and the
course description page, by hand, once"]:::wp PAGES --> ID Q1 -- "yes, it exists" --> Q2{"Do its days run
non-contiguously?"}:::dec Q2 -- "yes" --> SESS["fa:fa-layer-group Add a Session to the existing
course, no new Course ID"]:::hs --> STOP["fa:fa-circle-check Done"]:::ok Q2 -- "no" --> ID["fa:fa-hashtag Ask the sheet for the next
Course ID, e.g. HCS-219"]:::acct ID --> REC["fa:fa-pen-to-square Create the Course record in HubSpot
the one manual step"]:::hs REC --> AUTO["fa:fa-bolt Event page and tickets appear
as a draft"]:::wp AUTO --> PUB["fa:fa-eye A person checks and publishes"]:::wp --> LIVE["fa:fa-circle-check Live and selling"]:::ok classDef acct fill:#fdf4e3,stroke:#d9ab3c,color:#8a6412; classDef hs fill:#FDEBE8,stroke:#EF4C32,color:#a3301c; classDef wp fill:#eef2f7,stroke:#7d8ca5,color:#28344a; classDef dec fill:#fff5ee,stroke:#EB5825,color:#8a3d1e; classDef ok fill:#eef6f3,stroke:#1d7a5f,color:#1d7a5f; classDef plain fill:#fff,stroke:#cdd3d9,color:#232b33;
Ask for the next number in the master sheet, e.g. HCS-219. Adopt it
exactly. It never changes once set.
Brand-new class? Accounting issues a new letter code and starts its numbering.
Two things, made by hand, that every future run of this class reuses: the entry on the course catalogue, and the course description page, what the class is and who it's for.
A repeat class already has both. Skip to step 3.
The only routine manual step. Course ID, program, class template, dates, venue and delivery mode.
If the days are not back to back, don't create a second course, add a Session to the existing one, and stop here.
Within about fifteen minutes an event page and its tickets are created as a draft, built from the course description page. Nothing else is touched.
Confirm the dates, venue and prices, then publish. Until someone does this, nobody can register. A daily email lists anything still waiting.
| Thing | Made | How often |
|---|---|---|
| Catalogue entry | by hand | once per class |
| Course description page, what the class is | by hand | once per class |
| Course record, dates, venue, prices | by hand, in HubSpot | every run |
| Event page, one specific run | automatic | every run |
| Tickets | automatic | every run |
Changing what the class is happens once, by hand, on the description page. Changing dates, venue or price happens in HubSpot and flows through on its own.
TFM-625. If a class has to slot
between two existing numbers, drop the decimal point, between TSP-188 and
TSP-189 is TSP-1885, meaning 188.5. Use sparingly.V-HCS but keeps a normal
HCS-### ID, so it shares HCS numbering and revenue. A different room or trainer
is not a variant, same template, new ID.ToP Facilitation Methods · 2026-07-08 · Waukesha. Never put one
anywhere a customer sees, public titles are generated from the program's proper name.It isn't a private back-office edit. It stays a draft until published, but a wrong date or a sloppy name becomes a real page somebody has to clean up.
Leave them. If a number looks missing from HubSpot, check the master sheet before assuming something is broken.