In-app messages are targeted prompts that appear while someone is using your product. They include welcome screens, tooltips, checklists, banners, surveys, and upgrade prompts, and their job is to help the user take the most relevant next action in context.

Despite having in-app messages in place, most SaaS users still fail to reach meaningful value. Our SaaS Product Metrics Benchmark Report at Userpilot puts the average activation rate at 37.5%, core feature adoption at 24.5%, and onboarding checklist completion at 19.2%. In other words, a signup or feature release does not guarantee that users will understand what to do next.

In-app messaging can close that gap, but it should not replace every other communication channel. It reaches users who are already inside your product, making it ideal for guidance, feature discovery, feedback, and contextual upsells. Email and push are still better for re-engaging people who have stopped logging in or for messages they need to revisit later.

I’ll walk you through 17 in-app messaging examples to show you how SaaS teams use different patterns across onboarding, adoption, retention, and account expansion. More importantly, I’ll explain why each example works, where I would use the same approach, and what I would change before copying it.

demo CTA

17 Best in-app messaging examples to improve customer engagement

I’ve grouped the examples by the customer journey stage they support:

  • Onboarding: Learn what a new user wants and guide them to their first value moment.
  • Adoption: Help users complete key workflows and discover relevant features.
  • Retention: Reinforce value, introduce advanced capabilities, and collect feedback before friction becomes churn.
  • Account expansion: Present upgrades when the user has encountered a real reason to consider one.

In-app messaging examples for user onboarding

During onboarding, I use in-app messaging to answer three questions quickly: Who is this user? What are they trying to accomplish? What is the shortest path to proving that the product can help?

The biggest mistake is turning onboarding into a guided tour of the interface. New users do not need an explanation of every menu. They need enough direction to complete the action that makes the product worth returning to.

#1 Postfity uses a welcome screen to personalize onboarding

Postfity starts with a welcome screen that asks users to identify their role or use case. That one answer gives the product enough information to change the guidance that follows.

Postfity welcome screen

What I like about this example is the restraint. The welcome screen does not ask five demographic questions simply because the data might be useful later. It collects information that can immediately improve the experience.

That is my rule for welcome surveys: only ask a question if the answer will change the next screen, checklist, or recommendation. If every response leads to the same tour, the survey creates friction without delivering personalized onboarding.

For a project management product, for example, asking whether someone manages client work or an internal team could determine which template, terminology, and activation task they see first. One useful answer is often enough to make the rest of the onboarding feel intentional.

#2 Kontentino sets expectations and guides users to two activation events

Kontentino’s welcome screen introduces the onboarding process, puts a human face to the experience, and invites users to ask for help. The tone is supportive, but the flow is still focused on action.

Kontentino welcome screen

The important part is what happens after the welcome. Kontentino identified two actions that signal early value: connecting a social media account and scheduling the first post. Its walkthrough and checklist guide users toward those actions rather than showing them around the entire platform.

That focus produced a measurable result. According to Kontentino’s onboarding case study, the company increased new-user activation by nearly 10% in its first month using the new flow.

This is the kind of evidence I look for before expanding an onboarding experience. First, define the activation events. Then build messages around them and compare activation for users who engage with the flow against those who do not. Completion alone is not a success metric if the completed flow does not change product behavior.

#3 Canva uses a welcome survey to segment users by intent

Canva asks new users what they plan to create, then uses the answer to prioritize relevant templates and recommendations. This is more useful than segmenting by job title alone because two people with the same role may have completely different reasons for using the product.

Canva welcome screen

When I design this kind of survey, I separate three possible inputs:

  • Role: Who is using the product?
  • Goal: What outcome are they trying to achieve?
  • Experience: How much guidance are they likely to need?

You rarely need all three at once. Choose the input that creates the clearest difference in the next experience. Userpilot’s role- and behavior-based onboarding tools, for example, let teams route users into different flows and checklists without building separate onboarding logic into the product itself.

The practical lesson from Canva is not “add a welcome survey.” It is to use the answer. Change the starting template, recommended workflow, checklist, or help content so the user can see that the product understood their intent.

In-app messaging examples for product and feature adoption

Activation proves initial value. Adoption happens when users repeat the valuable behavior and incorporate more of the product into their workflow.

At this stage, messages should respond to what the user has or has not done. A generic feature announcement sent to the entire user base may create awareness, but it will not necessarily change behavior. I prefer to trigger adoption messages after a relevant event, repeated workaround, milestone, or sign of hesitation.

