Grounded in the 10 live campaigns exported 2026-06-10. Goal: every campaign sortable and filterable by year → program → type without opening it.
Principle: the name carries the structure; HubSpot fields carry the metadata.
What's wrong today (from the real export)
| Problem | Evidence |
|---|---|
| 4 different delimiters | Book Launch (space), Leadership_Retreats (underscore), TSoI Recruitment - March 2025 (dash), BostonTSPCourse (none) |
| Year placement inconsistent | …2026, …2025, March 2025, or missing entirely |
| Redundant words | "Recruitment Campaign", "AMC Conference" (it's all campaigns) |
| Channel/source baked into name | General Interest - Email Signature Clicks |
| Status never set | All 10 campaigns have blank status |
| Ownership gaps | 2 have no owner; 2 owned by Flower Krutina (Deactivated User) |
| Audience is freeform prose | "Different leaders and facilitators who are interested in…" vs TFM graduates |
The good news: your campaigns naturally fall into 4 types built around a handful of programs — so the taxonomy is small.
The naming convention
YYYY_PROGRAM_TYPE_Descriptor
| Field | Required | Values | Example |
|---|---|---|---|
YYYY | yes | Cohort/launch year, or EVG for evergreen/always-on | 2026 |
PROGRAM | yes | Controlled program code (below) | MTOP |
TYPE | yes | RECRUIT / EVENT / LAUNCH / NURTURE / BRAND | RECRUIT |
Descriptor | optional | Location, month, or edition — Title-Case, hyphen-joined | Boston |
Rules: underscores _ separate fields; hyphens - join words inside a field. No channel in the name (channel lives on the asset). Drop filler words like "Campaign." One program per campaign.
PROGRAM codes (your actual programs)
| Code | Program |
|---|---|
MTOP | Mastering the Technology of Participation |
TSP | ToP Strategic Planning |
TSOI | TSoI |
TFM | TFM |
YOULEAD | YouLEAD |
RETREAT | Leadership Retreats |
AMC | AMC Conference (external event) |
HUELIFE | Org-wide / brand / cross-program |
TYPE codes
| Code | Use for |
|---|---|
RECRUIT | Course/cohort recruitment (the bulk of your campaigns) |
EVENT | Conferences, in-person events, retreats, summits |
LAUNCH | Book/product/program launches |
NURTURE | Always-on lifecycle journeys |
BRAND | General awareness / thought leadership |
Rename map for all 10 campaigns
| Current name | → New name |
|---|---|
MToP 2026 Recruitment Campaign | 2026_MTOP_RECRUIT |
MToP 2025 Recruitment Campaign | 2025_MTOP_RECRUIT |
TSoI Recruitment - March 2025 | 2025_TSOI_RECRUIT_Mar |
BostonTSPCourse | 2025_TSP_RECRUIT_Boston |
Leadership_Retreats | 2025_RETREAT_RECRUIT |
YouLEAD 2026 | 2026_YOULEAD_EVENT |
AMC Conference 2024 | 2024_AMC_EVENT |
Book Launch | 2026_HUELIFE_LAUNCH_Book |
Nurture - Course Interest | EVG_HUELIFE_NURTURE_Course-Interest |
General Interest - Email Signature Clicks | EVG_HUELIFE_NURTURE_Email-Signature |
Sorted, this groups 2025_MTOP next to 2026_MTOP, all RECRUIT campaigns together, and pushes evergreen (EVG_) to the bottom — exactly the at-a-glance order you want.
Don't put it in the name — put it in HubSpot fields
These already exist as campaign properties; you're just not using them. Filling them is half the cleanup:
- Campaign status → set Planning / Active / Completed on every campaign (currently all blank).
- Campaign owner → reassign the 4 with missing/deactivated owners (
AMC Conference 2024,MToP 2025,Nurture - Course Interest,General Interest). - Audience → keep the prose, but also tag a controlled segment (e.g.
TFM graduates,County Government,Sponsors). - Budget / spend → populate for paid programs so ROI reporting works.
Email naming rule (assets inside a campaign)
Emails inherit the campaign name, then add their order and purpose:
{CampaignName}_EM##_Descriptor[_vA]
| Part | Meaning | Example |
|---|---|---|
{CampaignName} | The parent campaign's name, verbatim | 2026_MTOP_RECRUIT |
EM## | Send order in the campaign (zero-padded) | EM01, EM07 |
Descriptor | Purpose — Title-Case, hyphen-joined | Invite, Reminder, Last-Call |
_vA / _vB | Optional, A/B test variants only | _vA |
Examples (MToP recruitment has 7 emails):
2026_MTOP_RECRUIT_EM01_Invite
2026_MTOP_RECRUIT_EM02_Reminder
2026_MTOP_RECRUIT_EM07_Last-Call
2025_TSP_RECRUIT_Boston_EM01_Invite_vA
This makes every email self-identify its campaign, its place in the sequence, and its job — and emails sort in send order under their campaign.
Migration checklist
- Lock the PROGRAM + TYPE code lists above.
- Rename all 10 per the map (HubSpot keeps the same Campaign ID / UTM, so reporting history is preserved — names are cosmetic).
- Set status on all 10.
- Reassign the 4 ownerless/deactivated-owner campaigns to a live owner.
- Standardize the audience tag.
- Gate new campaigns: no campaign goes live without a conforming name + owner + status.
Renaming is safe — the Campaign UTM (
44806480-YouLEAD%202026, etc.) is keyed to the Campaign ID, not the name, so existing tracking and analytics stay intact.