How to use Klaviyo for in-app and push messaging with JMango360

How to use Klaviyo for in-app and push messaging with JMango360


      1. Introduction 


      To get the most out of Klaviyo for your app, it is important to understand which push notifications and in-app messages are supported, how to configure them correctly, and which settings, lists, and segments will help you target the right users.


      This guide explains the key use cases supported by JMango360, links to relevant Klaviyo documentation, and shares practical recommendations to help you build effective messaging flows for engagement, conversion, and retention.






      1. Useful Klaviyo documentation 


      For the core information about the push- and in-app messaging capabilities, we’re referring to the Klaviyo support documentation. 


      Segments


      Push messaging


      In-app messaging


      Analytics 



      1. App (specific) lists and segments


      The JMango360 integration automatically pushes specific mobile events (Metrics) to Klaviyo, enabling you to build segments based on app behavior. Use segments rather than lists for behavioral targeting, since segments update automatically based on profile data and events



      • Segment: Total app users. 

        • Use this segment to identify everyone with app activity.

        • Settings: What someone has done (or not done) > Opened App > at least once > over all time.

      Example:


      • Segment: Push opted-in users

        • Use this segment for all push campaigns and push flows. Push consent is managed separately per channel and device, so only opted-in users are eligible to receive push.

        • Settings: 

          • What someone has done (or not done) > Opened App > at least once > over all time. AND

          • What someone has done (or not done) > Received Push > at least once > over all time.


      • Segment: Engaged push subscribers

        • Use this segment for promotional pushes and reactivation campaigns when you want to target users who actively engage with push. Klaviyo recommends creating this segment only after push is set up and you already have push engagement data.

        • Settings: Start with push subscribed as the first condition. Add one or more engagement conditions, for example users who received/opened push or were active in a recent period.


      • What someone has done (or not done) > Opened Push/Received Push  > at least once in the last 14/30 days


      • Segment: Inactive users (14 / 30 / 60 days)

        • Use these segments for win-back and reactivation flows.

        • Settings:

          • What someone has done (or not done) > Opened App > zero times in the last 14 days AND

          • What someone has done (or not done) > Opened App at least once > over all time.

      Repeat the same logic for 30 days and 60 days.


      • Segment: Recent (app) purchasers

        • Use this segment for post-purchase targeting, exclusions, and loyalty messaging.

        • Settings: Add a condition such as: What someone has done > Placed Order > at least once in the last 30 days. Adjust the timeframe based on your purchase cycle. Optionally add Opened App at least once over all time if you only want app purchasers.


      • What someone has done (or not done) > Opened App > at least once > over all time. AND

      • What someone has done (or not done) > Placed Order > at least once in the last 30 days



      • Segment: Logged-in users 

        • Use this segment for account-based messaging, order status, and personalized in-app experiences.

        • Settings: Add a profile property condition is Email (is set). When users log in, the guest profile will merge with the user profile with the email address. This ensures that your message campaigns reach a real person with a valid contact method, rather than an anonymous app visitor. Optionally combine it with an app activity to closely trigger. 


      • What someone has done (or not done) > Opened App > at least once > over all time. AND

      • Properties about someone > Email (is set) > Type: Text


      • Segment: Non-logged-in users

        • Use this segment for login reminder campaigns and in-app prompts.

        • Settings: Add a profile property condition as Email (is not set). When users install the app and are not logged in, they do not have Email in their profile. Optionally combine it with app activity, for example users who opened the app at least once in the last 30 days.

          • What someone has done (or not done) > Opened App > at least once > over all time. AND

          • Properties about someone > Email (is NOT set) > Type: Text


      • List: App Test group

        • Use this list for QA, internal testing, deep link validation, and previewing push or in-app messages before going live. Lists are static in Klaviyo, which makes them a good option for a controlled internal test audience.

        • Step 1: Create a new list “App test group”. 

        • Step 2: Go to the required profile (search by email), action: Add to list. 



      4.2 Country-specific setup


      If you operate in multiple countries, create separate segments per market so you can localize content, timing, and promotions. The easiest way is to add a country-based condition using an available profile property such as Country, Locale, or another market identifier synced to Klaviyo. For example, create segments such as Push opted-in users - US, Push opted-in users - UK, or Recent purchasers - NL. This makes it easier to send country-specific push campaigns, apply the right language, and control audience targeting per region.

      To target users based on their specific country or language, follow these steps in the Klaviyo Segment Builder:

      • Define the Condition: In the "Definition" section, select Properties about someone from the first dropdown menu.

      • Select the Property: Choose either Locale: Language (to target by language) or Locale: Country (to target by geographic location) from the property list.

      • Enter the Value: Set the operator to equals and enter the corresponding code for your target market:

      • For Language: Use the standard ISO 639 language codes (e.g., en for English, nl for Dutch). Refer to ISO 639 Language Codes for a full list.

      • For Country: Use the standard ISO 3166 country codes (e.g., US for United States, NL for Netherlands). Refer to ISO 3166 Country Codes for details.

      • Finalize: Click Create Segment to save your audience. This ensures your push or in-app messages are delivered in the correct language and at the most relevant time for each specific market.


      For more information and instructions, you can read the Klaviyo article: Multi-language messaging guide – How to send push or in-app messages in multiple languages based on a subscriber’s locale.



      1. Klaviyo Push messaging


      With Klaviyo, you can use push messaging for both one-time campaigns and automated lifecycle communication. See section 7. How to configure deeplinks for the full details. 


      5.1. Manual Push Campaigns


      Manual push campaigns are best used for one-time messages such as promotions, flash sales, product launches, seasonal campaigns, or holiday greetings. To create a manual push campaign in Klaviyo, follow the official Klaviyo guide on sending a push notification campaign


      5.2. Automated Push (flows)


      Automated push notifications are triggered by user behavior or e-commerce events. They are ideal for sending timely, relevant messages without manually creating each campaign. In Klaviyo, push notifications can be added directly to flows, and only app users who have consented to notifications are eligible to receive them.


      Recommended flow settings

       


      Supported flow examples 


      Abandoned Cart

      This type of push notification flow re-engages users who showed high intent by starting checkout/adding products to cart but didn't complete their purchase.

      • Prerequisites: * Klaviyo's "Started Checkout" and "Added to Cart" events must be correctly mapped from the mobile app. Ensure the "App ID" or "Source" property is tracked to distinguish app carts from web carts.

      • Configuration:

        • Trigger: Started Checkout (App).

        • Flow Filter: What someone has done > Placed Order = 0 times AND Started Checkout = 0 times since starting this flow.

        • Delay: Set a wait time of 1 to 2 hours (App users expect faster reminders than desktop users).

        • Deeplink: Yes, take the user directly back to their cart inside the app. The deeplinking format for the shopping cart destination is {{appSchema}}://cart (e.g: com.jmango360.app://cart)



      Reactivation 

      Bring back users who have become inactive over a specific period, specifically who have not opened the app for 14, 30 or 60 days.

      • Prerequisites: * The "Opened App" event must be active and syncing. This identifies your typical purchase cycle to set meaningful windows (e.g., if users buy monthly, a 30-day reactivation is ideal).

      • Configuration:

        • Trigger: Segment-based (e.g., combine the "Inactive app users in 14/30/60 days" segments created earlier and “Push opted-in users).

        • Logic: When a user enters the segment, the flow triggers.

        • Deeplink: No, open the homepage


      Back in Stock

      Notify interested users the moment a product is available again.

      • Prerequisites: 

        • Inventory Settings: In your Shopify/BigCommerce backend, you must NOT allow "Continue selling when out of stock." The item must be marked as out of stock for the "Notify Me" trigger to appear.


      • Configuration:

        • Trigger: Back in Stock (Metric-based).

        • Logic: Triggered when the inventory level for a specific SKU increases from 0.

        • Filter: Has not purchased this item since starting this flow & push opted-in.

        • Priority: Set a Minimum Inventory Threshold (e.g., only notify if you have at least 5 items in stock) to avoid frustrating users if it sells out again instantly.

        • Deeplink: E.g: com.jmango360.app://products/{{event.ProductID}}


      Order Status (Transactional)

      Provide real-time updates on order progress (such as order confirmed, shipped, or out for delivery), building trust and reducing support tickets.

      • Prerequisites:  Integration with your shipping provider (e.g., ShipStation, AfterShip) or direct Shopify/BigCommerce order webhooks must be active in Klaviyo.

      • Configuration:

        • Trigger: Order Fulfilled / Out for Delivery / Delivered.

        • Filter: Only send to users where Last App Open is within the last 90 days to ensure it reaches your mobile-first customers.

        • Best Practice: Ensure these are marked as "Transactional" in Klaviyo settings so they bypass the global unsubscribe list (unless the user has opted out of Push specifically).

        • Deeplink: Yes, take the user directly back to their order overview. The deeplinking format for the shopping cart destination is {{appSchema}}://orders (e.g: com.jmango360.app://orders)


      1. Klaviyo In-app messaging 


      Unlike push, in-app messages appear only when the user is inside the app. They don't require system-level permissions.

      In-app messages are most effective when they are timely, relevant, and presented in the right context within the customer journey. Common use cases include sales-driven messages such as exclusive app content and promotions, functional messages such as app update requests, login reminders, app rating requests, or push opt-in reminders, and engagement messages such as welcome messages for new users.


      6.1. Manual In-App


      Manual in-app messages are great for promotional purposes or product introductions.  To create a manual in-app message in Klaviyo, follow the official Klaviyo guide on how to create an in-app form 


      6.2. Automated In-App


      You can find a more detailed campaign configuration Guide for some particular automated templates. The triggers, frequency, and targeting are recommended settings; you can alter the settings to your business needs. 

      i. Welcome Message

      Goal: Greet first-time app users and encourage their first purchase.

      • Trigger: Opened App (Event).

      • Targeting: Segment where Placed Order is 0 over all time.

      • Frequency: Set to "Show only once per profile" to ensure a clean user experience.

      • Deep Link: No (Usually a brand introduction or general discount code).

      ii. Rate the App Request

      Goal: Drive high-quality reviews from satisfied customers.

      • Trigger: Placed Order (Metric).

      • Condition: Filter where Placed Order is equal to 1or 2 (targets users after their first or second successful experience).

      • Delay: 3–5 days after the order is placed (allows time for delivery and product satisfaction).

      • Deep Link: Yes (Direct to App Store / Google Play).

      iii. Push Opt-in Reminder

      Goal: Convert "Push-Disabled" users into "Push-Enabled" subscribers.

      • Trigger: Opened App (Best shown on the 2nd or 3rd session to build trust).

      • Targeting: Segment where Push Opted-in = False.

      • Format: Use a Banner or Sticky Footer layout (less intrusive).

      • Deep Link: No. Note: Klaviyo cannot deep link directly to OS Settings. Your message should provide clear instructions (e.g., "Go to Settings > Notifications > [App Name]").

      iv. Account Creation / Login Reminder

      Goal: Encourage guest users to register to save their wishlist and data.

      • Trigger: Filter where Received Push is 0 times (to target users not yet reachable via push).

      • Targeting: Segment where Profile Property is_logged_in = False.

      • Format: Modal or Slide-out message.

      • Deep Link: TBD (Recommended: yourbrand://login or yourbrand://account).

      v. New App Version Notification

      Goal: Migrate users to the latest version for better stability and features.

      • Targeting Logic:

        • Condition: Profile Property > App Version

        • Operator: is less than

        • Value: [Enter Current Live Version, e.g., 6.1.0]

        • Note: You must update this value in Klaviyo every time you release a new version.

      • Deep Link (External): 



      NOTE: The deeplinking format requires you to fill in your specific App ID/Package name (e.g., com.jmango360.app). If you are unsure about your Apple App ID or Android Package Name, please feel free to reach out to support@jmango360.com or your app developer for assistance. Providing the incorrect ID will cause deep links and store redirects to fail.


      7.1 Scope of deep linking 


      Scope

      Destination Page

      Push 

      In-App 

      Deeplinking format URL Example

      Internal App

      Back-in-stock product

      com.jmango360.app://products/{{event.ProductID}}

      Category Page

      com.jmango360.app://category/987654321

      Product Detail (PDP)

      com.jmango360.app://products/123456789

      Shopping cart

      com.jmango360.app://cart

      My wishlist

      com.jmango360.app://wishlist

      My orders screen

      com.jmango360.app://orders

      External Links

      Web URL (Browser)

      https://www.yourstore.com/blog

      App Store (iOS)

      itms-apps://apple.com/app/id[ID]

      Google Play (Android)

      market://details?id=[PACKAGE]




      7.2 Deeplinking instructions 


      When setting up deep links in Klaviyo, the format of deeplinking information you use depends on whether Universal Links are enabled for your app.

      • With Universal Links: You can use standard Web Links (e.g., https://...). This provides the smoothest user experience and a seamless fallback to the browser if the app isn't installed.

      • Without Universal Links: You must use a URL Scheme (e.g., BundleID://...). If you're unsure of your Bundle ID, please contact us for assistance.


      To ensure you land on the correct page within your app, you need to place your Deep Links (Web Links or URL Schemes) in specific fields within the Klaviyo editor. Below is a step-by-step guide, specifically designed to help you locate the deep link settings based on the Klaviyo interface for Push Notifications and In-App Messages.


      Deeplinking Push Notifications



      Push notifications are configured under the Behaviors tab of your campaign.

      • Step 1: Open your Push Notification campaign and navigate to the Behaviors section (next to "Content").

      • Step 2: Under Open Action, click the dropdown menu and select Deep Link.

      • Step 3: You will see two required fields: iOS Link and Android Link.


      a. Linking to a Specific Product


      b. Linking to a Specific Category or Collection


      • Step 4: Click Save & Continue to apply the settings.


      Deeplinking for In-App Messages


      In-app messages allow you to redirect users when they click a button inside a popup.


      • Step 1: Open the In-App Message Editor and click directly on the Button (e.g., "See what’s new") in the mobile preview.

      • Step 2: The Button settings panel will appear on the left.

      • Step 3: Under Button click action, ensure the dropdown is set to Go to app screen.

      • Step 4: In the Deep link input field, enter your URL: the format of Web Link or URL schema is the same as what was mentioned in Push notification deeplink above.

      • Step 5: Preview your changes and click Publish or schedule.

        • Related Articles

        • Firebase cloud (push) messaging

          Firebase messages are powerful features that allow you to engage and communicate with your app users directly within your app's interface. In this article, we will explore the scope and prerequisites for using Firebase cloud messages and provide ...
        • Firebase in-app messaging

          Firebase in-app messages are powerful features that allow you to engage and communicate with your app users directly within your app's interface. In this article, we will explore the scope and prerequisites for using Firebase in-app and provide ...
        • Klaviyo for push notifications and in-app messaging

          1. About Klaviyo Klaviyo is a unified customer platform that empowers businesses to deliver personalized experiences across various marketing channels, including email, SMS, and crucially, push and in-app messages. By centralizing customer data and ...
        • Push notifications in Alphonso

          Push notifications have been proven to be a direct and cost-efficient communication channel, fostering user engagement and retention. In this guide, we’ll explore the scope of push notifications in Alphonso and how to send push notifications. 1. ...
        • Klaviyo prerequisites and implementation steps

          To use the Klaviyo integration, see the overview of scope and prerequisites below. If you have any questions, please contact our customer success team. 1. Integration Prerequisites Prerequisites by JMango360 Available for customers with a JMango360 ...