Someone used your app, got a useful result, and came back. That is progress. It does not automatically mean they need a paid plan.
The next question is what they want to do that the free experience no longer covers.
In our fictional AI video clipper, ClipSprint, a creator has downloaded a clip they can use. Later, they return to prepare more clips for their publishing schedule. If the paid plan offers the export capacity they now need, an upgrade becomes relevant to the job they are already doing.
This guide continues the journey from helping new users get their first result. It shows how to connect product signals, a clear paid offer, and a short campaign in Hamla.
Start with the reason to pay
Write the difference between free and paid in terms a user can act on.
“Unlock Pro” names a plan. “Export more clips for your next batch of videos” explains a reason to consider it—provided your paid plan actually offers that capacity.
Before writing a campaign, make sure your pricing page answers:
- What can the user do after upgrading that they cannot do now?
- What allowance or limit changes?
- What will they pay, and how often?
- When does the upgrade take effect?
- How can they manage or cancel the subscription?
Keep these answers consistent across the app, pricing page, checkout, and email. Do not promise unlimited exports if a paid plan still has a limit.
Make relevant limits visible before someone invests time in a task. A surprise payment requirement at the end of processing can damage the trust your first experience earned.
Choose a moment that makes sense
A signup is an opportunity to help someone get started. A successful first download is evidence that they reached a result. Neither proves they are ready to pay.
For ClipSprint, a more relevant upgrade moment could be a returning user who wants to export more clips than their current plan allows.
The app can explain the limit at that moment. An email can help an eligible user return to compare plans, if you have permission to contact them.
Keep these situations separate:
- They have not produced a useful clip: Help them complete their first edit
- Processing failed: Explain the problem and offer a retry or support
- They need more export capacity: Explain the relevant paid allowance
- They opened checkout but did not pay: Offer help with the decision or checkout
- They paid successfully: Stop upgrade reminders and help them use the paid plan
An upgrade message should answer a current need. It should not substitute for fixing a broken experience.
Track interest separately from payment
You need to distinguish a purchase from the actions that lead toward it.
Your app might record a visit to pricing, an export-limit event, or the start of checkout. These are signals of context or interest. They are not revenue.
Record a purchase only when your payment system confirms that money was paid to your business. An upgrade-button click, a free trial, and an unpaid subscription are not completed purchases.
Use a trusted server-side payment confirmation or a supported integration. Connect the confirmation to the same contact identity used by your campaign, and prevent repeated payment notifications from creating duplicate purchases. Record the actual amount and currency through the supported purchase flow.
Keep plan access accurate as well. A payment event explains what happened; your app’s current account state explains what the user can use now. Refunds, cancellations, and expired access need their own handling.

Write an email around the next job
For this example, assume ClipSprint’s paid plan includes a larger export allowance. The following message is for someone who has already used the editor and needs that allowance—not every person who registered.
Subject: More clips for your next publishing batch
Hi Maya,
Ready to turn your next video into a batch of clips?
If your current export allowance is holding you back, ClipSprint’s paid plan gives you more room to prepare the clips you want to publish.
Compare the export allowances and billing details before deciding. You can choose the plan that fits your next batch.
See plans and export allowances
A finished email should use your brand’s typography and colors, a clear benefit heading, and one primary button. If you show an example output, use a real, relevant example you have permission to display.
Link the button to the plan comparison or upgrade screen. Preserve that destination if the user must sign in first. Avoid sending them to a general dashboard where they must find the offer again.
Replace the example’s plan details with your real offer. Do not claim the user reached a limit unless your data confirms it. Do not invent a discount, deadline, or limited availability.

Build a short campaign in Hamla
Give Hamla the audience, the offer, the links, and a clear definition of success.
A request could be:
Prepare an upgrade email campaign for my AI video clipper. Target free users who have downloaded a clip and have a verified need for more export capacity. Exclude existing paying customers and anyone who cannot receive marketing email. Use the plan details and links I provide; do not invent prices, limits, discounts, or deadlines. Start with one email and prepare one relevant follow-up for my review. Use our confirmed payment event as the conversion goal and stop remaining reminders after payment. Prepare the campaign for approval before launch.
If your tracking cannot identify that audience reliably, fix the missing signal or choose a simpler audience you can verify. Do not describe guessed behavior as a fact in the message.
Hamla needs the relevant events, accurate contact data, a supported connected email service, and permission to contact the recipients. The prompt alone does not connect your payment provider or configure your app’s paid access.

Stop selling when the person has paid
Configure the campaign’s conversion goal using the actual tracked event that represents confirmed payment. Check it again before a delayed follow-up sends.
Also exclude people who are already paying when they enter the campaign. Stopping after conversion does not replace checking who was eligible at the start.
Give the sequence a definite end for people who do not upgrade. One relevant follow-up may be enough; test what is useful instead of adding messages by default.
After payment, the next message has a different job: help the customer find and use what they bought. A receipt can confirm payment. Product guidance can explain where to find the larger export allowance. Neither needs another upgrade pitch.
Check the full path before launch
Test with accounts that represent the actual situations:
- A free user who qualifies for the offer.
- A user who has not yet completed their first edit.
- A customer who already paid.
- A user who pays after entering the sequence but before the follow-up.
- Someone who unsubscribes before a scheduled message.
Check the message, destination, displayed price, checkout, payment confirmation, account access, and remaining campaign steps. Payment-system test mode can help verify the flow without charging a real customer; keep test activity out of production reporting.
Measure the decision, not just the clicks
Compare eligible users who received the offer with those who visited pricing, started checkout, and completed payment. Count unique people and confirmed payments; repeated clicks do not create additional customers.
If people click but do not start checkout, investigate whether the offer and price answer their need. If checkout starts but payment does not complete, investigate payment errors and uncertainty in the purchase flow.
Look beyond the first charge too. Are customers using the allowance they bought? Are they keeping the plan, asking for help, or requesting refunds? More purchases are not a complete success if the paid experience disappoints.
A useful upgrade campaign makes the value easier to understand at the moment it matters. Your app still has to deliver it.



