# Assign the next Trainerize program when a client's program expires

> Your agent picks up Trainerize clients tagged Main program expiring, suggests the next master program for each and subscribes them after your OK.

Source: https://cotlet.dev/integrations/trainerize-api-mcp-server/assign-next-program-when-program-expires

The orange Main program expiring tags pile up on the Overview page, and each one needs a decision: which program comes next, from which day. Miss one and the client opens the app to an empty week.

Cotlet does it in your own Trainerize account with list\_clients, get\_client, list\_check\_ins, list\_master\_programs and subscribe\_to\_program, called by your AI agent, an n8n workflow or a script.

[Request access](https://cotlet.dev/app/signup?app=trainerize) [All Trainerize tools](https://cotlet.dev/integrations/trainerize-api-mcp-server)

Hosted · nothing to install or maintain

Official options

## Can Trainerize do this on its own?

Trainerize subscribes many clients to one master program at once from the Clients tab, and a Phased Program chains training phases inside one program (checked 12 Oct 2026). With Stripe Integrated Payments, Product Automation subscribes a buyer to a main program on First Purchase or Product Start. Nothing in Trainerize chooses a next program per client when one ends. The API that could script it is limited to Studio and Enterprise plans or FitMetrics.

By hand

## How you do it in Trainerize today

1. In the Trainerize web account, open the Clients tab, click ADD FILTER > By Tag and pick Main program expiring, then repeat with Main program expired.
2. Open each flagged client's profile to see the current program, and read the latest check-in and progress to decide what comes next.
3. Go to Master Libraries > Master Programs, open the chosen program, select Summary and Subscribers > Add Subscribers, type the client's name, set a Start Date and choose Main or Add-on.
4. When several clients get the same next program, select them on the Clients tab, open the three-dot menu and choose Subscribe to a program.
5. The bulk option helps only when everyone moves to the same program. When each client needs a different next step, the work is one profile at a time, and a client who slips past the expiring tag ends up with no current training phase.

With an agent

## How to assign the next Trainerize program when a client's program expires

Prompt

```
Find clients whose main program ends in the next week or already ended. Suggest the next master program for each based on their goal and last check-in, and subscribe them after I approve, starting the day after the old one ends.
```

1. 01  
### Collect who is ending  
The agent calls list\_clients twice, with the auto tags Main program expiring and Main program expired, so clients who already lapsed are not forgotten. Add-on programs are left alone unless you ask, because they usually end on purpose.
2. 02  
### Read where each client stands  
get\_client gives goals and the current main program. list\_check\_ins for the last four weeks shows what the client said about energy, soreness and schedule, which decides between progressing, repeating or easing off.
3. 03  
### Match against your library  
list\_master\_programs gives the programs you can choose from. If you have a rule such as "4-week Base goes to 6-week Build", the agent follows it. Without one it proposes a program from the client's goal and marks it as a suggestion, and it flags clients whose check-ins mention pain instead of picking for them.
4. 04  
### Set the start date so nothing overlaps  
For clients still on a program, the start date is the day after the current one ends. For clients already expired, it is the next Monday unless you name a day. A client can hold only one main program, so the agent never starts the new main program while the old one runs.
5. 05  
### Group, confirm, subscribe  
Clients going to the same program and start date share one subscribe\_to\_program call. Each group waits for your OK, and clients with no clear match are listed by name for you to decide.

### What you get back

Example data

```
7 clients flagged: 5 expiring, 2 expired
6-week Build from Mon 19 Oct: Alex Rivera, Sam Carter, Jo Kim (finished 4-week Base, check-ins steady)
4-week Base again from Mon 19 Oct: Tom Becker (missed 5 of 12 workouts, asked for shorter sessions)
Hypertrophy Block 2 from Mon 12 Oct: Lena Ortiz (expired 8 Oct)
Needs you: Priya Shah, knee pain in last two check-ins
Needs you: Marco Ruiz, goal changed to a half marathon, no running program in the library
3 subscriptions waiting for your OK
```

### Other ways to ask

- Every Friday, tell me whose main program ends next week. Do not subscribe anyone.
- Put every client tagged "Challenge" on the 6-week Shred program starting Monday.
- Clients with Add-on program expired: offer them the Mobility add-on again from next Monday.
- Anyone who finished 6-week Shred goes to Maintenance as their main program, no questions asked.

Before you automate it

## What Trainerize allows, and what to know first

- Trainerize program auto-tags are Main program expiring, Add-on program expiring, Main program expired and Add-on program expired; expired is a red tag on the Overview page, expiring is orange.
- Clients on a Trainerize On-Demand program never get an expiring or expired tag, because the on-demand library stays available until they are unsubscribed.
- A Trainerize client can have only one Main program at a time but several Add-on programs, which carry a link symbol on the profile.
- A client sees a newly subscribed Trainerize program under the kettlebell icon tab of the mobile app only once its start date arrives, and its scheduled items then appear on the client calendar.
- Trainerize Product Automation (Payments > Products > Set Up Automation) only offers master programs stored in the Shared Folder, and when both First Purchase and Product Start subscribe a main program, the Product Start one wins.

subscribe\_to\_program asks for your OK by default. To run it weekly without you, switch confirmation off for that tool in your dashboard.

Sources: [Trainerize: How to Subscribe a Client to a Master Program](https://help.trainerize.com/hc/en-us/articles/115004411783-How-to-Subscribe-a-Client-to-a-Master-Program) · [Trainerize: What are Program Auto-Tags and How Can I Use Them?](https://help.trainerize.com/hc/en-us/articles/17504985272852-What-are-Program-Auto-Tags-and-How-Can-I-Use-Them) · [Trainerize: How are Programs Labelled on a Client's Profile?](https://help.trainerize.com/hc/en-us/articles/5342069586964-How-are-Programs-Labelled-on-a-Client-s-Profile-Main-Add-on-Client-s-Personal) · [Trainerize: Automating Content Delivery with Product Automation](https://help.trainerize.com/hc/en-us/articles/39988722481044-Automating-Content-Delivery-with-Product-Automation)

REST

## Call subscribe\_to\_program from a script

curl

```
curl https://cotlet.dev/api/v1/trainerize/subscribe_to_program \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"program_id":"552047","client_ids":["4821937","4821944"],"start_date":"2026-10-19","program_type":"main"}'
```

Example response

```
{
"program_id": "552031",
"program_type": "main",
"start_date": "2026-10-19",
"subscribed": [
{
"client_id": "4821937",
"status": "subscribed"
},
{
"client_id": "4821944",
"status": "subscribed"
}
]
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the tool is trainerize\_subscribe\_to\_program. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/trainerize-api-mcp-server#automations)

Tools

## Trainerize tools this automation uses

__Cotlet Trainerize tools used to assign the next Trainerize program when a client's program expires__
| Tool | Parameters |
| ---------------------- | ---------------------------------------------------- |
| list\_clients | client\_type, tag, search, limit, cursor |
| get\_client | client\_id |
| list\_check\_ins | client\_id, since |
| list\_master\_programs | search |
| subscribe\_to\_program | program\_id, client\_ids, start\_date, program\_type |

[All 14 Trainerize tools with descriptions](https://cotlet.dev/integrations/trainerize-api-mcp-server#tools)

## More Trainerize automations

- [Follow up with Trainerize clients who stopped logging body stats](https://cotlet.dev/integrations/trainerize-api-mcp-server/remind-clients-to-log-body-stats)
- [Summarize weekly Trainerize check-in forms with AI](https://cotlet.dev/integrations/trainerize-api-mcp-server/summarize-weekly-check-ins)
- [Draft replies to Trainerize client messages](https://cotlet.dev/integrations/trainerize-api-mcp-server/reply-to-client-messages)
- [Trainerize API and MCP server: every tool](https://cotlet.dev/integrations/trainerize-api-mcp-server)
- [All use cases](https://cotlet.dev/use-cases)

## Give your agent access to Trainerize.

Free 7-day trial with 5,000 credits, no card needed. Cotlet is independent and not affiliated with Trainerize.

[Request access](https://cotlet.dev/app/signup?app=trainerize)
