Trainerize logo

Trainerize automation · runs weekly

Assign the next Trainerize program when a client's 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.

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 · Trainerize: What are Program Auto-Tags and How Can I Use Them? · Trainerize: How are Programs Labelled on a Client's Profile? · Trainerize: 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

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

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.