Updated 1 week ago Guides

Mapping Archetypes to Class Booking Suggestions (Gym / Studio Apps)

A practical guide to turning Sahha Archetypes into explainable, high-converting class recommendations in booking flows.

Class booking apps win when recommendations feel relevant, timely, and low-friction: not “more workouts”, but the right class today for how someone tends to live and train.

Sahha Archetypes are designed for this kind of personalization because they’re stable labels derived from weeks of behavior, not momentary signals.

Docs reference: Sahha Archetypes list and definitions: https://docs.sahha.ai/docs/products/archetypes


To get the best results, your product should be able to deliver journeys like:

  • onboarding (“start here” suggestions),
  • weekly nudges (“book your next class”),
  • reactivation (“return with a low-friction option”),
  • and contextual recommendations (“recovery-first week”).

That typically means using a customer engagement tool such as Customer.io or Klaviyo (alternatives: Braze, Iterable, etc.) to orchestrate messaging, segmentation, and journeys.

Important: As of 2 March 2026, Sahha does not provide built-in customer journey delivery (campaign orchestration / messaging) capabilities. Sahha provides the data outputs (e.g., archetypes) that you can route into tools like Customer.io or Klaviyo to trigger experiences and recommendations.


What this guide gives you

A practical approach you can implement quickly:

  1. Normalize your schedule into a small set of generic class types
  2. Use preference archetypes to choose the kind of class
  3. Use capacity / recovery archetypes to choose the intensity and format
  4. (Optional) Use sleep timing archetypes to choose the best time of day to suggest
  5. A JSON mapping file to get you started (download below)
Download class mapping JSON

When to use Archetypes (and when not to)

Use archetypes for:

  • “Suggested for you” modules and class recommendations
  • Segmentation (e.g., “recovery-first” journeys)
  • Lifecycle journeys (onboarding, habit-building, reactivation)

Avoid using archetypes for:

  • Minute-by-minute nudges (“go now”) — archetypes are best treated as durable context.

Step 1 — Normalize your class catalog

Studios name classes creatively (“Hot Vinyasa Flow”, “Bootcamp X”), but recommendations work best when your system maps everything into a small, consistent set of generic types.

Use (or adapt) the taxonomy below and store it as class_type_normalized on each scheduled session.

Generic class typeIncludes (examples)
Yogavinyasa, yin, power, hot
Pilatesmat, reformer
Barrebarre, sculpt
Strengthweights, lifting, hypertrophy basics
Functional Strengthkettlebell, TRX, athletic strength
HIITintervals, tabata
Bootcamp / Circuitstations, conditioning circuit
Cycling / Spinrhythm, performance ride
Boxing / Combatboxing, kickboxing
Dance / Cardio Dancedance fitness
Mobility / Stretch / Recoverystretching, mobility, recovery
Core / Stabilityabs, posture, trunk stability
Mindfulness / Breathworkbreathwork, meditation
Endurance (Run/Row)run club, treadmill, rowing

Step 2 — Choose a simple recommendation strategy

A clean way to think about class booking recommendations is:

A) Preference (what they’re likely to enjoy)

Use:

  • primary_exercise_type (categorical)
  • optionally primary_exercise / secondary_exercise (most frequent exercise types)

B) Capacity / readiness (what they can likely sustain)

Use:

  • activity_level + exercise_frequency

C) Recovery modifier (how hard to push)

Use:

  • sleep_quality, sleep_duration, sleep_regularity
  • mental_wellness, overall_wellness

D) Timing (when to suggest)

Use:

  • wake_schedule, bed_schedule, sleep_pattern

Step 3 — Archetype → class type mapping tables

These tables are designed to be copy/paste implementable. Each row gives you:

  • Best-fit class types (rank higher)
  • Also works (rank lower; use for variety)

3.1 Activity & habit archetypes → class types

activity_level

ValueBest-fit class typesAlso works
sedentaryMobility / Recovery, Yoga, Pilates, MindfulnessBeginner Strength, Core
lightly_activeStrength, Pilates, Yoga, Functional StrengthCycling, Barre, Dance
moderately_activeStrength, Functional Strength, Bootcamp/Circuit, CyclingHIIT (moderate), Boxing, Endurance
highly_activeHIIT, Bootcamp/Circuit, Strength, CyclingBoxing, Endurance, Mobility (as balance)

