Skip to content
Agorix
Updated 29 July 2026

Behavioral email triggers: design the condition first.

Most automation goes wrong at the beginning: somebody writes an email and then hunts for a reason to send it. This is the other order — the five families of behaviour worth firing on, the spec you fill in before writing a word, the hygiene rules that stop two triggers colliding, and the else branch that every trigger quietly creates.

05trigger families
08hygiene rules
03worked designs

What you will have at the end

  • A one-sentence test that tells you whether you have a trigger or a broadcast
  • The five families of behaviour worth firing on, and what each one does not prove
  • A trigger spec you fill in before you write a word of copy
  • Cooldowns, priority order and suppression rules, so two triggers never both fire
  • The else branch every trigger creates, and the three legitimate things to do with it
  • Three worked trigger designs you can adapt to your own offer
An automation builder branching a follow-up sequence on attendee behaviour.
Rule 00Condition first

If you cannot say it in one sentence, it is a broadcast.

A trigger is not an email that happens to be automated. It is a condition — and the condition is the part that decides whether the message is welcome, because it decides who receives it and what they were doing a moment before.

The test takes ten seconds. Write the rule as one plain sentence, in the past tense, from the other person’s point of view: they watched to the end of the session and did not buy, they finished module two and have not opened a lesson in a week. If the sentence needs an “and also” to hold together, you have two triggers. If it describes a state of mind rather than an event — “is a hot lead”, “seems interested” — you have an opinion, and no system can fire on an opinion.

Doing it in this order changes the copy as much as the mechanics. Once the condition is written down you know exactly what the recipient just did, which means the message can refer to it plainly instead of opening with the generic paragraph that every automated email opens with. Most of what people call “personalisation” is just a trigger whose condition was specific enough to write about.

The order that goes wrong

Content first is how a business ends up with nine sequences that all say roughly the same thing to roughly the same people, each fired by a condition reverse-engineered to justify a message somebody had already written. It is also why those sequences are impossible to fix: there is no way to make a message more relevant when the rule that sends it was chosen last.

Map 01The five families

Five kinds of behaviour, and what each one does not prove.

Nearly every trigger worth building comes from one of five families. Knowing which family you are in tells you how much weight the signal can carry — and the last column is the one that keeps you honest.

FamilyFires onA fair readingOver-reading it
AttendanceRegistered, attended, arrived late, left early, did not turn upThey allocated an hour of their working day to this, or they did notThat a no-show is uninterested. The most common reason is that it was Tuesday.
Watch timeCrossed a marker — reached the offer, finished the recording, stopped at a known pointHow much of the argument they actually heard before they leftThat minutes equal intent. A tab left open scores the same as rapt attention.
ClicksOne specific link: the offer, the pricing page, the booking link, a lessonWhich particular thing they wanted to look at, which is more than you knew beforeThat a click is a decision. It is a question with the answer still missing.
Purchases and stateBought, refunded, owns this already, access granted, subscription lapsedA fact rather than an inference — the only family that needs no interpretationNothing, as long as you check state before you send. Most embarrassing sends are a missing state check.
InactivityAn expected next action has not happened inside a window you choseSomething stopped. You know when, and you know where.That silence is rejection. It is far more often a difficult lesson or a busy fortnight.

Two practical consequences fall out of that table. The first is that purchases and state are the only family requiring no interpretation, which is why they belong in the qualifier of almost every other trigger — “and does not already own this” is the single most valuable condition you will ever write. The second is that inactivity is the family small businesses skip, and it is the one covering the work nobody does by hand, because nobody has ever remembered to check who quietly stopped.

Combining families is where the precision is

A single signal is usually too blunt to write to. Watch time plus purchase state gives you the engaged non-buyer. A click plus an absence gives you someone who looked at the offer and stopped. Attendance plus inactivity gives you the person who showed up, meant it, and then let it slide. Two conditions is usually the sweet spot; by the fourth you have built something that fires for eleven people a quarter and takes an afternoon to debug.

Step 02Designing the conditionSeven fields

Seven fields, filled in before you write a word.

