- Debounce status changes. If a status flickers (X → Y → X within a minute), don't fire two automations. Add "wait 60s, confirm status" before acting.
- Idempotency keys. Webhooks should send an idempotency key; the receiving system de-dups. Especially important for "create record" actions.
- One automation per outcome. Don't have 3 automations all sending welcome emails when slightly different conditions hit. Consolidate; branch inside.
- Test mode before live. Run synthetic records through. The cost of testing is zero; the cost of spamming your customer base is real.
- Fail-soft. If an action errors (e.g. Slack channel deleted), the automation should log and continue, not block downstream actions.
Best practices: debouncing and idempotency
Don't send the same notification 14 times because a field flickered.