Resources · n8n integration

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

Why automate

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.

Connect

How do you connect Strava to n8n?

  1. 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.

  2. 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/callback becomes oauth.n8n.cloud on the Strava side.

  3. 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.

Triggers

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.*1
  • create.
    • create
delete.*1
  • delete.
    • delete
update.*1
  • update.
    • update

The trigger also accepts * (any event). Handy for logging, dangerous in production.

Configuration notes

01Set up the Strava TriggerThe 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.

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.
When to use it
any time you want Strava to push, rather than a schedule that asks again and again.
02CreatedThe 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.

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 create so 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.
Use cases
a finished ride hits the feed and the workflow files it, renames it, or notifies a training group. Pair it with activity.get when you prefer to fetch the record yourself and keep control over what the next node receives.
When to use it
for anything that should happen once per new entry and never again.
03UpdatedStrava emits update when an existing object changes. Someone renames a session, corrects its type, or edits a description, and the workflow hears about it.

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.
Use cases
keeping an external copy honest. If a row already exists in your log, an update event tells you to refresh it instead of appending a duplicate, and 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.
When to use it
whenever your data lives in two places and the copy must follow the original rather than drift away from it.
04DeletedRemovals come through as delete. The workflow learns that an object is gone, which is something no read operation can tell you after the fact.

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.
Use cases
cleanup. Drop the matching row from a spreadsheet, archive a record, or flag the gap so a monthly total does not silently include a session that was removed on purpose. Storing the object ID alongside every row you write makes that match trivial later on, which is worth doing from the very first export.
When to use it
when an external system would otherwise keep data Strava no longer has, and nobody would notice the mismatch for weeks.
Actions

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.

Resources × operations matrix
ResourceCreateGetGet ManyUpdateGet CommentsGet KudosGet LapsGet StreamsGet Zones
Activity✓✓✓✓✓✓✓✓✓

Activity

9 operations
01

Create an activity

activity.create

What 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 8601 formatted date time.
  • Elapsed Time (Seconds): duration in seconds, not minutes.
  • Additional Fields: 4 optional fields, Distance in meters, Description, Commute and Trainer.
Use cases
a gym session typed into a form lands in Strava with the right duration and label.
02

Get an activity

activity.get

What 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.
Use cases
the trigger fires on a new activity and hands you an ID, this operation gets the record behind it so the next node can write a real row instead of a number. It is also the quickest way to re-read a single session before deciding whether it needs an update.
03

Get all activity comments

activity.getComments

What 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.
Use cases
a club digest that quotes what people said under the weekend group ride. On a busy activity, leave Return All off while you build and testing stays fast.
04

Get all activity kudos

activity.getKudos

What 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.
Use cases
a monthly board of the sessions that got the most reactions, or a rule that only reposts a ride once it passes a threshold you set. Counting the returned items is usually enough, no extra call needed.
05

Get all activity laps

activity.getLaps

What 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.
Use cases
a coach pushes each lap of a track session into a sheet to compare splits week over week. Sessions with many short laps are exactly the case where Return All matters, since a truncated list hides the end of the workout.
06

Get many activities

activity.getAll

What 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.
Use cases
the first run of an export, filling a season of training in one execution before the trigger takes over for new sessions. Also handy for a scheduled recap that only ever needs the latest few.
07

Get all activity streams

activity.getStreams

What 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_smooth and grade_smooth are all available, among others.
Use cases
pulling heart rate and power out of a hard interval session to chart it elsewhere. Select only the keys you plan to use, since each one adds a full series to the payload.
08

Get all activity zones

activity.getZones

What 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.
Use cases
a training log where each session carries its zone breakdown alongside distance and duration, so a month of work can be reviewed by intensity rather than by kilometers alone.
09

Update an activity

activity.update

What 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.
Use cases
renaming every generic upload the second it arrives, or attaching the right pair of shoes automatically.
Need help

Need help automating Strava with n8n?

A person reads every message.

FAQ

Strava and n8n, the questions that come up

01Is the Strava n8n integration free?
Yes on the n8n side. The Strava node and the Strava Trigger ship with n8n, so there is nothing to install and nothing extra to pay for them. That holds both on n8n Cloud, the hosted offer run by n8n, and on a self-hosted instance under the Community Edition and its Sustainable Use licence. A workflow behaves the same way in either setup, which means you can prototype on Cloud and move it onto your own server later without rewriting anything. What a Strava account itself costs is a separate question and this page does not cover it.
02What credentials do you need for Strava in n8n?
OAuth2, and it is the only supported authentication method. You create a Strava application under Settings then API, which generates a Client ID and a Client Secret. Both go into a single Strava credential in n8n, along with one setup detail: the OAuth Callback URL shown by n8n has to be copied into the Strava app as an Authorization Callback Domain, without the protocol and without the relative path. Create that credential once in the Credentials menu and every workflow can reuse it, with both the node and the trigger offering it in their dropdown.
03What are the limits of the Strava node in n8n?
There are 9 operations and they all sit on one resource, Activity. When the endpoint you need is not among them, the HTTP Request node calls the Strava API directly and reuses the same credential through predefined authentication, so nothing has to be rebuilt. On reads that return lists, Return All chains through the API pages until everything is in, while leaving it off caps the result at Limit. One more constraint sits on the trigger side: Strava allows just one subscription at a time, so a second trigger workflow has to take the slot with Delete If Exist, which is destructive.
04Does the Strava Trigger react in real time?
Yes. It works by webhook, which is simply a URL that Strava calls whenever something happens. n8n registers that URL with Strava when you activate the workflow, and each of the 3 events arrives within seconds, with no polling in between. One detail changes what you receive: by default the webhook data only contains the object ID, so turn Resolve Data on if the next node needs the full record. Otherwise pass the ID to Get an activity and fetch it yourself, which gives you more control over the shape of the data.
05n8n or Make for Strava?
It depends on where you want your data and how you want to pay. Make is a hosted automation platform with no self-hosting option, billed per operation, so cost rises with volume. n8n runs on your own server through Docker or npm, or on n8n Cloud if you prefer not to manage it, and a workflow is identical either way. For Strava specifically, both approaches reach the same API, so the real question is control over the data and the cost model at the volume you expect. Visual logic differs too, and that one comes down to habit.