HueLife Marketing Operations
HubSpot · One object for every dated occurrence · No upgrade required

Sessions — class meetings & other dated occurrences

One reusable record for any dated occurrence — a class meeting, a webinar, office hours. Built on HubSpot's Appointments object (Object Library, currently inactive); activate it, rename it "Sessions," add a Type field, and it serves every use case. You only create Sessions when occurrences are spread over time and grouped under a parent (a Course, a Campaign…). Single, consecutive things don't need it.

Why "Sessions," not "Events": HubSpot already has a built-in Marketing Events object, so naming this one "Events" would be ambiguous. "Sessions" keeps it distinct, and the Type field below handles the different kinds (class, webinar, office hours) without needing the object name to fit each one.

1 · What it is — one object, many uses

The renamed Appointments object gives you the one field custom properties can't: a real date + time. A type property lets the same object cover everything.

Built-in fieldHolds
hs_appointment_start / hs_appointment_endReal datetime — date and time of day (e.g. Apr 22, 9:00 AM → 4:00 PM)
hs_appointment_name"Q1 Intensive", "Module 2 Kickoff", "Office Hours – June"
hs_durationAuto-calculated
add: type (dropdown)Class · Webinar · Office Hours · Other — filter & report by type
add (optional): location, topicCity/venue, session topic

2 · When to create Sessions

The test is the same regardless of use case: are there multiple occurrences separated in time?

No Sessions  Single / consecutive

A 1-day course, a 2-day Mon–Tue workshop, a one-off webinar. Handle it on the parent record (the Course's own dates, or a single Campaign asset). Nothing to add here.

Add Sessions  Spread over time

Multiple dated occurrences across weeks/months — MToP's quarterly intensives, a monthly office-hours series, a multi-part workshop. Each occurrence = one Session, so you can remind, track attendance, and show "what's next."

The same decision as a flow, when you set up a class (e.g. MToP):

flowchart TD
  A(["Create Course
e.g. MToP 2026 cohort"]):::course --> B{"Multiple days,
spread over time?"}:::dec B -- "No — consecutive days
(most courses)" --> C["No Sessions —
Course start/end date + schedule field"]:::no B -- "Yes (e.g. MToP: quarterly)" --> E["Create a Session record per meeting
(entered by hand for now)"]:::session E --> S1["Session · Q1
start + end datetime · Type: Class"]:::session E --> S2["Session · Q2 …"]:::session S1 --> F["Each Session associates → the Course
(enrolled contacts already on the Course)"]:::step S2 --> F F --> G["fa:fa-gear Workflow: remind attendees
before each Session's start date"]:::wf classDef course fill:#FDEBE8,stroke:#EF4C32,color:#a3301c; classDef session fill:#fff,stroke:#EF4C32,color:#a3301c; classDef dec fill:#fff5ee,stroke:#EB5825,color:#8a3d1e; classDef no fill:#eef0f2,stroke:#6b7682,color:#3f4852; classDef step fill:#fff,stroke:#cdd3d9,color:#232b33; classDef wf fill:#eef0f2,stroke:#6b7682,color:#3f4852;

3 · Use cases & what they hang off

Same Sessions object; the only thing that changes is the parent it associates to.

Use caseSession typeParent (group under)Who's associated
Multi-session class (MToP)Classthe CourseEnrolled contacts
Webinar seriesWebinara CampaignRegistrants
Recurring office hoursOffice Hoursa Campaign or noneAttendees

4 · For classes specifically — only MToP needs it

Checked against the full hue.life catalog: every workshop is consecutive-day, so they stay a single Course record. Only spread-over-time programs get Sessions.

CourseCadenceSessions?
HUE Conversation Strategies · HUE Collaboration Methods · AES (Environmental Scanning)1 dayNo
ToP Facilitation Methods · ToP Strategic Planning · HUE Implementation Journey · HUE Strategy Formation2 days, consecutiveNo
HUE Leadership Retreat3 days, consecutiveNo
Mastering ToP (MToP)Year-long — quarterly intensivesYes
Community of Practice (CoP)Recurring meetingsIf scheduled
For now: entered by hand

Only a handful of classes need this — create them manually

In practice only MToP (and possibly CoP) needs Sessions, and just a few per cohort — so for now you'll create those records by hand. Because the cadence is fixed per course type, this can be automated later (a workflow or import template), but it's not needed to get started.

5 · What it unlocks (only where you turn it on)

CapabilityNeeds Sessions because…
Per-occurrence reminders ("Chicago stop is tomorrow")each occurrence has its own date to trigger off
"What's next" / progress trackingthe initiative moves through dated milestones
Per-occurrence attendance & reportingcontacts associate to individual Sessions
Calendar / ICS per occurrencereal start/end datetimes

6 · Setup (once, when the first spread initiative needs it)

#StepWhere
1Activate Appointments and rename it "Sessions"Settings → Data Management → Data Model
2Add the type dropdown (Class / Webinar / Office Hours / …)Settings → Properties → Sessions
3Confirm associations: Session → Course, Session → Campaign, Session → ContactsSettings → Objects → Sessions
4Create the Session records by hand per meeting (automate later if volume grows)Sessions object
5Build the reminder/follow-up workflow (fires off each Session's start)Automation → Workflows
Phase it. This is a phase-2 layer — don't build it during initial onboarding unless something spread-over-time (e.g. MToP) needs it now. The Course model works fully without it; Sessions are additive and switch on later without rebuilding anything. Single/consecutive things never touch this object.
← Back to the Course = Cohort plan