App Inbox

Learn how to integrate and use App Inbox to deliver persistent in-app messages across devices and reinstalls.

Overview

App Inbox is a persistent message center embedded within your mobile application, providing users with a centralized space to view notifications they may have missed or want to revisit. Similar to an email inbox, it ensures that essential messages remain accessible until they are explicitly deleted or expire based on predefined rules.

Unlike push notifications or in-app messages — which are often transient and disappear once engaged with — App Inbox messages are retained for longer durations. This makes it an ideal channel for delivering information that users may need to reference later, such as offers, transactional updates, account alerts, or news announcements.

App Inbox supports two delivery models:

  • Device-Level Inbox: Messages are associated with a specific device identifier (GUID) and are visible only on that device.
  • User-Level Inbox: For identified users, messages are associated with a unique user identifier (User ID), ensuring message continuity across multiple devices and app reinstalls.

App Inbox supports two delivery models based on user identification:

FeatureDevice-Level InboxUser-Level Inbox
Message AssociationDevice GUIDPrimary User ID (TRID)
App ReinstallMessages lostMessages retained
Multi-Device SupportNot supportedFully supported
User IdentificationNot requiredRequired
Read/Unread SyncLocal onlyLocal only
Message Deletion SyncLocal onlySynced across devices

This dual-model approach ensures that both anonymous and logged-in users receive relevant messaging experiences while providing message persistence and synchronization capabilities for identified users.

App Inbox is fully compatible with both iOS and Android platforms and supports message categorization, rich media, and various UI customization options.

This guide explains how Netcore's app inbox feature works.

📘

SDK Requirements

To use User-Level App Inbox, integrate the following SDK versions or later:

PlatformSDKMinimum Version
AndroidSmartechAppInbox-Android-SDK3.8.0
iOSSmartechAppInbox-iOS-SDK3.5.10

❗️

Backward Compatibility

  • Applications using older SDK versions (prior to the versions listed above) will continue to support device-level App Inbox behavior.
  • Once end users upgrade to a supported SDK version, the transition to user-level message sync occurs automatically — no changes are required in the campaign creation flow or UI logic.

Refer to app inbox SDK integration steps here: Android SDK Integration document & iOS SDK Integration document

Send Push Notifications to App Inbox

App Inbox lets you send a persistent copy of your push notification campaigns directly to the user’s in-app inbox. This ensures messages remain available even after the user dismisses or misses a push notification.

Send Copy of this Notification to App Inbox

Send a Copy of this Notification to the App Inbox

Enable App Inbox Delivery

  1. Navigate to the Schedule section of your push campaign setup.
  2. Turn on the “Send copy to App Inbox” toggle to include the message in the user’s App Inbox.
  3. Specify Message Category (Optional)
    • Use categories like offers, updates, alerts to organize messages.
    • Accepted characters: A–Z, 0–9, _ (underscore).
  4. Configure Time to Live (TTL):
    • TTL defines how long the message remains in the App Inbox. Default maximum is 29 days.
    • TTL can be the same as or different from your push notification TTL.
    • Once the campaign is published, messages will appear in the App Inbox for eligible users based on their identification state and platform.

How App Inbox Works

App Inbox supports two modes of operation, depending on whether the user is identified or anonymous.

Users
1. Identified Users (User-Level Inbox)1. Messages are linked to the user’s primary identifier (User ID).
2. Messages persist across:
- Multiple devices
- App uninstalls and reinstalls
3. Messages are fetched from the backend based on user ID.
4. Deleting a message removes it from all devices.
5. Deduplication ensures the same message isn't displayed multiple times across devices.
2. Anonymous Users (Device-Level Inbox)1. Messages are tied to the device’s GUID.
2. Messages are stored locally on the device.
3. If the app is uninstalled, inbox messages are lost.
4. Messages are only visible on the device they were received on.
3. Message Ordering & Expiry1. Messages are displayed in reverse chronological order based on timestamps.
2. Once TTL is reached, messages are automatically removed.
4. Read / Unread Status1. Message read/unread status is managed locally on the device.
2. The same message may appear as unread on another device, even if already read elsewhere.

Edge Case

