NORCAL SBDC AI PILLAR
...loading digital transformation 0%
NORCAL SBDC + MySBDC — Documentation

NORCAL SBDC + MySBDC

Client Dashboard Documentation & Implementation Guide

Section 1

PROJECT OVERVIEW & CORE OBJECTIVES

Consolidate 18+ regional SBDC websites into one unified platform

Consolidate 18+ regional SBDC websites into one unified platform with a client portal (MySBDC) that remembers each client, feels local, and automates the busywork. Optimize for ADA, mobile, and EN/ES; make Neoserra, LearnWorlds, Zoom, Constant Contact work together with one source of truth per data type.

Forms

  • SSO login/signup. Join/641 intake (multi-step, autosave, EN/ES)
  • Milestone submission (Funding, Hire, Revenue; 3-step mini-wizard)
  • Newsletter opt-in (center-specific list; consent time-stamped)

Navigation

  • Global: About | Services | Events | Stories | MySBDC (+ EN/ES toggle; Find Your Center)
  • Center chip: "Viewing: [My Center] ▾" with My Center, Nearby (session-only), Change Center…
  • Public site for discovery; MySBDC for doing

Logic Steps

  1. Detect/confirm center
  2. Show localized content (events, updates)
  3. If user registers and is not signed in, open SSO modal
  4. After signup, start 641
  5. Route to Advising-ready or Training-first track
  6. MySBDC shows Next Step and one-click actions
North Star
Keep it ruthlessly simple: one login, one 641, one dashboard. All else is orchestration.
Section 2

MYSBDC — EXPERIENCE, IA & KEY COMPONENTS

The client's personal command center

MySBDC is the client's personal command center—a light, minimal dashboard that surfaces one Next Step, My Trainings, Milestones, Advisor, and Resources, all localized to their center. The portal emphasizes one-click actions, clear status labels, and zero duplicate forms.

Forms

  • Quick Milestone: Type → Details → Impact (≤ 60 seconds)
  • Profile/Preferences: Language (EN/ES), communications, interests
  • Doc upload (when requested by advisor)

Navigation

  • Tabs/Sidebar: Trainings / Milestones / Advisor / Resources / Settings
  • Secondary rail: Announcements ("News from [Center]"), Newsletter toggle
  • Persistent Next Step card at top of dashboard

Logic Steps

  1. Next Step resolves from state: Complete 641 → Book welcome call → Join today's training → Report milestone
  2. My Training shows only registrations: Join / Add to Calendar / Recording
  3. Milestones post to Success Atlas with client consent
  4. Advisor card: message, upload, schedule
  5. Resources filtered by stage + center tags
Video Rail
Four micro-videos (≤90s): What is SBDC? / Why milestones matter / Director welcome / Client tip. Captions on, transcripts linked, auto-collapse after view.
Section 3

SIGN-IN STATES, SSO MODAL & REGISTRATION UX

Modal-first, SSO-forward authentication

Registration and sign-in are modal-first, SSO-forward (Google/Microsoft/Auth0). If a user clicks Register while not signed in, show SSO modal; if signed in, show confirmation with event summary and Add to Calendar.

Forms

  • SSO modal: Google / Microsoft buttons, OR name-email-password; Forgot password, Terms/Privacy
  • Confirmation (signed-in): Event title/date/location + View My Trainings + Add to Calendar (.ics)

Navigation

  • After SSO → /my/dashboard
  • After event registration → /my/trainings
  • Header brand updates post-confirmation: "Norcal SBDC @ [Center]"

Logic Steps

  1. Not signed in: SSO modal → create/attach account → optional auto-start 641
  2. Signed in: Register → Confirmed (join link or enrollment) → View My Trainings
  3. Calendar: Download .ics; for Zoom events, return join URL immediately (auto-approval)
Accessibility
Keyboard focus styles, aria-labels on icon buttons, semantic headings; modals trap focus and support Esc close.
Section 4

FORM 641 — MULTI-STEP WIZARD & PRIVACY

7-step autosaving wizard with intelligent routing

The 641 is a 7-step autosaving wizard (EN/ES) that shows only relevant questions, stores sensitive demographics separately (encrypted), and can be resumed anytime. Completion triggers routing, task creation, email sequence, and dashboard Next Step updates.

Form Steps

  1. Welcome → Account
  2. Business
  3. Owner
  4. Goals
  5. (Capital Needs) — Conditional
  6. Fast Track → Preferences → Opt-ins
  7. Review & E-Sign

Navigation

  • Progress bar with named steps; Back always enabled
  • Save automatically indicator
  • Resume via email magic link or dashboard prompt

Logic Steps

  1. Autosave on field change + 10s
  2. Conditional: Show Capital Needs only if selected; branch on "In business / Not yet"
  3. Consent: newsletter unchecked by default; time-stamp and store
  4. On submit: create/update Neoserra client; enqueue intake task; add to correct Constant Contact list if opted-in; set Next Step
Data Safety
PII in transit via TLS; at rest encryption; role-based access; 6-year retention aligned to SBA; explicit delete/portability under CCPA.
Section 5

