Multi-channel sequence templates that book meetings (email + call + LinkedIn)
Three complete sequences written as step lists — kind, delay, copy and branch — plus what each channel demands before the template will run at all.
A multi-channel sequence template is a step list before it is copy. Each row names a step kind, a delay, a sending account and a branch, and the words sit inside that structure rather than the other way round. Below are three complete templates — email-first, LinkedIn-first and call-anchored — written out step by step with the kinds, the gaps and the reason for each. Copy the structure first. The copy is the easy part to change later, and the structure is what decides whether the template can run at all.
A step kind is the load-bearing part of any template
Every template you will ever copy off a blog is really a list of typed rows. In Autocloz the type is a field called kind on each sequence step, and the database's own check constraint permits eighteen values while the dispatcher's list names fourteen — the four LinkedIn extras (withdraw, find-email, endorse-skills, follow) sit in the constraint ahead of the code that would dispatch them. Knowing the kinds matters because they fall into three groups that behave completely differently.
Kinds that send something to a person. email, call, call_ivr, linkedin_invite, linkedin_dm, linkedin_inmail, sms, whatsapp_template. Each carries a body or a template reference and a sending account, and each is subject to that channel's own pacing and consent rules at dispatch time.
Kinds that touch a person without messaging them. linkedin_view and linkedin_like carry no body at all — they view a profile or like a recent post. They exist because a LinkedIn notification from a stranger is a cheap way to make your name familiar before an invitation arrives, and because they are subject to the same anti-automation pacing as a message, they are not free volume.
Kinds that shape the timeline and send nothing. wait, branch, task and webhook. A task step is the one people forget: it puts a piece of human work on a queue — record a personalised video, check the account for a trigger, write the invite note by hand — inside the same timeline as the automated steps. A template that has no task steps is a template that assumes no human judgement is needed anywhere, which is rarely true for the accounts worth the effort.
Write your template as this list first. If you cannot express a step as a kind, a delay and a sender, it is a wish rather than a step.
Template one: the email-first twelve-day sequence
Use this when you hold a verified business address and the account is worth roughly the same as the next hundred accounts. It is the default for volume outbound, and it uses two channels rather than five on purpose.
- Day 0,
linkedin_view. Profile view from the sender's own account. No message, no request. It costs one action against the LinkedIn pacing budget and it means your name has already appeared once when the email lands. - Day 0 (later),
email. The first message. One observed fact about the account, one sentence connecting it to a problem you fix, one low-commitment ask. - Day 2,
branchonif_opened. If the first email registered an open, skip ahead to the value step; if not, fall through to the plain follow-up. Treat this as a routing hint, not evidence — an open is a loaded pixel, and privacy proxies load pixels on the recipient's behalf. - Day 3,
email. The short bump, in-thread. Two sentences. It restates the ask and adds nothing else. - Day 5,
linkedin_invite. A connection request with a note that references the email explicitly. Not a second pitch: an acknowledgement that you wrote and a reason you are connecting. - Day 8,
email. The value step. One concrete thing they can use whether or not they ever reply — a number, a checklist, a specific observation about their category. - Day 12,
email. The close-out. Say you are stopping, say what would make you get back in touch, and mean it. branchonif_replied,then_kind: stop, attached after every dispatching step.
The copy for the opener, written as an illustrative example rather than a claim about results:
Subject: your careers page, 4 SDR roles
Noticed four SDR openings on your careers page dated last month. Teams hiring that shape usually hit the same wall about six weeks in — the tooling for email, dialling and LinkedIn lives in three places and nobody can answer "what did we actually send this account". We put those in one timeline. Worth fifteen minutes, or should I send two lines instead?
The observation is checkable, the bridge is one sentence, and the ask has two doors. For a fuller treatment of what makes a first line specific rather than merely variable, the worked personalisation examples go signal by signal.
Template two: LinkedIn-first, when you do not have the address
Use this when the list came from a LinkedIn export, a conference attendee list, or anywhere else that gave you a name and a company but no verified address. The whole point of the design is that step four exists to create the email channel the sequence did not start with.
- Day 0,
linkedin_like. Like one recent post, if there is one. Skip if the profile is dormant. - Day 1,
linkedin_invite. The connection request with a note. Keep it under the network's note limit and say why this person specifically. - Day 4,
branchonif_connection_accepted,within_hours: 72. Accepted, continue. Not accepted, jump to the InMail leg or stop. - Day 5,
linkedin_dm. The first real message, sent only to people who accepted. This is the highest-response moment in the whole template and the most commonly wasted — most teams send a pitch here to someone who has known them for four days. - Day 6,
linkedin_find_email. The step that resolves a business address from the profile, so the sequence can widen. - Day 7,
branchonif_email_available. The condition re-reads the lead's primary email inside the same transaction, precisely so a value written by the previous step is visible. Present, continue to email. Absent, stay on LinkedIn. - Day 9,
email. Now a warm email, because the recipient has seen your name three times. - Day 14,
linkedin_dm. The close-out on the channel the conversation started on.
The invitation note, as an example:
The note. Hi Priya — saw your post on moving the SDR team off three separate tools. We built the thing you described in the last paragraph, badly at first. Happy to swap notes either way.
No ask, no link, no pitch. The invitation's job is acceptance. The message that follows does the work. Connection-message patterns cover the note itself in more detail than a sequence template can.
Template three: the call-anchored sequence for named accounts
Use this for a small list of high-value accounts where a rep's hour is worth spending. It inverts the usual order: the call is the anchor and everything else exists to make the call less cold.
- Day 0,
task. Fifteen minutes of human research per account. The output is one sentence in the lead's notes. - Day 1,
email. Short, and it names the researched thing. - Day 3,
call. The first dial. Voicemail if no answer, with the same sentence. - Day 3 (same day),
email. The post-voicemail bump, in-thread, referencing the call. Pairing the drop with the email is the whole reason the call step earns its place. - Day 6,
linkedin_invite. - Day 8,
call. Second dial, different time of day. - Day 11,
task. A human decides: multi-thread to a second contact, or close out. - Day 14,
email. The close-out.
Calls carry the heaviest legal constraints in the set. In the United States the Telephone Consumer Protection Act's implementing rule, 47 CFR § 64.1200(d)(3), requires that a do-not-call request be honoured "within a reasonable time from the date such request is made", and states plainly that "this period may not exceed ten (10) business days from the receipt of such request". Build the template so that request has somewhere to go on the first dial, not the fourth. Cold-calling scripts cover the opener itself; the compliance surface is in TCPA compliance for cold calling.
The branch is the part everyone copies wrong
A branch step in Autocloz evaluates one condition and returns one of three things: a step id to jump to, the sentinel stop which terminates the enrolment cleanly, or nothing at all, in which case the enrolment falls through to the next ordinal. Nine condition kinds are supported: if_replied, if_not_replied, if_connection_accepted, if_email_available, if_open_profile, if_viewed_message, if_opened, if_clicked and if_bounced.
Three details decide whether your copied template behaves the way its author intended.
within_hours defaults to a year. When the field is unset the worker uses 24 × 365 hours — 8,760 — which effectively means "at any point in this enrolment". A branch you meant as "replied in the last two days" behaves as "replied ever" unless you set the number.
An unrecognised condition falls through silently. If the kind is not one of the nine, the worker logs it and returns nothing rather than raising, so the enrolment continues to the next step. That is the right choice for uptime and the wrong assumption for a template you pasted from somewhere else: a typo in a condition name does not fail loudly, it just stops branching.
The action shape is shared across every condition. then_kind is either stop or skip_to, and skip_to needs a next_step_id. A branch with a condition and no action defaults to stop when there is no next step id, which is safer than the alternative but is still a decision someone should make deliberately.
What each channel demands before the template will run
A template is portable. The permissions it needs are not, and this is where most copied sequences stall on day one.
Email needs an authenticated sending domain. Google's Email sender guidelines require senders of more than 5,000 messages a day to Gmail accounts to authenticate with SPF, DKIM and DMARC and to keep the spam rate reported in Postmaster Tools below 0.30%, with 0.10% recommended, effective 1 February 2024. Microsoft began routing high-volume non-compliant domains to the Junk folder from 5 May 2025, returning 550 5.7.515 Access denied, sending domain does not meet the required authentication level for the rejections.
LinkedIn does not publish a numeric invitation cap in its own Help Centre, so every specific weekly number in circulation is inferred from user reports rather than documented. Autocloz treats that uncertainty as a design constraint: the dispatcher ships a sigmoid warmup ramp that floors a brand-new account at five actions on day one and grows it over a default 21-day horizon, a weekly default of 80 invitations to leave headroom for the human's own activity, weekend allowance dampened to 30% of the weekday figure in the account's own timezone, a burst refusal when the last five actions all fell inside ten minutes, and 60 to 300 seconds of random jitter added after every send so the inter-send histogram does not look periodic.
WhatsApp requires an approved template before a whatsapp_template step can dispatch anything. Meta reviews each submission against the category you declared — marketing, utility or authentication — and returns APPROVED, PENDING or REJECTED, re-categorises templates it judges miscategorised, and applies escalating enforcement for repeated misuse that runs from warnings through rate limiting to restrictions at the portfolio level. Your sequence copy is therefore written weeks before the campaign, not during it.
SMS in the United States runs through a registered 10DLC campaign with sample copy filed in advance. In India it runs through DLT registration with a pre-approved template and header.
Autocloz's free plan covers 5 users and 10 mailboxes with warmup and DMARC monitoring included, which is enough to run template one end to end — start free and build the step list before you write a word of copy.
A worked example, with the arithmetic stated as an example
Numbers below are illustrative arithmetic to show the shape of the calculation, not measured results from any customer.
Take 400 leads into template one. Suppose 92% of rows carry a verified email and 61% carry a LinkedIn URL — figures you can read off your own list in a minute, and should. Then the email steps address 368 people and the LinkedIn steps address 244, of whom the invitation reaches only those who have not already hit their own inbound limits.
Now count dispatches rather than people. Four email steps against 368 addressable rows is 1,472 potential sends, minus everyone who replied, bounced or unsubscribed before reaching step four. If reply-and-stop removes 4% of the remaining population at each step and hard bounces remove 2% at the first, the fourth email step actually dispatches to roughly 310 people, not 368.
The number that matters for pacing is dispatches per sending day. Spread across twelve days with ten mailboxes, that is comfortably inside a normal per-mailbox daily cap. Spread across three days because someone set every wait to 24 hours, it is not — and the constraint that breaks first is the mailbox, not the sequence. The cold email sequence builder is a quick way to lay the step list out and see the dispatch curve before you commit a campaign to it. How many cold emails per day is safe works that ceiling properly.
How to diagnose a template that produces nothing
Work in this order, because each step rules out the layer beneath it.
- Are steps dispatching at all? Check whether the campaign has produced touches in the last 24 hours. Zero touches is an enrolment or scheduling problem, not a copy problem, and no amount of rewriting fixes it.
- Are they dispatching on every channel, or only one? A sequence that ships email and no LinkedIn usually means the LinkedIn account is paused, out of pacing budget, or the rows have no handle. Coverage, not copy.
- Are they landing? Bounce rate and authentication results come before reply rate. A 30% bounce rate makes every downstream number meaningless.
- Are people opening but not replying? That is a copy and offer problem, and it is the only one of these four where rewriting the message is the right response.
- Are people replying negatively? That is a targeting problem. Go back to the list.
The single most common cause of a "template that does not work" is that steps three onwards never fired, because a branch with an unset within_hours matched on an old reply and stopped the enrolment. Look at the enrolment's current step before you look at the words.
What a sequence template cannot do, and what Autocloz does not do here
A template cannot fix a list. If the people in it do not have the problem you solve, a better fourth touch changes nothing, and the multi-channel version simply reaches the wrong person on four channels instead of one.
A template cannot create handles. A linkedin_dm step for a row with no LinkedIn URL is not a touch, it is a gap. Count coverage per channel before you design the step list, or the sequence you designed is not the sequence that runs.
Autocloz does not share one suppression record across channels the way most people assume. The do-not-contact table is keyed on (org, channel, identifier) — an email address, an E.164 phone number, a LinkedIn profile URL — with a wildcard channel value of * available for "this person opted out everywhere". A STOP text therefore writes a row against the phone number for that channel, and unless something also writes a row against their email address, the email steps keep running. That is not a quirk of one product: the United States Federal Communications Commission adopted a "revoke-all" requirement in its TCPA Consent Order of 16 February 2024, and its Consumer and Governmental Affairs Bureau has since extended the waiver of that element twice, most recently in Order DA 26-12 of 6 January 2026, pushing it to 31 January 2027. Cross-channel opt-out is a thing you have to operate deliberately, today.
Autocloz also does not run every step kind its schema permits. The four LinkedIn extension kinds in the database constraint are not in the dispatcher's list, so a template that assumes linkedin_endorse_skills will fire is assuming something the code does not currently do.
And no template decides who to enrol. That judgement is upstream, and it is the one that moves the outcome most. Teams comparing this architecture against tools that automate the judgement as well will find the honest version of that trade-off on the Autocloz and Outreach comparison, and the multi-channel sequence builder is where the step list above is actually assembled.
Frequently asked
How many steps should a multi-channel sequence have?
Between six and nine dispatching steps across two or three channels is a workable range for most B2B outbound, because that is roughly what fits inside three weeks at a two-to-four-day gap without any single channel exceeding its own pacing ceiling. The number is an output of your channel mix and your caps rather than a target to hit. A ten-step email-only sequence and a six-step three-channel sequence can deliver the same number of touches to the same person.
Should the first touch be email or LinkedIn?
Email first when you hold a verified address, because an email step needs nothing from the recipient before it can dispatch. LinkedIn first when you do not hold an address, because a connection request is the only opening touch that also produces a channel to message on. The genuinely useful third option is a LinkedIn profile view or post like a day or two before the first message, which costs nothing, needs no acceptance and puts your name in front of the person before anything asks them for something.
What happens to the sequence when someone replies?
That depends entirely on how the branch is configured, and the default is not what most people assume. In Autocloz a branch step evaluates a condition such as if_replied and then either stops the enrolment or jumps to a named step; with no branch configured, the enrolment falls through to the next step in ordinal order. Reply detection also has to distinguish an out-of-office from a real answer, or the run stops on an autoresponder and a genuine prospect never gets the next touch.
Can the same template be reused across LinkedIn, SMS and WhatsApp?
Only the shape travels; the copy does not. A WhatsApp step can only dispatch a template Meta has already approved under a declared category of marketing, utility or authentication, so its wording is fixed before the campaign is built. An SMS step in the United States runs on a registered 10DLC campaign whose sample copy was filed in advance. A LinkedIn invitation note is capped by LinkedIn's own character limit. Write each channel's copy against its own constraint rather than translating the email.
How long should the gap between two touches be?
Long enough that the second touch is not visible in the same screenful of inbox as the first, and short enough that the person still recognises your name. Two to four working days between messages on the same channel is the usual working range, with a longer gap after a non-answer than after an open. The gap is measured by the worker in seconds from the previous step's completion, so a weekend inside a 72-hour wait is counted, not skipped.
Do I need all five channels to run a multi-channel sequence?
No, and starting with five is the common way to build something that never launches. Two channels with real coverage beat five with thin coverage, because a step that has no handle to send to is a gap in the sequence rather than a touch. Count how many rows in your list actually carry a LinkedIn URL or a mobile number before you add a step that depends on one.