#4 Userpilot combines an announcement, webinar invitation, and on-demand help

When we launched the Userpilot Resource Center, we did not try to explain the entire feature in one announcement. We used a full-screen modal to introduce the release and show why it was useful.

Userpilot resource center announcement

We then used a slideout to invite users to a webinar where they could see the feature in action and ask questions.

Userpilot webinar slideout

The sequence works because each message has one job. The modal creates awareness, the slideout offers deeper education, and the in-app resource center keeps tutorials, product news, and support content available after both messages disappear.

I use this layered approach for substantial releases. Do not force the complete tutorial, release note, webinar registration, and feedback request into one modal. Introduce the value first, then let users choose how much more help they need.

#5 Loom uses a checklist to drive users toward the core workflow

Loom’s checklist centers on the behavior that makes the product valuable: recording and sharing a video. The tasks do not send users to profile settings or secondary features just to make the list look comprehensive.

Loom onboarding checklist

A strong onboarding checklist should function as a route to value, not a table of contents. I normally keep the initial version to three to five meaningful tasks, write each item as an action, and complete it automatically when the product detects the behavior.

The order matters too. Put the task with the highest value-to-effort ratio first so users experience progress quickly. Optional setup work can appear later or move into a secondary checklist after activation.

Before publishing a checklist, I ask one uncomfortable question: would completing these tasks make the user more likely to return? If the answer is unclear, the checklist is probably measuring activity rather than adoption.

#6 Respond.io uses a checklist for a multi-step, collaborative setup

Respond.io, previously known as Rocketbots, has a more involved setup than Loom. Its checklist reflects that by guiding users through the actions required to make a business messaging workspace operational.

Respond.io onboarding checklist

This is an important distinction. The ideal checklist length is not a universal number. It depends on the minimum configuration required to deliver value. A collaborative B2B product may need users to connect a channel, invite a teammate, and configure an automation before the workflow can work as intended.

In those cases, I would still avoid presenting every setup step at once. Break the process into phases, explain why each task matters, and keep completed items visible long enough to reinforce progress. For account-level products, also decide whether one person completing a task should update the checklist for everyone in the company.

The lesson here is to model the real implementation journey, including dependencies outside the individual user’s control, rather than pretending every product has an instant aha moment.

#7 Get a Newsletter uses a two-step interactive walkthrough

Get a Newsletter proves that an interactive walkthrough does not need ten tooltips. Its two-step flow directs users to the relevant interface and gives them enough information to continue independently.

Get a Newsletter interactive walkthrough

I call this minimum viable guidance. The message should remove the next point of uncertainty, not pre-empt every question the user might have later. Short interactive walkthroughs also make it easier to identify which step causes abandonment and revise the experience without rewriting a full tour.

Attach each tooltip to the element the user must interact with, allow them to complete the action before advancing, and end as soon as they can continue on their own. That creates learning through action rather than passive clicking.

For complex features, I would pair the walkthrough with optional on-demand help. The user who needs more detail can open a tutorial, while everyone else gets out of the flow quickly.

In-app messaging examples for retention

Retention messaging should help active users keep finding value. That can mean introducing a more advanced workflow, explaining a major product change, asking for feedback after a specific interaction, or intervening before a cancellation.

Timing becomes especially important here. Long-term users already understand the product, so broad educational prompts can feel patronizing. Use behavioral data to distinguish people who need guidance from those who have already adopted the feature.

#8 BacklinkManager uses secondary onboarding for advanced feature discovery

BacklinkManager uses a checklist to introduce an automation workflow after users have had time to understand the product’s basic value.

BacklinkManager secondary onboarding checklist

This is a good example of secondary onboarding. Advanced features often improve retention, but promoting them during the first session competes with activation. Waiting until a user completes the primary workflow gives the message more relevance and reduces cognitive load.

I would trigger this checklist after a meaningful milestone, such as completing the manual workflow several times, reaching a usage threshold, or visiting the automation page without configuring it. I would also exclude anyone who already uses the feature.

The message should connect the advanced feature to the work the user is already doing. “Automate your recurring link checks” is more compelling than “Discover our automation feature” because it explains the payoff in the user’s terms.

#9 Moz uses a modal for a significant feature announcement

Moz uses a modal to announce a new feature and give users a clear route to try it.

Moz new feature announcement modal

A modal is justified when the release materially changes what users can accomplish or how they complete an important workflow. It is not the right default for every minor improvement.

