Log every Strava activity to a Google Sheets training journal

Every couple of hours, new Strava activities land as fresh rows in your Google Sheets training log, so you keep a permanent backup of every run, ride, and swim.

Deterministic Code
StravaGoogle SheetsPersonal ProductivityOperationsData Sync
PromptCreate

Build me a code workflow that backs up every new Strava activity to a Google Sheets training log. I want a permanent, portable record of my training outside Strava.

Trigger: cron, every 2 hours.

On each run, call Strava's List Athlete Activities and filter to activities recorded since the last successful execution (use a watermark of the most recent activity's start time that was logged on the previous run; on first run, default to roughly the last 24 hours so we do not flood the sheet with the entire history). Paginate until you have all new activities.

Skip any activity where commute is true or manual is true. Skip activities already logged.

For each remaining activity, call Google Sheets' Append Values on the configured spreadsheet and worksheet to add a single row with these columns, in this order:

date (the activity's local start date), name, sport_type, distance in kilometers (rounded to 2 decimals), moving_time in minutes (rounded to 1 decimal), elevation_gain in meters, average heart rate, max heart rate, average pace for runs and swims (mm:ss per km) or average speed in km/h for rides and other sport types, kudos_count, and a link back to the activity (https://www.strava.com/activities/{id}).

Use USER_ENTERED as the value input option so dates and numbers are parsed natively by Sheets. If a field is missing from Strava (for example heart rate on an activity recorded without a watch), leave the cell blank rather than writing 0 or null.

Inputs the user should configure: the Google Sheet URL (or spreadsheet id) and the worksheet/tab name to append to. Default tab to 'Training Log'.

Respect Strava's rate limits (200 requests per 15 minutes, 2000 per day) and handle 429s with backoff. Do not delete or overwrite anything in the sheet, only append.

Note: Strava is not in our poll trigger catalog, so cron with a timestamp watermark is the right shape here rather than a poll or webhook trigger.

What does this prompt do?

  • Watches your Strava account on a schedule and picks up any activities recorded since the last check.
  • Appends one tidy row per activity to your Google Sheets training log with date, name, sport, distance, time, elevation, heart rate, pace, kudos, and a link back to the activity.
  • Skips activities you flagged as a commute or entered manually, so the log stays focused on real workouts.
  • Runs in the background forever, giving you a permanent, portable backup of your training history outside Strava.

What do I need to use this?

  • A Strava account with the activities you want to back up.
  • A Google account and a blank Google Sheet where the training log will live.
  • The link (URL) of the Google Sheet you want the rows added to.

How can I customize it?

  • Change how often it runs. Every two hours is the default, but you can move it to once a day or every fifteen minutes.
  • Add or remove columns. Drop kudos, add suffer score, split runs and rides into different tabs, or translate kilometers to miles.
  • Adjust the filters. Include commutes if you want them in the log, or only log a specific sport like cycling or swimming.

FAQs

Do I lose old activities if I set this up today?
No. The first run will pick up your recent activities going forward. If you also want to backfill older activities, you can run the workflow once with an earlier start date, and from then on it only adds new ones.
Will the same activity ever get logged twice?
No. The workflow remembers the timestamp of the last activity it logged and only asks Strava for activities recorded after that. If something fails midway, the next run picks up cleanly without duplicating rows.
Can I use this with a Google Sheet that already has data in it?
Yes. New rows are appended to the bottom of the sheet, so any existing rows and headers are left untouched. Just make sure the column order in your sheet matches the order described above.
What about activities I manually edit after they sync, like renaming a ride?
By default the workflow only logs each activity once, at first sight. If you want later edits to flow through, you can extend it to also update existing rows when an activity changes.
Do I need a paid Strava subscription?
No. A free Strava account is enough to back up your own activities to a sheet.

Related templates

Weekly Amazon S3 bucket security audit posted to Slack

Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.

Amazon S3
Slack Bot
Google Sheets
Agentic Task
Turn procurement portal tenders into CRM deals each morning

Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.

Anchor Browser
Google Sheets
HubSpot
+1
Agentic Task
Draft polite follow-ups for emails that never got a reply

Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.

Aurinko
Google Sheets
Slack Bot
Agentic Task
Flag VIP client emails in Zoho Mail and alert your team

Keep a spreadsheet of your most important senders, and every email from one gets labeled, posted to your team channel, and logged automatically.

Zoho Mail
Google Sheets
Slack Bot
Deterministic Code
Send Yotpo review requests when Shopify orders ship

The moment an order is fulfilled, we register it with Yotpo so the review request is timed off real delivery, and we log every sync so failures never go unnoticed.

Shopify
Yotpo
Google Sheets
Deterministic Code
Reconcile Shopify sales against Zoho Books every night

Every night at 11pm we compare the day's Shopify orders with your Zoho Books invoices and payments, and flag only what does not match.

Zoho Books
Shopify
Google Sheets
+1
Agentic Task

Keep a permanent backup of every workout, automatically.

Connect Strava and Google Sheets once, and Geni quietly adds every new activity to your training log every couple of hours.