This is the whole method. Fill in the spec, read it back as a sentence, and only then open the editor. It takes about five minutes and it is the difference between a trigger you can maintain and one you will eventually switch off because nobody remembers what it does.

  1. The event. What happened, in the past tense, from the other person’s point of view. “Watched to the end of the session”, not “is a hot lead”. If you cannot write it in the past tense, it is a state or an opinion, not an event.
  2. The qualifier. What else has to be true about this person for the message to make sense. Almost every regrettable automated email is a missing qualifier: they had already bought, already replied, already been sent it last week.
  3. The wait. How long after the event the action runs. The wait is a content decision, not a technical one — it sets what the recipient remembers when it arrives.
  4. The action. One thing. Send one message, create one task, add to one audience, grant one access. A trigger that does four things is four triggers wearing a coat, and it fails four ways.
  5. The stop. What cancels the action between the trigger firing and the action running. Usually: they did the thing anyway. Without a stop condition you will email people to ask why they have not done something they did an hour ago.
  6. The else. What happens to the people who fired the event and failed the qualifier. Writing “nothing, deliberately” is a complete answer. Leaving it blank is not.
  7. The owner. The person who reads the replies. Automated messages generate human answers, and a trigger with no owner sends them into a mailbox nobody opens.

The spec

Copy this into a document, one block per trigger, and keep the document. It is the only documentation this part of your business needs, and it is what turns a quarterly review from an archaeology project into a twenty-minute read.

TRIGGER   [short name someone else would understand]
WHEN      [the event, written in the past tense]
ONLY IF   [what else must be true about this person]
WAIT      [how long after the event]
DO        [one action]
STOP IF   [what cancels it before it runs]
ELSE      [what happens to everyone who fails the ONLY IF]
OWNER     [the person who reads the replies]

One more field is worth adding in your head even if it never makes it onto the page: what does this person know at the moment the message arrives? A no-show has not heard your argument. Someone who watched to the end has heard all of it and declined. A student who stalled knows exactly where they got stuck and would rather you named it than pretended not to notice. Write to that state, and the copy mostly writes itself.

Step 03Trigger hygiene

Triggers do not break loudly. They break by both firing.

A single trigger is easy. The trouble starts at the fourth, when two of them are individually reasonable and jointly embarrassing. These eight rules cost nothing to apply on the day you build something and are painful to retrofit.

  1. One owner-action per trigger. The action you would name if someone asked what this trigger is for. Bundling a send, a tag, a task and an audience change into one trigger makes it impossible to say which part misfired.
  2. A cooldown, per person, per trigger. Somebody who clicks the same link four times in a week should hear from that trigger once. Pick a window — seven days is a sane default for anything sales-adjacent — and set it on the day you build the trigger, not on the day someone complains.
  3. A cap across everything. Cooldowns stop one trigger repeating. They do nothing about six triggers each firing once on the same busy Thursday. A ceiling on automated messages per person per week is the only rule that survives adding new triggers later.
  4. A written priority order. When two triggers both qualify, one of them wins. Decide the order once, on paper, in the order of how close each is to money: purchase-adjacent beats engagement-adjacent beats housekeeping.
  5. Suppression that is checked, not assumed. Buyers, unsubscribes, bounced addresses, people already inside a sequence, people who replied to a human this week. Every one of these should be a condition on the trigger, because none of them will be true when you first build it and all of them will be true within a month.
  6. Traceability from the message back to the trigger. For any message a person received, you should be able to say which trigger sent it and why they qualified. If you cannot, you cannot debug it, and every fix from then on is a guess.
  7. An off switch you can reach in one action. Not a rebuild. Not deleting the trigger. A pause you can hit from your phone, because the moment you need it is never a moment you are at a desk.
  8. A named owner and a review date. Triggers do not break loudly. They quietly keep sending a message about a webinar you stopped running in March. Put a date in the calendar to read the list.

When two triggers both want to fire

This is not an edge case; it is Tuesday. The same person attends the session, clicks the offer, and hits the seven-day mark on a course they stalled in — three qualifying conditions inside one afternoon. There are three ways to resolve it and only one of them is worth a small team’s attention.

  • Priority — one wins, the other drops. The simplest rule and the right default for a small team. The purchase-adjacent trigger fires; the newsletter-adjacent one is discarded rather than queued. You lose a message you would probably not have missed.
  • Queue — both run, with a gap. Fire the higher-priority one now and the second after a minimum interval, provided its conditions are still true. Recheck the conditions before the second one sends: the interval is exactly long enough for them to have stopped being relevant.
  • Merge — one message covers both. Occasionally right, usually more work than it saves. If two triggers are so often true together that merging them looks appealing, they are probably one trigger with a branch inside it.
