Write us on Telegram@Odilient
AI & Automation

Notifications Are a Budget You Can Overspend

Sharif Odil June 26, 2026 8 min read

Every message draws down a balance you cannot top up. The four controls that keep a notification channel alive, and the number that says it is already dead.

You have permission to interrupt your customer. It arrived when they gave you their number, installed your app, or started a chat with your bot.

That permission is a balance, not a right. Every message draws it down. Useful messages draw down a little and occasionally add back. Useless ones draw down a lot. And when it reaches zero the customer mutes you, turns off notifications, or blocks the bot — and there is no mechanism anywhere to earn it back.

This is the asymmetry that makes notifications different from every other channel you own. The permission is permanent and the withdrawal is permanent. A bad advertisement costs you an impression. A bad notification costs you the channel.

Most businesses discover this by exhausting it.

The number that tells you it happened

There is one metric here worth more than open rates, click rates or delivery rates, and almost nobody tracks it:

What share of your audience has muted or disabled your notifications?

It only moves one way. It is invisible in engagement metrics, because muted users still count as subscribers and your open rate is calculated over the people who are still listening. You can have an excellent open rate on a channel that two thirds of your customers have silenced.

If you can measure it, measure it monthly and treat any increase as a serious incident. If you cannot measure it directly, the proxy is the ratio of active recipients to total subscribers over time. A channel where that ratio has been falling for six months is a channel that is being spent.

The four controls

We built a notification dispatcher for Bronjoy's staff bot, which gives business owners their entire control surface in chat — appointments, clients, services, team, reviews, schedule, waitlist, stats. The dispatcher applies four controls before anything is sent, and the stated goal on the project was blunt: quiet enough that owners do not mute it.

That goal is the right one, and it is more demanding than "deliver the notification". Here are the four.

Quiet hours

No message outside working hours unless it is genuinely urgent, and urgency is a property you define in advance, not one the sender claims at the time.

This is the control with the largest effect per line of code. A 2 a.m. notification about something that could have waited until 9 a.m. is the single most reliable way to get muted, and it destroys the channel for every future message including the ones that matter.

It also needs a definition of urgent that has teeth. On Nomadeo, night mode is one of nine guardrails that run on every draft before it is sent — it sits alongside grounding, discount authority and prompt injection checks, as a structural constraint rather than a preference someone can override in a hurry.

Coalescing

Three bookings in four minutes should be one message, not three.

Coalescing is a short delay — seconds to a couple of minutes — during which related events merge into a single notification. The user loses almost nothing in timeliness and gains enormously in tolerability. It is the difference between a colleague and a slot machine.

Rate caps

A hard ceiling on messages per recipient per hour and per day, enforced at the dispatcher regardless of what any feature wants to send.

This is a safety limit, not a design preference. It exists for the bug that fires in a loop, the integration that replays events, the import that generates four hundred updates. Every notification system will have one of those. The cap is what decides whether it is an embarrassment or the end of the channel.

Digests

Anything that is informative rather than actionable becomes a scheduled summary. Daily or weekly, at a predictable time, containing everything that did not individually justify an interruption.

The test for which bucket a message belongs in is simple: is there something the recipient should do right now? If not, it is a digest line.

Sort your messages by who they are for

The clearest way to decide what to send is to ask who benefits.

Transactional — for the recipient. Your booking is confirmed. Your order shipped. Your payment failed. The customer wants these, they have high tolerance, and they should be immediate and never batched. These build the balance rather than spending it.

Operational — for the recipient's work. A new booking for a business owner, a review to respond to, a shift change. Valuable, but rarely urgent to the minute. This is where coalescing and quiet hours do their work.

Promotional — for you. A sale, a new feature, a nudge to come back. These spend the balance, every time, and they are the ones that need a budget. Decide how many per month you are willing to spend and hold to it.

The failure mode is disguising the third as the first. "Your order is ready — and here is 20% off your next one" is a transactional message carrying a promotion, and customers learn the pattern faster than marketers expect.

Give people controls before they take one

