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.
SaaS email template
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.
"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.
"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.
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.
Trial ending emails sent only in English miss conversion for users whose preferred language is set differently.
Your backend fires trial.ending_soon with the days_remaining value. Rules route to different templates with different urgency levels.
Include the current plan and the upgrade URL in the payload. The template renders the right upgrade path for that user.
7 days out, 3 days out, 1 day out — each fire by your backend cron job. Each routes to a template with appropriate urgency.
Include the user's locale. The right language template is selected automatically.
{{ 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 Days remaining in the payload, plan-aware upgrade CTA, locale routing. No marketing automation required.