Skip to main content

Automations

Build decision trees and automate workflows to streamline athlete management and training delivery

Written by Todd Miller

Automations put a team's routine decisions on autopilot. Each one is a decision tree: a trigger decides when it runs, and every athlete who enters is checked against your conditions and acted on, such as starting a program, changing their groups or sending a survey. This article covers building an automation, every trigger, condition and action it offers, turning it on, and reading its run log.

The Automations page

Automations belong to a team. Open Automations in the team's navigation to see its list. Only coaches who can edit the team see New Automation (1) and can open an automation (2); select rows to Delete several at once.

Creating an automation

  1. Click New Automation and choose From scratch.

  2. Enter a Name and click Save.

  3. The automation opens on its canvas with just a trigger. Build the tree, then turn it on from Settings.

New automations are inactive

Nothing runs until you switch Status on in Settings, so you can build and check the tree first.

The canvas

An automation's canvas

The canvas draws the tree from the top down: the trigger (1), then a decision (2) fanning out into its routes (3), each leading to what happens on it, like an action (4). Click any card to open its editor. Click the + under a card to add a node there; the new node goes between that card and everything already below it. A route with nothing on it yet says Nothing happens on this route yet.

Editors have no save button: every field saves as you change it. Run log (5) and Settings (6) sit in the header.

Adding a node

The node picker

Picking a kind adds the node straight away:

Node

What it does

Decision

Send athletes down different routes

Filter

Only let athletes who match continue

Action

Start a program, change a group, send a survey

Flex decision

Let Flex read the athlete and pick a route

Flex action

Let Flex act on instructions you write

Trigger node

The trigger editor

Every automation has exactly one trigger, and it can't be deleted. Its Runs section has three switches (1). You can turn on more than one; a new trigger starts with When data changes on.

Responsive trigger

When data changes runs the automation for an athlete each time their data changes: a logged workout, a recorded or imported measurement, a calculated assessment, or an integration sync. It does not run when an athlete opens or starts a workout.

Timed trigger

On a schedule runs the automation for every athlete on the team. Its Schedule section (2) sets:

  • Repeats: Every day, Every week or Every month.

  • On: each day it runs for a daily schedule, the one day for a weekly schedule, or the date for a monthly one. A shorter month runs on its last day.

  • At: the hour, and the time zone that hour is in.

The dark strip at the bottom shows the next run, how the last run went, and how many athletes enter. While the automation is inactive, a notice (3) says so, with Turn it on.

Join team trigger

When an athlete joins the team runs once for each athlete who joins. Use it for onboarding, such as adding newcomers to a group and starting their first program.

Decision nodes

A decision's editor

A decision sends each athlete down one of its routes. Routes are checked from top to bottom and the first match wins, so an athlete only ever takes one. Drag a route by its handle to change the order.

  • Add a route (3) adds a route above the last one.

  • The last route (Everyone else until you rename it) catches anyone who matches no route above. It has no conditions and can't be deleted. If nothing happens on it, Give them a route adds a node there.

  • See who goes where (1) lists the team's athletes with the route each would take right now and why. Nothing is changed by looking.

Conditional routes

A route's conditions

Click a route (2 in the decision editor) to set its Name, Color and Conditions. Conditions sit in sets:

  • Every condition in a set must be true. Add condition to set 1 (2) adds another to that set.

  • The athlete takes the route if any one set is true. Add a set (3) starts another.

The route above reads Readiness value is less than 6 out of 10 (1). Two sets work like this:

(Fatigue >= 3 AND Motivation >= 7) OR Readiness score >= 9

A route with no conditions can never match, so every athlete skips it.

What a condition can measure

Each condition asks What are we measuring?, then a Comparison, then what it's Compared to.

Measure

Compares

Metric value

The athlete's latest value of a metric, is or is not less than, at most, equal to, at least, or greater than A value or Another metric. Against a metric you can use its value, a % of it, or an offset from it.

Percentile rank

Where the athlete ranks on a metric among the athletes in your organization. Only metrics with Track percentile on have a rank.

Group

Whether the athlete is or is not in a team group.

Last workout completed

More or less than a number of hours ago.

Last measurement recorded

For one metric or Any metric, more or less than a number of hours ago.

A training load metric is listed by its streams, such as its total or its ratio, not by the load itself, which holds no values of its own.

Teams with Flex program generation also see Subscription entitled, Next unfilled week starts, Program ends, Extension completed and Athlete emailed.

Comparing an athlete to a group or position average

