The process today
Coral = manual handling (a person has to do it for each class) · dark red = where a blank can slip through.
Manual step
Risk point
Automatic
flowchart TD A["fa:fa-hand A class is decided: date, venue, trainer
lives in a spreadsheet / someone's head — no CRM record"]:::manual --> B B["Registrants arrive (form or manual add)"]:::sys --> C C["fa:fa-hand Type logistics onto EVERY attendee's contact
venue · date · hotel · trainer · times
N edits per cohort, by hand"]:::manual --> D D["fa:fa-hand Manually enroll those contacts
into the right sequence(s) per program & stage"]:::manual --> E E["Sequence email merges fields like
contact.venue_name"]:::sys --> F{Is that contact's
field filled in yet?}:::dec F -- "not yet" --> G["fa:fa-envelope Email sends with a blank field"]:::break F -- "filled" --> H["fa:fa-envelope Correct email"]:::ok C -. "venue changes TBA → real, or a venue swap" .-> R["fa:fa-hand Re-type it on EVERY attendee again"]:::manual R --> C X["fa:fa-hand Build & maintain a separate sequence
per program × stage, by hand"]:::manual -.-> D classDef manual fill:#FDEBE8,stroke:#EF4C32,stroke-width:1.4px,color:#a3301c; classDef break fill:#c0341a,stroke:#8a230f,color:#fff; classDef ok fill:#eef6f3,stroke:#1d7a5f,color:#1d7a5f; classDef sys fill:#fff,stroke:#cdd3d9,color:#232b33; classDef dec fill:#fff5ee,stroke:#EB5825,color:#8a3d1e;
Every point that needs a human
| Manual touchpoint | Why it's manual | Breaks when… | Evidence today |
|---|---|---|---|
| 1 · Hold the session details | No course/cohort record — date/venue live in a sheet or email | Details sit outside HubSpot, so nothing can act on them | Session details aren't stored on any record yet |
| 2 · Enter logistics on each contact | Fields read from the contact, so every attendee gets them entered individually | One attendee not yet filled → their email has a blank | Data is loaded per-contact as we onboard |
| 3 · Enroll into the right sequence | No trigger ties a cohort to a sequence; done by hand per program/stage | Wrong sequence or stage is easy to pick | 77 sequences across AES/HCS/HIJ/HSF/TFM/MToP… |
| 4 · Re-enter on any change | Logistics live on each contact, so a change = N updates | Venue/date changes (the common case) → records drift | Apr 22 venue sits on all 9 attendees separately |
| 5 · Build/maintain sequences & templates | Each program has its own copies to keep in sync | Field names must match exactly to merge | 77 sequences, 137 templates to maintain |
Why the manual effort grows with scale
~27
cohorts a year, each needing its logistics entered
15+
fields to fill on every attendee, per cohort
77
sequences to build & keep in sync by hand
1×
edit per change — under the Course-object model instead
The manual work grows with every class
- Every new cohort means entering the logistics on each attendee again — the effort scales with enrollment.
- Every venue/date change means updating each attendee individually to keep them in sync.
- Every new program adds another set of sequences and templates to build and maintain (already 77).
- A blank field sends quietly — there's no error to catch it, so the structure relies on everything being entered, every time.
- The "real" venue lives in several places — a sheet, some contacts, template copy — with nothing to reconcile them against.
Every coral box above collapses to one edit under the Course-object model: set the venue once on the Course record, and automation fills and emails every associated attendee.
The proposed solution: the Course object = Class CohortOne Course record per session, attendees associated, edited once — already active on your plan.
See the proposed flow →