This document describes in-app messages and Mobile Inbox, which can be used to deliver messages to users of your mobile apps.
Read Sending In-App Messages to learn how to send in-app message campaigns with Iterable.
Table of contents
In-app messages are custom messages that appear in an iOS or Android mobile app while it is in the foreground. Unlike push notifications, they do not appear when the app is in the background or closed. These messages can be used to point users to new content or functionality in the app, promotions or any other important information.
In-app messages can:
- Be created with raw HTML or a drag-and-drop editor.
- Contain buttons and links.
- Be sent as part of blast, triggered or journey campaigns.
- Be given a display priority to help determine their display order.
- Be displayed in any order or prevented from displaying at all (using custom code in your mobile apps).
- Contain metadata that the associated mobile app can inspect.
- Be tied to different Iterable message channels and types.
How does an app receive in-app messages?
To let mobile apps know that new in-app messages are available, Iterable sends silent push notifications: invisible, silent notifications that serve only as a communication mechanism between Iterable and the app.
Iterable's mobile SDKs also check for new in-app messages at strategic times during an app's lifecycle, such as when it comes to the foreground.
After downloading new in-app messages, apps can use included metadata to determine whether or not to display them and in what order. By default, mobile apps will show all in-app messages in the order they were sent.
Iterable will not show the same in-app message to the same user more than once unless the message has been re-sent or selected in a mobile inbox.
Buttons and links in in-app messages
In-app messages can provide buttons and links to encourage users to take action on their content. These buttons and links might direct users to specific content in the app or on the web, or simply close the message.
For example, consider the in-app message at the top of this document:
- The Read Now button might point to a web URL or a deep link URL (to open specific content in the app itself). Tapping this button would close the in-app message and navigate to the specified address.
- The close button would have URL
iterable://dismiss, and tapping it would close the message and return the user to the app.
When users tap on the buttons or links in an in-app message, Iterable captures events that you can use for campaign analytics, to trigger journeys, to filter users in a journey or segment users, or to trigger system webhooks:
- All button and link taps create an in-app click event.
- Close button taps (URL
iterable://dismiss) create in-app click and in-app close events.
- Delete button taps (URL
iterable://delete) create in-app click, in-app close and in-app delete events.
For more information, read Events for In-App Messages and Mobile Inbox.
Users may sometimes want to save in-app messages to read when they have more time or when they're more relevant. In other cases, you may want to send promotions or announcements in a non-intrusive way, making them available for users to read as they see fit.
To accomplish these things, use a mobile inbox: a place in your mobile apps for users to receive, store, browse, read and delete in-app messages.
Mobile inboxes benefit users, developers, and marketers:
- For users, a mobile inbox provides convenience and value, allowing them to save your messages and read them when they're most relevant.
- For developers, Iterable's iOS and Android SDKs provide an out-of-the-box mobile inbox, including a customizable, dark-mode compatible user interface you can use in your apps.
- For marketers, Iterable's mobile inbox implementation provides rich analytics that describe how often and how long users have spent looking at their inbox, which messages have made an impression, which messages have been opened, and which messages have been deleted.
Using Mobile Inbox
A mobile inbox lists a user's saved in-app messages for the current app. It includes all in-app messages for which mobile inbox was enabled during campaign creation, regardless of whether they were sent directly to the inbox (without first being shown) or not. Inbox-enabled in-app messages show up in an app's mobile inbox as soon as the app receives them, regardless of any custom code that modifies message display time or display order.
For each message, a mobile inbox will, by default, display a title, some descriptive text, a send date, and an associated image.
A user can then tap a message to view it.
Syncing a mobile inbox across many devices
Iterable's iOS and Android SDKs automatically sync a mobile inbox across all the devices on which a user has logged in to your app—including whether or not each message has already been read.
If you're not using one of Iterable's mobile SDKs:
- To determine whether or not a message has been read, examine its
readfield, as returned by
- To mark a message as read, call
For more information about cross-device read state syncing, see:
Deleting in-app messages
There are two ways for users to delete in-app messages from a mobile inbox:
Tap a delete button (URL
iterable://delete) in the content of the message.
In the inbox, swipe left on the message and click Delete.
- Iterable's iOS SDK
- Iterable's Android SDK
- Iterable's React Native SDK
- In-App Messages Overview
- In-App Messages on iOS
- In-App Messages on Android
- Setting up Mobile Inbox on iOS
- Setting up Mobile Inbox on Android
- Customizing Mobile Inbox on iOS
- Customizing Mobile Inbox on Android
- Using a Mobile Inbox with Iterable's React Native SDK
- Animating In-App Messages with CSS
- Image Carousels in In-App Messages
- Testing and Troubleshooting In-App Messages
- In-App Messages Without the SDK
- API Overview and Sample Payloads
- Iterable's API Docs