Heartbeat detection

Gap detection catches a start that never got its finish. Heartbeat detection catches the flow that never even started.

Why this is a separate check

Every other check in FlowProofs needs a source ping to exist before it can reason about anything. If a whole flow goes quiet, no calls come in, no forms get submitted, an integration falls over upstream, there's no source ping to compare against and nothing for gap detection to flag. A flow can look perfectly healthy by having nothing to report at all. Heartbeat detection is the check built for exactly that case.

Setting an expected cadence

A flow with no expected cadence set is treated as on-demand: silence is normal, and heartbeat detection stays off for it. Once you tell FlowProofs how often a flow should run (every 15 minutes, hourly, every 4 hours, daily, weekly, or a custom number of minutes) it starts watching for source pings on that schedule, with a grace period added on top so a normal few minutes of lateness never counts as a miss.

What a miss looks like

If a flow's cadence plus grace period passes with no source ping at all, FlowProofs opens a heartbeat incident, marks the flow's heartbeat status as missed, and alerts through the same channels already set up for that flow. The alert names the flow and how long it's been silent. The moment a new source ping arrives, the incident resolves and the flow returns to a normal heartbeat status automatically.

  • On schedule: a source ping has arrived within cadence plus grace. Nothing to look at.
  • Missed: cadence plus grace has fully passed with no source ping. This is the one state that alerts, once, until it clears.

Where to set this up

Set the expected cadence during onboarding or any time from a flow's settings, alongside the grace period. See alerts for how channels and rules are configured.