The rule that catches the rest

One human question, asked before every new trigger.

“What else could this person be receiving from us today?” It takes fifteen seconds and it catches nearly everything the priority order misses — the broadcast going out that morning, the sequence they are three emails into, the invoice, the person on your team who is already halfway through a conversation with them.

Step 04The else branch

Every trigger you build creates a second one you did not.

The moment you write “if they attended”, you have created the group who did not attend and left it empty. That group is almost always larger than the one you built for, and it is where most of the unclaimed value in a small business sits.

The branch you builtThe branch you just created
Attended the sessionRegistered, and then did not turn up
Watched through the offerLeft before the offer, having heard the useful half
Clicked the offer linkOpened, read the whole thing, did not click
BoughtReached the checkout and stopped there
Completed the moduleStarted the module and stalled inside it
Booked the callWas invited to book and did not

Read the right-hand column as a list of people who did something meaningful and then heard nothing. Someone who reached your checkout and stopped told you more than almost anyone on your list, and in most small businesses the response is silence, because the automation was built for the people who completed the purchase.

Three legitimate things to do with an else branch

  • Send something genuinely different. Not the same email with a sadder subject line. A no-show did not hear your argument at all, so a message referring to “what we covered” reads as though it was written for somebody else — because it was.
  • Wait for a better signal. A perfectly good else branch is a pause. Someone who opened and did not click has told you almost nothing; responding to almost nothing trains people to ignore you. Leave them in the ordinary rhythm and wait.
  • Change the audience quietly. Move them out of the sequence, off the segment, into the slower list. No message at all, just a state change that makes the next trigger more accurate.

What is not legitimate is the fourth option everyone reaches for: the same message with a slightly sadder subject line. The right-hand column is a different audience in a different state, not a worse version of the left-hand one, and a message that treats them as failed attendees reads exactly like what it is.

The branch you built

Smaller, warmer, easier

These people did the thing. The message writes itself, which is precisely why it gets built first and why it is rarely where the remaining value is.

The branch you inherited

Larger, colder, unclaimed

These people did most of the thing. Nobody is writing to them, which makes an accurate message here worth more per send than anything on the other side.

Ex. 05Three worked designsIllustrative

Three specs, filled in.

One from each of the three families worth starting with. The bracketed parts are yours to replace; the intervals are working defaults rather than findings, and the note under each one explains which choices are load-bearing and which are arbitrary.

Stayed through the offer, did not buyDesign 01 / 03
TRIGGER   Engaged non-buyer — [session name]
WHEN      The session ended
ONLY IF   Watch time passed [the point where the offer starts]
          AND has not purchased [offer]
WAIT      2 hours
DO        Send [the one email that answers the objection you
          actually heard in the room]
STOP IF   They purchase before it sends
ELSE      Left before the offer → [replay email, timestamped to
          the part they missed]
OWNER     [name]
Why it is shaped this way

This is the highest-value trigger most businesses can build, and it is two facts joined by AND rather than a score. Someone who sat through the pitch and did not act has an objection, not a lack of information. The two-hour wait exists because the message has to arrive while they still remember the room, and because sending during the session catches people who were about to buy.

  • ElseThe people who left early are a bigger group and a different message: they never heard the offer, so selling to them is answering a question they did not ask.
  • CooldownOnce per session. If you run the same webinar weekly, cap it at one engaged-non-buyer email per person per month regardless of how many sessions they attend.
  • Watch forThe missing state check. Someone who bought the offer last quarter and came back for the update should never receive this.
Clicked the offer, never reached the checkoutDesign 02 / 03
TRIGGER   Clicked [offer link], no checkout
WHEN      [Offer link] was clicked
ONLY IF   No checkout started in the next 48 hours
          AND does not already own [offer]
          AND has not had this trigger in [7] days
