Freemium Upgrade Emails: Moving Free Users to Paid Without Nagging
Freemium has no deadline, so upgrade emails must be triggered by value and limits, not dates. Which triggers work, what to write, and when to leave users alone.

On this page(7 sections)
A trial has a built-in reason to email: the clock is running out. Freemium doesn't. A free user can stay free forever, which means every upgrade email you send has to earn its place with a reason that makes sense to the person reading it.
Get this wrong and you train your free users to ignore you. Get it right and upgrade emails feel like helpful notices that arrive exactly when someone needs more than the free plan gives them.
Why freemium emails need a different playbook
Most lifecycle email advice is written for trials. Trial sequences count down: day 3, day 7, "ends tomorrow." Copy that structure into a freemium product and you get emails like "You've been on the free plan for 30 days, upgrade now!", which give the reader no reason at all.
Freemium upgrade emails work on a different principle: the trigger is a change in what the user is doing, not the passage of time. The free plan was designed with limits for a reason, and the moments when users hit, approach or work around those limits are the moments an upgrade becomes relevant.
The triggers that actually work
Not every event deserves an email. These are the ones that tend to line up with genuine upgrade intent.
Reaching a usage limit
The most obvious trigger, and the one most often handled badly. When someone hits the cap on projects, storage, contacts or monthly usage, tell them clearly:
- What limit they reached, with the actual number
- What still works and what doesn't until they upgrade or the counter resets
- Which paid plan removes the limit, and what it costs
Send a heads-up when they're getting close, not only when they're blocked. Discovering a hard limit in the middle of real work is the fastest way to turn a happy free user into an annoyed one.
Trying a paid feature
If a free user clicks on something only paid plans include, that's direct evidence of interest. The in-app prompt handles the moment itself; a follow-up email the next day can explain the feature properly, with an example of what it does, for anyone who closed the prompt without reading it.
Send this once per feature, not every time they click.
Team growth
In many B2B products, the strongest upgrade signal is a second or third person joining a free workspace. A product being used by a team is a product being relied on, and team features (permissions, shared billing, admin controls) are often the natural paid tier.
The email goes to whoever administers the workspace, and it's about the team: "Three people are now working in Ledgerly's free plan. Here's what changes on the Team plan."
Sustained, regular use
A user who has come back every week for two months is getting real value. A low-key email acknowledging that, and mentioning what the paid plan adds for someone who uses the product that heavily, is reasonable. Send it rarely; this trigger is the easiest one to overuse.
What to write
Freemium upgrade copy works best when it reads like a note from someone who knows the account, rather than a promotion. A structure that holds up:
- The observation. What changed in their usage, stated plainly.
- What paid adds for that situation. Not a full feature list, just the parts relevant to the trigger.
- The price and the action. One link to upgrade, with the price shown, not hidden behind a click.
- The no-pressure exit. Make it clear the free plan still works.
An example for a limit-approaching email:
Subject: You've used 9 of your 10 free projects
Hi Dana,
Your workspace has 9 active projects, and the free plan includes 10. When you reach the limit, existing projects keep working; you just won't be able to create new ones.
The Team plan removes the project limit and adds shared templates, which your team has been building by hand. It's $15 per month. [See the Team plan]
If 10 projects is plenty for you, there's nothing you need to do.
(The product, plan name and price are made up for illustration.)
That last line does real work. It tells the reader you're not going to badger them, which makes them more likely to read your next email.
Frequency caps and the users to leave alone
Freemium bases are large, and upgrade emails sent carelessly add up quickly. Put limits in place before you build the triggers:
| Rule | Why |
|---|---|
| At most one upgrade-focused email per user in a given period, such as two weeks | Several triggers can fire at once; the user should see one message |
| Each trigger fires once per user (or once per limit level) | Repeating the same pitch reads as nagging |
| No upgrade emails in a user's first few days | Let them reach value first |
| Stop upgrade emails after an explicit "not interested" | Respect the answer |
| Suppress for users who unsubscribed from promotional mail | Upgrade emails are promotional, even when they're helpful |
And some free users should simply be left alone. Students, hobbyists, people evaluating for a future project, users whose needs genuinely fit inside the free plan. They're often your best source of word-of-mouth, and some of them will become paying customers years later at a different job. A free plan that's actually useful is a marketing channel. Treat it like one.
Getting the data in place
Every trigger above depends on your application knowing what the user is doing. Before writing any copy, make sure you can answer these from your own data:
- Current usage against each free-plan limit, per workspace
- Which paid features each user has attempted, and when
- Number of active members per workspace
- Which upgrade emails each user has received, and when
That last record is what lets you enforce frequency caps. Without it, every new trigger you add increases the chance of three upgrade emails landing in one week.
The emails themselves are usually best sent from your application through a transactional email API or SMTP relay, with the trigger logic living in your own code next to the usage data. If you're building this yourself, our guide to sending lifecycle emails from your own job queue covers the plumbing.
Measuring whether it works
Opens and clicks won't tell you much. What you want to know is whether users who received a given upgrade email converted at a higher rate than comparable users who didn't. Hold back a small share of eligible users from each trigger and compare paid conversion over the following weeks.
Also watch the cost side: unsubscribes from promotional mail and any drop in free-user retention after a new trigger goes live. An upgrade email that converts a few users but drives many more away from the product isn't a win.
Bottom line
- Freemium upgrade emails are triggered by what users do, not how long they've been signed up.
- The strongest triggers are approaching a limit, trying a paid feature, and a team forming in a free workspace.
- Say what changed, what paid adds for that situation, and the price, and always make clear the free plan still works.
- Cap frequency globally, fire each trigger once, and leave genuinely happy free users alone.
- Measure conversion with holdout groups, not opens, and watch for collateral damage.
Start with Koltrix
Your domain, one inbox, and an API that sends.
A team inbox where AI sorts and drafts (nothing is sent without your click), plus the transactional API and SMTP relay your product sends with. 7 days free, no card.


