Skip to main content

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

  1. Create a Strava API application at strava.com/settings/api and set its Authorization Callback Domain to your TaskJuice domain.
  2. 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), and activity:write (create, update, and upload activities). Add activity:read_all or read_all when you need private activities or private routes.
  3. Open your workspace, navigate to Connections, choose Strava, and click Connect.
  4. Sign in with the Strava account whose data you want to manage on behalf of your client, and approve the requested scopes.
  5. 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-activity polls the authenticated athlete's activity feed and fires once per cycle whose items array carries every activity that appeared since the previous cycle. Drop a Loop node downstream to process each activity individually.
  • strava/new-or-updated-activity polls 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-athlete returns the connected athlete's full profile, including measurement preference, FTP, and follower count.
  • strava/update-athlete updates the connected athlete's weight (the only writable profile field exposed by the Strava API).
  • strava/get-athlete-stats returns recent, year-to-date, and all-time totals for the connected athlete.
  • strava/get-athlete-zones returns the connected athlete's configured heart-rate and power zones.
  • strava/list-activities returns the connected athlete's activities with optional before, after, page, and per-page filters.
  • strava/get-activity returns a single activity owned by the connected athlete, optionally including segment efforts.
  • strava/create-activity logs a manual activity (run, ride, swim, or any sport type Strava recognizes).
  • strava/update-activity updates the name, type, gear, description, or visibility of an existing activity.
  • strava/get-activity-zones returns the heart-rate and power zone distribution for a single activity.
  • strava/get-activity-laps returns the lap breakdown for a single activity.
  • strava/get-activity-streams returns time, distance, heart-rate, and other measurement streams for a single activity.
  • strava/list-activity-comments returns the comments left on a single activity.
  • strava/list-activity-kudoers returns the athletes who have given kudos on a single activity.
  • strava/get-segment returns the metadata for a Strava segment.
  • strava/get-segment-effort returns a single segment effort by ID.
  • strava/get-segment-effort-streams returns the measurement streams for a single segment effort.
  • strava/get-segment-streams returns the measurement streams for a single segment.
  • strava/list-segment-efforts lists the connected athlete's efforts on a segment, with optional time bounds.
  • strava/list-starred-segments returns the segments the connected athlete has starred.
  • strava/star-segment stars or unstars a segment for the connected athlete.
  • strava/explore-segments returns popular segments inside a bounding box, optionally filtered by activity type or climb category.
  • strava/get-club returns metadata for a Strava club. Pick the club from the clubs the connected athlete belongs to.
  • strava/list-athlete-clubs returns the clubs the connected athlete belongs to.
  • strava/list-club-activities returns recent activities posted by members of a club.
  • strava/list-club-admins returns the administrators of a club.
  • strava/list-club-members returns 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-route returns the metadata for a saved route.
  • strava/get-route-streams returns the measurement streams for a saved route.
  • strava/list-athlete-routes returns the saved routes for an athlete.
  • strava/export-route-gpx downloads a route as a GPX file you can attach or forward in a later step.
  • strava/export-route-tcx downloads a route as a TCX file you can attach or forward in a later step.
  • strava/get-gear returns a single gear record (bike or shoes) attached to the connected athlete.
  • strava/create-upload uploads 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 to strava/get-upload-status to read the resulting activity ID.
  • strava/get-upload-status returns 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-athlete action only accepts the weight field. Other profile attributes (name, city, sex) are read-only through the API and must be edited inside Strava.
  • Manual activities created via create-activity cannot include GPS streams. Use create-upload with a GPX, TCX, or FIT file when you need the GPS track.
Was this helpful?