Product-Led Growth skill 08 of 13

In-App Upgrade Prompts and Paywalls SKILL.md

The In-App Upgrade Prompts skill makes Claude, Codex or another AI agent design the moments inside the product where users choose to pay. It maps upgrade moments at limits, premium features, team growth, trial endings and milestones, chooses soft, hard, metered or preview paywalls, writes task-based copy, builds in-app checkout that returns users to their work, adds admin request flows and sets frequency rules.

in-app-upgrade-prompts/SKILL.md, version 1.0.0, 1,505 words.

In a self-serve business, the upgrade moment usually happens inside the product: a user hits a limit, tries a premium feature, invites one teammate too many or sees what a higher plan would add. These moments convert well when they arrive at the point of need, explain the value clearly and make upgrading easy. They convert badly when prompts fire on day one for everyone, block users mid-task without explanation or lead to a confusing checkout.

This skill designs in-app upgrade experiences: identifying upgrade moments, soft and hard paywalls, limit warnings, premium feature previews, trial and reverse trial endings, upgrade copy, in-app checkout and measurement.

Operating principles

  1. Prompt at the moment of need. Upgrade asks work best when the user is trying to do something paid plans allow.
  2. Explain value, not just price. Show what the user gets and why it matters to their task.
  3. Don't trap users. Let them finish their work or save progress where possible.
  4. Make upgrading easy. In-app checkout, clear plan comparison, few steps.
  5. Respect dismissals. Repeated nagging erodes trust and engagement.

Upgrade moments

MomentExamplePrompt type
Approaching a limit80% of storage or projects usedWarning with option to upgrade
Reaching a limitFourth project on a three-project planSoft or hard paywall
Premium feature useClicking automation on free planFeature preview with upgrade
Team growthInviting a fourth member on a three-seat planSeat upgrade prompt
Trial endingThree days leftReminder with summary of value
Reverse trial endingPremium features about to dropList of premium features they used
Success milestone100th invoice sentGentle prompt for advanced features

Paywall types

TypeBehaviourUse when
Soft paywallExplains benefit; user can continue or try onceEncouraging trials of premium value
Hard paywallAction blocked until upgradeClear limit that protects paid value
MeteredAllows a few uses, then requires upgradeLetting users experience value first
PreviewShows the result or a demo of the featureValue is visual or easy to show

When to use, and when not to

Use it when free-to-paid conversion is low, when users hit limits without upgrading, when trials end without conversion and when adding new paid features.

Don't use it to choose free limits themselves (free-model-design) or design the public pricing page (the CRO pricing-page-optimisation skill).

Inputs to ask for, in one message

  1. Plans, limits and premium features.
  2. Current prompts, where they appear and their conversion.
  3. Data on users reaching limits and trying premium features.
  4. Checkout flow inside the product.
  5. Trial or reverse trial details.
  6. Support tickets about billing and limits.

Raw SKILL.md file

.md

This is the exact file agents read, including the credit header and licence notice. Save it as in-app-upgrade-prompts/SKILL.md.

---
name: in-app-upgrade-prompts
description: "Design in-app upgrade experiences: upgrade moments at limits, premium features, team growth, trial and reverse trial endings and milestones, soft, hard, metered and preview paywalls, task-based copy, in-app checkout that returns users to their work, admin request flows, frequency rules and conversion measurement. Use whenever someone asks about upgrade prompts, paywalls, in-app upsells, converting free users at plan limits, trial ending messages, feature gating messages or self-serve upgrade flows inside a product."
license: CC-BY-4.0
metadata:
  author: Afeez Adebayo
  author_url: https://afeezadebayo.com
  author_linkedin: https://www.linkedin.com/in/afeez-adebayo/
  author_x: https://x.com/za_icon
  source: https://afeezadebayo.com/skills-md/marketing/product-led-growth/in-app-upgrade-prompts/
  category: marketing
  subcategory: product-led-growth
  version: "1.0.0"
  created: "2026-10-10"
  updated: "2026-10-10"
---

# In-App Upgrade Prompts and Paywalls

In a self-serve business, the upgrade moment usually happens inside the product: a user hits a limit, tries a premium feature, invites one teammate too many or sees what a higher plan would add. These moments convert well when they arrive at the point of need, explain the value clearly and make upgrading easy. They convert badly when prompts fire on day one for everyone, block users mid-task without explanation or lead to a confusing checkout.

