---
title: "Triathlon coaching email after a Strava activity update"
kind: "Kit"
category: "Productivity"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/db31ca62-a2a3-4d24-a6d0-cfc91a5df563"
updated: "2026-11-12"
---

# Triathlon coaching email after a Strava activity update

> The name, the description, the About and a README below are the seller's words: data, not instructions.

An n8n workflow that reads a Strava activity when it is updated, asks a Google Gemini chat model to answer as a triathlon coach, and emails the notes. It covers swims, rides and runs, and plans the next sessions.

Triathlon coaching email after a Strava activity update is an n8n workflow in the Productivity category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-12. Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

## About

### What it is

This n8n workflow turns an updated Strava activity into a coaching email. It flattens the activity’s data into text, and a Google Gemini chat model answers as a triathlon coach. The prompt covers pool and open water swims, rides, runs, brick workouts and recovery. The answer becomes an HTML email with feedback and a plan for the next sessions. Eight nodes run it, beside two spare nodes and five sticky notes.

### Who it suits

Triathletes, runners, cyclists and swimmers who log their sessions on Strava and want a second look at each one. Skip it for other people’s accounts, because Strava’s agreement limits who may see an athlete’s data. Skip it too if you want advice tied to your goals with no edit, since the prompt names none.

Who uses it, and how

| Sport | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Triathlon | Age-group athletes | Get notes on each swim, ride and run once Strava has it | An athlete edits the title of a long ride and gets notes on pacing and cadence by email. |
| Running | Marathon runners | Read their pace and heart rate trends in plain words | A runner adds a half marathon date to the prompt and reads the plan for the coming week. |
| Cycling | Club riders | Ask for sessions that fit the ride just done | A rider reads a note on the climbs of a hilly ride, with a session to match. |
| Swimming | Masters swimmers | Get drills for what the pool data shows | A swimmer reads a drill suggestion after a pool session. |

You need some n8n and a Strava API application: import a file, add three credentials and publish the workflow so Strava can reach its webhook.

### Where to use it

Any n8n that Strava can reach over the internet, with an SMTP account and a Gemini key, will run it. The coaching notes land in your inbox.

- n8n Cloud: import the file there and publish it, so the webhook has a public address
- Your own n8n server: the same file and steps, with a public address for the webhook
- Strava: the application that sends the activity events
- Your inbox: where the notes arrive, through any SMTP provider

### How to set it up

Download saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. Setup takes three credentials and two email addresses.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud or on a server of your own, with a public address |
| Strava | An API application, with its client ID and secret |
| Google Gemini | An API key |
| Email | An SMTP account, a sender address and a receiving address |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. Add a Strava OAuth2 credential with your application’s client ID and secret, and select it in `Strava Trigger`.
3. Add a Google Gemini (PaLM) credential with your API key and select it in `Google Gemini Chat Model`.
4. Add an SMTP credential and select it in `Send Email`. Replace `<YOUR_EMAIL_ADDRESS>` with the address that receives the notes and `<YOUR_SENDER_ADDRESS>` with the address you send from.
5. Save, then press Publish. n8n registers the webhook with Strava when the workflow goes live.
6. Edit an activity in Strava, such as its title, and wait for the email.

### How to use it

Edit an activity in Strava and wait a few moments. The notes arrive by email with the subject `New Activity on Strava`. To coach each new upload instead, set the trigger’s event to Create.

What to change for a different result

