-
Notifications
You must be signed in to change notification settings - Fork 691
Tutorial Apple Health via Shortcuts
Getting your NOOP data into Apple Health on iPhone takes one extra hop compared to macOS. This guide explains why that hop exists, then walks you through the full setup: turn on Export for Shortcuts, let NOOP write a small handoff file, and run an Apple Shortcut on an automation so your heart rate, HRV, and steps flow into Apple Health automatically.
It sounds fiddly written out — in practice it's a few taps once, then it runs itself. Everything stays on your iPhone the whole way; NOOP never talks to a server.
On macOS, NOOP reads an Apple Health export file you hand it (see Importing History). That's a one-way read. Writing into Apple Health is different — it needs Apple's HealthKit, and HealthKit write access has a catch on a sideloaded iPhone.
NOOP on iOS is a sideload — you install the .ipa yourself via AltStore or SideStore (see Installation), signed with a free Apple signing identity. A free signing identity can't grant an app HealthKit write entitlement. That's Apple's rule, not a NOOP limitation — it applies to any free-signed app. So NOOP can't push samples straight into Apple Health the way an App Store app would.
The workaround sidesteps HealthKit entirely:
-
NOOP writes a plain text file (
noop_sync.txt) into its own Documents folder — one line per 15-minute window, with your heart rate, HRV, and steps. - An Apple Shortcut reads that file and writes the values into Apple Health using the Shortcuts app's own Health actions — which are allowed, because the Shortcuts app itself is a normal, App-Store-signed Apple app with full HealthKit access.
- An automation runs the Shortcut for you on a schedule, so you never think about it again.
In short: NOOP hands a file to Shortcuts, and Shortcuts does the actual writing. No HealthKit entitlement needed on NOOP's side, no account, no network.
macOS and the from-source iOS build don't need this. If you build NOOP from source with your own full developer identity, or you're on macOS, the normal Apple Health paths apply. This guide is specifically for the free-signed sideload on iPhone.
- NOOP installed on your iPhone via AltStore / SideStore (see Installation).
- The Shortcuts app (built into iOS).
- A community Shortcut — the maintainer-shared Shortcuts are linked in the project Issues (look for the "Export for Shortcuts" discussion) and pinned in the subreddit. You can also build your own in a couple of minutes (Part 4 below).
- A few minutes, once.
- Open NOOP on your iPhone.
- Go to Settings.
- Find Export for Shortcuts and switch it on.
What you'll see: NOOP confirms the feature is active and tells you it will keep noop_sync.txt up to date in its Documents folder. From now on, whenever NOOP has new data (from a connected strap or an import), it refreshes that file.
Where the file lives: Files app → On My iPhone → NOOP → noop_sync.txt. You don't normally open it by hand — the Shortcut does — but it's there if you want to look.
noop_sync.txt is intentionally tiny and simple. Each line is one 15-minute window:
2026-06-12T08:00,HR=61,HRV=48,STEPS=420
2026-06-12T08:15,HR=64,HRV=45,STEPS=515
2026-06-12T08:30,HR=72,HRV=41,STEPS=980
Three things to understand, because they explain everything about how the sync behaves:
NOOP only writes windows it hasn't exported before. After the Shortcut runs and the data is safely in Apple Health, the file truncates — it empties out and waits for the next new window. So:
- The file is usually short, or even empty between updates. Empty is normal and correct — it means "nothing new since last time".
- You don't get the same window written twice, which means you don't get duplicate samples in Apple Health.
Fixed in v2.2.1. Earlier versions could re-emit a window that had already been synced, which produced duplicate Apple Health entries if a Shortcut run overlapped. v2.2.1 made the export strictly differential and made truncation reliable, so the file never replays old data. If you're on an older build, update first — it's the cleanest fix for duplicates.
If something gets out of sync — you set up a new Shortcut, your automation missed a stretch, or you just want to backfill — use Settings → Export for Shortcuts → Re-export last 7 days. This re-stages the past week into noop_sync.txt so the next Shortcut run writes it all.
Use it deliberately, not habitually: re-exporting a window that's already in Apple Health can create duplicates (see the de-dup caveat below). It's a recovery tool, not a routine.
Each 15-minute window carries an averaged HR, an HRV reading, and a step count for that slice of time. That granularity matches how Apple Health likes to store interval data and keeps the file small even across a busy day.
The quickest route is the community Shortcut.
- Open the community Shortcut link — linked in the project Issues ("Export for Shortcuts" discussion) and pinned in the subreddit.
- Tap to add it to your Shortcuts library. iOS shows you exactly what it does before you add it — it reads
noop_sync.txtfrom NOOP's folder and writes HR / HRV / Steps to Apple Health. - The first time it runs, iOS asks permission to read the file and to write to Health. Allow both. (These permissions are between you, Shortcuts, and Apple Health — NOOP isn't in that loop.)
- Run it once manually to confirm it works: open the Shortcut and tap the play button. Then check Apple Health → Browse → Heart → Heart Rate for fresh entries.
If you'd rather build your own, see Part 4.
Two minutes in the Shortcuts app. The shape is:
-
Get File → point it at NOOP's Documents folder →
noop_sync.txt. (Enable "Show Document Picker" the first time, navigate to On My iPhone → NOOP, then disable it so it runs unattended.) - Get Text from Input (the file's contents).
- Split Text by New Lines → you now have one item per window.
-
Repeat with Each line:
- Split the line by
,to separate the timestamp and theHR=/HRV=/STEPS=fields. - Pull the number out of each field.
- Log Health Sample → Heart Rate (the HR value), with the window's timestamp.
- Log Health Sample → Heart Rate Variability (the HRV value).
- Log Health Sample → Steps (the STEPS value).
- Split the line by
That's the whole thing. The community Shortcut is just a tidied, error-handled version of this.
Manual runs work, but the point is to never think about it. Use a Personal Automation:
- Shortcuts app → Automation tab → + (top right) → Create Personal Automation.
- Pick a trigger. Good choices:
- Time of Day — e.g. every hour, or a few times a day. Simple and predictable.
- App → NOOP → Is Closed — sync right after you finish a NOOP session, when fresh data has just landed.
- When charging starts, or arriving home — whatever fits your routine.
- Add a Run Shortcut action and select your NOOP sync Shortcut.
- Turn off "Ask Before Running" so it runs silently.
What you'll see: nothing, ideally — that's the goal. The automation fires, the Shortcut reads any new windows, writes them to Apple Health, and the file truncates. On a quiet stretch with no new data, the Shortcut reads an empty file and does nothing, which is fine.
iOS automation note: time-based automations on iPhone are reliable; some location/app triggers occasionally need the phone unlocked. If a run is skipped, the differential design means the data simply waits in the file for the next run — nothing is lost.
Apple Health doesn't reject duplicate samples on its own. NOOP's side is now duplicate-safe (differential export + truncation, v2.2.1), and a well-behaved Shortcut won't re-write a window. But duplicates can still creep in from things outside NOOP's control:
- Running Re-export last 7 days and then letting the Shortcut write windows that were already synced.
- Having two automations (or a manual run and an automation) both processing the same file before it truncates.
- Importing the same data twice from different sources — e.g. NOOP-via-Shortcuts and a WHOOP→Apple Health bridge both logging the same heart rate.
Keep it clean:
- Use one automation, or one manual habit — not both.
- Only use Re-export last 7 days when you genuinely need to backfill.
- Let the file truncate between runs (don't trigger the Shortcut twice in quick succession).
Cleaning up duplicates that already exist in Apple Health:
Apple Health stores samples per source, which makes cleanup straightforward:
- Open Apple Health → Browse → the metric (e.g. Heart Rate).
- Scroll down to Data Sources & Access → tap the source that the Shortcut writes under (it'll be Shortcuts or the name you logged samples with).
- From there you can delete all data from that single source without touching samples your watch or other apps contributed.
- Then Re-export last 7 days in NOOP and run the Shortcut once to repopulate cleanly.
Because each writer is its own source, you can always wipe just the Shortcut's contributions and start fresh — your other Apple Health data is untouched.
The Shortcut runs but Apple Health shows nothing new. The file was probably empty (no new windows since last run) — that's expected. To force data through, run Re-export last 7 days in NOOP, then run the Shortcut once.
"Couldn't find the file" / picker keeps appearing.
The Get File step needs to point at On My iPhone → NOOP → noop_sync.txt. Re-select it with the document picker once, confirm it works, then turn the picker off so the automation runs unattended. Make sure Export for Shortcuts is still on in NOOP Settings.
I see duplicate heart-rate entries. First, confirm you're on v2.2.1 or newer — the differential fix lives there. Then check you don't have two automations (or a manual run plus an automation) racing on the same file. Clean up existing dupes via Apple Health → the metric → Data Sources & Access → delete the Shortcut source's data (steps above).
Nothing exports at all. Open NOOP and confirm there's actually new data to export — a connected strap streaming live HR, or a recent import. With no new data there's nothing to write. Then toggle Export for Shortcuts off and on, and try Re-export last 7 days.
- No network, ever. NOOP writes a local file; the Shortcuts app reads it and writes to Apple Health. Nothing leaves your iPhone.
- No account. This path uses only on-device files and Apple's own Shortcuts/Health apps.
- You hold the permissions. The Health-write permission belongs to Shortcuts, granted by you — you can revoke it in iOS Settings anytime.
- Deletable. Turn off Export for Shortcuts to stop writing the file; delete the Shortcut and automation to stop the sync; wipe the Shortcut's source in Apple Health to remove what it wrote.
- Importing History — WHOOP CSV, Apple Health export, and nutrition import.
- Installation — sideloading NOOP on iPhone via AltStore / SideStore.
- Automations — the macOS side of Shortcuts (double-tap, wear/presence).
- FAQ — common questions about data and privacy.
- Troubleshooting — if something doesn't work as expected.
Reminder: NOOP is an independent, unofficial interoperability tool for a device you own — not affiliated with WHOOP, Inc., and not a medical device. Heart rate, HRV, and the rest are approximations, not medical advice. See Privacy and Security and the Disclaimer.
NOOP is an independent, unofficial, non-commercial interoperability project — not affiliated with, endorsed by, or sponsored by WHOOP, Inc. "WHOOP" is a trademark of WHOOP, Inc., used nominatively. Works only with a device you own; not a medical device; every metric is an approximation, not medical advice. · Privacy and Security · Donations · Releases