For a strong new feature announcement, I look for three elements: what changed, why it matters to this user, and one clear next step. Screenshots or short videos help when the interface is unfamiliar, but the copy still needs to communicate the value because not every user will study the visual.

I would also control frequency carefully. If users learn that every login brings another blocking modal, they will dismiss announcements before reading them. Reserve interruption for releases that deserve it and use banners, tooltips, or a news center for smaller updates.

#10 Kommunicate uses small cues to improve feature discovery

Kommunicate discovered that many customers were asking for capabilities that already existed. Around 60–70% of users relied on only three or four major parts of the platform, so the team focused on drawing attention to features connected to conversion.

Kommunicate feature tooltip

Rather than relying on one large tour, Kommunicate used a series of small in-app cues. The broader Kommunicate product adoption program increased signup-to-chatbot integration from roughly 40–45% to 55–60%, raised discovery of key product goals from 28% to 41%, and improved usage of one important feature by 3%.

The lesson is that feature discovery is rarely solved by one announcement. Start with behavioral data to identify features that successful customers use, then introduce those features when another user reaches the point where they become useful.

I also prefer subtle patterns for this work. A tooltip attached to the relevant control is easier to act on than a modal that describes a feature while blocking the interface needed to use it.

#11 Miro uses an oversized “What’s new” modal for a bundled update

Miro’s “What’s new” modal groups several meaningful updates into one visual summary.

Miro What's new modal

This format works better for a bundled release than a series of separate pop-ups. It lets users scan the updates, choose what is relevant, and continue without being interrupted again during the same session.

I would not show the same list to every user by default. A facilitator, designer, and product manager may care about different Miro capabilities. Segmenting the content by role, plan, or prior feature usage would make the modal easier to scan and increase the chance that each CTA leads somewhere useful.

For minor changes, move the update into a persistent news area instead. The size of the message should reflect the importance of the change, not the amount of work the team invested in shipping it.

#12 Jira collects feedback immediately after a product change

Jira uses an in-app survey to ask users about a recently released change while the experience is still fresh.

Jira in-app feedback survey

This is much more reliable than emailing the entire customer base and asking people to remember an interaction from days earlier. The event provides context, and the feedback can be connected to the user’s plan, role, and actual behavior.

I normally start with one rating or multiple-choice question and make the open-text follow-up optional. Userpilot, for example, can trigger targeted in-app surveys and analyze responses without asking engineering to build a new form for each release.

Do not trigger the survey immediately after the user opens the feature. Give them enough time or require a meaningful action first. Otherwise, you measure first impressions of the interface rather than whether the feature solved the problem.

#13 Dribbble keeps its post-support satisfaction survey short and on-brand

Dribbble asks for feedback after a support interaction and styles the survey to feel consistent with the rest of the product.

Dribbble customer satisfaction survey

The timing is more important than the illustration. A post-support CSAT survey should refer to a specific interaction, appear after the issue has been handled, and take only a few seconds to answer.

I would route low scores into a short follow-up question asking what remained unresolved, while high scores can end immediately or invite an optional testimonial later. That creates a useful recovery path without making satisfied users complete unnecessary fields.

Branding can make a survey feel less clinical, but clarity must come first. Users should understand exactly what they are rating: the support agent, the resolution, or the overall product experience. Mixing those questions produces feedback that is difficult to act on.

#14 Asana uses an exit survey to learn why users cancel

Asana asks users why they are leaving during the cancellation flow.

Asana cancellation survey

The survey creates value only when the response changes what happens next. A user canceling because the product is temporarily unnecessary might benefit from a subscription pause. Someone blocked by implementation may need help. A price-sensitive user might prefer a lower plan. Someone who has made a firm decision should be allowed to cancel without additional friction.

Well-designed churn surveys collect structured reasons for analysis and use conditional follow-ups to understand the underlying problem. They should not trap users in a loop of offers or hide the final cancellation button.

I also compare cancellation reasons with product behavior. “Too complicated” means something different when the user never completed setup than when a long-term power user encounters a new workflow problem.

In-app messaging examples for account expansion

An upgrade message is useful when it explains how a higher plan solves a limitation the user has just encountered. It becomes noise when it appears because the account happens to be eligible for an upsell.

Before showing an expansion prompt, I look for evidence of intent: clicking a locked feature, approaching a usage limit, repeatedly using a manual workaround, adding teammates, or adopting features associated with larger accounts.

