Behavioral email examples for SaaS: 20 triggers and the email each one sends

20 behavioral email examples for SaaS: the behavior behind each, what to send, a sample email, and whether it starts from a pattern or a trigger.

By , Founder & CEO, FoundryX · Updated October 31, 2026

Behavioral email examples are emails sent to one user because of something they did, or didn’t do, in your product, each written about that action: a setup left half done, a second visit to pricing, a plan limit, a failed payment, three weeks of silence. Below are 20 of them for SaaS, grouped by stage, each with what to send, an example and how it starts in Behavly.

The examples use Mapleside, a made-up booking tool for small clinics. For how the practice works, from tracking to timing, see behavioral email for SaaS.

What can a behavioral email react to?

Every example starts from one of six signals, each tied to a signed-in person.

SignalWhere it comes fromUseful for
Page views
The tracking snippet, attached to the signed-in personSetup screens, pricing, docs, a feature’s page
Clicks, rage clicks and dead clicks
The snippet; Tracking → Heatmaps shows where they happenedFinding the screen where people stall
Scroll depth
The snippetTelling a glance at a page from a full read
Sign-ins and visits
The snippet recognizes each signed-in sessionGoing quiet, coming back
Product events
behavly.track in your app, or send_event from your serverActivation, plan limits, trials, payments
Email opens, clicks and replies
Your own campaign emailsChoosing the next email on a path

Only what a person did counts: Apple Mail loading images by itself isn’t an open, and a security scanner following a link isn’t a click.

How it starts, in the tables, means one of these:

Pattern Campaign
Starts from a group who did something in common: a pattern Behavly detected, or one you describe in plain words and check before it’s saved. Always on takes in everyone who joins later.
Trigger Campaign
Starts the moment your product sends an event, like payment_failed. For moments on your server, such as a trial ending, send these as product events.
Waits and branches
A wait can last until the person acts; a branch splits the path on whether they opened, clicked, logged in, visited a page, replied or did an action.

Onboarding and activation emails

BehaviorWhat to sendExample subjectHow it starts
1. Signed up, never did the core action
One step toward their first result, built on what they did set up“Your booking link is ready to share”Pattern: never did your activation event, such as page_published, Always on
2. Started setup, stopped partway
The one step left, linked straight to it“Your booking page is one step from live” (below)Pattern: visited the setup page, never did hours_saved
3. Looked around once, never came back
The one thing most new users do first, ready to go“Your first service, already filled in”Pattern Behavly detects, such as Barely explored
4. Rage-clicked on a setup screen
A short walkthrough of that screen’s next step, from a person“Adding your services from a price list”Pattern you describe: rage clicks plus a visit to /setup
5. Activated, invited no teammates
What changes for them when their team joins“Your 20 bookings, split across your team” (below)Pattern: did booking_created 20 times, never did staff_invited

Rows 1 to 3 are the core of an onboarding sequence. Row 2 has its own onboarding incomplete email templates; for long-stalled signups, see users who never activated.

2. Started setup, stopped partway

Subject: Your booking page is one step from live

Hi Leah,

Your Mapleside page already lists your four services and their prices. The one step left is your opening hours, and once they’re in, clients can book any free slot without calling the front desk.

Most clinics copy their hours from the week view in about two minutes.

Add your hours: [link]

Noor

Skip if they already did it drops this for anyone who adds hours first.

5. Activated, invited no teammates

Subject: Your 20 bookings, split across your team

Hi Marta,

Your booking page took 20 appointments this month, all on your own calendar. Add the people who see clients and each of them gets their own column, their own reminders and only the bookings meant for them.

Invites take one email address each, and you decide who can change prices.

Add your team: [link]

Noor

Written from her own numbers: 20 bookings, one calendar.

Trial and upgrade emails

BehaviorWhat to sendExample subjectHow it starts
6. Trial ends in three days, already activated
What they keep by upgrading, in their own numbers“Keep your 38 bookings and reminders”Trigger: trial_ending from your server
7. Trial ends in three days, never activated
One step worth trying first, and how to ask for more time“Before your trial ends: publish your page”The same trigger as row 6; each email is written from what that person did
8. Visited pricing twice in a week
The one plan that fits their usage, and what carries over“Which Mapleside plan fits three practitioners” (below)Pattern: visited /pricing, Always on, then a branch on another visit
9. Hit a plan limit
The plan that removes the limit, sent the same day“Your 50th booking this month” (below)Trigger: booking_limit_reached
10. Read the security docs, then pricing
The answer to the requirement: which plan includes it“SSO for your clinic is on the Clinic plan”Pattern: visited /docs/security and /pricing
11. Opened checkout, didn’t upgrade
The likely blocker: invoices, billing period, who approves“Paying for Mapleside by invoice”Pattern: visited /checkout, never did upgraded

Rows 6 and 7 share one trigger: each email is written from what that person did, so they differ. See trial expiration for more templates. Rows 8, 10 and 11 start from a page: see page-visit triggers and pricing page follow-up.

8. Visited pricing twice in a week

Subject: Which Mapleside plan fits three practitioners

Hi Omar,

With three practitioners taking bookings on your page, the Team plan is the one that fits: each of them gets their own calendar and reminders, and your 140 past bookings stay exactly where they are.

You can move back to a smaller plan at any time.

See Team with your clinic selected: [link]

Noor

A branch on visited a page (/pricing) within 7 days sends this only after a second visit. It names his usage, never his visits.

