July 20, 2026
How to build a sales follow-up sequence that gets replies
TL;DR. A sequence that gets replies is 5 to 7 email steps spread over 2 to 3 weeks, where every step carries one new idea and the whole thing stops the moment someone replies, unsubscribes, or bounces. Start with the email steps, put the waits between them, and only add branching once the straight-line version is sending.
A follow-up sequence is an ordered list of emails and waits that runs on its own once you enroll a contact. The version that works for a small team is short and boring: five to seven email steps spread over two to three weeks, each one carrying a single new idea, with waits of two to four days in between. The first step is an email, the last step is a real goodbye, and the entire thing stops the instant a contact replies, unsubscribes, or hard-bounces. Everything else (branching, engagement thresholds, tasks) is refinement you add later, after the straight-line version is actually sending.
What is a sequence made of?
Four kinds of step exist, and for your first sequence you only need two of them.
| Step type | What it does | Need it on day one? |
|---|---|---|
| Sends one template to the enrolled contact | Yes | |
| Wait | Pauses for a set number of days or hours, or until a fixed date | Yes |
| Condition | Checks whether the contact opened, clicked, replied, or hit an engagement score, then branches | No |
| CRM action | Logs a call, task, meeting, or note back to a connected CRM | Only if you run a CRM |
Alternate email, wait, email, wait, and you have a working sequence. That is not a simplified starter version you outgrow. It is what most small-team outbound looks like in production. Conditions are a way to spend your attention more precisely once you have enough volume for the branches to mean anything.
One structural rule to know before you start dragging steps around: the first step must be an email. A sequence that opens with a wait gets rejected at save time. This is deliberate. Enrolling someone into three days of silence is never what you meant to do, and it is the single most common way a sequence quietly does nothing for a week.
How many steps should a sequence have?
Five to seven. Under four and you are giving up on people who were merely busy; over eight and you are mostly annoying people who already decided.
The reason has less to do with persistence than with material. Every step needs a reason to exist that the reader can see. By email eight you have usually run out of new things to say, and the tell is obvious in the copy: "just circling back," "bumping this to the top of your inbox," "wanted to follow up on my last note." Those are not emails. They are receipts proving you sent an earlier email, which the reader either ignored on purpose or never saw.
Here is a cadence that fits into about two and a half weeks:
| Step | Day | What it carries |
|---|---|---|
| 1 | 0 | The reason you are reaching out, one specific ask |
| 2 | 3 | A concrete proof point: a number, a comparable customer, a result |
| 3 | 7 | A different angle: another problem the same thing solves |
| 4 | 11 | Something useful with no ask attached |
| 5 | 16 | The close-out: "sounds like the timing is off, I'll stop here" |
Five steps, sixteen days, and every one of them has its own job. If you want six or seven, add them between days 7 and 16 rather than tacking them onto the end. Adding a step after the goodbye undoes the goodbye.
That final step does more work than people expect. Saying you will stop reaching out is the most reliable reply-getter in the whole cadence, partly because it is a genuinely easy email to answer and partly because it is the only one that costs the reader nothing to ignore honestly. Write it as a real goodbye, not a threat, and mean it.
How long should the waits be?
Two to four business days early on, stretching to four or five later in the sequence. Same-day follow-ups read as automation. Two-week gaps mean the reader has forgotten the first email, so step three is effectively another step one.
Waits come in two flavors. A relative wait counts forward from the previous step: three days, six hours, or ninety minutes if you are testing. An absolute wait pauses until a specific date and time, which is useful when a whole sequence is pinned to an event, a launch, or the start of a quarter. Absolute waits have to be in the future when you save the sequence; a date that has already passed is a save-time error rather than a step that fires immediately.
For the first sequence you build, use relative waits throughout. They survive being cloned, they survive being paused for a week, and they do not need editing every time you reuse the sequence for a new list.
What makes a sequence stop?
This is the part worth getting right, because the failure mode is public. A contact who replies "please take me off this list" and then receives three more emails is a complaint waiting to happen, and complaints cost you inbox placement for everyone else on the list.
A sequence should stop for a contact when:
- They reply. The enrollment flips to a replied state and the remaining steps are skipped. This is the whole point of the sequence. It exists to start a conversation, and the conversation has started.
- They unsubscribe. The contact is added to your suppression list and no further mail goes out, from this sequence or any other. Honoring that immediately is a legal obligation, not a courtesy.
- They hard-bounce. The address does not exist. Sending to it again does measurable damage to your sending reputation, so it goes onto the suppression list too.
- You pause the sequence. Pausing checks in before every step, so steps that were already queued do not sneak out after you hit pause.
Soft bounces are the exception: an out-of-office or a full mailbox is temporary and gets retried, not suppressed. You do not want to burn a real prospect because they took two weeks off.
Every send also runs a suppression check right before it goes out, not just at enrollment time. That gap matters more than it sounds. A contact can unsubscribe on day two of a sixteen-day sequence, and the check that runs at enrollment has no way to know that.
When should you add a condition step?
After the straight-line version has been running long enough to show you something. A condition step waits a set period after an email, checks whether the contact opened, clicked, replied, or crossed an engagement score, then sends them down one of two paths: continue, jump ahead to a later step, unenroll, or update a field on the contact record.
The honest answer for most small teams is that branching on opens is not worth much anymore. Apple's Mail Privacy Protection pre-fetches images for a large share of consumer mail, which registers as an open whether or not a human looked at the message. Branch on a click or a reply, which require an actual decision, and treat opens as a soft signal you glance at rather than route on.
Two constraints shape what you can build:
- A condition step must follow an email step. There is nothing to evaluate otherwise. The trigger is asking about a message that has to exist.
- A jump can only target a later step. No loops. A sequence that can jump backward can run forever, and a contact stuck in an infinite cadence is a support ticket at best.
Both are enforced when you save, not discovered in production three days later.
The branch that earns its keep first is usually the simplest one: if the contact clicked, jump them past the general-interest emails and into the specific ask. You already know what they care about. Making them sit through two more educational emails is a way of ignoring what they told you.
What does this cost on each plan?
Sequences are not metered, but the number you can run at once is:
| Plan | Price | Active sequences |
|---|---|---|
| Free | $0 | 2 |
| Solo | $35/mo | 5 |
| Starter | $79/mo | 10 |
| Team | $199/mo | Unlimited |
| Business | $399/mo | Unlimited |
Only sequences in an active state count. Drafts and paused sequences are free, so an archive of last quarter's cadences sitting in draft does not eat the limit. If you are running two or three segments at a time, which is where most teams under ten people actually live, the Solo or Starter cap is not the thing that will constrain you.
How does SEMAOS handle this?
You build the sequence by dragging steps into order, pick the template each email step sends, and set the waits between them. Structural mistakes are caught when you save rather than when a contact hits them: a sequence starting with a wait, a condition with nothing before it, a jump pointing backward, an absolute wait set to last Tuesday. Reply, unsubscribe, and hard bounce all stop the sequence for that contact automatically, and the suppression check runs before every individual send rather than once at enrollment.
So the practical build order is: write your templates first, lay down five email steps, put a two-to-four-day wait between each, write a real goodbye for the last one, and turn it on. Add conditions in week three, once you have clicks to branch on.
That completes the first 30 days: your domain is authenticated, your list is imported and cleaned, your template is written, and your sequence is running. The next thing to learn is how to read what comes back: which numbers mean something and which ones, like open rate, mostly do not.
