Skip to main content
In-app messages let you show modals, banners, and bottom sheets inside your mobile app. Templates are created in the Masivo dashboard; your app fetches eligible messages and reports impressions through the Storefront API.

How in-app messages work

Messages are materialized per customer when a template is scheduled to an audience, sent as a test, or delivered through a journey. Each row in inapp_messages stores the rendered content, display rules, and delivery metadata. Your mobile app:
  1. Calls GET /inapp/capabilities to know whether in-app is enabled and which journey event types support real-time delivery.
  2. Calls GET /customers/{id}/inapp-messages after app open or when a trigger event fires.
  3. Renders the message using the type and content fields.
  4. Calls POST /customers/{id}/inapp-messages/{messageId}/events for each impression action.

Message lifecycle

Message types

Template configuration

Delivery sources

Journey-connected templates can also trigger real-time delivery: when a qualifying event is emitted, Masivo materializes the message and sends a silent push to customers with a registered device token and push consent. Your app should handle that payload and refresh via GET /customers/{id}/inapp-messages. Use GET /inapp/capabilities to read the supported eventTypes.

Tracking events

Each impression action emits a resolved tracking event: Pass optional metadata (for example button_id) on click events for button-level analytics.

Comparison with push notifications