exercise_frequency

ValueBest-fit class typesAlso works
rare_exerciserBeginner Strength, Pilates, Yoga, Mobility/RecoveryDance, Cycling (low)
occasional_exerciserStrength, Functional Strength, Cycling, YogaBootcamp (beginner), Core
regular_exerciserStrength, Bootcamp/Circuit, Cycling, BoxingHIIT, Endurance
frequent_exerciserHIIT, Bootcamp/Circuit, Strength, EnduranceBoxing, Functional Strength, Mobility (recovery)

primary_exercise_type

ValueBest-fit class typesAlso works
strength_orientedStrength, Functional Strength, CoreBootcamp/Circuit
cardio_orientedCycling, HIIT, Bootcamp/Circuit, EnduranceDance
mind_body_orientedYoga, Pilates, Mobility/Recovery, MindfulnessBarre, Core
hybrid_orientedStrength, HIIT, Bootcamp/Circuit, CyclingBoxing
sport_orientedFunctional Strength, Strength, HIIT, Boxing/CombatBootcamp/Circuit
outdoor_orientedEndurance, Bootcamp/Circuit, Functional StrengthMobility/Recovery

3.2 Wellness archetypes → class types

These are best used as intensity modifiers (how demanding to make the recommendation), not hard gates.

mental_wellness

ValueBest-fit class typesAlso works
poor_mental_wellnessMindfulness, Yoga, Mobility/Recovery, PilatesLow–moderate Cycling, Dance
fair_mental_wellnessYoga, Pilates, Mobility/Recovery, Strength (moderate)Cycling, Barre
good_mental_wellnessStrength, Functional Strength, Yoga (balance)Bootcamp, Boxing, HIIT
optimal_mental_wellnessAny (use preference + schedule)

overall_wellness

ValueBest-fit class typesAlso works
poor_wellnessMobility/Recovery, Yoga, Pilates, MindfulnessBeginner Strength, Low Cycling
fair_wellnessStrength (moderate), Pilates, Yoga, CyclingBootcamp (beginner), Core
good_wellnessStrength, Functional Strength, Cycling, BootcampHIIT, Boxing
optimal_wellnessAny (use preference + schedule)

3.3 Sleep archetypes → class types

Sleep archetypes are particularly effective for protecting retention: if someone is under-recovered, pushing only high-intensity classes tends to reduce adherence.

sleep_quality

ValueBest-fit class typesAlso works
poor_sleep_qualityMobility/Recovery, Yoga, Mindfulness, PilatesLight Strength, Core
fair_sleep_qualityYoga, Pilates, Strength (moderate), Cycling (moderate)Bootcamp (light)
good_sleep_qualityStrength, Cycling, Bootcamp/CircuitBoxing, HIIT
optimal_sleep_qualityAny (use preference + schedule)

sleep_efficiency (requires wearable)

ValueBest-fit class typesAlso works
highly_inefficient_sleeperMindfulness, Mobility/Recovery, Yoga, PilatesLight Strength
inefficient_sleeperYoga, Mobility/Recovery, PilatesModerate Strength, Low Cycling
efficient_sleeperStrength, Cycling, Bootcamp/CircuitBoxing, HIIT
highly_efficient_sleeperAny (use preference + schedule)

sleep_duration

ValueBest-fit class typesAlso works
very_short_sleeperMobility/Recovery, Yoga, Mindfulness, PilatesLight Strength, Core
short_sleeperYoga, Pilates, Strength (moderate), Mobility/RecoveryLow Cycling
average_sleeperStrength, Cycling, Bootcamp/CircuitHIIT, Boxing
long_sleeperStrength, Cycling, Bootcamp/CircuitHIIT, Endurance

sleep_regularity

