How to talk to users who leave at the paywall without paying
Hailbell is our product, built by an indie app developer who uses it in his own apps. This guide works with or without it. The steps come first, and the section on where Hailbell fits, including what it doesn't do, is near the end.
Why most people leave the onboarding paywall
Superwall analyzed more than 40 million onboarding paywall opens from February to May 2026. Single-page paywalls converted 9.07% of viewers into a trial or purchase, and multi-page paywalls 12.41% (Superwall; paywalls with no sales were left out). Put the other way, about 9 in 10 people close it.
Most paywall advice is about the other 10%: layout, trial length, A/B tests. That work matters. But the people who leave usually aren't saying "no forever". They leave with something unresolved:
- a question the paywall didn't answer ("does it sync to my iPad?", "can I cancel the trial in settings?", "is there a student price?")
- a price that's a bit too high for them, or a plan length they don't want
- a bug or a confusing step in onboarding that made them doubt the app
- no reason yet to pay today
The first three can be fixed in a conversation. The fourth can't, and you shouldn't try. The trouble is that most apps give these people no way to talk to anyone. They close the paywall and you never hear from them.
The same problem shows up later from the cancel side. A founder on r/SaaS was weighing a stricter refund policy: refunds within a week of each charge for now, maybe no refunds at all after the first month. A rule like that decides who gets money back. It doesn't tell you why they wanted out, and a conversation does.
Seven steps to talk to the people who didn't buy
- Record that they left. When someone closes the paywall without buying, log an event such as
paywall_declinewith the placement name. Superwall's presentation handler and RevenueCat's paywall views both call your code when the paywall is dismissed, so you can tell whether it ended in a purchase. Without this event you can't tell the difference between "never saw the paywall" and "saw it and said no". - Give them a way to ask, next to the paywall. A small "Questions? Chat with us" link under the plans, or a quiet help button after they close it. Don't make it a popup that blocks the screen. An email link works too, but people rarely switch to their mail app in the middle of onboarding, so a chat that opens inside the app gets more messages.
- Answer while they're still in the app. A reply four hours later reaches someone who already moved on. Write a short note with your prices, plans, trial terms, refund policy and known issues, and let an AI answer first from that note, labelled as AI. It should hand the chat to you when it doesn't know. You finish the hard ones from wherever you already are during the day.
- Read what they did before you reply. Did they start a trial last month and cancel? Get a refund? Close this paywall three times today? Is a billing retry failing? A person who closed the paywall three times probably wants it, and the price or a missing answer is in the way. Your purchase tool already has this history; put it next to the conversation so you don't reply blind.
- Make an offer only when it fits the reason. If they say "too expensive", send a button that opens a second paywall: an annual plan with a lower monthly cost, a shorter plan, or a one-time discount you've set up in your paywall tool. If they asked a question, answer it and stop. A discount in reply to "does it work offline?" just teaches people to close the paywall.
- Follow up once with a push, and respect the rules. If they asked something and left before your answer arrived, the reply should come back as a push that opens the chat. For a promotional follow-up, send it only to people who opted in to promotional pushes, at a sensible hour in their time zone, with a daily cap so nobody gets three in a day. One message. If they don't respond, leave them alone.
- Ask for a review only after you've fixed something. Someone whose problem you just solved is your happiest user that day. That's the moment to show the App Store or Play review sheet. Never ask someone who is still upset, and never offer anything for a review.
A worked example
Say a meditation app shows its paywall at the end of onboarding: $59.99 a year with a 7-day trial. Someone closes it and taps "Questions?" with "is there a monthly plan? I don't want to commit to a year". The AI knows there's a $9.99 monthly plan from the note and says so. The person still leaves. Next evening, around the hour they usually open the app, they get one push: "The monthly plan is $9.99 and you can cancel anytime. Tap to see it." The push opens a paywall with only the monthly plan. Whether or not they buy, that's the last promotional message they get this week.
Mistakes to avoid
- Discounting everyone who closes the paywall. Your full-price buyers learn to close it first. Keep offers for people who said price was the problem.
- A chat nobody answers. An unanswered chat feels worse than no chat. If you can't reply within a few hours, turn on AI first replies or set an away message that says when you'll be back.
- A chain of win-back pushes. Three "come back!" messages in three days get your app's notifications turned off, and then you can't reach them even when you have something good to say.
- Asking for the review too early. Asking during onboarding, or right after a complaint, gets you the review you don't want.
- Answering without context. Offering a trial to someone who already used one, or a discount to someone who just got a refund, wastes the one message you get.
Tools for this
| Approach | Chat inside the app | Purchase history next to the chat | Offer that opens a paywall | Promotional push | Cost |
|---|---|---|---|---|---|
| Email link on the paywall | No | No | Send a link by hand | No | Free |
| Hailbell | Yes: iOS, Android, web | Yes, from Superwall and RevenueCat webhooks | Yes | Yes, included | $29/mo for 10,000 MAU, unlimited seats |
| Intercom | Yes: iOS, Android, web | Custom attributes you send | A link or deep link in a message | Proactive Support Plus add-on, $99/mo for 500 messages | $29 per seat/mo (monthly billing), plus $0.99 per Fin AI outcome |
When a plain email is enough: if you get a few hundred new users a week, you're the only person answering, and you check email often, a "Questions? hello@yourapp.com" line on the paywall costs nothing and teaches you what people ask. Start there. Move to an in-app chat when you notice people don't bother switching apps to write, or when the same five questions eat your mornings.
Pick Intercom if you have a support team, need a help center with collections and translations, ticketing and email, social and chat in one inbox, and the per-seat price is fine for your budget. It's a mature product and it does those things well.
Where Hailbell helps
Hailbell is in-app support chat and push notifications for iOS, Android and web apps in one SDK. For this job, that means:
- Recording the decline.
Hailbell.track("paywall_decline")records a signal that shows next to the chat. You can also build a push segment from it, such as "declined in the last 48 hours". - Context. Connect your Superwall or RevenueCat webhook and each conversation shows the person's plan, purchases, trials, cancellations, refunds and billing problems, along with their device and country.
- Fast answers. AI replies answer first from your notes and help articles, in the user's language, labelled as AI, and hand the chat to you when they can't help. You reply from the dashboard, a Discord forum thread (one per customer) or Telegram. The customer gets a push when you answer, and if they don't see it in the app, the reply goes to their email.
- Offers. An offer is a message with a button that opens one of your paywall placements, through
Hailbell.onPaywall. A new offer needs no app update. See offers and reviews in the docs. - Follow-up push. Campaigns go out at each person's local time or their usual hour, with quiet hours and a daily cap on promotional pushes. Promotional pushes are opt-in, and marketing sends skip people who opted out.
- Reviews. A review request button in the chat opens the App Store review sheet, or your Play Store listing on Android.
- Agents. An AI agent can do this over the MCP server: read the chat with the person's purchases, draft a reply your team sends from the dashboard, and plan the follow-up push. Broadcasts need a preview first.
Price Pro is $29 a month for 10,000 monthly active users, Scale $79 a month for 100,000. Every plan includes unlimited apps and seats, and AI replies. Free for 14 days, no card.
What it doesn't do Hailbell is new. You answer from the dashboard, Discord or Telegram; there's no Slack, SMS or social inbox, and the help center is basic: articles with search, suggested in the web chat but not yet in the iOS and Android chat. A Hailbell iPhone app for answering on the go is coming soon. Native chat needs iOS 16 or Android 8 or later. It doesn't run A/B tests on the paywall itself; keep using your paywall tool for that.
Fits Solo developers, studios and agencies running several client apps that already sell through Superwall or RevenueCat. See pricing or read the docs.
Questions
What share of people buy at an onboarding paywall?
Superwall looked at more than 40 million onboarding paywall opens from February to May 2026. Single-page paywalls converted 9.07% of viewers and multi-page paywalls 12.41%. So roughly 88 to 91 people in 100 leave without starting a trial or buying.
Should I show a discount to everyone who closes the paywall?
No. People learn that closing the paywall gets them a lower price, and the ones who only had a question would have paid full price. Answer the question first and make an offer only when the reason they gave is price.
Can I ask for an App Store review in a support chat?
Yes, after you've solved the person's problem and they're happy. Don't offer anything in return for a review, and don't ask people who are still upset.
Is it allowed to send a promotional push to people who didn't buy?
Only to people who opted in to promotional pushes. Apple's guidelines require that consent. Keep it to one message, at a sensible local time, and stop if they don't respond.
Questions about setting this up? Start a chat with us.