A condition compares one athlete's own data, so it can't compare them to a group's or a position's average. The closest options are Percentile rank, which ranks them against your organization's athletes, and Another metric, which compares one of their metrics to another of theirs.

Filter nodes

A filter uses the same conditions as a route. Athletes who match continue to what's below it; everyone else stops there. A filter with no conditions lets every athlete through.

Action nodes

An action's editor

An action does something to each athlete who reaches it. Pick its Action type (1), then fill in the Options (2) for that type. Changing the type clears the options, but keeps the action's name.

Action type

What it does

Start a program

Schedule a program from the library onto the athlete's calendar

Extend the current program

Add weeks to whatever the athlete is already running

Add to a group

Put the athlete in a team group

Remove from a group

Take the athlete out of a team group

Send a survey

Send one of your team's surveys to the athlete

Start a program

Pick the Program, then when Program starts:

  • Today starts the program from today. Week 1's Sunday workout lands today, and the rest shift to match.

  • Most recent Sunday lines week 1 up with the last Sunday, so workouts earlier in that week are already past.

  • Next Sunday starts week 1 on the coming Sunday.

Workout window sets when each workout sits on the athlete's calendar, 7:00 AM to 8:00 AM unless you change it. An athlete already enrolled in that program isn't enrolled again. See Programs.

Extend the current program

Only teams with Flex program generation have this action. It adds weeks to the program the athlete is already running, carried on from where they are. There's nothing to set.

Add to group

Pick one or more Groups. If another automation on the team has a condition on one of those groups, a notice warns that adding athletes here may start it too. Groups can also decide which workouts an athlete gets; see Groups.

Remove from group

Pick Groups, Group tags, or both. The athlete leaves every group you picked and every group carrying one of the tags. To keep an athlete in just one "skill level" group, put a Remove from a group action for the skill-level tag before the Add to a group action on each route.

Send a survey

Pick the Survey. The athlete gets a workout called "Survey" on today's calendar holding just that survey, at most once a day per survey. See Surveys.

Surveys at the start of a workout

No trigger fires when an athlete starts a workout. To ask questions before training, add the survey to a block in the workout itself. To send a daily check-in instead, use On a schedule with a Send a survey action.

Flex nodes

A Flex decision has no conditions. Give it Context it should weigh for every route, and give each route Criteria in plain words. Flex reads the athlete's profile, groups, current injuries and recent training, and places them on one route, so a route like "if the athlete is injured" works. A Flex decision has no See who goes where.

A Flex action follows the Instructions you write when an athlete reaches it. In both, type @ to mention a group or metric (and in a Flex action, a program or coach) so Flex knows exactly what you mean. See Flex.

Building with Flex

New Automation also offers With Flex: say what should trigger it and Flex wires the steps. You can also ask Flex to build or change an automation at any time. An automation Flex builds opens as a Draft: it isn't on the list until you click Save to library, and Discard draft throws it away. A draft can't be turned on until it's saved.

Turning an automation on or off

Automation settings

Click Settings and switch Status (1). It saves straight away, and the badge beside the automation's name changes between Active and Inactive. Settings also holds the Name, Add description, and Delete automation.

Run log

An automation's run log

Click Run log to see every time the automation ran for an athlete, newest first, with Athlete, Run Time, Terminal Node (the step the athlete finished on) and Status (Running, Complete or Error) (1). The log keeps the most recent 500 runs.

A run's details

Click a run (2) to open its details: a Summary of how it ended, then its Steps in order, with the last one open. Each step has a badge, like the decision's Continued (1) and the action's Action taken (2) above:

  • A filter shows Passed or Stopped.

  • A decision shows Continued, with each route it checked marked as a match or not.

  • An action shows Action taken when it changed something and No action when it didn't, and lists what it did under Actions. On teams with Flex program generation, a step that emails the athlete their phase summary shows Action taken with Sent athlete email.

  • A step that hit Flex's rate limit shows Skipped, and one that errored shows Failed.

A Flex decision or Flex action that used an athlete's health information (the athlete has a current injury, or Flex read their injuries during the run) is flagged. Only staff with PHI access for that athlete see the step's reasoning, actions and conditions. Everyone else still sees the step's name and badge, with "Hidden: this step used athletes' health information, which your role can't view." in place of the details. See Staff access for who holds PHI access.

Copying automations to another team

There's no copy button on an automation. To copy automations to another team, open Transfers from your account menu and include them in a transfer (see Transfers). The metrics and groups they use travel with them. Transfers appears for coaches who lead an organization or a team.

Did this answer your question?