Lead auto-reply
Optionally text or email the lead themselves, once, right after their information reaches a buyer.
Lead auto-reply sends the lead an SMS and/or an email the moment their information is delivered to a buyer. It's the "we got your request, someone will call you" message — it closes the gap between the form they filled in and the buyer's first call.
It's off by default and entirely optional. Turn it on in Settings → Lead auto-reply (the gear in the canvas header; it's the last section of the panel), per pipeline. Switching it on reveals the two channels; switching it back off stops every send and keeps your messages for when you want them again.
Each lead is messaged once. In shared distribution a lead goes to several buyers — the auto-reply still fires once, naming the first buyer it actually reached.
Before you turn it on
| Channel | What it needs |
|---|---|
| SMS | Your own Twilio account connected, and a number you own on it. Messages are sent from your number, at your cost. |
| A verified sender domain. Lead-facing email always leaves from your domain, never from a shared LeadMove address. |
If a prerequisite is missing the switch stays greyed out, with a link to where you set it up.
Writing the message
Both channels use merge codes. Anything missing simply renders as empty — a message never shows a raw {{token}} to a lead.
| Merge code | Value |
|---|---|
{{lead.<field>}} | Any field this pipeline collects, by its name — these are the only lead codes offered |
{{buyer.displayName}} | The delivered buyer, as leads should read it — falls back to the internal buyer name when it's empty |
{{buyer.website}}, {{buyer.bookingLink}} | That buyer's links |
{{buyer.intro}} | That buyer's own sentence about itself |
{{buyer.contactPhone}} | That buyer's contact phone — "they'll call you from…" |
{{pipeline.name}} | This pipeline's name |
The {{lead.*}} buttons are your Intake fields, one per field, and nothing else. A pipeline that doesn't collect a first name is never offered {{lead.firstName}} — write it anyway and the section tells you it isn't a field of this pipeline, because at send time it would come out blank. Add the field in Intake and the button appears. ({{lead.id}}, {{lead.email}} and {{lead.phone}} work whether or not they're declared: they're stored on every lead.)
The buyer codes come from the buyer, not from the pipeline. {{buyer.displayName}}, {{buyer.website}} and {{buyer.bookingLink}} are set in Settings → Profile → Public details; {{buyer.intro}} — the buyer's own sentence — in Settings → Lead auto-reply → Message. Fill them in once per buyer and every pipeline that names that buyer speaks correctly.
You don't have to go looking: when a message uses a code some buyers left empty, the section names them and each name is a link straight to the panel that fills it in. Coming back lands you on this pipeline with the settings panel still open.
The default SMS is a good starting point:
Thanks for your request! {{buyer.displayName}} will contact you shortly. Reply STOP to opt out.
It names no lead field on purpose — every pipeline gets it, including ones that collect an email address and nothing else. Add a name by clicking the button for the field you actually collect.
{{buyer.name}} (the internal label), {{buyer.contactName}} and {{buyer.contactEmail}} work too; they just don't get a button.
Click a merge code to insert it at the cursor. The preview under the box shows the message filled in with a sample lead built from this pipeline's own fields — so a code you just inserted renders to something — and a real buyer of this pipeline — pick which one with Preview with at the top of the section. The SMS segment count tells you when a message is about to cost two texts instead of one. Send test delivers the draft you're looking at — not the saved version, and against the buyer the preview is showing — to your own phone or inbox.
Email is plain text: line breaks are kept, links are made clickable, and there's no HTML editor. A short, human message is the point.
Fallback values
Write {{buyer.website|our website}} and leads of a buyer with no website read "our website" instead of a blank. Anything after the | is the fallback, used whenever the field is empty.
This matters most for the buyer links, which nothing can fill in for you: a pipeline with five buyers, two of whom never set a booking link, would otherwise send "Book a time here:" followed by nothing. The section warns you about exactly that — it names the buyers a {{buyer.*}} code would come out blank for, so you can either fill the field in on the buyer or write a fallback.
A fallback can itself contain merge codes. That's the recommended pattern for the per-buyer sentence:
Thanks for your request! {{buyer.intro|{{buyer.displayName}} will contact you shortly.}}
Buyers who wrote an intro line speak in their own words; the others get the generic sentence with their name in it. One template, several voices — and nothing to keep in sync.
{{buyer.displayName}} never needs a fallback: it falls back to the buyer's internal name on its own. The section still points out which buyers that applies to, so you can decide whether the internal name is presentable.
Where you see it
On the lead's page, in an Auto-reply card right under the deliveries: the channel, the buyer that was named, where it went, and the message exactly as it left. Not the template — the rendered text, so you can still tell what a lead received months later even if you've rewritten the template since. When a buyer sent its own message, the card says so.
The lead's activity carries the same event as a timeline entry, which is where you read when it happened in the sequence. The card is where you read what was said. The peek panel on the leads list shows the card too.
Anything that stops a message is recorded the same way rather than passing silently — "Auto-reply SMS failed — Lead has no phone number", an invalid number, an opt-out, a sender domain that's no longer verified.
Phone numbers are normalized before sending. A lead who typed (415) 555-2671 is messaged fine; international numbers need their + country code to be recognised.
Per-buyer messages
A buyer can carry its own auto-reply message. When it does, that message replaces the pipeline's for leads delivered to that buyer. Sending is still controlled by each pipeline.
Open the buyer, Settings → Lead auto-reply → Message. The first box is the intro line: one or two sentences in the buyer's own words, which a pipeline places wherever it wants with {{buyer.intro}}. It's the light option — one template, several voices — and the panel tells you if no pipeline message places it yet, because an intro line nothing references is never sent.
Under it, the full override: three boxes — SMS, email subject, email message — and the cascade is per field: fill in only the SMS and the buyer keeps every pipeline's email. Empty a box and that field goes back to the pipeline's. The panel lists the pipelines the message applies on, and Send test goes out through one of them, from its real number or domain.
Use it when a buyer wants its own tone, its own structure, or its own language. Short of that, the fallback pattern with {{buyer.intro}} covers most of it with one template to maintain instead of several.
STOP notices don't travel
A pipeline's opt-out notice isn't carried over into a buyer's own words. Any SMS message without "STOP" in it — pipeline or buyer — gets a warning where you write it. It doesn't block saving; the message just goes out as you wrote it.
What a buyer's message can not change: whether a channel is on, the sending number, the sender domain, the one-message-per-lead rule, and the exclusion below. An excluded buyer sends nothing even with a message written — exclusion says "don't contact", an override says "contact in my words", and the first one wins.
On the pipeline side, the Preview with selector says so: pick a buyer that overrides and the preview shows its message with a note, rather than pretending the box above is what its leads will read. The empty-field warnings follow the same rule — each buyer is checked against the message it would actually receive.
The lead's timeline records which side spoke, so "why did this lead read that?" stays answerable after the template is rewritten.
Excluding a buyer
Some buyers won't allow you to contact their leads at all — an exclusive buyer who wants the first call, or one who runs their own follow-up and would rather not double-text. Open the buyer, Settings → Lead auto-reply, and set Participation to Excluded.
The setting belongs to the buyer, so it holds across every pipeline that buyer receives from — you set it once, not once per pipeline. New buyers are included by default.
An excluded buyer doesn't consume the lead's one message: in shared distribution, if a lead goes to an excluded buyer and an included one, the lead still gets exactly one auto-reply, naming the included buyer. A lead delivered only to excluded buyers is never messaged, and nothing is recorded on its timeline — that's a setting doing its job, not a failure.
Duplicating a buyer carries the exclusion over.
Manual deliveries
Assigning a lead to a buyer by hand sends the auto-reply too, exactly like an automatic delivery. The assignment form on the lead's page carries a Send the lead auto-reply switch, on by default.
Turn it off and this lead is never auto-messaged — not by this delivery, and not by any later one either. The switch appears only when the pipeline has auto-reply on and the lead hasn't been messaged yet.
Forwarding
A forwarded lead is a new lead in the target pipeline, with its own auto-reply of its own. With a copy rule, if both pipelines have auto-reply on and both deliver, the same person gets two messages — one per pipeline.
Enable auto-reply on one side of the chain, not both. There's no automatic guard, because there's no way to tell which side should speak: the source pipeline may be pure intake, or may be the brand the lead actually knows. A transfer rule can't produce a double message — the source pipeline stops distributing the lead.
What it is not
Auto-replies are not deliveries: they are never billed, never count toward a buyer's caps, and can't be disputed. They're a notification to the lead, nothing more.
Sandbox pipelines never send them, so the example pipeline can't text a real number.
Consent is yours
Messages leave from your own Twilio number and your own domain, so the compliance is yours too (TCPA in the US, GDPR in the EU). Only message leads who agreed to be contacted. STOP replies are handled by Twilio on your number: once someone opts out, Twilio refuses further messages to them, and the refusal shows up on the lead's timeline.
Common questions
Can I send the message the second the lead arrives, before a buyer has it? No — and that's deliberate. The message names the buyer who will call. Sending it before a buyer exists would promise a call nobody is going to make. A lead held for manual review, or arriving outside a buyer's operating hours, is messaged when it's actually delivered.
A lead was re-delivered or the distribution re-run. Do they get a second message? No. One message per lead, whatever happens afterwards.
Can I use a different message per buyer?
Three ways, in the order worth trying them. One template with the {{buyer.*}} merge codes covers most cases. Add a per-buyer intro line when a buyer wants to say something in its own words. Give the buyer its own whole message when it wants its own tone, structure or language. And if a buyer shouldn't be messaged at all, exclude it.
Does duplicating a pipeline carry the auto-reply over? Yes, both channels and their templates. The copy starts paused like any duplicate, so nothing sends until you activate it.