Backhaul

Send a webhook from your Garmin watch when something happens on it.

Get it on Connect IQ

Backhaul needs a server you run yourself. It posts to an HTTPS address you enter in the app settings, and nowhere else. If you do not already have an endpoint that can receive a JSON POST, this app will not do anything useful for you.

Finish an activity and your server hears about it in seconds, rather than whenever your next poll of Garmin Connect happens to run. It also fires on daily goals, step milestones, sleep and wake, plus an optional heartbeat.

There is no cloud service in the middle, no account and no sign-up. The watch talks to your URL and nobody else's.

Events

EventWhen
activity.completedAny activity is saved or discarded, including ones recorded by other apps
goal.reachedA daily step, floors or active-minutes goal is met
steps.milestoneEvery 1000 steps (off by default, it is chatty)
sleep.start / wakeThe watch decides you fell asleep or woke up
heartbeatA configurable interval, minimum 5 minutes

It does not lose events

The activity-completed event arrives the instant you press stop, which is very often the instant your phone is still in a locker on the other side of the building. Backhaul writes undelivered events to device storage and retries them on its next wake-up, for up to 48 hours or 10 delivery attempts, whichever comes first. Time away from the phone costs no attempts, so a watch that simply cannot reach anything keeps its events for the full two days.

How deep that queue goes depends on the watch. Garmin gives a background process 64 KB on newer devices and 32 KB on older ones; Backhaul measures the room it has before each write, and drops the oldest event to make room for the newest when it runs out.

Setup

Install the app from the Connect IQ Store and open it once, then set the webhook URL in Garmin Connect Mobile under your device → Connect IQ Apps → Backhaul → Settings. It must be https://. Optionally set a bearer token or a custom header so your endpoint can tell your watch apart from the rest of the internet. Back in the app, Send test event confirms the round trip.

Open source

Backhaul is MIT-licensed. The source, the payload documentation and a dependency-free example receiver are at github.com/tallekene/backhaul.