In-app messages
Helpful resources to get started with In-App Messages.
In-app messages (IAM) are customizable, targeted messages that display within your mobile app.
Creating an in-app message
In your OneSignal dashboard, navigate to Messages > In-App. Here you can:
- View, Edit, Resume, and Duplicate an existing message by clicking the options button.
- Create a new in-app by clicking the New Message button.
Note: OneSignal currently does not support in-app message REST APIs.

Options to duplicate or edit in-app templates
Audience
Select specific Segments to create your audience of users eligible to receive the message.
Segments include unsubscribed subscriptions
In-app messages are delivered to all mobile subscriptions matching the segment criteria, even if they’ve unsubscribed from push notifications.

Audience settings
Message
Select the in-app editor to design messages through either the:
One editor per message
Once you select an editor, you cannot switch between them for the same message.

Editing screen
Testing
Click Send Test In-App to preview the message on your device.
- Your device must be a registered Test User. See Find Devices & Set Test Users.
- This sends a push notification to your test device, click the push to open the app, and displaying the message.
- Push notifications are only sent for testing purposes. Push will not be sent in production.
- Tag Substitution does not work for test In-App Messages.
Triggers
Triggers determine when users see the message. Conditions must be met when users start a new app session (defined as opening the app after it’s been closed or inactive for at least 30 seconds).
You can set triggers:
- When the app opens.
- When certain user-defined events occur (see in-app triggers guide).

Trigger setup
When should this message dismiss?
The message defaults to showing until dismissed either through swiping it away or clicking an element that has the dismiss action.
You can auto-dismiss the message after a certain amount of time using the Dismiss after certain amount of time option.

Example dismisses the message after 90 seconds if the user doesn't dismiss it first.
Scheduling
In-app messages can be scheduled to start and stop at specific dates and times:
- Start Showing: Choose when the message begins.
- Stop Showing: Choose an end date/time or select "Show forever".
Frequency: How often do you want to show this message?
- Only once (default): Shows once per subscription.
- Every time triggers are met: Message appears each time triggers are satisfied.
- Multiple times: Set how often the message appears. Examples:
2
times with a gap of1
hours in between - The message will be allowed to trigger a total of2
times. The first time when the triggers are met, then the 2nd time when the triggers are met and1
hour has passed.12
times with a gap of30
days in between - The message will be allowed to show roughly once a month for a year, depending on the triggers.

Scheduling options
How are in-app messages displayed?

In-app messages are not actively pushed. Instead, they are "set live" and pulled when triggered.
The message will display if:
- The user meets audience criteria before a new session.
- A new session starts when the user opens your app after it has been in the background or closed for at least 30 seconds.
- If users have the app open when the message goes live or enters the segment(s) during the same session, they will need to put the app out of focus (close or background) for at least 30 seconds to be eligible to see the message.
- The trigger conditions are met.
- The scheduled time and frequency is valid.
If segment criteria change mid-session, users must reopen the app to see the message.
Testing & troubleshooting
While testing, it is recommended to do the following:
- Set your device as a Test subscription and create a segment with the Test Users filter. Use this segment while testing.
- Set "How often do you want to show this message?" to "Every time trigger conditions are satisfied" unless you are explicitly testing the other options.
- When you set an in-app message live, make sure the app is closed our out-of-focus for at least 30 seconds before opening the app again. This will ensure you are opening the app to create a new session and be eligible for the message.
Still having trouble? Visit our In-App Message FAQ.
More examples
Explore practical in-app message examples:
- Push permission prompts
- App version updates
- App store review requests
- Personalizing in-app messages
- Creating tutorials
- Personalization using tags
Once published, your in-app is ready for all eligible users.
See more guides at In-App Messaging Channel Docs.
Updated 11 days ago