#15 Intercom uses a contextual tooltip to introduce an upgrade

Intercom places an upgrade tooltip next to the feature the user is exploring.

Intercom upgrade tooltip

The placement gives the message context. The user does not need to guess which capability the upgrade unlocks, and the prompt does not interrupt unrelated work elsewhere in the product.

For an effective expansion MRR message, explain the outcome rather than repeating the plan name. “Create guided tours for new users” is more persuasive than “Upgrade to Pro.” I would also show the prompt only after the user demonstrates interest, not every time they visit the page.

Where possible, let users preview the feature, see an example, or start configuring it before asking them to upgrade. Experiencing part of the value makes the commercial decision more concrete.

#16 Zapier triggers an upgrade modal at a usage limit

Zapier shows an upgrade modal when users reach the number of tasks available on their current plan.

Zapier upgrade prompt

This is one of the few moments when a blocking modal is appropriate because the account cannot continue the intended action without resolving the limit.

A good limit message should show current usage, explain what the next plan changes, and provide a direct CTA. It should also make alternatives clear when they exist, such as deleting unused items, waiting for the limit to reset, or reviewing usage before upgrading.

The timing makes this different from a generic promotion. Zapier is not manufacturing urgency; it is explaining a constraint the user has already encountered. That is the standard I use for expansion prompts: the product state should justify the message.

#17 FigJam uses a banner for a persistent account-level upgrade

FigJam uses a banner to communicate an upgrade opportunity without blocking the canvas.

FigJam upsell banner

Banners work well for ongoing account states, such as beta access ending, a trial approaching its deadline, or a workspace nearing a limit. They remain visible while allowing the user to keep working.

The best notification banners are concise because they share limited space with the product interface. State the condition, the consequence, and the next action. Put detailed plan comparisons on the destination page rather than squeezing them into the banner.

I would also set clear dismissal and recurrence rules. A permanently ignored banner becomes part of the interface and stops communicating anything. If the account state changes or the user takes another relevant action, update the message rather than repeating the same prompt indefinitely.

What the best in-app messages have in common

Across these examples, the strongest messages follow the same operating principles:

  • Start with the behavior you want to change: Define the activation event, adopted feature, feedback signal, or upgrade condition before choosing a UI pattern.
  • Use the smallest interruption that can do the job: A tooltip or banner is usually better than a modal when the user can continue working.
  • Target by context, not only by persona: Role and plan matter, but recent actions, missing events, and product state often provide a stronger reason to show a message.
  • Keep in-app and email complementary: In-app guidance works when users are present. Use email to bring inactive users back, provide durable recaps, or continue a journey outside the product.
  • Measure downstream behavior: Clicks and dismissals tell you whether the message was noticed. Activation, feature usage, retention, feedback quality, and upgrades tell you whether it worked.

For more complex journeys, Userpilot Workflows coordinate in-app, survey, and email touchpoints with behavioral branches, delays, and completion rules. That lets you stop sending the same sequence to everyone and respond to what each user does next.

Userpilot Workflows multi-channel behavioral sequences
Userpilot Workflows for multi-channel communication.

I also pair messaging data with product analytics and session replay. A funnel shows where users leave, replay helps explain what happened on the screen, and a targeted survey captures why. Only then do I decide whether the solution is a message, a product change, or both.

Build messages around user context!

In-app messaging works because it meets users inside the task they are trying to complete. The strongest examples do not simply broadcast information. They remove the next point of uncertainty, make a relevant feature easier to discover, or explain an account decision at the moment it becomes necessary.

Userpilot brings the patterns used throughout this article into one platform: flows, spotlights, banners, checklists, surveys, resource centers, email, and cross-channel Workflows. You can target them using user attributes and behavior, then measure whether the experience changed activation, adoption, or retention.

For teams that want to shorten the build-and-test cycle further, Lia can analyze product signals and create in-app flows or surveys from the resulting insight. The team still reviews the experience, but it no longer has to move manually from dashboard to hypothesis to first draft.

See how Userpilot can help you build, target, and measure contextual in-app messages across the customer journey. Book your free demo!

demo CTA

About the author
James Mitchinson

James Mitchinson

Head of Customer Success

James Mitchinson is Head of Customer Success & Delivery at Userpilot, where he helps SaaS teams turn onboarding and customer education into a true growth engine. With deep experience leading CS and implementation teams, he’s passionate about using data and AI to make every customer interaction faster, smarter, and more human.

All posts