The user has exactly one control if you do not provide any: mute everything, permanently. Every setting you offer is an alternative to that.

Per-category switches. Let them keep booking confirmations and turn off marketing. Most people want the first and will tolerate losing the second, and forcing the choice as all-or-nothing guarantees you lose both.

Frequency choice. Immediate, daily digest, weekly digest, off.

Quiet hours the user sets, not only the ones you assume.

An unsubscribe that works on the first attempt. A hostile unsubscribe converts an uninterested recipient into a spam complaint, which damages deliverability for everyone you send to.

Offering these feels like inviting people to reduce your reach. It is the opposite: it converts a total loss into a partial one, and it keeps the channel alive for the messages that matter.

Choose the channel by what the message is worth

Channels are not interchangeable. Each has a different cost, a different intrusiveness, and a different tolerance.

ChannelCostIntrusivenessBest for
EmailVery lowLowDigests, receipts, anything long
In-app / on-siteNoneNone until seenStatus, non-urgent updates
Telegram / WhatsAppLowHighConfirmations, reminders, anything conversational
PushLowHighTime-critical, for users who installed for that reason
SMSHighestHighestLast resort, genuinely urgent

Messaging apps deserve particular care, because they sit in the same list as the recipient's family. A message there is intruding on personal space in a way an email never does, and the tolerance is correspondingly lower — but the attention, when you use it properly, is much higher. That is exactly why it is worth protecting. We make the wider case for the channel in Telegram is a storefront.

A pattern worth copying for genuinely important messages: on WClinic, appointment reminders try Telegram first, fall back to WhatsApp, and end with SMS. Cheapest and least intrusive first, escalating only when the previous attempt did not land. A missed medical appointment is expensive enough to justify the escalation, and the ordering means you rarely pay for the expensive channel.

Reminders are the best case for the whole idea

It is worth ending on what this is all in service of, because notification design can sound like a list of restrictions.

A well-built reminder is one of the highest-value things software does for a business. On Bronjoy, reminders arrive in the same chat as the booking, with one-tap confirm or reschedule — so a slot that is about to be wasted goes back on sale instead of standing empty. That is not an interruption; it is a second chance for both parties, and the customer is glad to get it.

The four controls exist so that message still gets through. You protect the channel so that the valuable message is not arriving at someone who muted you three weeks ago over a promotion.

Our AI integration and automation work starts at $299 and runs one to three weeks, and where a project sends messages, the dispatcher and its limits are part of the build rather than an afterthought bolted on when the complaints start.

Tell us what you need. You get a fixed price and a delivery date back — free, and with no obligation to proceed.

Frequently asked questions

How many promotional messages a month is acceptable?

There is no universal number, and the honest answer is: fewer than you want to send, and the right way to find it is to watch your mute rate rather than your open rate. Start low, add only when you have something genuinely worth the spend, and treat any rise in disabled notifications as the signal to stop.

Is it worth building digests if we only send a few messages?

Usually yes, and earlier than you would think, because digests are what stop the message count growing as the product does. Every new feature wants to notify somebody; a digest is where those go by default, and it means feature growth does not automatically become notification growth.

Should transactional and marketing messages share a channel?

Only if the user can separate them. If turning off your marketing means losing booking confirmations, a rational customer keeps both and mutes the app — which is the worst outcome available. Separate categories, separate switches.

What about notifications the business owner receives?

Same rules, and they are applied less often because internal messages feel free. They are not: an owner who mutes your staff bot has stopped using the product's main surface. The Bronjoy dispatcher exists precisely for the internal audience.

How do we handle failures and retries?

Cap them, and never retry a time-sensitive message after its moment has passed — a reminder for an appointment that already happened is worse than no reminder. Log failures, alert on delivery-rate drops, and make sure the retry logic is inside the rate cap rather than outside it.

Let's Talk

Reading about it is the easy part

If this is a problem you're actually trying to solve, tell us about it. We'll tell you what we'd do, what it costs and how long it takes.

Free consultation No commitment Fast reply