Braze In-App Messaging: Drive Feature Adoption Now

Listen to this article · 12 min listen

Imagine your customers are deeply engaged with your app, and you want to deliver a timely, personalized message that feels like a natural part of their experience, not an interruption. That’s the power of in-app messaging for effective marketing. It’s about reaching users precisely when and where they’re most receptive, transforming passive engagement into active conversion. But how do you actually implement this? We’re going to walk through setting up a powerful in-app messaging campaign using Braze, a leading customer engagement platform, focusing on real UI elements and a specific marketing goal: driving feature adoption. Are you ready to stop guessing and start connecting?

Key Takeaways

  • Navigate to the “Campaigns” section in Braze and initiate a “New Campaign” to begin creating an in-app message.
  • Configure your target audience using precise filters like “Last Used App” within the “Audience” step, aiming for users who haven’t engaged with a specific feature in the last 7 days.
  • Design your in-app message using the “Message Composer,” selecting a “Slideup” template and customizing content, imagery, and call-to-action buttons for maximum impact.
  • Set up a precise “Trigger” for your message, such as “Custom Event: Feature_X_Viewed” with a delay, to ensure messages are delivered contextually and prevent annoyance.
  • Define clear “Conversion Events,” like “Feature_X_Engaged,” and A/B test your message variants to measure effectiveness and continuously refine your in-app marketing strategy.

Step 1: Initiating Your In-App Message Campaign in Braze (2026 UI)

Starting an in-app messaging campaign in Braze is straightforward, but precision here prevents headaches later. Our goal for this tutorial is to encourage users of a hypothetical productivity app, “FocusFlow,” to try a new “Deep Work Timer” feature they haven’t used yet. This isn’t just about sending a message; it’s about delivering value at the right moment.

1.1 Accessing the Campaigns Dashboard

First, log into your Braze dashboard. On the left-hand navigation pane, locate and click on “Campaigns.” This will take you to your primary campaign management screen. I always start here because it gives me a bird’s-eye view of all active and past initiatives – crucial for understanding the broader marketing context.

1.2 Creating a New Campaign

  1. On the “Campaigns” dashboard, look for the prominent blue button in the top right corner labeled “+ Create Campaign.” Click it.
  2. A modal window will appear, asking you to “Choose a Campaign Type.” For our objective, select “In-App Message.”
  3. Next, you’ll be prompted to “Name Your Campaign.” Give it a clear, descriptive name. For this example, let’s use “Feature Adoption: Deep Work Timer – First Use Prompt.” This helps us identify its purpose instantly.
  4. Click “Start Building.”

Pro Tip: Always use a consistent naming convention for your campaigns. When you have hundreds of campaigns running, a well-structured name (e.g., “Channel: Goal – Segment – Date”) saves immense time during analysis. I had a client last year who didn’t do this, and their analytics team spent days just trying to untangle campaign results – a completely avoidable mess.

Common Mistake: Rushing the naming process. A vague name like “New Feature Message” tells you nothing about its audience, goal, or timing. Be specific!

Expected Outcome: You’ll land on the main Campaign Builder interface, with “Audience” highlighted as the first step in the left-hand navigation.

Step 2: Defining Your Target Audience for Feature Adoption

The success of any in-app message hinges on reaching the right people. For our Deep Work Timer feature adoption campaign, we want users who have the app but haven’t yet tried this specific functionality.

2.1 Setting Initial Audience Filters

  1. On the “Audience” step, under “Target Users,” you’ll see “All Users” selected by default. Click on “Add Filter.”
  2. A dropdown menu will appear. Search for and select “Custom Event.”
  3. In the subsequent fields, configure the filter:
    • For “Event Name,” type “Feature_DeepWorkTimer_Used.” (This is a custom event we assume you’ve already implemented in your app’s analytics. If you haven’t, you absolutely need to work with your development team to track key user actions. Without it, your marketing efforts are blind!)
    • For the condition, select “has not occurred.”
    • For “in the last,” enter “7” and select “days.”
  4. Click “Add Filter” again.
  5. This time, select “Last Used App.”
  6. Configure this filter:
    • For the condition, select “is less than.”
    • For “X days ago,” enter “3.”

Pro Tip: The “Last Used App” filter is critical. Sending an in-app message to someone who hasn’t opened your app in weeks is pointless; they won’t see it. Aim for users who are actively engaging or have recently engaged. This keeps your messages timely and relevant, which according to a eMarketer report, significantly boosts engagement rates.

Common Mistake: Over-segmenting or under-segmenting. Too many filters can shrink your audience to an unviable size; too few and your message loses its personalization power.

Expected Outcome: The “Estimated Target Audience” count will update, showing you how many users fit these criteria. This number should be reasonable – not zero, but also not “all users.”

