Strava n8n integrationAutomate Strava with n8n.
Every ride, run and swim logged in Strava can start a workflow. The Strava n8n integration gives you 9 operations on the Activity resource, plus a trigger that listens to 3 events. Written for coaches, clubs and data-minded athletes who are done copying activity data by hand.
Verified Trustpilot reviews · AI, automation & growth agency
What does the Strava n8n integration actually do?
Two nodes carry the whole thing. The Strava node calls the Strava API on your behalf: 9 operations, all sitting on a single resource, Activity. The Strava Trigger does the opposite job, it waits for Strava to tell n8n that something happened and starts the workflow from there. Together they let a workflow read activity data, copy it somewhere useful, or push a correction back into Strava without anyone opening the app.
The most common build is an export. A workflow fires on create, fetches the activity with activity.get, and appends a row to a sheet through the Google Sheets node. Distance, elapsed time and activity type land in columns you control, and the season's training log builds itself while you train. An n8n template does exactly this, workflow 2678.
A second pattern is the weekly recap. Run activity.getAll on a schedule with Return All switched on, collect kudos and comments per activity, then send the summary out with Gmail or drop it into a channel with Slack. Clubs use this to keep a group engaged without anyone playing secretary on a Sunday evening.
The third one writes back. Devices often upload with a generic name, so a workflow catches the create event and calls activity.update to set Name, add a Description, attach a Gear ID or flag the session as a commute. Your feed ends up tidy without a single manual edit.
Know where the node stops. It covers the Activity resource, which is what the 9 operations describe. When the endpoint you need is not one of them, the HTTP Request node calls any Strava API endpoint directly and reuses the same credential through predefined authentication, so you never build a second login. The dedicated node is faster to set up, HTTP Request is the fallback that keeps a workflow moving.
Two behaviors are worth knowing before you ship. Strava allows just one subscription at a time, so a second trigger workflow needs Delete If Exist to take the slot, and that removes the existing one. And the webhook payload carries the object ID only until you switch Resolve Data on. If you are still weighing platforms, the n8n review goes through the trade-offs, and the n8n training covers the expression syntax used throughout this page.
How do you connect Strava to n8n?
- 01
Create a Strava application
Head to Settings then API in your Strava account and create an application. Strava generates a Client ID and a Client Secret for it, the two values n8n needs. A Strava account is the only prerequisite, and the app belongs to you, not to the workflow, so one app can back every automation you build later on.
- 02
Paste the callback domain
In n8n, open a new Strava credential and copy the OAuth Callback URL it shows. That value goes into your Strava app under Authorization Callback Domain, but stripped down: drop the protocol and the relative path. A callback URL of
https://oauth.n8n.cloud/oauth2/callbackbecomesoauth.n8n.cloudon the Strava side. - 03
Finish the OAuth2 handshake
Copy the Client ID and Client Secret from the Strava app into the n8n credential, then run the connection. OAuth2 is the only supported authentication method here, and it is a browser round trip where Strava asks you to authorize the app. Save it once and both the Strava node and the Strava Trigger offer it in their dropdown.
What starts a Strava workflow?
Strava Trigger is the node that starts a workflow when something happens in Strava. It listens to 3 events, listed below by family. Pick one or several, activate the workflow: n8n registers the webhook on your Strava account.
What you see in n8n
Every event, by family
One row per object, one chip per action. The event to tick in the node is object.action; hover a chip to read exactly when it fires.
create.*1create.create
delete.*1delete.delete
update.*1update.update
The trigger also accepts * (any event). Handy for logging, dangerous in production.
Configuration notes
01Set up the Strava Trigger
The Strava Trigger registers a webhook, meaning a URL that Strava calls the moment something happens, and it registers it when you activate the workflow. Each event then reaches n8n within seconds, with no polling loop in between.
Key parameters
- Event: which of the 3 events wakes the workflow. A wildcard value is available if you want all of them through one entry point.
- Object: narrows the trigger to a type of object rather than listening broadly.
- Resolve Data: off by default, the webhook data only contains the object ID. Switch it on and n8n resolves the full record for you.
- Delete If Exist: Strava allows just one subscription at all times, so this deletes the current one to make room. It is destructive, treat it as such.
02Created
The create event fires when something new shows up in the account. It is the busiest of the 3 and the one most workflows are built on.
Key parameters
- Event: set to
createso the workflow ignores edits and removals entirely. - Resolve Data: worth enabling here, since a freshly created object arrives as an ID and most follow-up steps need its actual content.
activity.get when you prefer to fetch the record yourself and keep control over what the next node receives.03Updated
Strava emits update when an existing object changes. Someone renames a session, corrects its type, or edits a description, and the workflow hears about it.
Key parameters
- Event:
update, which keeps creations out of this branch. - Object: useful when only one kind of object matters and the rest is noise.
activity.get gives you the current values to write. Coaches also use it to spot late corrections on a session they already reviewed, long after the debrief is done.04Deleted
Removals come through as delete. The workflow learns that an object is gone, which is something no read operation can tell you after the fact.
Key parameters
- Event:
delete, on its own branch or merged with the other 2 through the wildcard value. - Resolve Data: leave it off here. The record no longer exists, so the object ID is what you work with.
What can the Strava node do?
The Strava node exposes 9 operations across 1 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Create | Get | Get Many | Update | Get Comments | Get Kudos | Get Laps | Get Streams | Get Zones |
|---|---|---|---|---|---|---|---|---|---|
| Activity | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Operations index
Activity
9 operationsCreate an activity
activity.createWhat you see in n8n
Notes & use cases
Logs a session in Strava from data your workflow already holds, which is how sessions recorded outside a connected device still make it into the feed.
Key parameters
- Name: the name of the activity, required and visible in the feed.
- Type: type of activity, for example Run or Ride.
- Start Date: an ISO
8601formatted date time. - Elapsed Time (Seconds): duration in seconds, not minutes.
- Additional Fields: 4 optional fields, Distance in meters, Description, Commute and Trainer.
Get an activity
activity.getWhat you see in n8n
Notes & use cases
Fetches one activity in full, which is the step that turns a bare identifier into something a later node can actually read.
Key parameters
- Activity ID: the required identifier of the activity, typically
{{ $json.object_id }}when it comes straight from the trigger.
Get all activity comments
activity.getCommentsWhat you see in n8n
Notes & use cases
Every comment left under one activity comes back through this call, one item per comment.
Key parameters
- Activity ID: the activity whose comments you want, required.
- Return All: on, n8n pages through the Strava API until every comment is in. Off, Limit caps how many come back.
Get all activity kudos
activity.getKudosWhat you see in n8n
Notes & use cases
Collects the kudos recorded on a single activity, so engagement becomes a number your workflow can act on.
Key parameters
- Activity ID: required, the activity being measured.
- Return All: enabled, every kudos entry is retrieved page by page; disabled, Limit sets the ceiling.
Get all activity laps
activity.getLapsWhat you see in n8n
Notes & use cases
Laps come back one item per lap for the activity you point at, which is where interval work becomes readable.
Key parameters
- Activity ID: required, the session to split.
- Return All: switched on for a full lap list, switched off to stop at Limit.
Get many activities
activity.getAllWhat you see in n8n
Notes & use cases
Walks through the athlete's activity history instead of asking for one session, and it is the only operation here that needs no identifier at all.
Key parameters
- Return All: on, n8n keeps requesting pages until the history is exhausted. Off, Limit decides how many activities come back.
Get all activity streams
activity.getStreamsWhat you see in n8n
Notes & use cases
Streams are the point-by-point series behind an activity, and this operation returns the ones you ask for.
Key parameters
- Activity ID: required, the activity to read.
- Keys: the desired stream types, picked from a multi-select.
heartrate,watts,altitude,cadence,latlng,velocity_smoothandgrade_smoothare all available, among others.
Get all activity zones
activity.getZonesWhat you see in n8n
Notes & use cases
Zone data for a single activity lands in the workflow, ready to be stored next to the session it belongs to.
Key parameters
- Activity ID: required, the session whose zones you want.
- Return All: active, the full set is retrieved; inactive, Limit trims it.
Update an activity
activity.updateWhat you see in n8n
Notes & use cases
Edits an activity that already exists, and only the fields you fill in change. Everything else stays as Strava recorded it.
Key parameters
- Activity ID: required, the activity to modify.
- Update Fields: 8 optional fields, including Name, Description, Sport Type picked from the sport list, Gear ID, Commute, Trainer and Mute Activity, which keeps the session out of Home and Club feeds.
Need help automating Strava with n8n?
A person reads every message.