WAIT      48 hours from the click
DO        Send [the short email naming the two questions people
          ask before they buy this]
STOP IF   A checkout is started, or they reply to a human
ELSE      Opened and did not click → nothing. Wait for a
          better signal.
OWNER     [name]
Why it is shaped this way

The click is the narrowest signal in the set and the easiest to over-read, which is why the qualifier does most of the work here. Forty-eight hours is long enough that the people who were going to act have acted, so the message lands on the ones who genuinely stopped — and short enough that they still remember clicking.

  • ElseDeliberately empty. An open without a click is inside the noise floor of every email tool, and building on it produces messages nobody can trace back to anything they did.
  • CooldownSeven days minimum. Without it, a person who checks the page each morning receives this every morning.
  • Watch forThe reply that arrives while the email is queued. The stop condition has to include human contact, or your automation will interrupt your own sales conversation.
Finished a module, then stoppedDesign 03 / 03
TRIGGER   Stalled after [module]
WHEN      [Module] was completed
ONLY IF   No lesson activity for [7] days
          AND [next module] has not been started
WAIT      7 days from the last activity
DO        Send [the specific help for the thing that comes next]
          AND create a task for [owner] if [high-value customer]
STOP IF   Any lesson activity happens
ELSE      Carried straight on → no message. They are fine.
OWNER     [name]
Why it is shaped this way

An inactivity trigger, which is the family people build last and get the most out of. The precision comes from where the person stopped: a message that names the specific next lesson and the specific difficulty is help, while “we noticed you have not logged in” is surveillance. The seven days is a guess you should adjust once you can see where your own students actually stall.

  • ElseThe students who kept going get nothing, and that is correct. Congratulating people for normal progress is how a course inbox becomes noise.
  • CooldownOnce per module. A learner who stalls three times should hear from a person on the third, which is what the task is for.
  • Watch forThe wait measured from the wrong clock. From the last activity, not from the completion — otherwise someone who took a week off and came back gets nudged on their first day back.

Notice what the three have in common. Each one has a qualifier that checks state, a stop condition that cancels it if the person acts first, an else branch that is decided rather than empty, and exactly one action. Those four properties are what make a trigger safe to leave running while you are on holiday, which is the only real test of an automation.

LimitWhat your system can see

A trigger can only fire on behaviour your system records.

This is the constraint that quietly decides which triggers on this page you can actually build, and it has nothing to do with how good your automation tool is. It is about whether the signal and the qualifier can be read from the same person at the same moment.

Take design 01. “Watch time passed the offer marker AND has not purchased” needs the watch-time data and the purchase data to sit on one record. If the webinar tool holds the first, the checkout holds the second and the email tool holds neither, that condition is not a trigger — it is an export, a spreadsheet, a manual segment upload, and a twenty-four hour delay by the time anyone has done it. So the trigger you actually build is the blunter one that your weakest integration supports, which is why so many small businesses end up sending “thanks for attending” to a list that includes the people who bought.

The three questions to ask your own stack

  1. Can the signal reach the rule at all? Not eventually, through a nightly sync — within minutes, while the message would still make sense. A trigger with a sixteen-hour lag is a scheduled send with extra steps.
  2. Can the qualifier be checked at the moment of firing? Purchase state is the one that matters most and the one most often stale. If your automation tool learns about purchases once a day, every purchase-adjacent trigger has a window in which it will embarrass you.
  3. Can you see, afterwards, what happened to one person? When something misfires you will want the path a single record took through the rule. If that requires three logins and a guess, you will not check, and the trigger will stay slightly wrong for months.

None of this is an argument for a particular product. It is an argument for testing the condition before designing around it: pick the trigger you most want, and check whether both halves of it are visible in one place before you write the email.

Where a tool decision changes the plan

The condition is only as good as what one record can see.

“Stayed through the offer and did not buy” is one line in a workflow when attendance, watch time and the checkout live on the same customer record — and three exports and a guess when they do not. In Agorix the signal and the qualifier are read from the same story, so the follow-up runs while it still means something — see how live webinars connect.

Start your 14-day trial 14 days · $0 due today · Payment method required · Cancel before first charge and pay nothing
ShipThe first three

