sample-reviews/*-review.md, with the search string printed in Sources.In-app messaging· Engagement and onboarding
In-App Messaging — Definition, Formats by Surface, and Why Vendors Meter It Differently
Quick answer: An in-app message is one the product shows you while you are in it. The distinction that matters is the surface, not the content: the same "you have three days left on your trial" can be an email, a push notification, a WhatsApp broadcast or an in-app banner, and only the last one is in-app messaging. The formats are a short list (posts, banners, tooltips, checklists, tours, surveys, carousels), and what separates them is where they render and how much of the screen they take: in Intercom's availability table, read 4 September 2026, a product tour runs on desktop web only while a post runs everywhere. What separates the vendors is the meter. Intercom charges by the message presented, OneSignal by the active mobile user, and Firebase's documentation lists no price. Show 1,000 users one welcome post, and the 600 who come back one survey, and the month's in-app bill is $170 on Intercom, $31 on OneSignal's Growth plan (or nothing on its Free plan, which covers exactly 1,000 users) and, on the page we read, nothing on Firebase, before anyone has asked whether the messages helped. The number that decides whether they did is not open rate; it is what fraction of the people shown a message did the thing it asked, and the number that decides whether they will tolerate the next one is how many were shown per session.
What the term covers, and what it is sold against
In-app messaging is sold against three things, and the sales pitch for each is a different sentence. Against email it is "they are already here": a message shown to a user inside the product does not compete with an inbox and does not need a deliverability reputation. Against push notifications it is reach without permission: OneSignal's pricing FAQ, read 4 September 2026, counts a mobile device as a monthly active user "regardless of whether it has opted in for mobile push notifications," and explains why in the same answer, "as in-app messages can be delivered to all active app users." A user who declined push can still be shown a banner. Against a chat widget it is the ability to speak first, at a moment chosen by a rule, without waiting for the user to open a conversation.
What it is not is a conversation. Almost every in-app format is one-way: the product speaks, the user reads, dismisses, clicks or answers one question, and the exchange ends. That is the boundary with a chatbot, and it is worth being exact about it because the vendors blur it. Intercom's "chat" outbound type is an in-app message that opens a conversation in the Messenger, which is the one format on the list that can be continued, and Intercom's help center has an article titled "Let Fin AI Agent follow up after Outbound messages or Workflows," which names the join between the two products. Every other format on the list is closer to a poster on the wall of the product than to a person at the desk.
The other thing it is not is a broadcast on a messaging channel. A WhatsApp template sent to 10,000 opted-in numbers is a chatbot broadcast; the user reads it in WhatsApp, not in your product, and its economics and consent rules are different enough that this entry does not cover them.
The formats, and where each one renders
The format is the first design decision because it sets how much of the user's attention the message takes and where it can appear at all. Intercom's Outbound explained article (17 April 2026) publishes an availability table by surface, which is the most useful single document on the subject because it says plainly what does not work where.
| Format | What it is | Desktop web | Mobile web | Native iOS/Android | Attention it takes |
|---|---|---|---|---|---|
| Chat (our row, not Intercom's; see below) | A message that opens a conversation in the widget; the one format a bot can continue | Yes | Yes | Yes (via Messenger) | Low: a bubble |
| Post (Firebase: modal or card) | A full-screen or centered announcement the user must dismiss | Yes | Yes | Yes | High: it takes the screen |
| Banner | A strip at the top or bottom of the page | Yes | Yes | Not supported | Low: it stays out of the way |
| Tooltip | A callout anchored to one control | Yes | Yes | Not supported | Low, and contextual |
| Checklist | A persistent panel listing setup steps with progress | Yes | Yes | Not supported | Medium: it is always there |
| Product tour | A sequence of pointers that walks the user through screens | Yes | Not supported | Not supported | High: it takes the session |
| Survey | One or a few questions, shown in place | Yes | Yes | Yes | Medium |
| Mobile carousel | Swipeable full-screen cards | Not supported | Not supported | Yes | High |
| News item | An entry in an in-product news feed | Yes | Yes | Not supported | Low, and opt-in |
The chat row is ours, not Intercom's: the availability table has no chat row, and the "yes" on all three surfaces is inferred from the Messenger, which runs on web and in the mobile SDKs, and from the table's workflow row, which is supported everywhere. Two rows carry the practical lesson. A product tour, the format most people mean when they say "onboarding," runs on desktop web only in this table; a plan that depends on a tour has no plan for a phone or a tablet browser. And a banner or a tooltip, the two formats that take the least attention, do not render in native apps at all, where the only quiet option is a carousel that is not quiet. Firebase's four formats (cards, banners, modals, images) are mobile-first and sit inside iOS, Android and Flutter apps, which is the mirror image of Intercom's web-first table. If your product is a web app and a native app, you are choosing two products or accepting two different message sets.
How a message gets shown: the trigger model
Every in-app messaging product runs the same loop, whatever it calls the parts.
Read as a sequence: (1) the user is in the product; (2) an audience rule decides who qualifies (plan, role, signup date, segment); (3) a trigger decides when, either an event (a page viewed, a feature used, a limit hit) or a state (no project yet, trial day 10, checklist incomplete); (4) a frequency and priority check asks whether this person has seen enough this session, and holds or drops the message if so; (5) the format renders (post, banner, tooltip, checklist, tour, survey); (6) the user clicks or answers, which records the goal event, or dismisses or ignores, which counts as shown but not done; (7) optionally, a bot picks up the thread.
The audience rule is who. The trigger is when, and the distinction between an event (the user just did something) and a state (something is true about the account) is the one that separates messages that feel timely from messages that feel scheduled. A tooltip that appears on the control the user just hovered is an event trigger; a "your trial ends in four days" banner is a state trigger checked on login. Firebase's documentation puts it in one sentence, that messages should appear "when they'd benefit your users most," and lists the mechanism, triggers from Analytics events and imported segments. Intercom's add-on includes "event-based messaging" and a "send every time the person matches the rules until" option, which is the state-trigger loop with a stop condition.
Frequency is the step most deployments skip, and it is where in-app messaging goes wrong. Intercom's meter counts a message as sent "every time" it is presented, and its documentation notes a tour "can be presented multiple times to the same user which counts as a 'Message Sent' each time," so the meter and the user's patience run on the same counter. OneSignal's plan table puts frequency capping on its Enterprise tier only. If the product you buy does not cap interruptions per session, the rule has to live in your triggers.
The three meters, with the same 1,000 users on each
Three vendors read on 4 September 2026 charge for the same surface three ways, and the meter is the clearest statement of what each thinks it is selling.
Intercom sells in-app messaging as part of a support platform and splits the formats by plan: chats, banners and tooltips free on every plan from Essential ($29 per seat per month on annual billing; $39 in the FAQ's seat-count example, which we read as the monthly-billed rate since the FAQ ties $29 to annual billing); checklists, news, A/B testing and event-based messaging unlimited inside the Proactive Support Plus add-on at $99 a month; and posts, mobile push, product tours, mobile carousels, surveys and Series (its sequence builder; Intercom's Pricing FAQ lists Series as included while the add-on article meters it, and we follow the add-on article) metered inside the same add-on by "Messages Sent," with 500 included and eight paid tiers above that, from $0.07 each for messages 501 to 1,000 down to $0.0175 beyond 250,000. A message counts when it is presented, whether or not the user interacts, and the same post seen on web and on mobile counts as two.
OneSignal sells in-app messaging as a channel beside push, email and SMS, and prices it by audience: unlimited in-app messages and mobile push on the Free plan "for organizations with up to 1,000 monthly active users," then $19 a month plus $0.012 per monthly active mobile user on Growth, with in-app "included with purchase of mobile push" and no impression limit.
Firebase In-App Messaging is Google's SDK for iOS, Android and Flutter; the documentation page we read describes formats, targeting through Analytics and A/B testing, lists no web platform, and lists no price.
| Meter | Vendor | What 1,000 users, one welcome post each, plus one survey to the 600 still active, cost in a month | What is included |
|---|---|---|---|
| Per message presented, above an allowance | Intercom Proactive Support Plus | $99 base + (500 × $0) + (500 × $0.07) + (600 × $0.06) = $170, on top of at least one seat ($39 billed monthly, $29 on annual billing) | Banners, tooltips and chats free on the base plan; checklists unlimited in the add-on; a chatbot (Fin) metered separately at $0.99 per outcome |
| Per monthly active user | OneSignal Growth (Free covers up to 1,000 users at $0) | $19 + (1,000 × $0.012) = $31 | Unlimited in-app impressions and mobile push; five Journeys (three on Free); no chatbot |
| Not listed | Firebase In-App Messaging | $0 on the page we read | Mobile SDK only; no web platform listed; no chatbot; Analytics-driven targeting |
The arithmetic is ours, the assumptions are in the column head, and the OneSignal row also assumes that all 1,000 are active in a native mobile app, since its in-app meter counts mobile users; on a web-only product that row does not apply. The lesson is not that Intercom is expensive; it is that Intercom's meter charges for attention taken (a post shown twice is two) while OneSignal's charges for audience reached (a user shown twenty banners is one), and each meter rewards a different design. On a per-message meter, the cheap formats are the free ones, banners and tooltips, and the discipline is to show the metered formats once. On a per-user meter, the discipline has to come from somewhere else, because the bill does not rise when you interrupt someone for the fifth time.
The five numbers to hold it to
- Shown-to-done rate. Of the users shown a message, the fraction who did what it asked (finished the step, clicked the control, answered the question) within the session. This is the metric; open rate is a tautology for a format that opens itself.
- Interruptions per session. How many messages a typical user was shown in one session, and the 95th percentile. Above two, the shown-to-done rate on every message falls.
- Dismiss-without-read rate. Posts and tours dismissed within two seconds. It is the closest thing in-app messaging has to a spam complaint.
- Checklist completion. Userpilot's 2024 benchmark across its customers put the average at 19.2 percent; a checklist below that on your product is too long or asks for the wrong steps. The SaaS onboarding chatbot guide has the activation figures the checklist exists to move.
- Conversation starts per 100 messages. For the one format a bot can continue, the chat, the number of users who replied. On Intercom, a Fin outcome that follows is metered at $0.99, and an outbound message the user opens but does not reply to is explicitly not billed, so the ratio is also the cost model.
Where the chatbot fits
A chatbot and an in-app messaging system meet at two points. The first is the chat format: an outbound message that opens the widget conversation is the one message the bot can pick up, and the design rule is that the message's own question should be one the bot can act on ("want me to connect your calendar?") rather than one that ends the exchange ("welcome!"). The second is the hand-off: a post, banner or survey should carry the user's answer into the conversation, so that a survey answer of "price" on day 7 of a trial is in the session context when the bot speaks on day 10, not in a spreadsheet. The human handoff rule applies unchanged: the message that asks a billing question is the message that needs a person on the end of it.
The failure mode at the join is treating the bot as one more format. A greeting message fired as a post to every user on every login is an interruption with a chat window attached; the quick reply buttons that make a bot's opening fast do the same work as a survey's buttons, and should not appear twice for the same question.
What our fifteen reviews record about in-app messaging
One review names it. Intercom's review scores proactive engagement at 4 out of 5 on the strength of product tours, in-app notifications, in-app messaging and targeted message sequences, captured the setup checklist a fresh trial workspace opens with, the Outbound content view with per-campaign reach and the Series editor, and recorded the $0.99 outcome meter this entry re-reads; it did not measure a message's shown-to-done rate or count interruptions per session, and neither did any other review. Four reviews mention a product tour or an onboarding checklist; in three (Blip, Tidio, Wati) it is the vendor's own onboarding of the reviewer, and only Intercom's names tours as a feature the buyer can build. Tidio's review lists in-app alongside its seven native channels without describing formats, and Chatbase's free-tier onboarding is the fastest measured setup in our Tier 1 batch, at eight minutes (Landbot's 8 to 12 minutes is a projection), which is an observation about the vendor's onboarding, not about a product the buyer ships. The specialist in-app products (Userpilot, Appcues, Pendo) are outside our catalog, OneSignal and Firebase are read here from their public pages only, and this entry ranks none of them.
Related terms
- Chatbot onboarding flow — the guided first session that several of these formats are used to build.
- Chatbot broadcast — the one-to-many send on a messaging channel, which reaches the user outside your product and is priced per message by the channel.
- Drip campaign — the timed sequence that Series and Journeys implement, and the exit rule every branch needs.
- Chatbot greeting message — the widget's first line, which should not also be a post.
- Human handoff — where a message that asks a question the bot cannot answer must end.
- Chatbot quick reply — the buttons that make a bot's opening fast, and that do the same job as a survey's.
FAQ
What is in-app messaging?
Messages a product shows inside its own interface while the user is using it: posts, banners, tooltips, checklists, product tours, surveys, news items and, on mobile, carousels. They are triggered by rules about who the user is and what they just did, and most are one-way. The same content sent to the user's inbox, phone lock screen or WhatsApp is not in-app messaging.
What is the difference between in-app messaging and push notifications?
A push notification reaches the user outside the app, on the lock screen or in the notification tray, and requires the user's permission to receive it. An in-app message is shown inside the app during use and needs no permission, which is why OneSignal counts users who declined push toward the in-app audience. Push interrupts a life; in-app interrupts a session.
How much does in-app messaging cost?
It depends on the meter: Intercom charges per message presented above a 500-message allowance inside a $99-a-month add-on, OneSignal per active mobile user with in-app included, and Firebase's documentation lists no price. The meter table above works one 1,000-user month on all three: $170, $31 (or $0 on OneSignal's Free plan) and $0.
Which in-app message format works best for onboarding?
A checklist for the setup steps and a tooltip on the control the user needs next, because both stay out of the way; a product tour last, because it takes the session and, on Intercom, runs on desktop web only. Userpilot's benchmark put average checklist completion at 19.2 percent, so keep it short. The activation event the checklist is for has to be named before the checklist is written.
How often should a product show in-app messages?
Our rule is one interruption per session (a post, tour or survey) and any number of passive formats (banners, tooltips, a checklist panel) the user can ignore. Meters that count by the message make the rule cheap to follow; meters that count by the user do not enforce it, and the cap has to be in your triggers.
Sources
- Intercom, Pricing (intercom.com/pricing), read 4 September 2026: Essential $29, Advanced $85 and Expert $132 per seat per month as displayed; Intercom Help, Pricing FAQs (article 8344190), read the same day: "the Essential plan starts at $29/seat/month on annual billing" and the seat-count example "$39 x 3 = $117," which does not name its billing period; Fin AI Agent "From $0.99 per Fin outcome"; the sentence "All plans include free, unlimited live chat, support email, in-app chats, banners, and tooltips. Pay-as-you-go for email campaigns, SMS, WhatsApp, and Phone"; and the Proactive Support Plus card ("Advanced in-app and outbound support features including Posts, Checklists, Product Tours, Surveys, and Series campaign builder. $99/mo").
- Intercom Help, Outbound explained (Intercom help center article 3292835, written by Beth-Ann Sher, dated 17 April 2026), read 4 September 2026: the outbound message-type list (chat or post messages, banners, emails, mobile push, product tours, tooltips, checklists, SMS, surveys, mobile carousels, news items, Series) and the "Outbound omnichannel availability" table reproduced in the format table above (banner, checklist, news item and tooltip: desktop and mobile web only; mobile carousel and mobile push: apps only; post and survey and workflow: all three; product tour: desktop web only). The "attention it takes" column is ours.
- Intercom Help, Proactive Support Plus add-on (article 9061648, dated 21 May 2026), read 4 September 2026: the statement that Chats, Banners and Tooltips "are free of charge with all core plans with no usage based cost"; the "$99/month (includes 500 'Messages Sent')" base fee; the included features (Checklists, News, A/B Testing, Webhooks, Versioning, Event-based messaging, "for unlimited use"); the metered features (Posts, Mobile Push, Product Tours, Mobile Carousels, Surveys, Series); the "Send every time the person matches the rules until" option; the Messages Sent definitions ("If a user sees the same post on web and on mobile, this counts as two"; a tour "can be presented multiple times to the same user which counts as a 'Message Sent' each time"; a survey counts when shown "regardless of whether the survey was taken or completed"); the nine-tier price table; and the $145 carousel example. The $170 figure is 99 + 500 × 0.07 + 600 × 0.06.
- Intercom Help, Fin AI Agent outcomes (article 8205718, dated 30 July 2026), read 4 September 2026: the $0.99 resolution and procedure-handoff outcomes, "one outcome per conversation," and the scenario row "Fin sends an outbound message and the customer clicks/opens it but does not respond — Pending — No." Intercom Help, Let Fin AI Agent follow up after Outbound messages or Workflows (article 8194403) is cited by title from the related-articles list of the Outbound explained page and was not read for this entry.
- OneSignal, Pricing (onesignal.com/pricing), read 4 September 2026: the feature table rows "Unlimited Mobile Push Notifications — For organizations with up to 1,000 monthly active users" and "$0.012 per monthly active user," "Unlimited In-App Messaging — For organizations with up to 1,000 monthly active users" and "Included with purchase of mobile push," "Active Journeys 3 / 5 / 20 / Unlimited," "Frequency Capping" marked available on Enterprise only; the Growth calculator's "In-app messaging — Free and unlimited w/ mobile push"; the FAQ answers "How do you charge?" ("you get an unlimited volume of sends as well as an unlimited volume of in-app messages"), "What is a monthly active user (MAU) for mobile push?" (the "regardless of whether it has opted in" and "as in-app messages can be delivered to all active app users" sentences), and "What is an in-app message impression?" with its legacy-plan note. The $31 figure is 19 + 1,000 × 0.012.
- Firebase, Firebase In-App Messaging (firebase.google.com/docs/in-app-messaging, "Last updated 2026-09-01 UTC"), read 4 September 2026: the formats sentence ("cards, banners, modals, or images"), the triggers sentence ("set up triggers so that they appear exactly when they'd benefit your users most"), the sentence that it "works with Analytics and imported segments," the platform badges (iOS+, Android, Flutter) and the A/B Testing link. No price and no web platform appear on that page; the Analytics prerequisite is stated on Firebase's Get started page, which was not re-read for this entry, so the body says "Analytics-driven targeting" rather than "required."
- Userpilot, Product Metrics Benchmark Report 2024 (userpilot.com/blog/product-metrics-benchmark-report, last updated 7 April 2026), read 4 September 2026: the 19.2 percent average onboarding checklist completion rate and the 24.5 percent fintech-and-insurance figure. Userpilot sells onboarding software; the figure is the vendor's, from its customers' data.
- Chatbotscape review corpus (the fifteen platform reviews listed at /reviews), searched 4 September 2026 from the repository root. Denominator:
ls sample-reviews/*-review.md | wc -lreturns 15.grep -liE 'in-app messag|in app messag' sample-reviews/*-review.mdreturns 1 (intercom);grep -liE 'product tour|onboarding checklist|setup checklist' sample-reviews/*-review.mdreturns 4 (blip, intercom, tidio, wati; a looser'product tour|checklist'returns 9 because two files match only on an internal "verification checklist" note);grep -liE 'shown-to-done|interruptions per session|frequency cap' sample-reviews/*-review.mdreturns 0. Passages cited:intercom-review.mdline 97 (seat prices and outcome meter), lines 198-199 (proactive engagement 4/5), lines 538-539 (trial workspace checklist caption), lines 612-625 (Outbound content view and Series editor captions);tidio-review.mdline 282 (seven native channels "plus email + in-app + Shopify storefront");chatbase-review.mdline 412 (setup speed, 8 minutes). The statement that no review measured an in-app message's effect is an argument from absence across the fifteen files and is stated that way in the body. - Ahrefs Keywords Explorer, US overview and volume-by-country, queried 4 September 2026 — the demand, difficulty, CPC, global-volume, parent-topic and country-split figures in this entry's keyword note.
- Chatbotscape evaluation methodology. /methodology (continuously updated).