This skill designs in-app upgrade experiences: identifying upgrade moments, soft and hard paywalls, limit warnings, premium feature previews, trial and reverse trial endings, upgrade copy, in-app checkout and measurement.

## Operating principles
1. **Prompt at the moment of need.** Upgrade asks work best when the user is trying to do something paid plans allow.
2. **Explain value, not just price.** Show what the user gets and why it matters to their task.
3. **Don't trap users.** Let them finish their work or save progress where possible.
4. **Make upgrading easy.** In-app checkout, clear plan comparison, few steps.
5. **Respect dismissals.** Repeated nagging erodes trust and engagement.

## Upgrade moments
| Moment | Example | Prompt type |
|---|---|---|
| Approaching a limit | 80% of storage or projects used | Warning with option to upgrade |
| Reaching a limit | Fourth project on a three-project plan | Soft or hard paywall |
| Premium feature use | Clicking automation on free plan | Feature preview with upgrade |
| Team growth | Inviting a fourth member on a three-seat plan | Seat upgrade prompt |
| Trial ending | Three days left | Reminder with summary of value |
| Reverse trial ending | Premium features about to drop | List of premium features they used |
| Success milestone | 100th invoice sent | Gentle prompt for advanced features |

## Paywall types
| Type | Behaviour | Use when |
|---|---|---|
| Soft paywall | Explains benefit; user can continue or try once | Encouraging trials of premium value |
| Hard paywall | Action blocked until upgrade | Clear limit that protects paid value |
| Metered | Allows a few uses, then requires upgrade | Letting users experience value first |
| Preview | Shows the result or a demo of the feature | Value is visual or easy to show |

## When to use, and when not to
Use it when free-to-paid conversion is low, when users hit limits without upgrading, when trials end without conversion and when adding new paid features.

Don't use it to choose free limits themselves (`free-model-design`) or design the public pricing page (the CRO `pricing-page-optimisation` skill).

## Inputs to ask for, in one message
1. Plans, limits and premium features.
2. Current prompts, where they appear and their conversion.
3. Data on users reaching limits and trying premium features.
4. Checkout flow inside the product.
5. Trial or reverse trial details.
6. Support tickets about billing and limits.

## Workflow

### Step 1. Map upgrade moments
List every moment users meet a limit or premium feature, with volume.

### Step 2. Choose prompt types
Soft, hard, metered or preview, based on the value and risk of frustration.

### Step 3. Write the prompt
What the user tried to do, what the paid plan adds, the price or plan, and a clear action with an alternative.

### Step 4. Design the path
In-app checkout with saved context, so users return to their task after upgrading.

### Step 5. Handle team decisions
If the user can't pay, offer to request an upgrade from their admin with a pre-written message.

### Step 6. Design trial endings
Reminders, usage summaries and a clear choice between upgrading and the free plan.

### Step 7. Set frequency rules
Limit repeat prompts after dismissal.

### Step 8. Measure and test
Prompt views, upgrade clicks, checkout completion, revenue and effects on engagement.

## Prompt copy template
```
Headline: what they tried to do ("Add more projects")
Body: what the paid plan adds, tied to their task ("Team gives you unlimited projects, shared templates and guest access.")
Price or plan: "From £10 per user per month"
Primary action: "Upgrade to Team"
Secondary: "Ask your admin" or "Not now"
```

## Admin request flow
```
Prompt to member: "Your workspace is on the Free plan. Ask Sam (admin) to upgrade?"
Pre-written message: "Hi Sam, I'd like to add more projects for our team. The Team plan adds unlimited projects and shared templates. Could we upgrade? [link]"
Admin receives: email and in-app notice with one-click upgrade
```
Many prompts fail because the person who hits the limit isn't the person who pays; this flow connects them.

## Trial ending sequence
| Day | Message |
|---|---|
| 3 days before end | Summary of what they've done and premium features used |
| 1 day before | Reminder with clear choice: upgrade or move to free |
| End day | What changes now, with easy upgrade |
| 7 days after | Offer help or a short extension if usage was high |

