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 IAM by clicking the New Message button.
Note: OneSignal currently does not support in-app message REST APIs.

Options to duplicate or edit IAM templates
Templates
OneSignal provides professionally designed templates to help you get started quickly:
- Welcome: Greet new users during onboarding.
- New Feature Announcement: Promote new app features.
- 10% Off Promotion: Offer discounts triggered by specific user actions.
- Allow Notifications: Encourage notification opt-ins.
- App Store Rating: Request app reviews from users.
Templates can be customized with your branding and activated quickly.

Pre-built IAM templates
In-app setup
Create a new in-app message or edit a template to quickly get started.
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.

IAM audience settings
Message
Select the IAM 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.

IAM editing screen
Testing IAM
Click Send Test In-App to preview the message on your device. This sends a push notification to your test device, opening the app and displaying the IAM.
Note: Your device must be a registered Test User. See Find Devices & Set Test Users.
Push notifications are not sent when IAMs are live in production.
IAM Test Limitations
Tag Substitution does not work for Test In-App Messages.
Triggers
Triggers determine when users see the IAM. 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 IAM Triggers Guide).

IAM trigger setup
Scheduling
IAMs 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: IAM appears each time triggers are satisfied.
- Multiple times: Set how often IAM appears (e.g., 2 times every 3 days).

IAM scheduling options
How are IAMs displayed?

IAMs 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 IAM.
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 IAM examples:
- Push permission prompts
- App version updates
- App store review requests
- Personalizing IAMs
- 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 14 days ago