Trial reminder emails that convert — triggered by trial state, not by a schedule

Send the right trial reminder at the right moment: when the trial starts, when it is about to end, when it expires and when it converts — each from a domain event.

Why generic trial reminder sequences underperform

Fixed schedules ignore actual trial usage

Sending a "your trial ends in 3 days" email to a highly active user and an inactive one with the same copy is a missed opportunity.

Plan-specific upgrade paths are hard to encode in marketing tools

Free-to-Pro conversion copy differs from Pro-to-Enterprise. Marketing automation journeys make this brittle.

Expired trial emails often miss the moment

Sending an expired trial email hours or days late because of sync delays means losing the conversion window.

No connection between trial email and user behaviour

Marketing tools do not know what the user actually did during the trial without complex tracking integrations.

Trial lifecycle emails from domain events

Fire events at each trial lifecycle step

trial.started, trial.ending_soon, trial.expired, trial.converted — each fires from your backend when the state actually changes.

Plan-aware upgrade CTAs

Include the current plan and available upgrade options in the payload. Rules and templates render the right upgrade path.

Instant delivery from your backend

No sync delay. The moment your backend marks a trial as expired, the event fires and the email sends.

Conversion tracking via delivery logs

See which trial reminder emails were sent to which users, and correlate with conversion events in your analytics.

Trial lifecycle events and their emails

trial.started

Trial started

Welcome to the trial. What to do first, what is included, how to get help.

trial.ending_soon

Trial ending soon

Personalised reminder with days remaining, plan features and upgrade CTA.

trial.expired

Trial expired

Clear, non-aggressive expiry notice with a win-back upgrade offer.

trial.converted

Trial converted

Confirmation of upgrade with plan details, next billing date and what is now available.

Template variables for trial reminder emails

  • {{ user.name }} Recipient display name
  • {{ data.plan }} Current trial plan tier
  • {{ data.days_remaining }} Days left in the trial
  • {{ data.trial_ends_at }} Trial expiry date
  • {{ data.upgrade_url }} Personalised upgrade or reactivation link
  • {{ data.features_on_upgrade }} List of features unlocked on upgrade — for conversion copy

Frequently asked questions

How do I fire the trial.ending_soon event at the right time?
Your backend triggers this — typically via a daily cron job that checks which trials end within a threshold (e.g. 3 days) and fires the event for each. else.events handles the email from there.
Can I send reminders at multiple intervals (7 days, 3 days, 1 day)?
Yes. Fire a separate event for each interval with a days_remaining value in the payload. Rules match on days_remaining to select the appropriate template with escalating urgency.
How do I personalise the upgrade CTA per plan?
Include the current plan and upgrade options in the event payload. The template renders the right upgrade path based on {{ data.plan }} and {{ data.upgrade_url }}.
What about users who convert before the trial ends?
Once the user converts, fire trial.converted instead. Your backend controls which events fire — else.events just handles the email for each event it receives.

Convert more trials with event-driven reminder emails

Trial state changes in your backend fire the right email automatically. No marketing platform required.

  • Free during public beta
  • Plan-aware upgrade CTAs
  • Instant delivery from your backend