ROUTING & SCORING — FROM 641 TO TRACKS

Transparent readiness scoring and intelligent routing

A transparent readiness score (0–100) determines Advising-ready (≥60) vs Training-first (<60), with fast-track overrides (urgent capital, near-term launch). Routing sets tasks, emails, and the Next Step card.

Scoring Model

Status20 pts
Docs25 pts
Capital15 pts
Credit15 pts
Fast-track Override= 100 pts

Logic Steps

  1. Compute score: Status (20) + Docs (25) + Capital (15) + Credit (15); Fast-track sets 100
  2. Set track/pathway, create Neoserra task, pick center list_id for emails
  3. Update Next Step: Finish 641 → Book welcome call → Join workshop → Report milestone

Email Sequence

  • Immediate: Confirmation → personalized Next Step
  • Day 1: Director welcome
  • Day 3: Reminder
  • Day 7: Nudge → staff task if inactive
  • Day 14: Re-activation if dormant
Personal Touch
Advising-ready clients get a brief, white-glove Success Team Welcome Call to set expectations before their first advisor meeting. This call is a concierge touch, not a gate; advisor pairing happens immediately.
Section 6

TRAININGS — LIVE, ON-DEMAND & PAID OPTIONS

One-click registration with seamless integrations

Clients browse on the public site but register in MySBDC with one click. Live events create Zoom registrations (auto-approval); on-demand uses LearnWorlds SSO + auto-enroll; paid recorded events (ex: Quickbooks series) use CUSTOM LINK → checkout.

Forms

  • Register buttons: Live Free, Recorded Paid, On-Demand
  • Post-registration status: Registered / Enrolled / Completed (+ recordings)

Navigation

  • Public: /trainings/ (regional) and /{center}/trainings/ (center)
  • MySBDC: My Trainings list with Join / Add to Calendar / View Recording

Logic Steps

  1. Live Free: Register → Zoom addRegistrant → return join URL → calendar
  2. Recorded Paid: CustomLink → Checkout → webhook → receipt
  3. On-Demand: Ensure LW user → enroll → SSO redirect → progress sync
  4. Nightly: attendance sync back to Neoserra; statuses update
Zoom Defaults
Set auto-approval (approval_type=0) to eliminate friction and deliver join links instantly.
Section 7

MILESTONES, ADVISOR COMMS & ANNOUNCEMENTS

Quick milestone logging and seamless communication

Milestones are client-logged in seconds and appear on Success Atlas (quote/story with consent). Advisor messages are written to Neoserra notes; announcements flow to the portal and auto-build in weekly newsletters.

Forms

  • Milestone: Type (💰 Funding | 👥 Hire | 📈 Revenue) → amount/details → optional 280-char story
  • Message advisor: quick note + file upload

Navigation

  • Announcements: "News from [Center]" panel; Newsletter toggle ties to center list_id
  • Success Atlas: public map page + embed in dashboard

Logic Steps

  1. Submit milestone → write to Neoserra → Atlas updates (realtime/near-realtime)
  2. Advisor message → Neoserra client note → advisor dashboard surfaces unread
  3. Weekly cron builds Constant Contact drafts per center: next-14-day events, flagged updates, on-demand picks
Consent & Stories
Never publish a quote/story without explicit share consent; keep anonymous/private by default.
Section 8

PUBLIC WEBSITE — HOMEPAGE, GEO & CENTER CONTEXT

Smart geolocation with local feel

The homepage leads with "Your Business, Better.", Find Your Center, and Events/Stories. Geolocation is soft: a sticky top-bar suggests Marin or Chico, updates the header to "Norcal SBDC @ [Center]" upon confirmation, and previews local events.

Forms

  • ZIP finder (modal or header chip) + optional Use my location (on tap)
  • Contact and Request advising forms (simple, route to MySBDC/641)

Navigation

  • Desktop: hero with Join (sky-blue), Find Center (transparent + white border), mega dropdowns
  • Mobile: hamburger → accordion; geo prompt as compact top-bar

Logic Steps

  1. Soft detect center → show top-bar "Looks like Marin — Yes / Not now"
  2. If Yes: update brand, filter events/news; hide Find Center button in hero
  3. If Not now: keep network view; chip still available to switch
  4. Never overwrite primary center with GPS/IP; Nearby Today is session-only
URL Clarity
Regional: /trainings/ | Center: /{center}/trainings/
Keep clean rewrites and predictable routes for SEO and user trust.
Section 10

INTEGRATIONS & DATA — THE "ONE SOURCE OF TRUTH" RULE

Let systems do what they're best at

Use WordPress as the UI layer, let systems of record do what they're best at: Neoserra (clients/events), LearnWorlds (on-demand), Zoom (live reg/attendance), Constant Contact (email prefs), Stripe (optional paid). Cache read-heavy endpoints; queue/retry on failures.

