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 ininapp_messages stores the rendered content, display rules, and delivery metadata.
Your mobile app:
- Calls
GET /inapp/capabilitiesto know whether in-app is enabled and which journey event types support real-time delivery. - Calls
GET /customers/{id}/inapp-messagesafter app open or when a trigger event fires. - Renders the message using the
typeandcontentfields. - Calls
POST /customers/{id}/inapp-messages/{messageId}/eventsfor 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
Related documentation
- In-app messages — dashboard setup
- Integrate in-app messages — end-to-end app integration
- Integrate in-app messages — Storefront API reference guide