Trial endingMenu
On this page

Trial ending

Updated

Remind people a week before and the day before their free trial ends, starting from the Trial ending template.

A trial-ending journey reminds someone that their free trial is about to end, so they can choose a plan before they lose access. The Trial ending template sends two reminders, a week before and the day before the trial’s end date, at 9:00, and stops once they pay.

Who it’s for

Software, apps, memberships and subscriptions with a free trial. For example, Tallyfox, a fictional project-planning app, offers a 14-day trial and reminds each trial user before it ends.

What you need first

  • A date attribute called trial_ends_at on each trial user, written YYYY-MM-DD. Your app usually sets it when the trial starts, through the API’s identify call. This works on every plan.
  • Your purchase event, sent when someone pays, such as Order Completed from a connected payment provider or Invoice Paid from your app. The template uses the purchase event from your key events. Tracking your own events is on every plan, within its monthly allowance; connecting Stripe is available on Starter and above.
  • A verified sending domain. See Set up a sending domain.

1 Start from the template

Go to Journeys, choose New journey, then under Start from a template and Dates, choose Trial ending.

2 Check what the template creates

Part As the template sets it
Trigger A date arrives, Date attribute trial_ends_at, Repeat Once, Days from the date -7, Time 9:00
Step 1 Send message: Your trial ends in a week, with a Choose a plan button
Step 2 Wait 6 days
Step 3 Send message: Your trial ends tomorrow
Exit rules Your purchase event: paying ends the journey at once, even during the wait

9:00 is in each contact’s time zone. See Date triggers.

3 Change it for your business

  • The exit event. If paying is marked by an event other than your purchase event, such as Subscription Started, change the exit rule’s Exit event to it.
  • The timing. For a 7-day trial, a week’s notice is the whole trial: set Days from the date to -3 and the Wait to 2 days instead.
  • Follow the end date, not a fixed wait. If trials can be extended, replace the 6-day Wait with Wait, Until a date, reading trial_ends_at from The contact, Days before 1. The second reminder then follows the new date. A date without a time means midnight in the contact’s time zone, so the reminder arrives early that morning. See Wait until a date.
  • The emails. Add your sender, give the Choose a plan button your pricing or billing page, and list what the person keeps by choosing a plan. See Design an email.

4 Measure it

  • Clicks on the Choose a plan button, on the Performance tab under Email outcomes by step.
  • Trials that become paid: add a conversion goal on the event that marks paying, with Counts within set to 7 days and a Revenue property if it carries the amount. Available on Starter and above. See Conversion goals. To track the trial-to-paid rate across your whole workspace, set up a Goal as well.
  • Lift: add a Random split before the first email with one empty path as a holdout, then compare conversion rates. See Random split and holdout.

Common pitfalls

  • The date set too late. The journey starts on the day 7 days before trial_ends_at. If your app sets the date after that day, for example for a 5-day trial, the contact never enters. Set it when the trial starts, and match Days from the date to your trial’s length.
  • No paying event, no exit. Without the event that marks paying, customers who have already paid still get Your trial ends tomorrow. Check it arrives before you turn the journey on.
  • A second trial. With Once, each contact goes through the journey once ever, so a second trial for the same person gets no reminders.
  • Dates in the wrong format. Store trial_ends_at as a date, 2026-11-30, not as text such as 30 Nov.

Next steps