Canonical sources: Portal philosophy, posture, and language live in
/docs/planning/champion-portal/source/README.md.
Use these sources (includingCHRIST_CENTERED__IDENTITY_STATEMENT.md) when writing specs or user-facing copy. Prefer quoting/paraphrasing over inventing new language.
Status: In Progress
Estimated Effort: 4-6 weeks
Prerequisites: Phase 5 Complete (Pre-MVP Updates)Related Documents:
- ../README.md — Phase Index
- ../../JOBS-TO-BE-DONE.md — User needs (Jobs C1, C5, C9)
- ../../development/DESIGN-GUIDELINES.md — Visual standards
- ../../development/LANGUAGE_STYLE_GUIDE.md — Voice & tone
- ../phase-1/1.12-community-foundation.md — Community infrastructure
| Sub-Phase | Name | Status |
|---|---|---|
| 9.1 | Enhanced Onboarding Flow | ✅ Complete |
| 9.2 | Seeded Discussion Questions | ✅ Complete |
| 9.3 | Admin Seeded Question Interface | ✅ Complete |
| 9.4 | Onboarding Metrics Dashboard | ✅ Complete |
| 9.5 | Community Welcome Content | ✅ Complete |
| 9.7 | Trust-First Community Access | ✅ Complete |
Phase 9 transforms the onboarding experience to make Communities and Discussions central to a Champion’s first week. Instead of completing profile fields and waiting for activity to happen, new Champions will:
“Communities are the onboarding engine.”
The Champion Portal’s value comes from connections with fellow Bruins. If a Champion finishes onboarding without joining communities or seeing discussion activity, they have no reason to return. Phase 9 ensures every new Champion lands in a community with active conversation prompts from day one.
| Feature | Description |
|---|---|
| Enhanced Profile Wizard | Add “Join Communities” step after affinities |
| Seeded Discussion Questions | Staff-authored prompts that rotate, interpolate, and target affinity types |
| Admin Tooling | Lookup Portal interface to manage seeded questions |
| Onboarding Metrics | Track first-week engagement, community joins, discussion participation |
| Community Welcome Content | Dismissible welcome messages that orient new community members |
Current onboarding ends at profile completion. Champions:
But they don’t have a reason to participate immediately. No prompts, no seeded questions, no “here’s something to respond to right now.”
From JOBS-TO-BE-DONE.md:
| Job | Relevance to Onboarding |
|---|---|
| C1: Find My Tribe | Onboarding should end with Champions IN a community, not just seeing suggestions |
| C5: Stay in the Loop | First-week experience sets expectations for returning |
| C9: Feel Like I Belong | Empty communities feel abandoned; seeded questions signal life |
Alumni networking platforms (LinkedIn, Facebook Groups) have the advantage of existing content. A new Champion joining an empty community board will assume it’s dead. Seeded questions create perceived activity and low-friction entry points for first posts.
| Goal | Success Metric |
|---|---|
| Increase first-week engagement | 60%+ of new Champions interact with a discussion in week 1 |
| Reduce onboarding drop-off | 80%+ complete wizard including community step |
| Accelerate community joining | Average Champion joins 2+ communities during onboarding |
| Enable staff-driven content seeding | 100% of active communities have rotating discussion prompts |
| Goal | Success Metric |
|---|---|
| Reduce reliance on organic content | Seeded questions generate 30%+ of first comments |
| Improve return rate | 50%+ of Champions return within 7 days of signup |
| Surface right communities | 70%+ of suggested communities get joined or explicitly declined |
| Non-Goal | Rationale |
|---|---|
| Complete profile redesign | Wizard structure is proven; we’re adding one step, not rebuilding |
| New community types | Phase 5 established types (district, college, major, affinity, industry, custom) |
| Auto-posting to discussions | Seeded questions are staff-authored prompts, not AI-generated posts |
| Mandatory community membership | Champions can skip/defer community joining |
| Gamification / points / badges | Out of scope; focus is on content and connection |
| Real-time notifications | WebSocket/Action Cable is future scope |
| Sub-Phase | Name | Status | Est. Effort |
|---|---|---|---|
| 9.1 | Enhanced Onboarding Flow | Not Started | 1 week |
| 9.2 | Seeded Discussion Questions | Not Started | 2 weeks |
| 9.3 | Admin Tooling | Not Started | 1 week |
| 9.4 | Onboarding Metrics | Not Started | 1 week |
| 9.5 | Community Welcome Content | Not Started | 3-4 days |
| 9.6 | Onboarding Email Series | Not Started | 1 week |
Goal: Add a “Join Communities” step to the profile wizard that:
→ See 9.1-onboarding-flow.md for full specification.
Goal: Create a system for staff-authored discussion prompts that:
{community_name}, {champion_first_name})→ See 9.2-seeded-questions.md for full specification.
Goal: Provide Lookup Portal interface for managing seeded questions:
→ See 9.3-admin-tooling.md for full specification.
Goal: Instrument onboarding to track:
→ See 9.4-metrics.md for full specification.
Goal: Provide community-specific welcome messages that:
Key Design Decisions:
has_rich_text :welcome_content on Cp::Community for rich formattingwelcome_dismissed_at and community_view_count on cp_champion_communities join table→ See 9.5-community-welcome-content.md for full specification.
Goal: Implement a 6-email drip campaign that guides new Champions through their first 30 days:
Key Design Decisions:
cp_onboarding_emails table tracks which emails have been sent to each ChampionCp::OnboardingEmailJob runs daily via Heroku Scheduler to identify and send pending emailsEmail Series:
| Day | Trigger | Skip If | |
|---|---|---|---|
| Welcome | 0 | Champion verified | — |
| Profile Nudge | 2 | 2 days post-verification | Profile 100% complete |
| Directory Intro | 5 | 5 days post-verification | Champion has searched directory |
| Community Engagement | 10 | 10 days post-verification | Champion has joined 3+ communities |
| Event Participation | 15 | 15 days post-verification | Champion has RSVP’d to event |
| 30-Day Check-In | 30 | 30 days post-verification | — |
→ See 9.6-onboarding-email-series.md for full specification.
Location: app/controllers/cp/profile_wizard_controller.rb
Current Steps:
STEPS = %w[help_find_you confirm_education location champion_role profession photo bio affinities]
| Step | Purpose | Required? |
|---|---|---|
help_find_you |
Match to alumni record (conditional) | Conditional |
confirm_education |
Confirm matched education (conditional) | Conditional |
location |
ZIP code / district assignment | Required |
champion_role |
Select Champion role (Connector, Builder, etc.) | Optional |
profession |
Job title, employer, industry | Optional |
photo |
Profile photo upload | Optional |
bio |
Bio text | Optional |
affinities |
Select affinity groups | Optional |
Gap: No community-joining step. Champions see suggestions on dashboard but don’t join during onboarding.
Model: Cp::CommunitySuggestion
Current Behavior:
ChampionCommunity) or declineGap: Suggestions are post-onboarding. No wizard integration.
Model: Cp::BoardPost
Current Behavior:
Gap: No seeded question system. New communities start empty.
Current: help_find_you → confirm_education → location → champion_role → profession → photo → bio → affinities → [DASHBOARD]
Phase 9: help_find_you → confirm_education → location → champion_role → profession → photo → bio → affinities → join_communities → [DASHBOARD]
join_communitiesUI Pattern:
┌─────────────────────────────────────────────────────────────────────┐
│ 🎯 Join Your Communities │
│ │
│ Based on your profile, we think you'd fit right in with: │
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ 📍 Nashville Champions │ │
│ │ 23 Champions in your city │ │
│ │ [Join] [Not Now] │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ 🎵 Music Business │ │
│ │ Connect with fellow Music Business Bruins │ │
│ │ [Join] [Not Now] │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ 🎭 Phi Mu │ │
│ │ Stay connected with your sorority sisters │ │
│ │ [Join] [Not Now] │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │
│ You can always discover more communities later! │
│ │
│ [Continue to Dashboard →] │
└─────────────────────────────────────────────────────────────────────┘
Example:
┌─────────────────────────────────────────────────────────────────────┐
│ 📌 Nashville Champions │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ 👥 Engagement Team 2 days ago │ │
│ │ │ │
│ │ What's your favorite Nashville hidden gem that other Bruins │ │
│ │ should know about? 🎸 │ │
│ │ │ │
│ │ 💬 3 replies ❤️ 5 reactions │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ 👤 Sarah Champion 4 hours ago │ │
│ │ │ │
│ │ Anyone heading to the Belmont basketball game Saturday? │ │
│ │ │ │
│ │ 💬 1 reply ❤️ 2 reactions │ │
│ └─────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
| Decision | Choice | Rationale |
|---|---|---|
| Community step placement | After affinities, before dashboard | Affinities inform community suggestions |
| Community step required? | Optional (can skip) | Reduce friction; Champions can join later |
| Seeded question author | “Engagement Team” (existing pattern) | Consistent with staff-authored content |
| Question rotation timing | Per-community, configurable | Prevents same question appearing everywhere at once |
| Interpolation scope | Community name, Champion first name | Keep simple; add more tokens as needed |
| Question targeting | Community type + optional subtypes | Affinity subtypes (Greek, Athletics) get specialized questions |
| Admin interface location | Lookup Portal /champions/seeded-questions |
Staff-only, consistent with Champion Admin namespace |
Enhanced Wizard (9.1):
join_communities step appears after affinitiesSeeded Questions (9.2):
Admin Tooling (9.3):
Metrics (9.4):
| Criteria | Target |
|---|---|
| Wizard completion including community step | 80%+ |
| Champions joining 2+ communities during onboarding | 60%+ |
| First-week discussion participation | 60%+ interact with at least one post |
| 7-day return rate | 50%+ return within a week |
ProfileWizardController:
join_communities step loads community suggestionsChampionCommunity recordSeededQuestionsController (Admin):
portal_admin roleSeededQuestionService:
SeededQuestion:
After completing Phase 9:
From JOBS-TO-BE-DONE.md:
| Job ID | Job Statement | Phase 9 Relevance |
|---|---|---|
| C1 | “Find My Tribe” — Find other Champions nearby | Community step surfaces local Champions immediately |
| C5 | “Stay in the Loop” — See what’s happening without effort | Seeded questions create “something happening” |
| C9 | “Feel Like I Belong” — Maintain Belmont identity | Communities + activity = belonging |
| E4 | “Reduce Repetitive Work” — Automate where possible | Seeded question rotation is automated |
Document created: January 2026
Last updated: January 2026