Feature Braze In-App Messaging Competitor X Competitor Y
Real-time Triggering ✓ Instant delivery on user actions. ✓ Event-based, may have slight delay. ✗ Limited to scheduled campaigns.
Personalization & Segmentation ✓ Deep user attributes, custom events. ✓ Basic user profiles, some custom. Partial Rules-based, pre-defined segments.
A/B Testing & Optimization ✓ Robust multi-variant testing, analytics. ✓ Simple A/B splits, basic reporting. ✗ No integrated A/B testing.
Rich Media Support ✓ Images, GIFs, videos, custom HTML. Partial Images and basic HTML only. ✗ Text and simple buttons only.
Cross-Channel Orchestration ✓ Seamless with push, email, webhooks. Partial Integrates with own push, limited external. ✗ Standalone in-app only.
Analytics & Reporting ✓ Granular engagement, conversion metrics. ✓ Standard open and click rates. Partial Basic delivery reports.

Step 3: Crafting Your In-App Message Content

Now for the creative part! This is where your message takes shape. We’re aiming for a friendly, informative prompt.

3.1 Selecting Message Type and Template

  1. On the left-hand navigation, click “Message.”
  2. Under “Message Type,” ensure “In-App Message” is selected.
  3. Under “Message Layout,” you’ll see various options: Modal, Full, Slideup, HTML. For a gentle nudge that doesn’t completely interrupt the user flow, I strongly recommend “Slideup.” It’s less intrusive than a full-screen modal but still captures attention. Click “Slideup.”
  4. A preview pane on the right will show the chosen layout.

3.2 Designing the Message Content

This is where you write your compelling copy and choose visuals.

  1. Title: In the “Title” field, enter: “Unlock Deeper Focus!” Keep it concise and benefit-oriented.
  2. Body: In the “Body” text area, write: “Ready to crush your tasks? Our new Deep Work Timer helps you block out distractions and get more done in less time. Give it a try today!”
  3. Image: Under “Image,” click “Upload Image.” Select a high-quality, app-branded image (e.g., a screenshot of the Deep Work Timer in action) that’s 500x300px for optimal display.
  4. Button 1:
    • For “Button 1 Text,” type: “Start Deep Work Now”
    • For “Button 1 Click Action,” select “Open Deep Link.”
    • In the “Deep Link URL” field, enter your app’s specific deep link for the Deep Work Timer feature: “focusflow://feature/deep-work-timer” (Verify this with your development team!)
  5. Button 2 (Optional): If you want a secondary, less committal option, you could add a “Later” button. For this campaign, I’m omitting it to drive a stronger call-to-action. Sometimes, fewer choices lead to more conversions.
  6. Background Color & Text Color: Adjust these to match your app’s branding. Consistency is key to a professional look. We’ll stick with the default white background and dark text for simplicity here, but don’t underestimate the power of good design.

Pro Tip: Use HubSpot research consistently shows that personalized content performs better. While we’re not using advanced personalization here, the targeted audience and feature-specific message already make it more relevant than a generic announcement.

Common Mistake: Overloading the message with too much text or too many calls to action. A single, clear purpose is always best for in-app messages.

Expected Outcome: Your message preview on the right will now display your crafted title, body, image, and primary call-to-action button, looking sleek and ready to engage.

Step 4: Configuring Delivery and Scheduling

This is where we tell Braze when to show the message. Timing is everything; deliver it too early or too late, and it’s ignored.

4.1 Setting the Delivery Method

  1. On the left-hand navigation, click “Delivery.”
  2. Under “Delivery Method,” ensure “Action-Based” is selected. This means the message will trigger based on a user’s specific behavior, which is perfect for feature adoption campaigns.

4.2 Defining the Action-Based Trigger

We want this message to appear when a user is likely considering productive work, but hasn’t explicitly started the Deep Work Timer.

  1. Under “Trigger Actions,” click “Add Trigger.”
  2. From the dropdown, select “Custom Event.”
  3. For “Event Name,” type “App_Opened.” This means the user has just opened the app.
  4. For “Times This Event Has Occurred,” select “at least” and enter “1.”
  5. Now, here’s the crucial part: we don’t want it to fire immediately upon app open if they’re already in a flow. Click “Add Delay” next to the trigger. Set the delay to “10 seconds.” This gives the user a moment to orient themselves within the app before the message appears.
  6. Under “Re-eligibility,” set “Minimum time between messages” to “7 days” and “Maximum number of times user can receive message” to “1.” We want to show this prompt only once to avoid annoyance. This is a critical setting – I’ve seen campaigns fail spectacularly because messages were repeatedly shown to the same user, leading to app uninstalls.