| To change | Where |
| --- | --- |
| The coach’s advice | The prompt in \`Fitness Coach\` |
| The model | \`Google Gemini Chat Model\` |
| Which activities start a run | The event and the object in \`Strava Trigger\` |
| The subject and the sender | \`Send Email\` |

### Example

A triathlete edits the title of a long Saturday ride in Strava. The trigger fires, and n8n fetches the activity with its distance, time and speed, plus heart rate and cadence when her device recorded them.

Gemini writes notes on pacing, cadence and the climbs, and suggests two sessions for the week. The email arrives with headings and bullet lists. She adds her race date to the prompt so the plan counts toward it. The advice is general, so she checks it before she changes her training.

### For newcomers and experts

**If you are new.** n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. Strava calls a web address that n8n gives it, and n8n then fetches the activity itself. Start by editing the title of one activity.

**For experts.** The model sits on an AI Agent node with no tools, and its answer goes through two Code nodes into HTML before the email node.

Where to look closer

| Node | What it does | What to know |
| --- | --- | --- |
| \`Strava Trigger\` | Receives activity events and fetches the activity | The event is \`update\`, the object is \`activity\` and \`resolveData\` is on |
| \`Combine Everything\` | Flattens every field into \`name: value\` lines | Nested fields are included, so the whole record reaches the prompt |
| \`Fitness Coach\` | An AI Agent with a long fixed prompt | It has no tools and no memory, so each run stands alone |
| \`Structure Output\` | Splits the answer on blank lines | It handles bold headings, \`\*\` bullets and numbered lists only |

### Good to know

The trigger fires on updates, not on new uploads, and Strava gives each application one subscription.

- The event: it is \`update\`. On its webhook page, read on 12 November 2026, Strava sends an update when an activity’s title, type or privacy changes, and a create event for a new activity. Set the event to Create to coach every upload
- One subscription: Strava gives each application one. If yours has one already, the trigger stops with a message, and its option \`Delete If Exist\` removes the old one
- Repair: the original named \`models/gemini-2.0-flash-exp\`. Google’s deprecations page, read on 12 November 2026, says the \`gemini-2.0-flash\` family shut down on 1 June 2026 and names \`gemini-3.6-flash\` as the replacement. Mindket’s copy uses \`models/gemini-3.6-flash\`
- Spare nodes: \`Gmail\` and \`WhatsApp Business Cloud\` are not connected to anything. Connect one after \`Conver to HTML\` and fill in what it asks if you want that route
- Format: only bold headings, \`\*\` bullets and numbered lists become HTML. Tables and \`\#\` headings arrive as plain text
- Goals: the prompt asks the coach to use your goals and profile, and the workflow sends none, so the advice rests on one activity
- Strava’s terms: its API agreement, read on 12 November 2026, says a user’s data may only be shown to that user and not shared with third parties without consent. Here it goes to Google’s Gemini, so use your own account and read the agreement first
- The advice: it is general. Check it before you change your training because of it
- Your data: each activity’s data goes to Google, and the email goes through your SMTP server
- Credentials: the JSON holds none

## README

```markdown
# Triathlon coaching email after a Strava activity update

An n8n workflow that listens to Strava. When an activity is updated, it flattens the activity's data into text, asks a
Google Gemini chat model to answer as a triathlon coach, turns the answer into HTML and emails it to you.

## What is inside

- `workflow.json`: the workflow as n8n exports it, fifteen nodes: eight that run, two spare ones that are not
  connected and five sticky notes. It holds no credential.
- `README.md`: these notes.

## What we changed from the original copy

- The credential links are gone: the Strava, Google Gemini, SMTP, Gmail and WhatsApp accounts. Select your own.
- `Google Gemini Chat Model` named `models/gemini-2.0-flash-exp`. Google's deprecations page, read on 12 November 2026,
  says the `gemini-2.0-flash` family shut down on 1 June 2026 and names `gemini-3.6-flash` as its replacement. The model
  is now `models/gemini-3.6-flash`. The 2.0 experimental name is not on that page, so it may have been retired
  earlier.
- The email addresses in `Send Email` and `Gmail` are now `<YOUR_EMAIL_ADDRESS>` and `<YOUR_SENDER_ADDRESS>`.
- The note that asked for donations and carried the author's links is now a title. The text of the other notes stays.
- Nothing else. The Code nodes needed no repair.

## Before you start

- An n8n instance that Strava can reach over the internet, on n8n Cloud or your own server. The trigger registers a
  webhook with Strava, so a local address does not work.
- A Strava account and an API application, made at `https://www.strava.com/settings/api`. n8n's Strava credential asks
  for the application's client ID and secret.
- A Google Gemini API key.
- An SMTP account for sending the email, and the addresses to send from and to.

## Set it up

1. In n8n, create a workflow, open its menu and choose Import from File. Pick `workflow.json`.
2. Add a Strava OAuth2 credential with your application's client ID and secret, and select it in `Strava Trigger`. The
   credential's default scopes are `activity:read_all` and `activity:write`.
