Zero-BS Guide to Winning iOS Push Notifications
Chapter 1: What Types of Notifications Should I Send—And Why?
Covered in chapter 1:
best for ChatGPT, Claude, and Gemini
second-best for Gemini and ChatGPT
second-best for Claude
Includes .md / .docx / .pdf
1.1
1.1 Core Notification Types Every App Needs to Know
If you’ve done even a bit of research, you’ve likely come across these standard notification types:

  • Transactional — requires user action
  • Promotional — ads and offers
  • Contextual — triggered by time, place, or behavior
  • Personalized — uses the user’s name or preferences
  • Silent — runs in the background without alerting the user
  • Local — triggered directly on the device; no internet required
Let’s describe each one and also talk about time-sensitive and critical ones. (Note: you can mix and match depending on your app’s current goals).
1.1.1 Transactional Notifications
What it is: The most common — and most useful — type of push. Triggered by user actions or important account events, these deliver real-time info the user expects.

Use for:
  • “Meeting starts in 5 minutes” (calendar)
  • “ProjectPlan.pdf finished uploading” (cloud storage)
  • “Here’s your 6-digit login code” (security)
  • “Payment confirmed for $35.00” (fintech)

Why it matters: These messages have direct utility in the user’s workflow. They show up when and where the user needs them — no guesswork, no fluff.
1.1.2 Promotional Notifications
What it is: Marketing push — typically meant to drive sales or re-engagement.

Use for:
  • Discounts and flash sales
  • “We miss you” nudges
  • Cross-sells or upgrades

Handle with care: Too many promos = fast track to “Turn Off Notifications.” Always offer value, not noise.
1.1.3 Contextual Notifications
What it is: Triggered by where the user is or what they’re doing — in real life or in-app.

Use for:
  • “You’re near a clinic — book a same-day appointment?”
  • “Still browsing supplements? Here’s 10% off your cart.”
  • “You haven’t logged your sleep data in 3 days.”

Requires: Real-time context from GPS, app state, or usage patterns.

Dev Handoff - 1: Location
Dev Handoff - 2: Timer
Dev Handoff - 3: Date and time
1.1.4 Personalized Notifications
What it is: Pushes that include user-specific data — not just their name, but relevant content.

Use for:
  • “Hey Alex, your therapist just updated your care plan.”
  • “Today’s a big day, Sarah — time to beat last week’s step count.”
  • “Your glucose is trending up — check your log.”

Note: Doesn’t require AI. Just good data and segmentation.
1.1.5 Silent Notifications
What it is: Your devs may mention them as ‘silent pushes.’ These aren’t user-visible and are used for background tasks only.

Silent notifications — also known as “content-available” push notifications — are not user-facing at all.

Instead, they quietly wake up the app in the background so it can fetch data, update state, sync something, etc.

You use them when:
  • You want to update data in the app before the user opens it
  • You need to refresh tokens, fetch unread counts, or log analytics in the background
  • You’re prepping a follow-up actual notification that will be shown to the user
1.1.6 Local Notifications
What it is: A local notification is triggered entirely on the user’s device — no internet, no backend, no push token drama.

The app schedules it, and iOS handles the rest. Great for single-player, non-networked interactions.

When to use it: Use local notifications when your app already knows exactly what to notify and when — without needing new info from a server.

Think:
  • “Your 25-minute laundry timer is up”
  • “Time to stand” reminder in a meditation or fitness app
  • “Hydrate now” alert in a wellness tracker
  • “Daily journaling prompt” for a self-reflection app
  • “Check your vitals” reminder in an offline-enabled health app
  • “You haven’t logged your meal today” nudge in a food diary

But local doesn’t have to mean just clock-based. You can trigger them based on user behavior inside the app.

Action-triggered examples:
  • A user opens the workout screen 3 times in a day but never hits “Start” →
Local nudge: “Don’t forget to start your session — consistency matters!”

  • A kid opens a math quiz app 3 days in a row and gets 10/10 every time →
“🎉 You’re on fire! Don’t forget to claim your streak reward.”

  • A user manually enables sleep mode in an offline app →
“Sleep tracking enabled. We’ll remind you to check your stats in the morning.”

These don’t require a remote server to check conditions — they’re stateful within the app, and that’s all you need.
Why this matters for founders:
Local notifications are faster, cheaper (no infra), and less prone to delivery failure. You don’t need a whole backend orchestration if what you’re sending is predictable and reactive to user behavior you already see locally.

Pro tip for PMs: If your devs are suggesting server-side push for something the app already knows will happen, ask: “Could we do this as a local notification instead?” You’ll ship faster, save time, and avoid permission/token edge cases entirely.

Dev Handoff: Scheduling a notification locally from your app
1.1.7 Time-Sensitive Notifications
These cut through Focus modes like Do Not Disturb — once the user opts in. They’re designed for updates that need to be seen soon, but don’t quite rise to life-or-death urgency:

  • “Your telehealth appointment was rescheduled”
  • “You’ve got 10 minutes left to check in for your flight”
  • “Your Uber just canceled”

They feel just like regular notifications — except iOS prioritizes them more aggressively when attention matters. No special Apple approval required.

On the surface, Time-Sensitive notifications on iOS look very similar to standard notifications, but they have key visual and behavioral differences designed to convey urgency and importance, especially when you're trying to focus.

The most distinct visual cue is a text label. A Time-Sensitive notification will often display the phrase "Time Sensitive" directly on the notification banner or on the Lock Screen, typically accompanied by a small clock icon. This label immediately signals that the app developer has marked this alert as high-priority.

Feature

Standard Notification

Time-Sensitive Notification

Visual Label

No special label.

Displays a "Time Sensitive" label, often with a small clock icon (L).

Lock Screen Behavior

