- Documentation
- Integrations
- Apps
- Strava integration
Strava integration
Sync athlete activities, log new entries, and react to fresh workouts across your client Strava accounts.
What it does
The Strava integration lets your agency read and write athlete data on behalf of your clients without leaving TaskJuice. Connect a client's Strava account once and you can pull the athlete profile, list and update activities, log manual entries, browse segments and clubs, and start a workflow whenever a new activity lands on the connected athlete's feed.
Connect a Strava account
- Create a Strava API application at strava.com/settings/api and set its Authorization Callback Domain to your TaskJuice domain.
- In TaskJuice, add the application's Client ID and Client Secret as your Strava OAuth app, and tick the scopes your workflows need:
read(segments, routes, clubs, gear),profile:read_all(full athlete profile and zones),profile:write(weight, FTP, starring segments),activity:read(activities), andactivity:write(create, update, and upload activities). Addactivity:read_allorread_allwhen you need private activities or private routes. - Open your workspace, navigate to Connections, choose Strava, and click Connect.
- Sign in with the Strava account whose data you want to manage on behalf of your client, and approve the requested scopes.
- TaskJuice returns you to the workspace with the connection ready to use in any workflow.
A new Strava API application starts with an athlete capacity of 1, so only one athlete can connect to it until Strava approves a capacity increase through its developer program review.
To revoke access at any time, visit Strava connected apps and remove the TaskJuice entry.
Triggers
strava/new-activitypolls the authenticated athlete's activity feed and fires once per cycle whoseitemsarray carries every activity that appeared since the previous cycle. Drop a Loop node downstream to process each activity individually.strava/new-or-updated-activitypolls the same feed and fires for activities that are new or whose details changed (title, sport type, gear, privacy, distance). Description-only edits are not detected, because the activity list does not include descriptions. Kudos, comments, and other social counters do not re-fire an activity. Only activities inside the fetched window are compared.
Actions
strava/get-athletereturns the connected athlete's full profile, including measurement preference, FTP, and follower count.strava/update-athleteupdates the connected athlete's weight (the only writable profile field exposed by the Strava API).strava/get-athlete-statsreturns recent, year-to-date, and all-time totals for the connected athlete.strava/get-athlete-zonesreturns the connected athlete's configured heart-rate and power zones.strava/list-activitiesreturns the connected athlete's activities with optional before, after, page, and per-page filters.strava/get-activityreturns a single activity owned by the connected athlete, optionally including segment efforts.strava/create-activitylogs a manual activity (run, ride, swim, or any sport type Strava recognizes).strava/update-activityupdates the name, type, gear, description, or visibility of an existing activity.strava/get-activity-zonesreturns the heart-rate and power zone distribution for a single activity.strava/get-activity-lapsreturns the lap breakdown for a single activity.strava/get-activity-streamsreturns time, distance, heart-rate, and other measurement streams for a single activity.strava/list-activity-commentsreturns the comments left on a single activity.strava/list-activity-kudoersreturns the athletes who have given kudos on a single activity.strava/get-segmentreturns the metadata for a Strava segment.strava/get-segment-effortreturns a single segment effort by ID.strava/get-segment-effort-streamsreturns the measurement streams for a single segment effort.strava/get-segment-streamsreturns the measurement streams for a single segment.strava/list-segment-effortslists the connected athlete's efforts on a segment, with optional time bounds.strava/list-starred-segmentsreturns the segments the connected athlete has starred.strava/star-segmentstars or unstars a segment for the connected athlete.strava/explore-segmentsreturns popular segments inside a bounding box, optionally filtered by activity type or climb category.strava/get-clubreturns metadata for a Strava club. Pick the club from the clubs the connected athlete belongs to.strava/list-athlete-clubsreturns the clubs the connected athlete belongs to.strava/list-club-activitiesreturns recent activities posted by members of a club.strava/list-club-adminsreturns the administrators of a club.strava/list-club-membersreturns the members of a club.
The club actions pick the club from a dropdown of the connected athlete's clubs, or accept a club ID mapped from an earlier step.
strava/get-routereturns the metadata for a saved route.strava/get-route-streamsreturns the measurement streams for a saved route.strava/list-athlete-routesreturns the saved routes for an athlete.strava/export-route-gpxdownloads a route as a GPX file you can attach or forward in a later step.strava/export-route-tcxdownloads a route as a TCX file you can attach or forward in a later step.strava/get-gearreturns a single gear record (bike or shoes) attached to the connected athlete.strava/create-uploaduploads a FIT, TCX, or GPX file from an earlier step as a new activity. Strava processes the file asynchronously, so pass the returned upload ID tostrava/get-upload-statusto read the resulting activity ID.strava/get-upload-statusreturns the processing status of an activity upload by upload ID.
Known limitations
- Strava enforces a 200-read and 100-write rate-limit window every 15 minutes, with daily caps of 2000 reads and 1000 writes per access token. When a 429 is returned, TaskJuice surfaces it as a retryable rate-limit error and respects Strava's recommended backoff.
- Strava's real-time webhooks (push subscriptions) are not supported yet. Strava allows one subscription per API application, covering every athlete who authorized it, so TaskJuice triggers poll the athlete activities endpoint instead. Each poll counts against the 15-minute rate limit, so keep the poll interval at the default unless you need faster updates.
- Deleted activities and athletes revoking access cannot be detected by polling.
- The
update-athleteaction only accepts theweightfield. Other profile attributes (name, city, sex) are read-only through the API and must be edited inside Strava. - Manual activities created via
create-activitycannot include GPS streams. Usecreate-uploadwith a GPX, TCX, or FIT file when you need the GPS track.