ScenarioBehaviorNotes
Anonymous → Identified UserSDK switches to user-level inbox based on User IDMessages received while anonymous are not merged post-login
App Reinstall (Identified User)Messages are restored based on user IDEnsures continuity across reinstalls
App Reinstall (Anonymous User)Messages are lostStored locally and tied to device GUID
Multi-Device (Same OS)Messages appear on both devices, without duplicationBackend deduplicates using User ID + Message ID
Multi-Device (Cross-Platform)Messages appear on both platforms, if payloads are compatibleOS-specific payloads are returned when available
Message DeletionDeleted messages are removed from the backend and not shown againApplies across all devices for identified users
SDK Version Mismatch (Old vs. New SDK)Old SDK shows device-level inbox; new SDK shows user-level inboxBoth continue working independently; recommend SDK upgrade
Read/Unread StatusManaged locally on each deviceRead on one device may appear as unread on another
Viewed StateHandled at device levelNot synced across devices in current implementation
TTL ExpiryMessages expire after configured TTLDefault max = 29 days; up to 90 days for supported clients
Deleted Message Re-fetchingDeleted messages are not returned in subsequent fetchesDeletion sync may occur in batches (e.g., hourly)

App Inbox UI Options

By default, the SDK provides a ready-to-use App Inbox UI that can be directly embedded in your app. This UI handles everyday user interactions and displays messages out of the box.

Alternatively, you can use custom SDK methods to build your own App Inbox interface that aligns with your app’s design system and UX standards.

Default App Inbox UI Features

The default App Inbox screen supports the following capabilities:

  • Pull to Refresh – Fetches new messages from the server
  • Swipe to Delete – Allows users to remove messages from the inbox
  • Category Filtering – Lets users view messages by predefined categories (e.g., offers, updates)
  • Rich Media Support – Supports all media types configured in the push notification: Text, images, carousels, videos, GIFs, audio
  • Interactive Actions – Displays action buttons such as: Deep link redirects, Dismiss, and Copy text
Example: App Inbox Notification

Example: App Inbox Notification

Frequently Asked Questions(FAQs) & Troubleshooting

Q. Will users see their App Inbox messages after reinstalling the app?

A. Yes, if the user is identified (i.e., logged in), their App Inbox messages will be restored after reinstalling the app. For anonymous users, messages are tied to the device and will be lost after uninstall.


Q. Do messages sync across multiple devices?

A. Yes, for identified users. Messages are associated with a user’s unique ID (TRID) and will appear on all devices where the user is logged in. For anonymous users, messages are only available on the specific device that received them.


Q. What happens to messages received before login (anonymous state) once a user logs in?

A. Messages received while the user is anonymous do not transfer to the user-level inbox after login. Only messages sent to the user ID (TRID) are available post-login.


Q. Are deleted messages removed from all devices?

A. Yes. Once a message is deleted by the user, it is marked as deleted in the backend and will no longer be fetched on any device during subsequent syncs.


Q. Is read/unread status synced across devices?

A. No. Read/unread status is managed locally on the device. If a message is marked as read on Device A, it may still appear as unread on Device B until it is opened there as well.


Q. Can users retrieve deleted App Inbox messages?

A. No. Once a message is deleted, it is permanently removed from the backend and cannot be restored.


Q. What happens if a user is using different SDK versions on different devices?

A. The device with the latest SDK will show user-level inbox messages. The device with an older SDK will show only device-level messages. Both SDK versions can be used independently, but we recommend upgrading to ensure a consistent experience.


Q. Are messages deduplicated across devices?

A. Yes. The SDK and backend work together to deduplicate messages using a combination of the user ID (TRID) and message ID (TRID/message token). Users will not see the same message multiple times across devices.


Q. Does App Inbox support rich media and action buttons?

A. Yes. App Inbox supports all types of media configured in your push campaigns, including:

  • Text
  • Images
  • Carousels
  • Videos
  • Audio
  • GIFs

It also supports action buttons like:

  • Deep links
  • Dismiss
  • Copy text

Q. Can messages have different payloads for Android and iOS?

A. Yes. The backend supports OS-specific payloads. When a message is fetched:

  • The system returns the payload specific to the requesting OS, if available.
  • If an OS-specific payload is not available, it falls back to the generic message payload.

Q. Can message TTL (Time to Live) be customized?

A. Yes. By default, App Inbox messages can have a TTL of up to 29 days.


Next

For more information, visit this link.