# Trial-to-paid starter kit

Templates to adapt, not results. Sized for a 14-day trial. From the guide: https://fromhello.io/en/learn/growth-for-small-teams/trial-expiration-and-trial-to-paid-emails

Version: 2026-10-09 · fromHello

## 1. Events

| Event | Send it when | Properties | Sent from |
|---|---|---|---|
| signup_started | The signup form is submitted, before email verification | source, plan_intent | Browser |
| signup_completed | The account exists and the email is verified. Identify the user here, with the ID your billing system uses | trial_ends_at, plan | Server |
| activated | The user completes your aha action for the first time (define it once, for example "first report shared") | activation_action, days_since_signup | Server |
| trial_expiring | A daily job finds trial_ends_at three days away, then one day away | days_left, trial_ends_at | Server, scheduled |
| subscription_started | Your billing provider confirms the first successful charge | plan, interval, amount | Server, from the billing webhook |

Naming: object_action, snake_case, past tense for facts. Keep personal data on the profile, not in event properties.

Example payload (any tool's `track` call takes this shape):

```json
{
  "event": "trial_expiring",
  "userId": "usr_123",
  "properties": {
    "days_left": 3,
    "trial_ends_at": "2026-10-23T00:00:00Z"
  }
}
```

## 2. Journeys

|   | 1 · Onboarding: first value | 2 · Onboarding: stalled trial | 3 · Trial-expiry rescue |
|---|---|---|---|
| Trigger | signup_completed | No activated event 48 hours after signup_completed (handed over from journey 1) | trial_expiring with days_left = 3 |
| Entry filter | On a trial plan; not an internal or test account | Same, and no reply to the welcome email | No subscription_started yet |
| Steps | Welcome email → wait up to 48 hours for activated → next-step email | Help email → wait up to 3 days for activated → plain-text check-in from a person | Branch on activated: value recap with one objection answered, or help with an extension offer → T-1 reminder → expiry and grace-day email → reactivation email 4 days later |
| Suppression | Unsubscribed and hard-bounced contacts never enter; at most one marketing email a day across journeys | Same; pause while a person is answering their reply | Same; skip the reactivation email if they replied or booked a call |
| Exit and goal | Goal: activated. Exit on subscription_started | Goal: activated. Exit on subscription_started | Goal and exit: subscription_started, at any step |

## 3. Messages

| Message | Subject line | Opening line | One call to action |
|---|---|---|---|
| Onboarding (welcome) | Welcome to {product}: one thing to do first | Most teams get value from {product} the day they {aha_action}. Here is the shortest path there. | {aha_action} |
| Activation (next step) | You {aha_action_past}. Here's what comes next | That's the step most trials never reach. The next one is {next_action}, and it takes about five minutes. | {next_action} |
| Help (stalled trial) | Stuck on {setup_step}? | You signed up {days} days ago and haven't {aha_action_past} yet. Usually it's {common_blocker}: here's the fix, or reply and a person will help. | Reply to this email |
| Trial nearing its end (T-3, T-1) | {days_left} days left: what you've built so far | So far you've {usage_summary}. On {plan}, all of it keeps running after {trial_end_date}. | Choose a plan |
| Expiration (grace day) | Your trial ended. Your work is still here | Your trial ended on {trial_end_date}. Your {objects} stay put for {grace_days} days, so you can pick a plan without losing anything. | Keep my account |
| Reactivation (win-back) | Pick up where you left off | Since you last logged in, we shipped {relevant_change}. Your {objects} are still here if you want another look. | Restart my trial |

## 4. Before you switch it on

- Run every journey with a test profile: fire each event by hand and check who enters, who waits and who exits.
- Pay with a test card halfway through journey 3 and confirm the remaining emails stop.
- Send in each user's time zone, never overnight, and cap marketing email at one a day across journeys.
- If you take a card upfront, start the reminders early enough for the card networks' notice rules (see the guide).
- Measure trial-to-paid by signup-week cohort, and keep a small holdout group if you want to know what the sequence itself adds.
