What This Screen Does
This is where you create a workout program for one or more classes. Think of it like writing a training plan for the day — you pick which classes it applies to, then build out the workouts (exercises, time caps, coach notes, and more). Once you save, the program is attached to the selected classes and coaches and members can see what is planned.
How to Get There
Open the dashboard.
In the left-hand menu, click Program.
Click the + New Program button in the top-right corner.
You are now on the New Program screen.
Tip: You can also land here by clicking Add Program from a class detail page. When you do, the class will be pre-selected for you automatically.
Step-by-Step Guide
1. Select Classes
In the Details card you will see a Classes dropdown.
Click the dropdown to see a list of classes scheduled for the current day.
Each option shows the class name and its start time (e.g. “CrossFit (Feb 9, 2026 09:00)”).
Check one or more classes that this program should be assigned to.
You must select at least one class.
Field | Required | What to Enter |
Classes | Yes | Pick one or more classes from the dropdown. These are the classes the program will be linked to. |
Note: If you arrived from a specific class page (via a clazzId link), that class will already be selected for you. You can still add more classes.
2. Enter External Programming Track (optional)
This field only appears if your chain has an external programming access key configured.
If you follow an external programming provider, type the track name here (e.g. “Competition”, “Fitness”).
This helps map the program to the correct track from your external provider.
Field | Required | What to Enter |
External Programming Track | No | The name of the external programming track, if applicable. |
3. Build the Workouts
The workout builder is the main part of the screen. This is where you design what athletes will do in class. Each program starts with one workout section, and you can add more.
a. Choose a Workout Type
Open the Workout Type dropdown in the workout section.
Pick the type that matches what you are programming (e.g. “For Time”, “AMRAP”, “EMOM”, “Strength”).
This tells athletes what format the workout follows.
Field | Required | What to Enter |
Workout Type | No | Select the style of workout from the list. |
b. Set a Workout Title
Each workout has a Title field.
By default it is set to “Workout #1”, “Workout #2”, etc.
You can rename it to something more descriptive (e.g. “Warm-Up”, “Metcon”, “Cool Down”).
Field | Required | What to Enter |
Workout Title | No | A short name for this workout section. |
c. Write the Workout Text
Use the Text field to describe the workout.
Include exercises, reps, sets, weights, or any other instructions athletes need.
Field | Required | What to Enter |
Workout Text | No | The full workout description — exercises, reps, rounds, etc. |
d. Set a Time Cap (optional)
If the workout has a time limit, set the Time Cap in minutes and seconds.
Leave it blank if there is no time limit.
Field | Required | What to Enter |
Time Cap (minutes) | No | Number of minutes for the time cap. |
Time Cap (seconds) | No | Number of seconds for the time cap. |
e. Use a Workout Template (optional)
If you have saved workout templates, you can pick one from the Workout Templates list.
Selecting a template pre-fills the workout fields so you do not have to type everything from scratch.
f. Add More Workouts
Click the button to add another workout section if your program has multiple parts (e.g. a strength piece followed by a conditioning piece).
Each new workout gets its own type, title, text, and time cap.
4. Fill In Additional Program Fields (optional)
These fields sit alongside the workout builder and give you space for extra context.
Field | Required | What to Enter |
Timeline | No | A rough schedule for the class (e.g. “0-10 min warm-up, 10-30 min workout, 30-40 min cool down”). |
Equipment | No | List the equipment athletes need to have ready (e.g. “Barbell, jump rope, pull-up bar”). |
External References | No | Links or references to videos, articles, or other resources related to the program. |
Coaches Notes | No | Private notes for coaches — tips on scaling, common faults to watch for, or class management notes. |
5. Save
When you are happy with the program, click the Create button at the bottom-right of the screen.
The system will:
Validate your inputs (at least one class must be selected).
Send the program to the server.
Navigate you back to the previous page.
You will see a green “Create success!” notification at the bottom of the screen.
What Happens Behind the Scenes
You click "Create"
|
v
Form validates all fields (Yup schema)
|
v
Program data is assembled (workouts, class IDs, notes, etc.)
|
v
API call: ProgramsService.create({ body: programData })
|
v
Server creates the program and links it to the selected classes
|
v
Success notification "Create success!" appears
|
v
You are navigated back to the previous page
Troubleshooting
“I cannot see any classes in the dropdown”
The class list is loaded based on the current date. If there are no classes scheduled for today, the dropdown will be empty.
Make sure classes have been created for today in the Classes section before trying to create a program.
If you expect classes to be there but the list is empty, try refreshing the page — the data may not have loaded yet.
“The Create button does nothing when I click it”
You must select at least one class. The form will not submit without it.
Look for red error messages below the Classes dropdown — they tell you what needs to be fixed.
If the button shows a loading spinner, the form is submitting. Wait a moment for it to finish.
“I do not see the External Programming Track field”
This field only appears if your chain has a program access key configured in the chain settings.
If you do not use an external programming provider, you will not see this field and you do not need it.
Contact your administrator if you believe it should be enabled.
“I selected a class but it disappeared from the dropdown”
Make sure you are not accidentally deselecting it. The dropdown uses checkboxes — clicking an already-checked class will uncheck it.
If the class list refreshed and your selection vanished, the classes may have been updated by another user. Re-select the class and try again.
“My workout template did not fill in the fields”
Confirm that you selected a template from the list and not just browsed through them.
If the template appears empty, it may have been saved without workout content. Check the template in the Workout Templates section.
Try selecting a different template to see if the issue is specific to one template.
“I got an error after clicking Create”
A red error notification will appear. Read the message — it usually explains the problem.
Common causes: network timeout, server error, or a required field that was missed.
Try again after a few seconds. If the error persists, contact your administrator with the error message.
“I arrived from a class page but the class is not pre-selected”
The system reads the class ID from the URL. If the URL does not contain the
clazzIdparameter, no class will be pre-selected.Try navigating back to the class detail page and clicking the Add Program link again.
If the class still does not load, the class may have been deleted or the ID may be invalid.
“I want to assign the program to a class on a different date”
The class dropdown only shows classes for the current date (or the date passed in the URL).
To create a program for a different day, navigate to that day’s schedule first and create the program from there.
You can also edit the program later and reassign it to different classes.