Pro Tip: Always consider user experience. A well-timed, unobtrusive message is a gift; a poorly timed, repetitive one is spam. Think about where your user is in their journey. For example, if they just completed a task, that’s a good time to suggest a new feature for their next one.

Common Mistake: Not setting re-eligibility. Users get frustrated quickly if they see the same message repeatedly, especially after they’ve already dismissed it or acted on it.

Expected Outcome: Your delivery settings will clearly show an “Action-Based” trigger on “App_Opened” with a 10-second delay and a strict re-eligibility period.

Step 5: Setting Conversion Events and Launching

The final steps involve defining what success looks like and then putting your campaign live.

5.1 Defining Conversion Events

How do we know if our message worked?

  1. On the left-hand navigation, click “Conversion Events.”
  2. Under “Conversion Events,” click “Add Conversion Event.”
  3. From the dropdown, select “Custom Event.”
  4. For “Event Name,” type “Feature_DeepWorkTimer_Used.”
  5. Set “Conversion Deadline” to “7 days.” This means we’ll attribute a conversion if the user uses the timer within 7 days of seeing the message.

Pro Tip: Always define your conversion events before launching. Without them, you’re just sending messages into the void, unable to measure their impact. According to the IAB’s Measurement & Marketing Effectiveness Frameworks, clear conversion metrics are fundamental to proving ROI.

5.2 Review and Launch

  1. On the left-hand navigation, click “Review & Launch.”
  2. Carefully review all your settings: Audience, Message Content, Delivery, and Conversion Events. Double-check for typos, incorrect deep links, and audience segmentation errors.
  3. If everything looks correct, click the prominent blue button: “Launch Campaign.”

Common Mistake: Skipping the review step. It’s astonishing how often a small typo or an incorrect deep link can derail an entire campaign. Always, always review.

Expected Outcome: Your campaign will go live, and Braze will begin sending your in-app message to eligible users as they meet the trigger criteria. You’ll then be able to monitor its performance in the “Campaigns” dashboard.

Implementing in-app messaging effectively means thinking like your user, anticipating their needs, and providing value at the exact moment they’re most receptive. By following these steps with a tool like Braze, you’re not just sending messages; you’re building smarter, more engaging relationships that drive real business outcomes. For further insights into maximizing user engagement and retention, explore our guide on mastering customer retention in 2026. Also, understanding the broader context of mobile app trends can give you an edge in crafting impactful messages. If you’re looking to turn app data into tangible results, our article on how to stop guessing and turn app data into revenue offers valuable strategies.

What is the difference between a push notification and an in-app message?

A push notification is sent to a user’s device whether they are actively using the app or not, appearing as an alert on their lock screen or notification tray. An in-app message, conversely, is only displayed when the user is actively inside the application, making it ideal for contextual communication related to their current activity or recent behavior within the app itself.

How often should I send in-app messages?

The frequency depends heavily on your app’s nature and user behavior, but generally, less is more. Aim for quality over quantity. For critical updates or feature adoptions, one well-timed message is often sufficient. Avoid sending more than 1-2 non-essential in-app messages per user per week to prevent message fatigue and potential uninstalls.

Can I A/B test in-app messages in Braze?

Yes, absolutely! During Step 3, in the “Message” section, you’ll see an option to “Add Variation.” This allows you to create multiple versions of your message (e.g., different headlines, images, or button texts) and test them against each other to see which performs best with a segment of your audience before rolling out the winner to everyone. This is a non-negotiable for serious marketers.

What are common types of in-app messages?

Common types include welcome messages for new users, feature adoption prompts (like our example), onboarding flows, special offer announcements, feedback requests (e.g., app store review prompts), and transactional alerts (e.g., “Your order has shipped”). Each type serves a different purpose in the user journey.

What metrics should I track for in-app message campaigns?

Key metrics include impressions (how many times the message was displayed), clicks/taps (how many users interacted with the message’s call-to-action), conversion rate (the percentage of users who completed the desired action after seeing the message), and dismissal rate (how often users closed the message without interacting). I also track any negative feedback or uninstalls that correlate with message sends.

Andrew Bautista

Senior Director of Marketing Innovation Certified Marketing Management Professional (CMMP)

Andrew Bautista is a seasoned marketing strategist with over a decade of experience driving growth for organizations of all sizes. As the Senior Director of Marketing Innovation at Stellar Dynamics Corp, he specializes in leveraging data-driven insights to craft impactful campaigns. Andrew has also consulted extensively with forward-thinking companies like Zenith Marketing Solutions. His expertise spans digital marketing, brand development, and customer engagement. Notably, Andrew spearheaded a campaign that increased market share by 25% within a single fiscal year.