Can be silenced and hidden by Focus modes (like Do Not Disturb or Sleep). It may be delivered silently to the Notification Center.

Breaks through Focus modes. It will appear on the Lock Screen and play a sound even when a Focus is active.

Persistence on Lock Screen

Can be quickly cleared or may be grouped and less prominent depending on your settings.

Remains on the Lock Screen for an hour, ensuring it is not missed. This makes it visually more persistent than standard alerts.

Delivery

Can be bundled into a "Scheduled Summary" and delivered at a later time.

Always delivered immediately. It bypasses the Scheduled Summary feature to ensure you see it right away.


Founder tip: If a message would frustrate your user if delayed, make it Time-Sensitive.

Dev Handoff - 1: UNNotificationInterruptionLevel.timeSensitive
Dev Handoff - 2: timeSensitiveSetting
1.1.8 Critical Alerts
This is the top of the food chain. Critical Alerts override silent mode and Do Not Disturb entirely. They’re reserved for apps delivering life-impacting info:

  • Remote patient vitals out of range
  • Dangerous blood sugar readings
  • Emergency security alerts

You’ll need Apple’s blessing (via a formal entitlement request), and the user must also grant permission. But once set up, Critical Alerts are non-ignorable — by design.

Founder tip: If you’re dealing with urgent medical, safety, or security use cases, make this part of your go-to-market plan.

Prd handoff - 1: Request entitlement
Dev handoff - 2: Critical alerts entitlement
1.2
1.2 Interruption Levels in 60 Seconds
1.2.1 Push Notification Interruption Levels

Level

What iOS actually does

When to use it

Passive

Slips quietly into Notification Center; no sound, no screen wake, no haptics.

“FYI” stuff: new-episode drops, weekly digests, gentle nudges.

Active (default)

Classic alert: lights up, may ping/vibrate—but won’t punch through Focus or Scheduled Summary.

Timely yet non-urgent: mentions, breaking-news pings, score updates.

Time-Sensitive

Same as Active plus it can bypass Focus/Summary if the user leaves the “Time Sensitive Notifications” switch ON. Apps must enable the capability in Xcode.

Needs action now: 2FA codes, courier arriving, ride outside.

Critical

Break-glass alert: overrides Focus, Summary and the mute switch. Entitlement from Apple required.

Life-or-limb: tornado warnings, gluc

ose-level alarms.


TL;DR — Treat Passive like a whisper, Active like normal conversation, Time-Sensitive like shouting across the room (only when approved), and Critical like pulling the fire alarm. Abuse them and Apple (or your users) will show you the exit.

Dev Handoff: UNNotificationInterruptionLevel
1.2.2 Interruption Level Decision Matrix
To aid product leaders in this critical decision-making process, the following matrix provides a clear, at-a-glance reference for each interruption level.

Level

Screen Wake & Sound

Bypasses Focus/Summary?

Xcode Capability Required?

Apple Entitlement Required?

Recommended Use Case

Risk of Misuse

passive

No

No

No

No

Non-urgent info, content discovery, recommendations.

Low

active

Yes (Default)

No

No

No

Relevant updates, breaking news, general social interactions.

Low

timeSensitive

Yes

Yes (if user allows)

Yes

No

Immediate action required: account security, deliveries, ride-share.

High

critical

Yes (Bypasses Mute)

Yes

Yes

Yes (Special Approval)

Urgent health/safety alerts (e.g., severe weather, medical emergency).

Very

High

1.3
1.3 Choosing the Right Notification Types
Not sure which push types make sense for your product? Here’s a fast way to sanity-check your setup.

If you’re building a…

You’ll likely need…

Telehealth app

Time-Sensitive + Transactional + Personalized

Food delivery app

Contextual + Transactional + Local (for order countdowns)

Meditation / wellness app

Local + Personalized + Time-Sensitive (for routine nudges)

Banking / fintech app

Transactional + Contextual + Critical Alerts (for fraud or lockouts)

Productivity / task manager

Local + Transactional + Contextual

Fitness / workout tracker

Local + Personalized + Contextual

eCommerce app

Promotional + Contextual + Personalized (based on browsing/purchase behavior)

Health device companion app

Time-Sensitive + Local + Critical Alerts (if monitoring vitals or safety thresholds)


Tip for PMs: Start with 1–2 notification types and expand only when there’s real user value.
Push is a scalpel, not a sledgehammer.
1.4
1.4 The 3 Kinds of Notifications Users Really Care about
Now that we’ve covered the full technical menu, let’s cut through the noise. From a user’s perspective (which every smart app founder should adopt), there are really only three kinds of notifications:

  1. The ones you open
  2. The ones you swipe away
  3. The ones you keep around to track something — like a delivery, a workout, or your Uber creeping down the block

Let’s also be clear: not every push needs to get the user back into your app. And that’s totally fine.

A currency app can show the latest exchange rate without asking for interaction. A restaurant can update you on delivery without expecting a tap. Same for weather alerts or live scores. These are informative, not invitational — and they still build trust.

That said, the reality is: 99% of push notifications are meant to drive users back into the app.

That’s your main battleground — and it’s why what comes next really matters.
1.5
1.5 The Golden Rule
You get one shot at asking users for push notification permissions — don’t waste it.
If the user taps “Don’t Allow” the first time, you won’t be able to show that prompt again. Not unless they uninstall and reinstall your app after 24 hours. Realistically? That’s not happening.

Android Sidenote: an Android user may also dismiss this system dialog. If the user swipes away or ignores the dialog (choosing neither option), the app can try asking again later, since the user hasn’t made a firm choice.


So your job is to make that single shot count — and that starts with how, when, and why you ask.
© 2025 Zero-BS Guide to Winning iOS Push Notifications
written by Konstantin Kalinin
Made on
Tilda