How to Build a Mobile App With Notifications: Push, In-App, SMS, WhatsApp and Email Working Together

What a notification system in an app consists of
A notification system is more than a push SDK. In a business app it has six parts:
- Triggers: business events emitted by the backend, such as payment confirmed, order status changed, appointment due, balance low, message received, or a scheduled campaign.
- Rules: which users receive which message, on which channel, at what time, and how often, including quiet hours and rate limits.
- Templates: message content per channel and language, with variables (name, order number, amount) and approved wording where a channel requires it.
- Channels and providers: push (Firebase Cloud Messaging for Android, Apple Push Notification service for iOS), an in-app inbox, SMS through a Nigerian gateway, WhatsApp through the WhatsApp Business Platform, and email through a transactional email service.
- Delivery log: per message, which channel was tried, whether it was accepted, delivered, opened or failed, so support can answer "did you tell me?".
- Preferences: a settings screen where users choose what they receive and where, plus mandatory transactional messages they cannot switch off.
The mobile app's job is small: register for push, display notifications, deep-link into the right screen, and show the in-app inbox. The intelligence lives on the backend.
Which channel for which message?
For a Nigerian app, the right channel depends on how urgent the message is, whether the user must act, and how much it may cost per send. The table gives a working default.
| Channel | Best for | Strengths | Limits in Nigeria |
|---|---|---|---|
| Push | Real-time updates while the app is installed: rider nearby, new message, payment received | Free; instant; deep-links into the app | Unreliable on phones with aggressive battery managers; users can disable; requires opt-in on Android 13+ and iOS |
| In-app inbox | Anything the user should be able to find later: receipts, announcements, policy changes | Free; persistent; no permission needed | Only seen when the app is opened |
| SMS | Critical messages that must arrive: OTPs, payment confirmations, appointment reminders, delivery today | Reaches every phone; no app or data needed | Costs per message; promotional SMS blocked for DND-listed numbers; sender ID registration required |
| WhatsApp (Business Platform) | Rich transactional updates with buttons and media: order updates, receipts, reminders, two-way support | Familiar; high attention; supports replies and documents | Priced per message or conversation in US dollars; templates need Meta approval; needs an official API provider |
| Receipts, statements, documents, account security | Cheap; good for records and attachments | Many Nigerian consumers check email rarely; poor for urgency |
Two rules of thumb follow. First, anything involving money or an OTP gets a channel that reaches the phone regardless of the app (SMS or WhatsApp), with push as the fast first attempt. Second, anything promotional should use push and in-app first, because paid channels for marketing are expensive and, on SMS, often blocked.
Transactional versus marketing notifications
The difference between transactional and marketing notifications is that transactional messages are triggered by something the user did or something happening to their account, while marketing messages are sent to persuade. The distinction matters for consent, channel rules and cost.
- Transactional: OTPs, payment confirmations, order updates, appointment reminders, security alerts, balance changes. Users expect them, cannot reasonably opt out of the essential ones, and paid channels are justified.
- Marketing: promotions, new-product announcements, re-engagement nudges, referral campaigns. Users must be able to opt out easily, frequency must be controlled, and channels should be cheap.
Keep the two separate in code and in the preference screen. Mixing a "20% off today" into the same push channel as "your rider has arrived" is how users end up disabling notifications entirely, after which your transactional messages die too.
Architecture: a notification service with fallbacks
The difference between a fragile notification setup and a robust one is a dedicated notification service on the backend that every feature calls, rather than each feature sending its own push. A robust design works like this:
- A feature emits an event (for example, order 4521 paid) onto a queue.
- The notification service receives the event, looks up the recipient's preferences, device tokens, phone number and language, and evaluates rules (quiet hours, rate limits, deduplication).
- It selects a template and renders the content for the chosen channel.
- It sends via the provider and records the attempt in the delivery log.
- It waits for a delivery signal. Push provides limited feedback; SMS and WhatsApp provide delivery receipts.
- If the message is critical and no delivery is confirmed within a set time (say two minutes for a delivery-today alert), it falls back to the next channel in the policy: push, then WhatsApp, then SMS.
- Opens and taps are recorded when the app deep-links from a notification.
Fallback policies are per message type. An OTP might go straight to SMS and WhatsApp at once; a promotional message never falls back to a paid channel at all.
Step-by-step: building the notification system
The first step is to write a notification inventory: a table of every message the app will send, its trigger, whether it is transactional or marketing, its primary channel, its fallback, and who owns the wording. Then:
- Register with channel providers early. SMS sender ID registration and WhatsApp Business Platform onboarding (business verification, phone number, template approval) can take days or weeks in Nigeria; start before development.
- Build the notification service with the queue, rules engine, template store and delivery log, exposed to the rest of the backend as a single "notify" call.
- Implement push in the app: permission prompt shown at a moment of value (after a first order, not on first launch), token registration and refresh, and deep-linking into the correct screen. Handle notification channels on Android so users can silence marketing separately.
- Build the in-app inbox backed by the same delivery log, so every important message is retrievable inside the app.
- Integrate SMS and WhatsApp through their providers, with delivery receipt webhooks feeding the log.
- Add the preference centre in the app: toggles per category and channel, with transactional essentials locked on and clearly explained.
- Implement scheduling and segmentation for marketing: audience filters, send time, frequency caps, and an approval step in the admin dashboard.
- Wire the fallback policies per message type and test them by simulating push failure.
- Monitor: dashboards for delivery rates per channel, failures by device or network, cost per channel, and opt-out rates; alerts when delivery drops.
- Review monthly. Cut messages nobody opens, move expensive messages to cheaper channels where delivery holds, and re-check template approvals.
Delivery reliability in Nigeria
Push notification delivery on Android depends on manufacturer behaviour, and the budget devices common in Nigeria (Tecno, Infinix, itel, Xiaomi and others) ship with aggressive battery optimisation that can stop the app from receiving pushes when it has not been opened for a while. The consequences for a notification design:
- Assume push is best-effort. Use it first because it is free and fast, but never as the only channel for anything critical.
- Guide users through battery exemptions with a one-time in-app tip for known device brands, without nagging.
- Use high-priority messages sparingly for genuinely time-critical alerts, as platforms throttle apps that abuse priority.
- SMS has its own failure modes. The Nigerian Communications Commission's Do-Not-Disturb service lets subscribers block promotional messages; transactional messages generally require a route that supports DND-listed numbers, and sender IDs must be registered. Confirm current requirements with your SMS provider, because rules and routes change.
- WhatsApp requires approved templates for business-initiated messages outside the customer-service window, and Meta prices messages by category in US dollars; a template rejection blocks the message type until reworded.
- Data and connectivity gaps delay push and WhatsApp; SMS is the channel that works when a customer's data has run out, which is common towards month-end.
Preferences, consent and data protection
Notifications touch personal data and consent in several ways.
- Permission is not consent for marketing. Push permission on the phone lets you send notifications; it does not, on its own, satisfy the Nigeria Data Protection Act 2023 for marketing communications. Record explicit opt-in for marketing categories and honour opt-outs promptly.
- Phone numbers and WhatsApp. Messaging a customer on WhatsApp uses their number for a purpose they must have been told about; put it in the privacy notice and the sign-up flow.
- Content minimisation. Do not put balances, diagnoses or full card details in a push preview that appears on a locked screen. Send "You have a new result" and show the detail inside the app.
- Retention. Keep delivery logs for as long as support and disputes need, then delete or anonymise.
- Staff access. Campaign tools should require an approval step, and the ability to message all users should be limited to specific roles.
Confirm specific obligations with the Nigeria Data Protection Commission's current guidance; this article is not legal advice.
What changes for Nigerian businesses
Beyond delivery reliability, five local factors shape the notification mix.
- WhatsApp is where customers expect updates. A WhatsApp order update is read; a push may not be. Budget for WhatsApp on the highest-value transactional messages even though it costs dollars per message.
- Per-message costs add up in naira. SMS and WhatsApp are cheap individually and expensive at scale. A notification inventory with channel and volume estimates is the only way to see the monthly bill before it arrives.
- Month-end and salary cycles. Data runs out, and attention peaks around pay days. Schedule marketing accordingly and lean on SMS for critical messages in the last week of the month.
- Multiple languages and tone. Short, plain English works broadly; Pidgin or local-language variants may fit some audiences, but test them rather than assume.
- Trust and fraud. Nigerians are wary of messages asking them to act on money. Never put links to payment in SMS from unfamiliar sender IDs; direct users into the app, and educate them that you will never ask for a PIN or OTP.
Example (hypothetical): an Enugu private hospital's patient app
Example (hypothetical): a private hospital in Enugu launches a patient app for appointments, lab results and bill payments. The notification inventory identifies four message types with very different needs:
- Appointment reminder (24 hours and 2 hours before): transactional, must arrive. Policy: WhatsApp template first; SMS fallback if no delivery receipt within ten minutes; push as an additional nudge. No medical detail in the message.
- Lab result ready: transactional and sensitive. Policy: push and in-app inbox saying "A new result is available"; SMS fallback with the same neutral wording; result shown only after login.
- Bill issued and payment received: transactional. Policy: push plus in-app receipt; WhatsApp with the PDF receipt on request; email copy for records.
- Health tips and clinic announcements: marketing. Policy: push and in-app only, weekly cap, opt-in at sign-up, one-tap opt-out.
The preference screen locks appointment and result notifications on, lets patients choose WhatsApp or SMS as their preferred reach channel, and lets them silence tips. The admin dashboard shows delivery rates per channel and the monthly WhatsApp and SMS spend. The design decision that mattered most was treating "result ready" as a neutral alert rather than a message containing the result, which satisfied both privacy and the need to inform.
How much do notifications cost to build and run?
Notifications have a one-off build cost and a recurring per-message cost. The figures below are indicative 2026 ranges; actual quotes vary with scope, vendor and exchange rate. Compare two or three written quotations on identical scope and ask for the notification inventory to be priced explicitly.
| Scope | Includes | Indicative one-off cost (₦) |
|---|---|---|
| Push and in-app inbox only | Permission flow, tokens, deep-links, inbox, basic backend sending | ₦250,000–₦900,000 |
| Multi-channel transactional system | Notification service, templates, SMS and WhatsApp integration, delivery log, fallbacks, preference centre | ₦900,000–₦3,000,000 |
| Full system with marketing tools | Above plus segmentation, scheduling, approvals, analytics dashboard | ₦2,000,000–₦6,000,000 |
Recurring costs are the real budget line. Push is generally free at normal volumes. SMS is priced per message by Nigerian gateways; WhatsApp Business Platform messages are priced by Meta per message or conversation category in US dollars, plus any provider margin; transactional email is cheap per message. All change over time, so verify current rates and model your monthly volume from the inventory. Add hosting for the notification service and maintenance at roughly 15–25% of the build cost per year. Within the overall indicative bands for Nigerian apps, a multi-channel notification system is one of the modules that pushes a project from the simple band (₦1,500,000–₦5,000,000) into the medium band (₦5,000,000–₦15,000,000).
Mistakes to avoid
- Asking for push permission on first launch. Most users refuse; ask after the first moment of value and explain what they will get.
- Sending promotions through the transactional channel. Users disable everything, including the messages that matter.
- Relying on push alone for money and OTPs. Battery managers and disabled permissions mean critical messages never arrive.
- No delivery log. Support cannot answer "why was I not told?", and you cannot measure which channel works.
- Ignoring SMS sender ID and DND rules. Messages silently fail to a large share of numbers.
- Unapproved or vague WhatsApp templates. Rejections block entire message types; write precise templates early.
- Putting sensitive details in previews. Balances, diagnoses and card details on a lock screen are a privacy failure.
- No frequency caps. A campaign tool with no limits will, sooner or later, send five messages in a day and cause an opt-out wave.
- Not budgeting per-message costs in dollars. WhatsApp and some SMS routes move with the exchange rate; set monthly alerts.
Conclusion
A mobile app with notifications is really an app with a notification service: an inventory of messages, rules for who gets what and when, templates per channel, providers for push, in-app, SMS, WhatsApp and email, a delivery log, and fallback policies that make sure critical messages reach the phone even when push does not. In Nigeria, that last part is the whole point, because battery managers, disabled permissions and month-end data shortages make push a first attempt rather than a guarantee. Separate transactional from marketing, respect consent, keep sensitive details out of previews, and budget the per-message costs in dollars before you launch. If you are designing an app and want the notification system planned as a whole, from the inventory and channel policies to WhatsApp and SMS integration, Linestech builds mobile apps with multi-channel notification systems for Nigerian businesses and can help you get the mix right before development starts.
Frequently asked questions
Why do my push notifications not arrive on some Android phones?
Many budget Android devices sold in Nigeria run manufacturer battery optimisers that stop apps from running in the background, so pushes are dropped until the app is opened. Users can exempt your app in settings; guide them once. For anything critical, add an SMS or WhatsApp fallback rather than relying on push.
Should we use SMS or WhatsApp for order updates?
WhatsApp offers richer messages and higher attention but costs US dollars per message and needs approved templates; SMS reaches every phone, including those without data, and is priced per message in naira. Many Nigerian apps use WhatsApp for the main update and SMS as the fallback when WhatsApp delivery is not confirmed.
Do we need the customer's permission to send notifications?
Push requires the phone's permission prompt. Marketing messages on any channel need explicit opt-in under the Nigeria Data Protection Act 2023, with easy opt-out. Transactional messages tied to the customer's own orders or account generally do not need marketing consent, but the purpose should be stated in your privacy notice. Confirm with the Nigeria Data Protection Commission's guidance.
What is an in-app inbox and is it worth building?
It is a screen in the app listing past notifications and messages, backed by the same log the backend uses for sending. It costs little to build and it solves the "I never got that message" problem, because everything important is retrievable. It also lets you deliver announcements without a paid channel.
How do we stop annoying users?
Separate transactional from marketing, cap marketing frequency, respect quiet hours, offer category-level preferences, ask for push permission at the right moment, and review open and opt-out rates monthly. Messages that nobody opens should be removed, not repeated.
Can one system send notifications to both the customer app and the rider or staff app?
Yes, and it should. A single notification service with recipient types (customer, rider, staff) and per-type templates avoids duplicated logic and gives one delivery log across the business. Staff alerts (a failed payment webhook, a new dispute) are just another message type with their own channels.
Sources and further reading
Figures, platform rules and regulations change. These are the primary references behind this article and the places to check before you act on it.