## Frequency rules
- A given prompt at most once per session.
- After two dismissals, pause that prompt for 14 days.
- Never show upgrade prompts during first-run onboarding.
- Suppress prompts for users already in a sales conversation.

## Metrics
| Metric | Why |
|---|---|
| Prompt view to upgrade click rate | Prompt relevance |
| Checkout completion | Friction in the path |
| Upgrades per 100 users reaching a limit | Limit effectiveness |
| Admin requests sent and approved | Team buying path |
| Engagement after prompts | Whether prompts harm usage |
| Revenue per sign-up | Overall monetisation |

## Further reading
- Kyle Poyar on freemium and paywalls: https://www.growthunhinged.com/

## Edge cases and judgement calls
| Situation | What to do |
|---|---|
| User isn't the buyer | Request-upgrade flow to admin or billing owner |
| Hard paywall mid-task | Save work first; explain what happens next |
| Many free users never hit limits | Revisit the free model rather than adding more prompts |
| Enterprise needs | Route to sales instead of self-serve checkout |
| Students or non-profits | Clear discount paths where offered |

## Handoffs to related skills
- Free model: `free-model-design`
- PQLs and sales assist: `product-qualified-leads`, `product-led-sales`
- Seat growth: `team-expansion-invites`
- In-app messaging rules: `in-app-messaging`
- Pricing page: the CRO `pricing-page-optimisation` skill
- Checkout: the CRO `checkout-optimisation` skill

## Worked example
A note-taking app showed an upgrade banner to every user from day one and a generic plan page when users hit the storage limit. Conversion was low and the banner was the most-complained-about feature. The redesign removed the banner, added an 80% storage warning, a soft paywall at the limit explaining what the premium plan adds with a one-click in-app checkout that returned users to their note, a preview of offline access when users went offline and an admin request flow for team members. Free-to-paid conversion rose substantially and complaints about upgrade prompts fell.

## Output format
```
# Upgrade experience plan: <product>, <date>
## Upgrade moments with volume
## Prompt types and copy
## In-app checkout path
## Admin request flow
## Trial and reverse trial endings
## Frequency rules
## Metrics and tests
```

## Common mistakes
- Prompts for everyone on day one.
- Blocking users mid-task without saving work.
- Generic plan pages instead of contextual value.
- No path for users who can't pay.
- Endless repeated prompts.

## Questions to ask before you design
- Where do users meet paid value naturally?
- Who in the account can actually pay?
- What happens to users' work at a limit?

## Self-check before you answer
- Do prompts appear at moments of need?
- Does copy explain value tied to the task?
- Is upgrading easy and does it return users to their work?
- Are frequency and admin paths handled?

---
Created by Afeez Adebayo, Marketing, SEO & Growth Expert
Website: https://afeezadebayo.com
LinkedIn: https://www.linkedin.com/in/afeez-adebayo/
X: https://x.com/za_icon
Source: https://afeezadebayo.com/skills-md/marketing/product-led-growth/in-app-upgrade-prompts/

Licence: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). You may copy, share and adapt this skill, including for commercial use, as long as you credit Afeez Adebayo and link to the source URL above. Keep this notice in any copy or adapted version.

Workflow

Step 1. Map upgrade moments

List every moment users meet a limit or premium feature, with volume.

Step 2. Choose prompt types

Soft, hard, metered or preview, based on the value and risk of frustration.

Step 3. Write the prompt

What the user tried to do, what the paid plan adds, the price or plan, and a clear action with an alternative.

Step 4. Design the path

In-app checkout with saved context, so users return to their task after upgrading.

Step 5. Handle team decisions

If the user can't pay, offer to request an upgrade from their admin with a pre-written message.

Step 6. Design trial endings

Reminders, usage summaries and a clear choice between upgrading and the free plan.

Step 7. Set frequency rules

Limit repeat prompts after dismissal.

Step 8. Measure and test

Prompt views, upgrade clicks, checkout completion, revenue and effects on engagement.

Prompt copy template

Headline: what they tried to do ("Add more projects")
Body: what the paid plan adds, tied to their task ("Team gives you unlimited projects, shared templates and guest access.")
Price or plan: "From £10 per user per month"
Primary action: "Upgrade to Team"
Secondary: "Ask your admin" or "Not now"

Admin request flow

