Skip to content
English
  • There are no suggestions because the search field is empty.

Throttle noisy alerts

Three small recipes for taming a workflow that fires more often than you actually want to act. Pick the stateful condition that matches the shape of "less". For workflow builders who already have a working pipeline and want to stop pinging Slack twice a minute.

The pattern

Drop a stateful condition between the trigger and the action. The action only runs on the condition's "yes" port; wire the "no" port to nothing (or to a Stop And Fail if you want the suppressed runs to show up red in the execution history).

[trigger] → [stateful condition] → [action]
(other port left empty)

Three condition shapes cover almost every throttling case.

Once per period

Use Cooldown when you want the first event to fire and everything inside the window to be silent.

Trigger: CO₂ above 1200ppm Condition: Cooldown with Duration 1h, Key space-{{ .trigger.event.space.id }} Action on allowed: Post To Channel #facilities

The first spike in any space pings the channel; further spikes in that space within the hour are dropped. The key includes the space id so different rooms don't share the cooldown — without that key, room A's spike would silence room B for an hour.

At most N per period

Use Rate Limit when bursts up to N are fine but unbounded firing isn't.

Trigger: Schedule — every minute Condition: Rate Limit with Max per window 10, Window 1m Action on allowed: Set Lights (Fagerhult)

The first ten firings inside any minute go through; the eleventh and beyond are throttled until the next window starts. Useful when you want responsiveness for normal operation but a hard ceiling against runaway loops or sensor flapping.

Once per entity per day

Use Once with a TTL when each subject deserves at most one notification per window.

Trigger: Device went offline Condition: Once with Key device-{{ .trigger.event.device.id }}, TTL 24h Action on first: Send Email (SMTP) to your on-call alias

Each device alerts the first time it goes offline; if it stays offline (and the trigger keeps firing), no extra mail. After 24 hours the key resets, so a device that's been offline for a day will alert again the next day. Drop the TTL for permanent dedup — useful for "send the welcome email exactly once".

Choosing fast

Shape of "less" Use
At most one fire per period Cooldown
Up to N fires per period Rate Limit
At most one fire per key (forever, or per window) Once
Only when a tracked value flips State Changed
Every Nth fire Every N Times (see Toggle lights with a button)

When throttling isn't enough

If a workflow is firing constantly because the trigger is wrong, no condition fixes it — go upstream. Switch the trigger to a more specific event, or add an If condition before the throttle to drop irrelevant runs entirely.

Related