Three triggers, running, beats thirty on a whiteboard.

Trigger design is enjoyable enough that it becomes a substitute for shipping. Build these three, in this order, and leave them alone for a month before adding a fourth.

Build these three

  • The money-adjacent one — clicked or attended, did not buy. It is the only trigger with revenue directly on the other side of it.
  • The completion one — bought, joined, registered, finished. It sets up everything that comes after and it is nearly impossible to get wrong.
  • The inactivity one — the expected next step has not happened. The hardest to build by hand and the one people most reliably fail to do manually.

Not yet

  • Anything firing on an email open on its own
  • A trigger whose condition you cannot state in one sentence
  • A branch built on data you are currently reconciling by hand each month
  • The clever multi-condition one you thought of first — build it third
  • Anything that sends without a person having read one real example of it

How to know it works before anyone else does

Put yourself through it first. Register, do not attend, watch half, click the link, abandon the checkout — whatever the condition describes — and receive the consequence in your own inbox with your own timing. Then check the execution history forty-eight hours later and read what actually happened to five real people, not the summary count. The count tells you the trigger fired. Only the path tells you it fired for the right reason.

Then put a date in the calendar. Once a quarter, read the specs, check which triggers fired at all, and switch off the ones that fired for nobody or fired for everybody. Both are broken; only one of them is obvious.

The next layer

When triggers stop being enough on their own.

A trigger answers “what should happen now”. It does not answer “who deserves a human today”, which is a question about accumulated behaviour rather than a single event. That is what a simple lead score is for — and a score crossing a threshold is itself just another trigger, designed the same way.

Common questions

Six questions about firing on behaviour.

What is a behavioral email trigger?

A rule that starts a message from something a person did or did not do, rather than from a date on your calendar. It has three parts: the event — attended, watched to a point, clicked a specific link, purchased, or failed to act inside a window — the qualifier that must also be true about that person, and the one action that follows. The discipline that makes them work is writing the condition as a single plain sentence before you write any copy. If the sentence needs an “and also” to hold together, you have two triggers.

How many triggers should a small business run?

Three to start, and rarely more than about ten in total. Begin with the money-adjacent trigger, the completion trigger and one inactivity trigger — the three in the last section. Every addition after that brings a conflict to resolve and something else to maintain, so the ceiling is not what your tool supports but how many rules you can still hold in your head when something misfires. Your first marketing automations covers which ones earn their place first.

How long should the delay be after the trigger fires?

Long enough that the person has finished doing the thing, short enough that they still remember doing it. Two hours after a session ends, forty-eight hours after an offer click, seven days after activity stops. Treat the wait as a content decision rather than a technical one — it determines what the recipient remembers when your message arrives, which determines what the message can reasonably say.

What happens when two triggers fire for the same person?

Decide the rule before it happens rather than after. Priority is the right default for a small team: write the order once — purchase-adjacent above engagement-adjacent above housekeeping — and let the lower-priority message be discarded rather than queued. Then add a cap on automated messages per person per week. Cooldowns stop one trigger repeating; only a cap stops six different triggers all being individually reasonable on the same Thursday.

Can a trigger fire on something someone did not do?

Yes, and these are usually the most valuable triggers a small business builds, because they cover the follow-up nobody remembers to do by hand. An inactivity condition needs a window and an expected action: no lesson activity for seven days and the next module not started; invited to book and no booking within five days. It also needs a stop condition, so the message cancels itself if the person acts while it is waiting. Agorix workflows can start from meaningful inactivity as well as from actions.

Do behavioral triggers need a big list to be worth it?

No — they pay back on relevance rather than volume, so the arithmetic is simply smaller at a smaller size. What they do need is behaviour you can actually observe and qualify on, which is the real constraint. A trigger can only fire on what your system records about one person, so in a split stack the practical limit is not your imagination but whatever your weakest integration can see.

Keep going

What sits either side of a trigger.

From a spec to something that runs

You have the conditions. Agorix is where they can fire.

Registrations, attendance, watch time, course progress, clicks and purchases on one customer record — so a two-condition trigger is one rule rather than three exports, and the else branch is a branch rather than a gap.

14 days · $0 due today · Payment method required · Cancel before first charge and pay nothing