In-App Messages Setup

Highly customizable pop-up modals for mobile app users when inside your app.

In-app messages are customizable and targeted messages that display to users while inside your app. These do not require a user subscription, and users do not require push tokens to receive an in-app message. You can promote your app's features, remind about events/discounts, and engage relevant users to perform actions like make purchases, rate your app, subscribe to push notification, enable location tracking, and more!

OneSignal provides both HTML and drag-and-drop editor capabilities with templates and code samples to get you started quickly.


The only requirement is successfully setting up any of the OneSignal Mobile SDKs.

This feature is not available for websites or used with our Web SDK.

Navigate to Messages > In-App. Here you’ll see a collection of default templates and your previously made in-app messages. Click the options button next to the template you’d like to view and select Edit.

Screenshot showing how to edit an existing in-app message

Screenshot showing how to edit an existing in-app message


OneSignal has several templates for you to quickly get started. These templates are professionally designed with rich-media content to help you deliver a quality experience to your app users. In summary we provided the following templates:

  • Welcome: Allows you to welcome your user into your application as part of their onboarding.
  • New Feature Announcement: Example communication about how to promote a new feature of your app.
  • 10% Off Promotional: Allows you to offer your user a discount. Here we use a trigger which gives you the ability to specify when the user should see this promotion.
  • Allow Notifications: Encourages your user to opt-in for notifications
  • App Store Rating: Ask the user if they would like to review your app.

In-app message pre-built templates

You can customize these templates with your own branding and set them to an active state in a few minutes.

1. Audience

Select the audience eligible to receive your message. You can include and exclude Segments of users.

Screenshot showing the Audience settings for an in-app message

Screenshot showing the Audience settings for an in-app message


IMPORTANT: Segments Include Unsubscribed Devices

Segments for In-App Messages include both Subscribed & Unsubscribed mobile devices.

2. Message

This is where you create how the message looks and functions when clicked. There is a lot that you can do! More details, examples, and how-to guides are provided in the In-App Messaging Channel Docs. For now, lets test the template.

Screenshot showing the in-app message editing screen

Screenshot showing the in-app message editing screen

Send to Test Device

You can test IAMs by clicking Send Test In-App. If your device is not a Test User, see Find Devices & Set Test Users.

Sending a test In-App Message will send your device a push notification. Clicking the notification will open your app and display the IAM.

  • Push Notifications are not sent when in production. Push is only sent when clicking Send Test In-App.
  • Testing In-App Messages requires Push Subscription. Push Subscription is not required in production.


IAM Test Limitations

Tag Substitution does not work for Test In-App Messages.

3. Triggers

Triggers tell the OneSignal SDK when to display the IAM on the device. Users must be in the segment upon the app session to be eligible to receive the message. A session occurs when the app has been put into the foreground after 30 seconds of being closed or put in the background.

You can trigger the in-app message when the user opens the app or setup a custom triggers programmatically with addTrigger method. Custom triggers are key: value pair of string or integer data that you set programmatically in your app when an event occurs. See the IAM Triggers Guide for more details.

Image showing how you can set a trigger when creating an In-App Message

Image showing how you can set a trigger when creating an in-app message

4. Schedule

In-app messages can be scheduled to start and stop showing at some future date.

  • Start Showing is the date and time the message will begin to be presented to users.
  • Stop Showing is the time after which the message cannot be triggered any longer. You can also Show forever which means it will show until you Pause it or delete the App.

How often do you want to show this message?

Only once is default. The IAM will only show 1 time on the current device.

Every time trigger conditions are satisfied will show this message each time the Trigger conditions are met.

Multiple times allows you to set the specific amount of times this message can be shown and how long to wait in between each display.

For example, if you set: "2 times with a gap of 1 hours in between" - The message will be allowed to trigger a total of 2 times. The first time when the triggers are met, then the 2nd time when the triggers are met and 1 hour has passed.

If you set "12 times with a gap of 30 days in between" - The message will show roughly once a month for a year.

Screenshot showing in-app message scheduling options

Screenshot showing in-app message scheduling options

How In-App Messages are Displayed

In-app messages, unlike push notifications, are not sent to a users device. Instead they are loaded in the background when the app is opened, ready to be displayed to users who meet the segment criteria for the message, once the trigger conditions have been satisfied. The below flow diagram details what happens between an in-app message being set live, and the user seeing the message on their device:

A flow diagram which shows how in-app messages are shown to users.

A flow diagram detailing how in-app messages are shown to users.

Once an in-app message has been set live, the user must re-open the app after it has been in the background for at least 30 seconds for the in-app to display. The user must also meet the correct segment criteria, and must satisfy all of the trigger conditions before the message will display. If the user is not in the correct segment, they will need to have re-opened the app after it has been in the background for at least 30 seconds after they have entered the segment in order for the in-app to be displayed (updating a user's segment mid-session will not display the message).

Examples and Troubleshooting

For examples including Asking for and App Store Rating and Creating A Survey, please see our full In-App Messages feature guide.

If you encounter any issues setting up your in-app messages, please see our In-App Message Troubleshooting guide for common issues and frequently asked questions.


Make Message Live

Once you publish the in-app message, it will be eligible for all users selected in the Audience step.
See the In-App Messaging Channel Docs for more guides and next steps.

What’s Next