NEOSERRA
POST /api/clients
GET /api/trainings
POST /api/training/register
PUT /api/milestones
GET /api/reports
ZOOM
POST /webinars/{id}/registrants
GET /meetings/{id}
GET /report/webinars/{id}
Webhook: attendee.joined
LEARNWORLDS
POST /api/sso/login
POST /api/users
POST /api/enrollments
Webhook: course.completed
CONSTANT CONTACT
POST /contacts
PUT /lists/{list_id}/contacts
POST /campaigns
GET /reports/{campaign_id}

Logic Steps

  1. Event sync: Neoserra → WP cache (4h); register → Zoom; nightly attendance back to Neoserra
  2. On-Demand: Ensure LW user → enroll → SSO → update status hourly
  3. Newsletter: Build weekly drafts per center; auto-send or approve
  4. Data safety: encrypt PII, RBAC, audit logs, backups; WCAG 2.2 AA
Rate Limits
Cache where safe (events 4h, enrollments 1h), exponential backoff on failures, show last-updated timestamps when using cached content.
Section 11

QUALITY GATES — ACCEPTANCE TESTS & SUCCESS METRICS

Define "done" up front

Define "done" up front: center switching behaves exactly as specified; 641 routes correctly; live registration and attendance sync; newsletter opt-ins map to the right lists. Measure adoption, action completion, milestone lift, and admin time saved.

Forms Testing

  • Test 641 records: fast-track, 70-score, 40-score; EN/ES runs
  • Opt-in/out cycles for newsletters

Navigation Testing

  • Verify /trainings/ and /{center}/trainings/ render correctly; header chip mirrors state
  • Keyboard-only and screen-reader paths pass WCAG 2.2 AA checks

Logic Steps

  1. Pilot 2–3 centers; pass all flows: 641→routing→dashboard; register→join→attendance; milestone→Atlas; opt-in→receives next send
  2. Metrics: 70%+ dashboard activation (7 days), 3× milestone reporting, ~40% admin time reduction, page loads <2–3s on mobile
Decisions to Lock
Approve: Geolocation UX (My Center vs Nearby), Dashboard scope, Newsletter cadence, Zoom auto-approval, where Zoom IDs live in Neoserra.
Section 12

AUTOMATION & NEWSLETTERS — "WRITE THEMSELVES"

Weekly drafts auto-generated per center

Weekly drafts per center assemble from Neoserra events, flagged Announcements, and LearnWorlds picks. Centers can auto-send or review + send; all with center-specific list_id mapping.

Forms

  • Announcement editor with "Include in newsletter" flag
  • Center settings: Constant Contact list_id, contacts, scheduling link

Navigation

  • MySBDC toggle exposes current subscription status
  • Public /stories and /news reflect center context

Logic Steps

  1. Cron (e.g., Mon 6 am) builds draft HTML per center via API
  2. If in approval mode, notify the center; else send
  3. Track opens/clicks per center; roll into monthly KPIs
Content Balance
Events (≤5 soonest), Updates (≤3, newest), On-Demand picks (featured/most-enrolled), optionally a local milestone story.
Section 13

SUCCESS ATLAS — REAL-TIME IMPACT & REPORTING

Public impact visualization with live metrics

Milestones flow to a public map + counters with filtering by center, type, and date. Leadership sees capital, jobs, starts live; exports support board decks and SBA reporting.

Forms

  • Milestone contributes amount/type + optional story (with consent toggle)
  • Atlas filters: type, center, timeframe

Navigation

  • Public page + embed in dashboard
  • Link from MySBDC milestones

Logic Steps

  1. Client logs milestone → write + (optional) verify threshold
  2. Atlas updates immediately; aggregates refresh on schedule
  3. Weekly/Monthly/Quarterly reports generate automatically with KPIs
Accessibility on Maps
Provide non-map list/table views for screen readers; ensure keyboard navigation for filters.
Section 14

IMPLEMENTATION ROADMAP — PHASES & OWNERSHIP

Ship in crisp phases with clear ownership

Ship in crisp phases: Foundation → Integrations → MySBDC → Pilot → Migrate. Maintain SEO via 301 maps, train staff, and run acceptance tests before cutting over.

PhaseDeliverablesDurationSuccess Criteria
1-2: FoundationHosting, SSO, design system, core schema4 weeksSSO functional, design approved
3-4: IntegrationNeoserra/LW/Zoom/CC wiring; dashboard + 6416 weeksAll APIs connected, data flowing
5: Pilot2-3 centers live, staff training4 weeks70% activation, flows validated
6: MigrationRedirect maps, full rollout, monitoring2 weeksZero 404s, < 3s load times

Forms Migration

  • Content migration audit (Keep / Archive / Redirect / Delete)
  • Role provisioning for advisors/staff; client activation emails

Navigation Migration

  • Redirect old center URLs to new /{center}/… paths
  • Monitor 404s for 30 days
Keep It Maintainable
Vanilla JS, lightweight components, design tokens, clear data contracts; "one master per domain" prevents drift.
70%
Dashboard Use
Milestone Lift
40%
Time Saved
<3s
Page Load