9. Hit a plan limit

Subject: Your 50th booking this month

Hi Priya,

Your page took its 50th booking this month, which is what the free plan includes, so new clients now see a note to call you instead.

On Team, online booking reopens straight away with no monthly limit, and all 50 bookings stay as they are.

Reopen bookings on Team: [link]

Noor

Sent with behavly.track("booking_limit_reached"). Urgent priority keeps it from waiting behind other campaigns.

Feature adoption emails

BehaviorWhat to sendExample subjectHow it starts
12. Tried a feature once, never again
What the first use did for them, and where to use it next“Reminders for your other five services”Trigger: reminder_created, then a branch on doing it again within 14 days
13. Regular user, never touched a key feature
The feature, shown on their own data“Text reminders for your 30 weekly bookings”Pattern: at least 10 visits, never did reminder_created
14. Read the API docs, never created a key
The shortest working example for their account“A first API call for your booking page”Pattern: visited /docs/api, never did api_key_created
15. Read a feature announcement, didn’t try it
The feature, set up from what they already have“Group classes, built from your existing services”Pattern: visited the announcement page, never did the feature’s event

These are feature adoption emails. Turn on Skip if they already did it for each, so anyone already using the feature never gets the email.

Emails that react to your last email

BehaviorWhat to sendExample subjectHow it starts
16. Opened the last email, clicked nothing
A shorter follow-up in the same thread, with a different reason to act“Re: Your booking page is one step from live”Branch on opened, then on clicked a link in it; no click gets a follow-up in the same thread
17. Clicked the link, didn’t finish the step
The step after the click, in two lines“Re: Reminders for your other five services”Branch on clicked a link in it, a wait, then an email with Skip if they already did it
18. Replied
Nothing automated: a person answersNoneThe path ends on any reply

A reply ends the path by default. Behavly files it under a status such as High-intent or Follow up, and a suggested answer waits in the Unibox for you to send.

Retention and billing emails

BehaviorWhat to sendExample subjectHow it starts
19. Weekly user, quiet for three weeks
Their next piece of work, set up from their last“Next month’s schedule, copied from this one” (below)Pattern: Gone quiet, with a branch on logged in to your site
20. Payment failed
What happened, what keeps working, one link to fix it“Update the card for your Team plan” (below)Trigger: payment_failed, A new case each time

See also churn prevention emails, win back inactive users, and the full payment failed recovery path.

19. Weekly user, quiet for three weeks

Subject: Next month’s schedule, copied from this one

Hi Daniel,

Your clinic’s schedule runs to the end of this month, with 32 bookings across your two practitioners. You can copy it to next month in one step, with the same services, hours and buffer times, and change only the days that differ.

Clients can book as soon as it’s published.

Copy your schedule: [link]

Noor

A branch on logged in to your site ends the path for anyone who comes back on their own.

20. Payment failed

Subject: Update the card for your Team plan

Hi Alex,

The card ending 1187 was declined when your Team plan renewed today. Your booking page and all six calendars keep running while you update it, and we’ll try the card again in three days.

Updating it takes a minute, and nothing else about your account changes.

Update your card: [link]

Noor

With payment_succeeded as the goal, the path ends when the card goes through. {{event.plan}} fills in the plan from the event.

How to set these up in Behavly

Behavly tracks what each signed-in user does, runs the path you describe, and writes each Behavly Agent email from that person’s activity.

  1. 1Track. Add the snippet from Tracking → Setup to your signed-in app; activity attaches to each signed-in person with no extra code. Send product actions with behavly.track, server moments to send_event.
  2. 2Choose what starts it. In Automations, pick Pattern Campaign or Trigger Campaign.
  3. 3Describe the path in words and choose Build the path. Behavly lays out the emails, waits and branches; nothing sends until you activate.
  4. 4Let Behavly write each email for one person, from their activity and your Instructions for Behavly Agent.
  5. 5Read before it sends. Preview writes any step for a real person; with Review on, you approve every written email before it goes out.
  6. 6Set a goal, an action or a page visit. Behavly credits each person who reaches it to the last email they got.

One person can qualify for several of these. Behavly’s Agent guardrails count every campaign together: by default, campaigns stay 24 hours apart and nobody gets more than 3 emails in 7 days.

Behavly’s campaign list, with campaigns named after the behavior behind each, such as Gone quiet 7+ days, New signups no first project, Clicked pricing no upgrade and Trial ending soon.
A campaign list built from behaviors: each campaign is named after the moment that starts it.

Questions

What is an example of a behavioral email in SaaS?
An email to a user who set up their services but never added opening hours, naming the one step left and linking straight to it. Anyone who finishes first never gets it.
What is the difference between triggered and behavioral emails?
A triggered email starts from one event, such as a failed payment. Behavioral email is the wider practice: it also covers what someone didn’t do, which needs a wait and a condition rather than a single event.
Which behavioral emails should a SaaS company start with?
The onboarding stall, the plan limit and the failed payment, then gone quiet. Every user meets the first, and the next two block someone’s work.
How many behavioral emails should one user get?
Few, spaced out across every flow. Behavly’s defaults keep campaigns 24 hours apart and send nobody more than 3 emails in 7 days, all campaigns together.
Who should receive behavioral emails?
People who signed up for your product, with their activity tied to their signed-in sessions. An anonymous visitor has no address and hasn’t asked to hear from you, so there is nobody to write to.