How should your app tell someone what changed?
Start with what the person needs to do. A new comment can wait in the app’s inbox. A schedule change they need to act on today may also deserve an alert outside the app. Choose the route and decide what should happen if they turn it off or the alert does not arrive.
Which channel fits the update?
An in-app inbox gives people a place to catch up. Email reaches a mailbox, push shows an alert on a subscribed browser or phone, and SMS sends to a phone number. Choose the least disruptive channel that gives the person enough time to act.
| Example | Where to start | What to verify |
|---|---|---|
| A teammate adds a comment | In-app inbox | The intended teammate sees the item and can open the document. |
| An appointment time changes today | An alert outside the app, with a place to find the update again | The recipient allowed the chosen channel and can see the current time after signing in. |
| Several optional updates arrive overnight | One scheduled summary | People who turn it off receive none, and the summary still links to the current records. |
On a small screen, scroll the table sideways to read every column.
What does your app still need to decide?
Your app determines what happened, who is allowed to know about it and which details are safe to include. A notification service can apply delivery rules and track attempts, but your app still needs to save the underlying change and check access when someone follows a link.
Write down a stable reference for each saved change. Use it to recognize repeats before sending again. A customer moving an appointment twice should get two distinct updates if both matter. A repeated copy of the same change should not cause a second alert.
Compare tools
Scroll the table sideways to read every column.
| Tool | Where you startThe first route or rule worth trying. | How you control deliveryWhich preferences, channel connections or conditions matter. | Where you check a missing alertHow to tell a skipped step from a delivery problem. | What the plan countsThe unit to use when estimating usage. |
|---|---|---|---|---|
| Novu | Start with an inbox item from a workflow step. | Set subscriber and workflow channel preferences. Connect integrations for external delivery. | Open the subscriber’s run in the Activity Feed. | Cloud Free lists 10,000 workflow runs monthly. Count one run per subscriber. |
| Knock | Put a message in a feed, then wait or branch. | Apply recipient preferences to channel, workflow or category. | Open the run debugger to see skips, errors and generated messages. | Free lists up to 10,000 monthly. On message-based plans count successful recipient-channel deliveries. |
| Courier | Set a route that tries alternatives or sends to several channels. | Connect external providers and set channel order and preference handling. | Open Logs, then trace provider acceptance and any reported delivery. | Developer lists 10,000 sends monthly. A Send API template to one recipient can span channels. Journey Send nodes count separately. |
| OneSignal | Set up a browser push alert for people who subscribe. | Add the service worker on the site’s HTTPS address and obtain browser permission. | Check the push report and observe the receiving browser. Confirmed receipt requires a paid plan and is unavailable for Safari web push. | Free caps web push at 10,000 subscribers per send. Mobile push uses a separate active-user limit. |
| Firebase | Use Firebase Cloud Messaging (FCM) to send a push from an app event. | Register a permitted browser or device and use a trusted server to send to the right installation. Your app decides who gets each alert. | A message ID means FCM accepted the request for delivery. Check the receiving browser and any reporting you enabled. | Cloud Messaging is no-cost. Estimate any separate server, storage and reporting charges. |
| Twilio | Send an SMS to an eligible phone number from your app. | Check the destination’s sender requirements, record consent and honor opt-outs. | Look up the message record. Carrier acceptance and delivery confirmation are different statuses. | US SMS has a base rate per segment. Carrier, sender and registration fees may apply. |
| ntfy | Publish a short alert to a topic your team subscribes to. | Use a protected topic when access matters. Give publishing and reading their own permissions. | Check whether the server accepted the post, then check the operator’s device separately. | Hosted standard limit is 250 messages per visitor in a 24-hour period across topics. Paid allowances and self-hosted settings differ. |
| Stream | Add a support conversation people can return to. | Choose member-only read permissions. Set mobile push preferences and register devices separately. | Open the saved conversation as a member. Check a supported device separately for mobile push. | Build lists 1,000 monthly active chat users and 100 simultaneous connections. |
| Sendbird | Set up an invite-only group conversation and choose what late members can see. | Check group type, invitation and history settings. Set push preferences separately. | Check the returning member’s history and what a newly invited member can open. | The trial lists 1,000 active chat users and 20 peak connections. Paid plans have separate limits. |
| Plivo | Send SMS for your own brand if Plivo’s sales team provisions access. | Confirm destination, sender registration, consent and opt-out handling. | Use message logs to distinguish carrier handoff from delivery. | US access starts with a US$1,000 monthly commitment. Segment rates and separate carrier fees apply. |
How do you tell a skipped alert from a failed one?
Follow the path in order. Find the saved app event, then the notification run, then the selected channel and any provider outcome. If the customer had turned off optional email, the correct outcome may be a skipped email and an inbox item. If the service accepted a message, keep delivery and reading as separate questions.
Do a paper check with two fictional customers. Give one a valid route and let the other turn the optional alert off. Trace one repeated event and one missing delivery address. Write down which steps should run, skip or need investigation before connecting any live accounts.
What should you estimate before choosing a plan?
Count a typical month in the units the plan actually uses. One plan may count a run for each person, another may count each channel delivery, and a third may count each send action. Estimate the busiest day as well. External delivery accounts may have their own fees, and a short log history may limit how far back you can investigate.
Keep a copy of the event rules, recipient mapping and optional message preferences you rely on. Before moving providers, check what you can actually transfer and whether users will keep their inbox history.