Prompt to member: "Your workspace is on the Free plan. Ask Sam (admin) to upgrade?"
Pre-written message: "Hi Sam, I'd like to add more projects for our team. The Team plan adds unlimited projects and shared templates. Could we upgrade? [link]"
Admin receives: email and in-app notice with one-click upgrade

Many prompts fail because the person who hits the limit isn't the person who pays; this flow connects them.

Trial ending sequence

DayMessage
3 days before endSummary of what they've done and premium features used
1 day beforeReminder with clear choice: upgrade or move to free
End dayWhat changes now, with easy upgrade
7 days afterOffer help or a short extension if usage was high

Frequency rules

  • A given prompt at most once per session.
  • After two dismissals, pause that prompt for 14 days.
  • Never show upgrade prompts during first-run onboarding.
  • Suppress prompts for users already in a sales conversation.

Metrics

MetricWhy
Prompt view to upgrade click ratePrompt relevance
Checkout completionFriction in the path
Upgrades per 100 users reaching a limitLimit effectiveness
Admin requests sent and approvedTeam buying path
Engagement after promptsWhether prompts harm usage
Revenue per sign-upOverall monetisation

Further reading

Edge cases and judgement calls

SituationWhat to do
User isn't the buyerRequest-upgrade flow to admin or billing owner
Hard paywall mid-taskSave work first; explain what happens next
Many free users never hit limitsRevisit the free model rather than adding more prompts
Enterprise needsRoute to sales instead of self-serve checkout
Students or non-profitsClear discount paths where offered
  • Free model: free-model-design
  • PQLs and sales assist: product-qualified-leads, product-led-sales
  • Seat growth: team-expansion-invites
  • In-app messaging rules: in-app-messaging
  • Pricing page: the CRO pricing-page-optimisation skill
  • Checkout: the CRO checkout-optimisation skill

Worked example

A note-taking app showed an upgrade banner to every user from day one and a generic plan page when users hit the storage limit. Conversion was low and the banner was the most-complained-about feature. The redesign removed the banner, added an 80% storage warning, a soft paywall at the limit explaining what the premium plan adds with a one-click in-app checkout that returned users to their note, a preview of offline access when users went offline and an admin request flow for team members. Free-to-paid conversion rose substantially and complaints about upgrade prompts fell.

Output format

# Upgrade experience plan: <product>, <date>
## Upgrade moments with volume
## Prompt types and copy
## In-app checkout path
## Admin request flow
## Trial and reverse trial endings
## Frequency rules
## Metrics and tests

Common mistakes

  • Prompts for everyone on day one.
  • Blocking users mid-task without saving work.
  • Generic plan pages instead of contextual value.
  • No path for users who can't pay.
  • Endless repeated prompts.

Questions to ask before you design

  • Where do users meet paid value naturally?
  • Who in the account can actually pay?
  • What happens to users' work at a limit?

Self-check before you answer

  • Do prompts appear at moments of need?
  • Does copy explain value tied to the task?
  • Is upgrading easy and does it return users to their work?
  • Are frequency and admin paths handled?

When to use this skill, and when not to

Use it when free-to-paid conversion is low, when users hit limits without upgrading, when trials end without conversion and when adding paid features.

Upgrade moments convert when they arrive at the point of need, explain value and make paying easy. They fail when prompts fire for everyone on day one, block users mid-task without explanation or lead to a confusing checkout.

Don’t use it to set free limits (use Free Model Design) or design the public pricing page (use the CRO Pricing Page skill).

Example prompts

  • “Design paywalls for our plan limits.”
  • “Write upgrade prompts for premium features.”
  • “How should our trial end?”
  • “Members hit limits but cannot pay. What do we do?”
  • “Our upgrade banner annoys users. Replace it.”

Example output

The skill returns a fixed structure. A shortened example for an imaginary site:

# Upgrade experience: example note-taking app, 12 October 2026

Before: upgrade banner for everyone from day one; generic plan page at limit
New: 80% storage warning; soft paywall at limit with one-click checkout back to the note; offline preview; admin request flow
Result: free-to-paid conversion up substantially; complaints down

Prompts appear at moments of need and respect dismissals, because repeated nagging lowers both conversion and engagement.

What the agent needs from you