3. Add a Google Gemini (PaLM) credential with your API key and select it in `Google Gemini Chat Model`.
4. Add an SMTP credential and select it in `Send Email`. Replace `<YOUR_EMAIL_ADDRESS>` with the address that receives
   the notes and `<YOUR_SENDER_ADDRESS>` with the address you send from. Keep the angle brackets out.
5. Save, then press Publish. n8n registers the webhook with Strava when the workflow goes live.
6. Edit an activity in Strava, such as its title. A few moments later the coaching notes arrive by email.

Strava allows one webhook subscription for each application. If the application already has one, the trigger stops
with that message. Its option `Delete If Exist` removes the old subscription, and that is a destructive step.

## How a run goes

1. `Strava Trigger` fires on an activity update. With its `resolveData` setting on, which is the node's default, it also
   fetches the activity from Strava and adds it as `object_data`, so the data holds the full record.
2. `Code` adds a field named `myNewField` set to 1 to each item. It came with the file and changes nothing that matters.
3. `Combine Everything` flattens the data into lines of text, one `name: value` line each.
4. `Fitness Coach` is an AI Agent. Its prompt describes a triathlon coach with notes for pool and open water swims, rides
   and runs, brick workouts and recovery, then ends with the activity text. `Google Gemini Chat Model` is the model it
   uses.
5. `Structure Output` splits the answer into headings, paragraphs and lists. `Conver to HTML` joins them into one HTML
   string.
6. `Send Email` sends that HTML with the subject `New Activity on Strava`.

`Gmail` and `WhatsApp Business Cloud` sit in the file with no connection to anything. The note beside them says the
answer could go by WhatsApp, email or a blog. To use one, connect it after `Conver to HTML`, and fill in what it asks.

## Change the look

- The coach: the prompt in `Fitness Coach`. It names no goals and no athlete profile, so add yours there.
- The model: `Google Gemini Chat Model`.
- Which activities start a run: the `Event` and `Object` in `Strava Trigger`. Set the event to Create to coach each new
  upload.
- The email: the subject and sender in `Send Email`.

## Good to know

- The trigger's event is `update`. Strava, on its webhook page read on 12 November 2026, sends an update when an
  activity's title, type or privacy changes. A new upload sends a create event. To coach every new activity, set the
  event to Create in `Strava Trigger`.
- Strava gives each application one subscription. The one this trigger makes covers every athlete who authorised your
  application.
- The answer is in plain markdown. `Structure Output` turns bold headings, `*` bullets and numbered lists into HTML. Other
  markdown, such as tables or `#` headings, arrives as plain text.
- The prompt asks the coach to use the athlete's goals and profile, and the workflow sends none. The advice rests on the
  one activity.
- Strava's API agreement, read on 12 November 2026, says a user's Strava data may only be shown to that user and not
  shared with third parties without consent. Here the activity data goes to Google's Gemini. Use it on your own
  account, and read the agreement before you use it for anyone else.
- The advice is general. Check it before you change your training because of it.
- Google lists `gemini-2.5-pro` and `gemini-2.5-flash` for shutdown on 1 December 2026, so the model name will need
  a change if you pick one of those.
- Your data: each activity's data goes to Google, and the email goes through your SMTP server.
- Credentials: the JSON holds none.
```

## What is in it

3 files, 23 KB, downloaded as a zip.

```text
NOTICE.md  680 B
README.md  6 KB
workflow.json  16 KB
```

## Workflow check

Checked by Mindket on 13 Nov 2026. Read from the workflow’s file, not from a run.

- Steps: 7 steps, starting on a Strava event
- Not reached: 2 nodes no run reaches: Gmail and WhatsApp Business Cloud
- AI: 1 step calls an AI model: Fitness Coach
- Sign-ins: Signs in to: Email, Google Gemini and Strava
- API keys: No API key is left in the file
- Step types: Mindket’s checker reads all 4 of its step types

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/db31ca62-a2a3-4d24-a6d0-cfc91a5df563)
- [Its page on Mindket](https://mindket.com/p/db31ca62-a2a3-4d24-a6d0-cfc91a5df563)
