# Daily health metrics to a Google Sheet log

> Log yesterday's steps, distance, calories, resting heart rate, sleep, and weight to a Google Sheet every morning so your history builds up over time.

- Workflow type: code
- Services: Google Health, Google Sheets
- Categories: Personal Productivity
- Published: 2026-07-12

## What it does

- Every morning at 7am, pulls yesterday's steps, distance, calories, resting heart rate, sleep duration, and weight from your Google Health data.
- Appends one new row per day to a Google Sheet you choose, with one column per metric.
- Skips any metric that has no reading for the day, leaving that column blank instead of failing the whole run.
- Builds a long-term personal health log you can chart, filter, or analyze however you like.

## What you'll need

- A Google account with Fitbit, Pixel Watch, or other trackers syncing into Google Health
- A Google Sheets spreadsheet with a header row (date, plus one column for each metric you want to track)

## Prompt

Every morning at 7am, pull yesterday's health metrics from Google Health and append one row per day to a Google Sheets spreadsheet so it becomes a long-term personal health log I can chart or analyze however I like.

Fetch six metrics for the previous calendar day: steps, distance, total calories, resting heart rate, sleep duration, and weight.

Use the Daily Roll-Up Data Points operation for the aggregatable activity metrics (steps, distance, total-calories) over a single civil-day window covering yesterday. Use the List Data Points operation for daily-resting-heart-rate, sleep, and weight, filtered to yesterday's window, taking the latest reading when a metric has multiple entries and summing sleep session durations for the total.

Skip any metric that has no data for the day rather than failing the workflow. If I did not wear my tracker or did not weigh in, that column should be left blank in the appended row instead of aborting the run.

Once the metrics are gathered, call the Append Values operation on Google Sheets to append a single row to the target spreadsheet. Column order is date, steps, distance, total calories, resting heart rate, sleep duration, weight, matching the header row that already exists on the sheet.

Take the spreadsheet ID and sheet tab name as configurable inputs so I can point the workflow at whichever health log I set up. Use USER_ENTERED so numbers and the date get parsed the way I would type them into the UI.

## How to customize

- Change the run time or time zone so the daily row lines up with when your tracker finishes syncing.
- Add or remove metrics: active minutes, floors, VO2 max, and blood oxygen all live in the same Google Health data.
- Point the workflow at a different spreadsheet or sheet tab, or split metrics across multiple tabs (activity, sleep, body).

## FAQ

### Which devices does this work with?

Anything that syncs to Google Health: Fitbit, Pixel Watch, and third-party trackers connected through the Google Health platform. Google Health is the successor to the Fitbit Web API, so any Fitbit that was reporting there will keep working here.

### What happens if I didn't wear my tracker one day?

The row still gets appended for that date, but any metric with no reading is left blank. The workflow does not fail on missing data — you just see empty cells for the metrics your tracker did not record.

### Do I need to build the spreadsheet before turning this on?

Yes. Create a spreadsheet with a header row (Date, Steps, Distance, Total Calories, Resting Heart Rate, Sleep, Weight) and point the workflow at the spreadsheet ID and tab name. From then on, one row per day gets appended automatically.

### Can I add other metrics like active minutes or blood oxygen?

Yes. Google Health tracks a wide range of metrics — active minutes, active zone minutes, floors, VO2 max, heart rate variability, blood oxygen, and more. Add the metric to the spreadsheet header, add a matching step to the workflow, and it will start logging.

### How far back does the history go?

The log starts fresh the day you turn the workflow on and grows by one row per day. If you want history from before then, do a one-time backfill by exporting past data from Google Health and pasting it into the sheet.

Use this prompt in General Input: https://www.generalinput.com/prompts/daily-health-metrics-to-a-google-sheet-log