The skill asks for plans, limits and premium features, current prompts and their conversion, data on users reaching limits, the in-app checkout flow, trial details and billing support tickets.

How this skill hands off to related skills

Upgrades connect to the set: Free Model, PQLs, Product-Led Sales, Seat Growth and In-App Messaging, plus the CRO Pricing Page and Checkout skills.

How to run In-App Upgrade Prompts step by step

  1. Install the skill as in-app-upgrade-prompts/SKILL.md.
  2. Map upgrade moments with volume.
  3. Choose paywall types.
  4. Write task-based prompts.
  5. Build in-app checkout and admin requests.
  6. Set frequency rules and measure.

Situations this skill handles

Upgrade experiences fail in familiar ways. The skill handles these situations:

SituationWhat the skill does
User is not the buyerAdmin request flow
Hard paywall mid-taskWork saved first
Few users hit limitsFree model revisited
Enterprise needsRouted to sales
Students and non-profitsClear discount paths
Banner fatigueContextual prompts instead

What makes this skill different

Most upgrade prompts are banners shown to everyone. This skill finds the moments when users need more, explains value in terms of their task, saves their work and returns them to it after upgrading.

It also connects members who hit limits with the admins who can pay, a gap that loses many upgrades.

Practical tips from real projects

  • Prompt at the moment of need.
  • Explain value, not just price.
  • Do not trap users.
  • Respect dismissals.

A worked example: a note-taking app showed an upgrade banner to every user from day one and a generic plan page when users hit the storage limit. Conversion was low, and the banner was the most complained-about feature. The redesign removed the banner, added an 80% storage warning, a soft paywall at the limit explaining what the premium plan adds with a one-click in-app checkout that returned users to their note, a preview of offline access when users went offline and an admin request flow for team members. Free-to-paid conversion rose substantially and complaints about upgrade prompts fell.

Upgrade moments include approaching a limit, reaching it, using a premium feature, inviting one teammate too many, a trial ending, a reverse trial ending and success milestones such as sending a hundredth invoice. Each gets a prompt type matched to its value and the risk of frustration.

Paywall types behave differently. Soft paywalls explain the benefit and let users continue or try once. Hard paywalls block an action until upgrade, protecting clear paid value. Metered paywalls allow a few uses before requiring an upgrade, letting users experience value first. Previews show the result or a demo when value is easy to show.

Prompt copy follows a template: a headline naming what the user tried to do, a body explaining what the paid plan adds for that task, the price or plan, a primary upgrade action and a secondary option to ask an admin or decline for now.

The admin request flow tells members their workspace is on a free plan, offers a pre-written message to the admin explaining what the upgrade adds and sends the admin an email and in-app notice with one-click upgrade. Many prompts fail only because the person who hits the limit is not the person who pays.

Trial endings follow a sequence: three days before, a summary of what users have done and premium features used; one day before, a clear choice between upgrading and moving to free; on the end day, what changes now; and a week later, help or a short extension for heavy users.

Frequency rules show a given prompt at most once per session, pause it for 14 days after two dismissals, never show upgrade prompts during first-run onboarding and suppress them for users already in a sales conversation. Metrics include prompt-view-to-click rates, checkout completion, upgrades per hundred users reaching a limit, admin requests sent and approved, engagement after prompts and revenue per sign-up. In-app checkout keeps the user context, shows a short plan comparison and returns users to the task they were doing after payment. Enterprise needs route to sales rather than self-serve checkout, students and non-profits get clear discount paths where offered and, when few free users ever reach limits, the answer is usually to revisit the free model rather than add more prompts.

Hard paywalls always save the user work first and explain what happens next.

Frequently asked questions

When users approach or reach limits, try premium features, add teammates or near the end of a trial.

Soft paywalls explain value and let users continue or try once; hard paywalls block actions that protect paid value.

What the user tried to do, what the paid plan adds for that task, the price and a clear action with an alternative.

Offer a request-upgrade flow that sends a pre-written message to the admin or billing owner.

At most once per session, pausing after two dismissals and never during first-run onboarding.

With reminders, a summary of value and premium features used and a clear choice between upgrading and free.

Changelog

  • 1.0.0, 10 October 2026: first release.

Use, adapt and share this skill under CC BY 4.0: credit Afeez Adebayo and link to this page.