Why use a push permission prompt?
To send push notifications that can appear as banners, show on the lock screen, play sounds, and more, your app must first get the user’s permission. On iOS, Android, Huawei, Amazon, and Web this involves displaying a system-level permission prompt.
An iOS and Android device displaying the system-level permission prompt.
- iOS only allows the permission prompt once.
- Android allows it twice.
- After that, users must manually enable notifications in system settings.
requestPermission()
SDK method, it’s critical to ask at the right moment and with proper context. Both Apple and Google strongly recommend explaining the value of your notifications first.
The best way to do that? Use a “soft prompt”—a custom in-app message that introduces the ask. If the user accepts, the system prompt appears. If they decline, nothing happens—no harm done.

Example shows an in-app message that leads to a system-level push permission prompt.
Set up an in-app push permission prompt
Remove any automatic permission prompts
- Remove
requestPermission()
oroptIn()
methods if you’re calling them on app start. - Remove native iOS calls to
requestAuthorizationWithOptions
and any methods generating push tokens. - Remove Android calls to
requestPermissions
and any methods generating push tokens.
Create or edit the in-app message
- Edit the default Push Permission Prompt template, or
- Click New Message to create your own.

Edit the default Push Permission Prompt template or create your own.

Set your audience as "Show to all users" because the "Push Permission Prompt" click action will make sure it is only shown to the unsubscribed subscriptions.
Customize the message design

The in-app message block editor allows you to create messages asking users to opt in to push notifications.
Add the push permission prompt click action

The in-app message block editor allows you to add a click action to a button to prompt for push permission.

Example of the required permission prompt on iOS.
Choose a trigger

Trigger options to control when the message is shown.
- On app open
- After a set amount of session time
- On a specific user event
- Programmatically (more control)

Triggers can be set to time when users see the in-app message.
Schedule and frequency
- Only once – Low chance of conversions
- Every time conditions are met – Too aggressive
- ✅ Multiple times – Recommended

Schedule when users will start seeing your in-app message and how often they see it.
Programmatically show the required permission prompt
Developers: You can trigger the push permission prompt manually usingrequestPermission()
or optIn()
SDK methods.
This is great for custom flows, such as:
- A Preference center
- A user profile screen
- Specific in-app events
Track push permissions and prompt results
When using in-app messages to prompt for push, you can track click actions with the In-app message click listener. For cases where the in-app message displays but the user doesn’t click the button, you can listen for the In-app message lifecycle events. For tracking the results of the system-level permission prompt, you can listen for events with the Push permission listener.FAQ
Can I still prompt users with provisional notifications?
Yes! In fact, if you use iOS provisional push notifications, it is recommended to still prompt users for push in this way but be strategic!When did Android start requiring permission prompts?
Android started requiring explicit user permission for push notifications with Android 13 (API level 33), which was:- Released: August 2022 (Pixel devices)
- Required for target SDK: As of August 31, 2023, all new apps and updates on Google Play must target API level 33 or higher.
- Source: Google’s developer guide on notification permissions