mailtanimailtani

Template Examples

Worked examples using real email patterns from a production integration. These show variables, spintax, conditionals, and CTA buttons in context.

Example 1: Onboarding Email with Trial End Date

A welcome email sent immediately on registration. Shows the trial end date and adapts the P.S. based on whether the contact filled in a company name.

Subject:

Welcome to vitelnk, {{firstName | "there"}}!

Body (rich text):

Hi {{firstName | "there"}},

Your 14-day free trial is now active.

Here's what to do first:

1. **Upload a video** — any MP4 works, even a screen recording
2. **Create a share link** — get a unique URL for your video
3. **Share it** — send the link and see exactly who watched

[Go to Dashboard]({{custom.dashboardUrl}})

Your trial ends on **{{custom.trialEndsAt | date:"F j, Y"}}** — that's {{custom.trialEndsAt | relative}}.

---

P.S. {{#if custom.companyName}}I noticed you're from {{custom.companyName}} — if you have questions about using vitelnk for your team, just reply.{{else}}If you have any questions, just reply to this email.{{/if}}

What this demonstrates:

  • {{firstName | "there"}} — fallback if no first name
  • {{custom.trialEndsAt | date:"F j, Y"}} — formatted date
  • {{custom.trialEndsAt | relative}} — relative date (e.g. "in 14 days")
  • {{#if custom.companyName}}...{{else}}...{{/if}} — conditional P.S.
  • [Go to Dashboard]({{custom.dashboardUrl}}) — CTA button with variable URL

Example 2: Trial Lifecycle Email with Upload Branch

A trial expiry warning that shows different content depending on whether the contact has uploaded a video. Uses an {{#if}} conditional to branch the call to action.

Subject:

{{RANDOM | Your vitelnk trial ends in 48 hours | Don't lose access — trial ending soon | 48 hours left on your trial}}

Body:

Hi {{firstName | "there"}},

Your trial ends in **{{custom.hoursRemaining}} hours** — on {{custom.trialEndsAt | date:"F j, Y"}}.

{{#if custom.hasUploadedVideo}}
You've already uploaded {{custom.videoCount}} video{{#if custom.videoCount}}s{{/if}} and received {{custom.totalViews}} views. Don't lose that momentum.

When your trial ends, your dashboard locks and share links stop working. Your data stays safe for 30 days.

[See Plans]({{custom.plansUrl}})
{{else}}
You haven't uploaded a video yet — your trial ends in {{custom.hoursRemaining}} hours.

You can upload a video, create a share link, and track views in about 5 minutes. It's worth trying before you lose access.

[Upload Your First Video]({{custom.dashboardUrl}})
{{/if}}

— Alex

What this demonstrates:

  • Spintax subject line — randomises on each send
  • {{custom.hoursRemaining}} — event property synced to contact
  • {{#if custom.hasUploadedVideo}} — major content branch
  • Different CTAs for different audience states — no separate templates required

Example 3: Win-Back Email with Reactivation URL

A re-engagement email sent to users who have gone inactive. The reactivation URL is a signed, one-time URL generated by the app and passed as an event property.

Subject:

{{RANDOM | Your vitelnk account is still here | Come back — we saved you a spot | One quick thing before you go}}

Body:

Hi {{firstName | "there"}},

It's been a while. Your vitelnk account is still here, and so is your data.

{{#if custom.totalViews}}
The last time you were active, your videos had received {{custom.totalViews}} views total. That's real engagement sitting idle.
{{/if}}

If you want to give it another try, I've set up a link that reactivates your free trial — no credit card required. This link expires in 7 days and can only be used once.

[Reactivate My Free Trial]({{custom.reactivationUrl}})

If this isn't for you, no worries — [unsubscribe here]({{unsubscribeUrl}}) and I won't bother you again.

— Alex

What this demonstrates:

  • {{custom.reactivationUrl}} — event property (generated as a signed URL in the app)
  • {{#if custom.totalViews}} — optional paragraph only shown if they have views
  • {{unsubscribeUrl}} — built-in signed unsubscribe link
  • Inline unsubscribe link alongside the primary CTA

Example 4: Spintax Subject Lines for Variation

Using spintax across a sequence to avoid all emails looking identical in the inbox — helps with deliverability and open rate on later emails.

Email 1 (Day 0):

Welcome to vitelnk, {{firstName | "there"}}!

(No spintax needed — first email, always personal)

Email 2 (Day 1):

{{RANDOM | A quick note about vitelnk | Why I built this | The story behind vitelnk}}

Email 3 (Day 2):

{{RANDOM | 3 things vitelnk does that matter | What vitelnk is actually good at | Features worth knowing}}

Email 4 (Day 4):

{{RANDOM | 3 things you probably haven't tried yet | Hidden features worth exploring | Going deeper with vitelnk}}

What this demonstrates:

  • Each send picks a different subject variation
  • Keeps the inbox preview looking fresh across a 4-email sequence
  • The email body can still be consistent — only the subject needs variation
  • Combine with preview text variation for even more differentiation

Variable Reference for the Examples Above

VariableTypeExample valueWhere set
firstNamecontact fieldJaneContact sync
custom.trialEndsAtdate2026-03-23Contact sync + event properties
custom.hoursRemainingnumber47Event property (trial.expiring)
custom.hasUploadedVideobooleantrueContact sync
custom.videoCountnumber3Contact sync
custom.totalViewsnumber142Contact sync
custom.dashboardUrltexthttps://vitelnk.com/dashboardContact sync
custom.plansUrltexthttps://vitelnk.com/plansContact sync
custom.reactivationUrltexthttps://vitelnk.com/trial/reactivate?...Event property (user.inactive)
custom.companyNametextAcme CorpContact sync (if collected)
unsubscribeUrlbuilt-in(auto-generated signed URL)Always available