Designing Notification Systems That Inform Without Annoying

A team collaboration app client came to us after noticing that push notification opt-in rates, which had started strong at launch, were declining month over month as their user base grew, and their existing users were disabling notifications entirely at a rate that worried the product team. Looking at the actual notification volume, an active user in a busy workspace could receive over forty push notifications a day, most of them low-stakes mentions and status updates bundled with zero distinction between something urgent and something purely informational.
We redesigned around a tiered system rather than a flat one: notifications got classified as time-sensitive, which still triggered an immediate push, and informational, which batched into a single digest delivered at a moment the user chose during onboarding, rather than firing individually the instant each event occurred. A direct mention in an urgent channel is time-sensitive. A teammate updating a task's status is informational and can wait for the digest.
The harder design work was giving users granular control without turning the settings page into the junk drawer problem we've run into on other projects. We built a small number of pre-set notification profiles, like 'Only mentions' or 'Everything important,' as the default choice most users would pick, with granular per-channel controls available but tucked a level deeper for the smaller number of users who wanted that precision.
We also started respecting in-app presence explicitly: if a user was actively viewing the exact channel a notification was about, we suppressed the push entirely and just updated the in-app UI, since a push notification for something the user is already looking at is pure noise and, worse, teaches them that this app's notifications aren't trustworthy signals of something they've missed.
Opt-out rates dropped substantially in the months following the redesign, and average daily notification volume per user fell even as the app's overall activity and message volume continued to grow, which was the real signal that the system was doing its job: informing people about what genuinely needed their attention, and quietly getting out of the way for everything else.


