Creating Workouts
You can build workouts in two ways: from scratch in the manual builder, or by importing a programme through the Coach-Led Import pipeline.
Manual builder
- Go to Workouts in the sidebar.
- Click + New Workout.
- Add components (warm-up, strength, conditioning, cool-down) and movements.
- Set sets, reps, time cap, and coaching notes for each component.
- Save and optionally link to a class or programme.
Movements pulled from your Component Library can be reused as building blocks across workouts. The editor uses a responsive grid (min 400 px column width) and the Component Library sidebar is collapsed by default to maximise workspace.
Coach-Led Import (multi-day programmes)
Use the import pipeline when you already have a written week or phase of programming and want to bring it into the platform quickly. From Workouts → New → Coach-Led Import:
- Upload — paste text, drop in a CSV/XLSX, or type the week directly.
- Parse & Fix — the system maps every movement to your library. Items are flagged as Ready, Review, or Fix based on match confidence. Days containing two or more strength/skill movements stay flagged as Fix until you either group them (Superset, Tri-set, Mega-set, Complex, A-B-C) or confirm No grouping.
- Enrich — generate AI warm-ups and coaching notes per day. The structure, length, and tone are governed by the active prompts in the AI Prompt Store, so the same Enrich step works for any style of session.
- Review — proofread the full week, edit anything inline, and re-run enrichment if needed.
- Publish — assign to a programme, phase, week, and start date. Workouts are written to your library and linked to the chosen classes.
Drafts are auto-saved at every step, so you can leave and resume from Workouts → Drafts.
Filling in the import spreadsheet
The fastest way to import a full week is the Bliply Programme Import Template (download link is on the Upload step). One sheet = one week, and one row = one training day (Monday → Sunday). Only fill the yellow cells; never rename a column.
Top of the sheet
- Phase / Week / Overview cells — set Week to the week number you're importing (1, 2, 3…). The phase number is chosen on the Publish step. The overview row is free text describing the training block — useful context for your coaches but not used by the parser.
Row-level columns (per day)
- Day — pre-filled (Monday → Sunday). If a day is a rest day, leave the rest of the row blank.
- Total Time Check — auto-calculated. Sums warm-up estimate (≈5 min) + strength teaching minutes + each strength duration + conditioning teaching + conditioning duration. Use it to sanity-check that your day fits your class window before importing.
- Strength Teaching Time Duration — minutes you want reserved at the top of the strength block for set-up, demo, and warm-up sets (e.g.
5). - Strength Teaching — free text describing what to teach (e.g. "Back Squat brace + bar path; build to working weight").
- Strength 1 / 2 / 3 — Name, Variant, Sets, Reps, Duration, Notes — up to three strength or skill slots per day.
- Name — the movement (e.g. Back Squat, Strict Pull-up). The parser fuzzy-matches against your Component Library and flags low-confidence matches in the Parse & Fix step.
- Variant — optional descriptor (e.g. Tempo, Paused, Banded). Shown in parentheses next to the movement title.
- Sets / Reps — numeric. Leave both blank for "build to" / "max reps" / AMRAP-style work and put the prescription in Notes.
- Duration — minutes the slot should occupy in the timeline (e.g.
15). For grouped movements, see the rule below. - Notes — tempo (e.g.
@30X1), %1RM, RPE, intent — anything you want surfaced to coaches and athletes.
- Superset Group — leave blank if the slots run independently. To pair/group them, write the group letters and the type, e.g.:
A+B Superset— Strength 1 and Strength 2 alternated.A+B+C Tri-set— all three slots alternated.A+B+C Mega-set— three+ movements with no rest between them.A+B+C Complex— performed unbroken (e.g. barbell complex).A+B+C Sequence— A-B-C ordered round.
- Conditioning Teaching Time Duration — minutes for WOD-specific teaching (e.g. kipping pull-up progression). Leave blank if not needed.
- Conditioning Teaching — free text describing what needs teaching before the WOD.
- Conditioning Format — the workout type. Use the standard labels:
For Time,AMRAP,EMOM,Tabata,Work/Rest,Chipper,Ladder, etc. - Conditioning Duration — minutes (e.g.
20for a 20-minute AMRAP, time cap for a "For Time" piece). - Conditioning Scoring — how the result is recorded:
Time,Reps,Rounds & Reps,Calories, orNone. - Conditioning Rounds — fill in for round-based formats (EMOM rounds, AMRAP rounds for teams). Leave blank otherwise.
- Conditioning Benchmark —
Yesif this is a benchmark WOD (Fran, Murph, etc.), so it's tagged for leaderboard / re-test tracking. OtherwiseNo. - Conditioning Description — the prescription as you want athletes to read it (e.g. "21-15-9 Thrusters @ 42.5kg / Pull-ups").
How durations work for grouped movements
When two or more strength slots share a Superset Group, the platform treats the group as a single concurrent block. Only the first slot's duration is used for the timeline and the published component — durations on the second and third slots are ignored. So for an A+B Superset of Back Squat (15 min) and Bench Press (15 min), enter 15 on Strength 1 only and the day budgets 15 minutes for the pair, not 30.
Worked example (Monday)
- Day: Monday
- Strength Teaching Time: 5 — Strength Teaching: "Back Squat brace + bar path"
- Strength 1: Back Squat / Tempo / 5 / 5 / 30 / @31X1
- Strength 2: Bench Press / Paused / 3 / 8 / — / pause 2s on chest
- Strength 3: (blank)
- Superset Group: A+B Superset
- Conditioning Format: EMOM — Duration: 20 — Scoring: Reps — Description: "30s Work / 30s Rest, push/pull"
Result: one day with a 5-minute teaching block, a 30-minute superset of Back Squat + Bench Press (both individually loggable), then a 20-minute EMOM scored in reps. The Total Time Check column will show roughly 60 minutes.
Common pitfalls
- Renaming or reordering columns — the parser locates fields by header name. Keep them exactly as shipped.
- Putting prescription in the wrong cell — Sets/Reps must be numbers. Tempo, percentages, and RPE belong in Notes; "build to a heavy single" belongs in Notes with Sets/Reps left blank.
- Forgetting to set Superset Group — multi-slot days that are not marked as a group will be flagged as Fix in Parse & Fix until you either group them or confirm No grouping.
- Adding duration to every group member — only the first slot's duration is honoured for grouped movements. Leave the others blank to keep the spreadsheet readable.
Public visibility
Each workout has a "Show on public website" toggle. By default this inherits the gym-wide setting (Settings → default_workout_public). Toggle it per-workout to override.
Undo / Redo & unsaved changes
The workout editor supports multi-level undo/redo via ⌘Z / ⌘⇧Z (Ctrl+Z / Ctrl+Shift+Z on Windows). If you try to navigate away with unsaved changes, a browser confirmation dialog will warn you.
Component Library
Your gym has a component library pre-seeded with common movements. You can:
- Add custom components from Workouts → Components
- Set default result tracking types per component
- Tag and categorise components for easy searching
- Import components from CSV
When you use the Coach-Led Import pipeline, newly recognised movements are automatically added to your component library at publish time — keeping your library growing organically.
Component grouping (supersets, tri-sets, complexes)
The editor supports a full grouping model: Supersets, Tri-sets, Mega-sets, Complexes, and A-B-C sequences. Movements are linked via a shared group identifier and rendered as a connected block. The same grouping picker is also surfaced in the Coach-Led Import Parse & Fix step.
AI generation
Warm-ups and coaching notes are produced by system prompts maintained in the AI Prompt Store. There are no separate warm-up templates or per-generation style settings — if you need a different format (e.g. RAMP, express 5-minute warm-up, mobility-led), pick a different prompt at the point of generation. See the dedicated "AI Workout Generation" article for the full guide.