Need Help with Zapier Webhook Setup for Downloading Activities

Hi everyone,

I’m trying to set up a Zapier automation to download my activities from Intervals.icu, but I’m running into issues — I believe the problem is related to authentication.

Could someone help me with the correct webhook settings?
• Should I use GET or Custom Request in Zapier?
• How should I configure the authentication correctly (API key or other method)?

Any help or example setups would be greatly appreciated!

1 Like

Please be moer specific about your issues.
Could just be the fact that Intervals has your activities from Strava in which case Intervals is not allowed to forward them through the API.
If authentication is your issue, use GET with user ‘API_KEY’ (this exact string and not your API key) and your API-key as password. The AthleteID goes in the weblink.
More details here

Yes, I have all of my Strava activities in Intervals.icu

I’m able to curl all activities by using SSH.

Here’s two configurations that I have tried with out success.


It will not work with activities from Strava. Reread above…

'm not sure what you mean? I’m trying to pull activities from intervals.icu into my AI agent using Zapier.

Strava’s policy does not allow Intervals to forward any data originating from their API. Strava’s file is a modified version of your original file and Strava considers that as ‘their’ data’.
You need to get your data directly from the device source into Intervals and then it’s ‘your’ data that can be for arded through the API.
Search Strava Policy here on the forum and you will understand. It’s ridiculous but if Intervals breaks their rules, it will be completely blocked.

I have Garmin also connected to intervals.icu

It should work with that?

Yes, that should work. For all activities which are both on Garmin and Strava (or Garmin only), you have the original FIT file in Intervals and you are not subject to Strava’s policy.

so back to original question.
How should I configure webhook in zapier?

Did you read the link?

For the endpoints look there

You can try it out on this site too

Back to my first response: give more details about your issue…
I have absolutely no experience with Zapier but looking at the screenshots, I’m making some wild guesses regarding what exactly you want to achieve.
The example in your first screenshot should work but will only give you a list of all your activities with basic information.
The second one will probably not work. That’s a request to download the full activity but it has the wrong authentication mode.

I got “access denied” with this configuration.
Not sure did I configured everything correctly?


Don’t use Bearer! use basic authentication as in your first screenshot.

I got “bad message 414” error with this conf.

Do you actually have any idea what you’re doing?
For this type of request you need to give the activity identifier. Not the csv list of activities.
You still haven’t told us what you’re actually after. You want a list of activities or you want a copy of all your Fit files?
A copy of all your FIT files is easy to get if you set up dropbox.

This will copy a FIT to a dropbox folder for every incoming activity.

1 Like

I’m building an AI coaching agent that pulls workout data from Intervals.icu to Zapier. The goal is to store the data in Google Sheets, analyze the workout using ChatGPT, and automatically send the analysis to me via email.

At the moment I’m trying to get the data from Intervals.icu using a Webhooks by Zapier step, but I’m having trouble with the authentication.

ChatGPT can’t analyze FIT file directly.

There is an Strava integration in Zapier, but data that I can pull from Strava to Zapier is limited. That’s way I want to get all data from Interval.icu

This is ChatGPT analysis from my last ride.


  1. Workout Overview

This was a fast-paced, structured ride with moderate elevation (258 m), including threshold intervals and active recovery. Duration was 1:19:43, covering 38.1 km at an average speed of 28.6 km/h. Average power was 205 W, and Normalized Power (NP) was 226 W — indicating a solid, steady effort. Average heart rate was 160 bpm, with a max of 182 bpm, placing the ride mainly in your tempo and threshold zones.

  1. Summary

This session had a clear training effect with an Intensity Factor (IF) of 0.82 and a TSS of 89, which qualifies it as a productive threshold workout. NP of 226 W equals 82 % of your FTP (276 W), which is well within the sweet spot for aerobic development. Average power (205 W = 74 % FTP) confirms solid base intensity. Heart rate data supports this: avg HR 160 bpm (≈87 % of max), peaking at 182 bpm, just below your anaerobic threshold.

  1. Key Takeaways

:fire: Normalized Power 226 W exceeded average power, showing strong effort consistency and elevated training stimulus.
:chart_increasing: TRIMP 198 and HRRC 29 suggest excellent training response and recovery capacity.
:high_voltage: Max Power 611 W (5s) indicates maintained anaerobic burst – great for intervals and surges.
:bullseye: Sweet Spot Time: 14m43s (18.5%) – ideal for FTP development.

  1. Development Suggestions

You’re progressing well – consider building further threshold capacity with 2 × 15 min @ 240–250 W intervals once per week.
Complement this with one weekly long aerobic ride (90+ min Z2), and one VO₂max session (e.g. 4 × 4 min @ 115–120 % FTP).
Target gradually pushing NP closer to 240 W while keeping heart rate stable – this improves power efficiency without overreaching.

  1. Power & Heart Rate Zone Distribution

Based on HR data:
• Z2 (Aerobic): ~12 %
• Z3 (Tempo): ~19 %
• Z4 (SubThreshold): ~39 %
• Z5 (Threshold): ~15 %
→ Over 50 % of the ride was in Z4–Z5 zones – a strong signal of a highly productive effort.
Power distribution also shows ~15 min in Sweet Spot zone, which is excellent for FTP improvement.

  1. Coach’s Comment

This was a high-quality, purposeful workout. You held strong power at threshold with good control and no signs of overreaching. Heart rate zones confirm you’re capable of sustaining work near your anaerobic threshold.
You’re clearly on the right path toward your FTP > 300 W goal — just stay consistent with your training, sleep, and nutrition. Impressive work – keep pushing forward! :flexed_biceps:

1 Like

Thanks for your help, everyone! I managed to complete it using Zapier’s ‘Code’ feature along with JavaScript.

1 Like

Too late, but my solution to get intervals data in google sheets was to get a zap from strava, get zapier to write a random thing into the google sheets and then use the google sheets scripting extension… app script?? to grab the data from intervals and populate the google sheet.

Then I manually copy the data from my last workout into chatGPT and it analyses it as you’ve shown.

But yay that you worked out your own solution!

At the moment, the process is triggered by a new workout from Strava. With the help of Claude AI, I wrote a JavaScript script that first pulls the last workout ID from Intervals.icu and then retrieves the workout details. I also use a detailed ChatGPT prompt to analyze my workout, and Gmail sends the results to my email.

If someone is interested I can share my JavaScript and chatGPT prompt.