SaaS email template

Trial ending email that converts — personalised, timely and plan-aware

Fire trial.ending_soon with days remaining and the upgrade URL. else.events picks the right template and sends the upgrade nudge at the right moment.

Why trial ending emails underperform

Sent on a fixed schedule instead of from trial state

"Day 12 of a 14-day trial" emails go out regardless of whether the user has been active. An inactive user needs different messaging than a highly engaged one.

Generic upgrade CTA with no plan context

"Upgrade now" with no mention of what changes or what the user loses is less effective than a CTA tied to their specific plan and feature usage.

Only one reminder instead of a sequence

A single reminder at 3 days works less well than 7 days + 3 days + 1 day with escalating urgency — each from a separate event fired by your backend.

Not localised

Trial ending emails sent only in English miss conversion for users whose preferred language is set differently.

Days remaining in the payload — urgency in the template

Include days_remaining in the event payload

Your backend fires trial.ending_soon with the days_remaining value. Rules route to different templates with different urgency levels.

Plan-specific upgrade CTA

Include the current plan and the upgrade URL in the payload. The template renders the right upgrade path for that user.

Fire multiple events for multiple reminder points

7 days out, 3 days out, 1 day out — each fire by your backend cron job. Each routes to a template with appropriate urgency.

Locale-aware from the payload

Include the user's locale. The right language template is selected automatically.

Template variables for the trial ending email

  • {{ user.name }} Recipient name for personalised greeting
  • {{ data.plan }} Current trial plan name
  • {{ data.days_remaining }} Days left in the trial — used for subject line and urgency
  • {{ data.trial_ends_at }} Exact expiry date shown in the email
  • {{ data.upgrade_url }} Personalised upgrade link
  • {{ data.features_on_upgrade }} Feature list unlocked on upgrade — for conversion copy

Frequently asked questions

What subject lines work for trial ending emails?
"Your trial ends in {{ data.days_remaining }} days — upgrade to keep access", "3 days left on your [App] trial", "Your Pro trial expires soon". Personalise with days remaining.
How do I send reminders at 7, 3 and 1 day before trial end?
Your backend cron job fires trial.ending_soon for each user whose trial ends within the threshold. Include days_remaining in the payload. Rules route 7-day, 3-day and 1-day to different templates.
Should I show what the user loses or what they gain on upgrade?
Both — but lead with what they lose if they do not upgrade (loss aversion), then show the upgrade benefit. "Keep your templates, rules and logs — upgrade to Pro" works better than "Unlock Pro features."
What if the user upgrades before the trial ends?
Your backend should stop firing trial.ending_soon events for converted users. Fire trial.converted instead to send a confirmation email.

Trial ending emails that convert at the right moment

Days remaining in the payload, plan-aware upgrade CTA, locale routing. No marketing automation required.

  • Days-remaining personalisation from payload
  • Plan-specific upgrade CTA
  • Multiple reminder points via separate events