ValueBest-fit class typesAlso works
highly_irregular_sleeperYoga, Mobility/Recovery, Mindfulness, PilatesBeginner Strength
irregular_sleeperPilates, Yoga, Strength (moderate)Cycling (moderate)
regular_sleeperStrength, Bootcamp/Circuit, CyclingHIIT, Boxing
highly_regular_sleeperAny (use preference + schedule)

3.4 Sleep timing archetypes → when to recommend (optional but high-impact)

Timing archetypes don’t change what someone likes as much as they change when suggestions convert.

wake_schedule

ValueRecommended suggestion windowClass types to bias toward
very_early_riser / early_riserMorningStrength, Cycling, Bootcamp/HIIT (if recovery is good), Yoga
late_riser / very_late_riserMidday–eveningStrength, Cycling, Boxing, Yoga, Pilates

bed_schedule

ValueAvoid pushing late sessionsClass types to bias toward
very_early_sleeper / early_sleeperYesEarlier Strength/Cycling + evening Mobility/Yoga
late_sleeper / very_late_sleeperLess importantLater-day Strength, Boxing, Cycling + morning Mobility

sleep_pattern

ValueRecommendation intentClass types to bias toward
consistent_early_riserHabit reinforcementMorning Strength/Cycling; evening Mobility
inconsistent_early_riserStabilize routineYoga/Pilates + moderate Strength; avoid late HIIT
consistent_late_sleeperMeet them where they areLater sessions (Strength/Cycling/Boxing)
inconsistent_late_sleeperReduce volatilityModerate classes + recovery options
early_morning_sleeperProtect recoveryMobility/Yoga/Pilates; keep intensity moderate
chronic_short_sleeperReduce load, increase adherenceRecovery-first + moderate Strength
inconsistent_short_sleeperBuild consistencyYoga/Pilates/Mobility + moderate Strength

Step 4 — Normalize primary_exercise / secondary_exercise (optional)

Sahha may return many exercise types. In a studio booking context, normalize the relevant ones into your class taxonomy:

Exercise types reference: https://docs.sahha.ai/docs/get-started/data-dictionary/exercise-types

Sahha exercise type (examples)Map to generic class type
yogaYoga
pilatesPilates
barreBarre
strength_training, traditional_strength_training, weightliftingStrength
functional_strength_trainingFunctional Strength
high_intensity_interval_trainingHIIT
boot_camp, cross_training, mixed_cardioBootcamp / Circuit
biking_stationaryCycling / Spin
boxing, kickboxing, martial_artsBoxing / Combat
cardio_dance, dance, dancing, social_danceDance / Cardio Dance
stretching, flexibility, preparation_and_recovery, mind_and_bodyMobility / Stretch / Recovery
core_trainingCore / Stability
rowing_machine, running_treadmill, runningEndurance (Run/Row)

Step 5 — A simple scoring recipe (easy to ship)

A practical default:

  1. Start with preference
    • Use primary_exercise_type to pick a primary set of class types (rank highest).
  2. Apply capacity
    • If activity_level = sedentary or exercise_frequency = rare_exerciser, down-rank HIIT/Boxing/Bootcamp.
  3. Apply recovery modifier
    • If sleep_quality or overall_wellness is in the bottom band, bias toward Mobility/Yoga/Pilates and moderate Strength.
  4. Add variety
    • Include 1–2 “Also works” types to avoid repetition.
  5. Apply timing
    • Use wake_schedule/bed_schedule to decide when to send and what time slots to highlight.

This keeps the system explainable (“we suggested Pilates because you trend mind-body + your sleep has been inconsistent”), which helps user trust.


Example: What your app can show

Suggested classes for you:

  • Pilates (primary)
  • Mobility / Recovery (secondary)
  • Strength (light) (variety)

Driven by archetypes like:

  • primary_exercise_type = mind_body_oriented
  • sleep_quality = fair_sleep_quality
  • exercise_frequency = occasional_exerciser

Copy/paste implementation checklist

  • Add class_type_normalized to your class/session objects
  • Create a lookup mapping from archetype values → recommended class types (tables above)
  • Decide your ranking logic (preference → capacity → recovery → timing)
  • Route archetype outputs to your engagement tool (Customer.io / Klaviyo) for journeys and triggers
  • Log exposure + bookings to tune ranking over time