Tutorialthe whole build, step by step

Stop follow-up texts after a customer books: split your drip by stage

Split your automatic texts into new inquiries and booked customers, and make the booking switch the old ones off. The check, HighLevel steps, a phone test.

By Eric Snyder, founder 12 min readChecked on Oct 18, 2026
Save this guidereceiptsgroup.com/guides/follow-up-by-stage
SetupAbout an hour for the check on paper, then the switch in your CRM
Running cost$0 for the check. Texts cost whatever your CRM already charges per text
You needYour CRM, the list of every automatic text you send, and your own phone for the test
Works withAny CRM that sends automatic texts; the exact clicks here are for HighLevel
In this guide
Start here
  1. Start here: paste this into ChatGPT or Claude
The split
  1. How the pieces connect
  2. The check, step by step (any CRM)
  3. The switch in HighLevel
  4. Example (made up)
Copy and use
  1. First test: run your own phone through it (a few cents of texts)
  2. What it costs
  3. When it breaks
  4. Sources, checked Oct 18, 2026

Right now your follow-up might be one drip for everybody: a name comes in, and the automatic texts start. That's fine for a new inquiry. It's not fine for the customer who already booked, told the family, and then their phone buzzes on the couch: “Still thinking about new windows? Book today!” That's not follow-up. That's pitching somebody who already said yes. If a rep did that, you'd pull them aside. The software just gets to keep doing it.

The fix is one split. New inquiries get “When can we come out?” Booked customers get “Here's who's coming, and when.” Two lists, two jobs. And there's one catch that quietly breaks it: the booking has to actually update the customer's record in your CRM, and that update has to switch the old texts off. Miss either half and the robot keeps selling to them, like, forever.

So here's all of it: a check you can run on any CRM with a notepad, the two lists with texts to copy, the exact clicks in HighLevel, the question to send your CRM's support if you're on something else, a test with your own phone before a real customer sees anything, and what it costs.

Checked on Oct 18, 2026

Start herepart 1

Start here: paste this into ChatGPT or Claude

Not technical? Start here. Copy this prompt into ChatGPT or Claude (the free versions work) and it walks you through the whole guide, one step at a time, in plain English. It asks before it assumes anything and checks with you before anything that costs money, reaches a real customer or deletes something. The rest of the page is the same guide, written out, if you'd rather do it yourself.

PromptThe walkthrough prompt (copy all of it)
Hi! Please be my patient guide for this step-by-step guide from Receipts Group: "Follow-up texts by stage: stop pitching people who already booked"
The guide is here: https://receiptsgroup.com/guides/follow-up-by-stage (open it if you can; if you can't, everything you need is below).

About me: I run a small business and I'm not technical. Use plain words and short sentences.

My goal: my automatic follow-up texts work by stage. New inquiries get texts whose one job is getting a time on the calendar ("When can we come out?"). Booked customers get texts whose one job is telling them who's coming, and when. No more quote texts to someone who already said yes. And the catch: the booking has to actually update the customer's record in my CRM, and that update has to switch the old texts off.

How to help me:
1. One step at a time. For each step, tell me in a sentence what it's for and exactly what to do. Then stop and wait until I say "done" or tell you what I see.
2. Ask before you assume anything about my business, my CRM, my team or my texts. One question at a time.
3. If you use a technical word, explain it in plain English the first time (for example: CRM, drip, workflow, trigger, pipeline stage, merge field).
4. Stop and check with me before anything that costs money (a paid plan, a trial that bills when it ends, texting fees), anything that reaches a real customer (turning on a workflow or sequence, sending any text), and anything that deletes something (deleting or turning off a sequence, removing anyone from one).
5. Use only what I tell you or show you. Never guess a menu name or a setting in my CRM. If you're not sure where something is, tell me to ask my CRM's support and give me the question to send.
6. If I paste anything, remind me first to take out customers' names, phone numbers and addresses.
7. You're not my lawyer. For anything about consent or the opt-out wording on marketing texts, tell me to have my lawyer check.

The steps, from the guide:

Step 1. List every automatic text I send.
Help me find them all in my CRM (and any other tool that texts customers) and fill in the text list below, one row per text.

Step 2. Put each text on one list: INQUIRY or BOOKED.
Inquiry texts are about getting a time on the calendar. Booked texts are about who's coming and when. Any text that could reach both is the problem. Help me rewrite them from the two lists below, with my company, products and names in the brackets. Show me each one and wait for my yes.

Step 3. For every inquiry text, find what stops it.
It has to be the booking. If nothing stops it, or it stops only when the sequence runs out, mark it.

Step 4. Find every place a job actually gets booked.
Ask me: does the customer book online? Does a rep or the office book by phone? Does anyone write it on a paper calendar, a phone, a whiteboard? Each of those has to end up on my CRM's calendar (or change the customer's stage), or nothing switches.

Step 5. Set the one rule and the switch.
The rule for my team: it isn't booked until it's in the CRM. The switch in the CRM: that booking stops the inquiry texts and starts the booked ones.
If my CRM is HighLevel, walk me through it like this:
a. Optional: in my quote drip workflow, open the Settings tab and check Stop on Response, so someone who replies stops getting automatic texts from it.
b. Automation, then Workflows, then + Create Workflow, then + Start from Scratch. Name it something like "Booked: switch to confirmations".
c. Add New Trigger, search for Appointment Status. Filter By Appointment Status: New (and Confirmed if my team uses it). Use the In Calendar filter for my sales calendar. If I add the Modified By filter, it has to include User as well as Customer, so bookings my team makes count too. Do not use the Customer Booked Appointment trigger for this: HighLevel's help says manually booked appointments will not trigger it.
d. Click + and add Remove from Workflow. Choose Another Workflow and pick my quote drip. Not All Workflows.
e. Click + and add Send SMS with my first booked text. For a day-before reminder, add a Wait action and a second Send SMS.
f. Optional: on the Settings tab, set a Time Window so texts only go out during hours I pick.
g. Save. Before I turn on the Publish toggle, stop and check with me.
If my CRM is something else, don't guess the clicks. Give me the support question below to send them, then help me with their answer.

Step 6. First test with my own phone, before any real customer.
Make a test contact with my own name and cell number. Put it in the quote drip. Wait for the first quote text. Then book an appointment for it the way my team really books (by hand, on the CRM calendar). Check: did the quote texts stop? Did the confirmation come? Then do it once more with my online booking link, if I have one. Then cancel the test appointments and delete the test contact (check with me first).

Step 7. Every week for a month, spot-check.
Pick three customers who booked that week and check they got no quote texts after booking.

The text list (fill it in with me):
---
MY AUTOMATIC TEXTS: one row per text
(no customer names, phone numbers or addresses)

Text name or first few words | Which sequence
Who gets it: _______________
What starts it: _______________
What stops it: _______________
List: INQUIRY / BOOKED / BOTH (= the problem)
---

The inquiry texts (fill in the brackets with me):
---
THE INQUIRY LIST: people who asked, not booked yet
One job: get a time on the calendar.

Text 1 (right after they ask)
"Hi [first name], it's [your name] with [company].
Got your request about [product]. When's a good
time for us to come out and take a look?"

Text 2 (if no answer)
"Hey [first name], [your name] again from
[company]. Want me to hold a time for you this
week for the [product] quote? Mornings or
afternoons?"

Text 3 (last one)
"[first name], I don't want to bug you. If you
still want someone out to look at your [product],
just reply with a day that works."

Add your opt-out line to each one, the way your
lawyer and your texting setup want it.
These stop the moment they book.
---

The booked texts (fill in the brackets with me):
---
THE BOOKED LIST: people who said yes
One job: tell them who's coming, and when.
No selling.

Text 1 (right after it's booked)
"Hi [first name], you're all set. [Rep's first
name] from [company] is coming [day], [date], at
[time] to look at your [product]. If anything
changes, just reply here."

Text 2 (the day before)
"Hi [first name], quick reminder: [rep's first
name] will be there tomorrow at [time]. Reply
here if you need a different time."

Text 3 (on the way, optional)
"[Rep's first name] is on the way and should be
there around [time]."

These start the moment they book.
---

The support question (for any CRM that isn't HighLevel):
---
Hi, I'd like to set up my follow-up texts by stage in [your CRM]:

1. When a new inquiry comes in, they get my quote follow-up texts.
2. When the appointment gets booked, those texts stop right away and my confirmation texts start.

Three questions:
- What has to change in the customer's record for that to happen: the appointment on your calendar, a pipeline stage, a status or a tag?
- Does that fire when my team books the appointment by hand, or only when the customer books online?
- How do I see which automatic sequences one customer is in right now?
---

Watch out for these:
- A rep books by phone and the quote texts keep going. The booking isn't in the CRM, or the switch only listens for online bookings.
- Bookings on a paper calendar, a personal phone or a whiteboard. The record never changes, so nothing switches.
- Two copies of the quote drip, and the switch only stops one.
- A cancelled customer doesn't go back on the inquiry list by themselves. Decide what happens to them.
- A rescheduled appointment can start the booked texts again. Make sure the first booked text reads fine twice.
- Two day-before reminders, because the calendar and the workflow both send one. Keep one.
- Texts that don't go out at all. Ask my CRM's support whether my texting registration (A2P 10DLC) is done.
- Pasting customer details into an AI. Take out names, numbers and addresses first.

When we're done, give me a short recap: my two lists, what stops the inquiry texts, every place we book jobs, and what the first test showed.

Start by asking me a few quick questions about my business, one at a time. Then begin with step 1.
The splitparts 2 to 5

How the pieces connect

  1. 1
    A new inquiryA form, a call or an ad lead lands in your CRM→ a customer record, not booked yet
  2. 2
    The inquiry listAutomatic texts: “When can we come out?”→ a booked appointment, or a no
  3. 3
    The bookingOn your CRM's calendar: the customer online, or your rep on the phone→ the record says booked
  4. 4
    The switchThat update takes them off the inquiry list→ the quote texts stop
  5. 5
    The booked listConfirmations: who's coming, and when→ a customer who knows what happens next

The catch lives between 3 and 4. A booking that happens anywhere but the CRM (a paper calendar, a rep's own phone, a sticky note) never updates the record. Nothing switches, and the drip keeps selling.

If a text could land on both lists, that's the one to fix.
Inquiry listBooked list
Who's on itAsked about a job, not booked yetSaid yes: there's a time on the calendar
The one jobGet a time on the calendarTell them who's coming, and when
Sounds like“When's a good time for us to come out?”“[Rep] is coming Thursday at 4.”
Never saysAnything that assumes they booked“Still thinking?”, “book today”, a special
StartsWhen the inquiry comes inThe moment it's booked
StopsThe moment it's bookedAfter the appointment

Words you'll see

  • CRM: the system that holds your customer list and what happened with each one.
  • Drip: the automatic text sequence every new name gets, a few texts spaced out over days.
  • Stage: where a customer is: new inquiry, booked, sold. Some CRMs call it a pipeline stage or a status.
  • Workflow: HighLevel's word for an automation: something happens, then the CRM does these steps.
  • Trigger: the “something happens” that starts a workflow, like an appointment getting booked.
  • Merge field: a placeholder in a text that fills in each customer's details, like their first name or the appointment time.

The check, step by step (any CRM)

Do this on paper first. It takes about an hour, changes nothing, and it's where you find the catch.

  1. List every automatic text you send

    Every sequence, every reminder, every “just checking in.” In your CRM and in any other tool that texts customers (an online booking tool, a reviews tool, a marketing tool). One row per text: who gets it, what starts it, what stops it.

    The text list
    MY AUTOMATIC TEXTS: one row per text
    (no customer names, phone numbers or addresses)
    
    Text name or first few words | Which sequence
    Who gets it: _______________
    What starts it: _______________
    What stops it: _______________
    List: INQUIRY / BOOKED / BOTH (= the problem)
  2. Put each text on one list: inquiry or booked

    Anything with “quote”, “still thinking”, “book today” or a special goes on the inquiry list. Anything with a time and a rep's name goes on the booked list. A text that could reach both kinds of customer is the problem. Rewrite your lists from these, with your company, products and names in the brackets.

    The inquiry texts
    THE INQUIRY LIST: people who asked, not booked yet
    One job: get a time on the calendar.
    
    Text 1 (right after they ask)
    "Hi [first name], it's [your name] with [company].
    Got your request about [product]. When's a good
    time for us to come out and take a look?"
    
    Text 2 (if no answer)
    "Hey [first name], [your name] again from
    [company]. Want me to hold a time for you this
    week for the [product] quote? Mornings or
    afternoons?"
    
    Text 3 (last one)
    "[first name], I don't want to bug you. If you
    still want someone out to look at your [product],
    just reply with a day that works."
    
    Add your opt-out line to each one, the way your
    lawyer and your texting setup want it.
    These stop the moment they book.
    The booked texts
    THE BOOKED LIST: people who said yes
    One job: tell them who's coming, and when.
    No selling.
    
    Text 1 (right after it's booked)
    "Hi [first name], you're all set. [Rep's first
    name] from [company] is coming [day], [date], at
    [time] to look at your [product]. If anything
    changes, just reply here."
    
    Text 2 (the day before)
    "Hi [first name], quick reminder: [rep's first
    name] will be there tomorrow at [time]. Reply
    here if you need a different time."
    
    Text 3 (on the way, optional)
    "[Rep's first name] is on the way and should be
    there around [time]."
    
    These start the moment they book.
  3. For every inquiry text, find what stops it

    The answer has to be the booking. If the answer is “nothing”, or “when the sequence runs out”, or nobody knows, circle it. That's the text that's going to buzz somebody's couch.

  4. Find every place a job actually gets booked

    The customer on your online booking link. Your rep or the office on the phone. A rep at the kitchen table booking the next visit. You, on your own phone, at a ballgame. Write each one down and next to it: does that booking end up in the CRM, on its calendar or as a stage change? Every “no” is a customer the drip keeps selling to.

  5. Set the one rule, then the switch

    The rule for your team: it isn't booked until it's in the CRM. No paper calendar, no “I'll put it in later.” The switch in your CRM: that booking stops the inquiry texts and starts the booked ones, whether the customer booked online or your rep booked it by hand. The next section has the clicks for HighLevel; on anything else, send your CRM's support the question below.

    The question for your CRM's support
    Hi, I'd like to set up my follow-up texts by stage in [your CRM]:
    
    1. When a new inquiry comes in, they get my quote follow-up texts.
    2. When the appointment gets booked, those texts stop right away and my confirmation texts start.
    
    Three questions:
    - What has to change in the customer's record for that to happen: the appointment on your calendar, a pipeline stage, a status or a tag?
    - Does that fire when my team books the appointment by hand, or only when the customer books online?
    - How do I see which automatic sequences one customer is in right now?

The switch in HighLevel

HighLevel (also called GoHighLevel) runs automatic texts as workflows. You keep your quote drip workflow, and add one new workflow that fires when an appointment is booked: it takes the customer out of the quote drip and sends the booked texts. Every click here is from HighLevel's own help pages, checked 2026-10-18.

  1. Optional: let a reply stop the quote drip

    WhereYour quote drip workflow → Settings tab → Stop on Response

    With it checked, a customer who replies to a text from that workflow is taken out of it, on every channel. Someone who texts back “can you do Friday?” gets your rep, not text number three.

  2. Make the booked workflow

    WhereAutomation → Workflows → + Create Workflow → + Start from Scratch

    Name it something you'll recognize, like “Booked: switch to confirmations.”

  3. Trigger: Appointment Status

    WhereAdd New Trigger → search Appointment Status

    Name the trigger. Under Filter By Appointment Status, pick New (HighLevel: when a new appointment is scheduled), and Confirmed too if your team uses it. Add the In Calendar filter for the calendar your sales appointments go on. If you add the Modified By filter, make sure it includes User (your team) as well as Customer, or the phone bookings slip through again. Leave “Who should be enrolled” on Contact only.

  4. Action: Remove from Workflow, pointed at the quote drip

    WhereClick + → Remove from Workflow → Another Workflow

    Pick your quote drip from the dropdown. If you found two drips in the check, add a second Remove from Workflow for the other one. Don't pick All Workflows: that pulls them out of every workflow they're in, including ones you want them in.

    PermissionsHighLevel's help: a removal can't be undone automatically. To put someone back, you enroll them by hand.
  5. Action: the booked texts

    WhereClick + → Send SMS

    Paste your first booked text and swap the brackets for merge fields (first name, the appointment day and time). For a day-before reminder, add a Wait action and then a second Send SMS. HighLevel's help says you can set several reminders in one workflow with separate waits. If your calendar already sends its own reminder, keep one of the two, not both.

  6. Optional: only text during the hours you pick

    WhereSettings tab → Time Window → turn on Specific Time

    Set a start time, an end time and the days. Texts that land outside it wait for the next window.

  7. Save it, and test before you publish

    Save the workflow. Run the first test below with your own phone before you turn on the Publish toggle for real customers.

What HighLevel does on its own after that

  • Rescheduled: HighLevel's help says a rescheduled appointment counts as new, so the customer goes through the booked workflow from the beginning. That's fine if your first booked text reads well twice (it has the new time in it).
  • Cancelled: the customer comes out of the booked workflow and no more steps run. They don't go back on the inquiry list by themselves. Decide what happens to them.
  • Another way to do the switch: a Goal Event action inside the quote drip, with the goal type Appointment Status, set to end the workflow when it's met. Only one Goal Event fits in a workflow, and it doesn't send the booked texts, so the separate booked workflow above is the simpler one to check.

Example (made up)

Everything here is made up: a fictional window company, one customer, one week. Same customer, before and after the switch.

Made up, just to show where the catch bites: the booking on the whiteboard never touched the record.
WhenBefore: one dripAfter: two lists
Monday, 10:00Asks for a window quote on the websiteSame
Monday, 10:01Quote text 1: “When can we come out?”Same
Tuesday, 2:00Rep calls, books Thursday at 4, writes it on the office whiteboardRep calls, books Thursday at 4 on the CRM calendar
Tuesday, 2:01NothingTaken off the quote drip. Booked text 1: who's coming, and when
Wednesday, 10:00Quote text 2: “Still thinking about new windows? Book today!”Day-before reminder
Thursday, 4:00A customer who wonders if you know they bookedA customer who knows who's at the door
Copy and useparts 6 to 8

First test: run your own phone through it (a few cents of texts)

Before a real customer sees anything, be the customer. This costs only the handful of test texts your CRM charges for.

  1. Make a test contact with your own name and cell number

    Your number, so every test text lands on your phone and nobody else's.

  2. Put it in the quote drip and wait for the first text

    If it never comes, fix that first (see “Texts don't go out at all” below).

  3. Book it the way your team really books

    By hand, on the CRM calendar, like your rep does after a phone call. This is the test that matters, because it's the one the catch breaks.

  4. Check your phone

    Good: the booked text arrives with the right day, time and rep, and no more quote texts come, ever. Give it past the time the next quote text was due. Bad: another quote text shows up. The switch didn't fire: check the trigger (Appointment Status, not Customer Booked Appointment) and which workflow the remove step points at.

  5. Do it again with your online booking link

    If customers can book themselves, test that path too. Same checks.

  6. Clean up

    Cancel the test appointments so they're off your rep's calendar, and remove the test contact.

Want a second pair of eyes on your list before you change anything? Paste your text list from the check into this prompt. Before you paste: take out customers' names, phone numbers and addresses. In Claude you can also choose whether your chats help improve its models: Settings → Privacy → Help Improve our AI models.

PromptThe text list prompt
Below is a list of every automatic text my business sends to customers. For each one I wrote the first few words, who gets it, what starts it and what stops it.

Please:
1. Sort every text into one of two lists. INQUIRY: texts for people who asked but haven't booked, whose job is to get a time on the calendar. BOOKED: texts for people who already booked, whose job is to tell them who's coming and when.
2. Flag every text that could reach someone who already booked but still reads like selling (for example "still thinking", "book today", "special", "quote").
3. For every INQUIRY text, tell me what stops it. If the answer is nothing, or "when the sequence runs out", or it isn't in my list, flag it: that's the one that keeps selling to booked customers.
4. Show it as one small table, then three lines in plain words: which text to fix first and why.

Rules: use only what's in my list. Never guess what my software does or make up a setting. If something's missing, list it under "Questions for me".

My list:
[paste it here: the first few words of each text, not customer names, phone numbers or addresses]

Good: every text on one list, and the ones with no real stop flagged. Bad: it tells you what a setting in your CRM does. It can't see your CRM, so check that with your CRM's support.

What it costs

Checked 2026-10-18 on gohighlevel.com/pricing, HighLevel's help pages and claude.com/pricing. Prices change, so check before you buy.
WhatPlanPrice
The check, the two lists, the testNone$0, plus a few test texts
HighLevelStarter$97 a month, or $970 a year. 14-day free trial; billing starts when it ends unless you cancel
HighLevelUnlimited$297 a month, or $2,970 a year
Texts sent through HighLevelUsage, on top of the planHighLevel's own example: $0.0083 per outgoing text segment on a US number, plus carrier fees. A segment is 160 plain characters, or 70 once there's an emoji
Texting registration (A2P 10DLC) through HighLevelOne time$22.50 for sole proprietor or low-volume standard, $64.00 for high-volume standard
Texting registration, monthlyPer active campaign$1.50 (low-volume mixed), $2.00 (sole proprietor) or $10.00 (standard)
Claude (the prompts)Free$0
Claude, if you want more usePro$20 a month billed monthly, or $17 a month billed yearly ($200 up front)
ChatGPTSee OpenAI's pricing pageNot checked: OpenAI's pricing page didn't load for us on 2026-10-18

Already on another CRM? The split costs nothing extra there either: it's the same texts you already pay for, just going to the right people.

When it breaks

Your rep books by phone and the quote texts keep going
The booking never reached the CRM, or the switch only listens for online bookings. In HighLevel, use the Appointment Status trigger: Customer Booked Appointment ignores manually booked appointments.
Bookings live on a paper calendar, a whiteboard or somebody's phone
Then the record never changes and nothing switches. The rule: it isn't booked until it's in the CRM. Check it in your weekly spot-check.
A booked customer still gets one quote text
There's a second drip the switch doesn't point at. Go back to your text list from the check and add a removal for every inquiry sequence, not just the main one.
A customer gets the booked texts and the quote texts
The remove step points at the wrong workflow. Open it and check the workflow picked under Another Workflow.
A cancelled customer hears nothing
In HighLevel, a cancelled appointment takes them out of the booked workflow, and they don't go back on the inquiry list by themselves. Decide: a rep calls them, or they go back on the inquiry list by hand.
A rescheduled customer gets the first booked text again
HighLevel treats a reschedule as a new appointment and starts the booked workflow over. Write the first booked text so it reads fine twice, with the new time in it.
Someone came off a workflow by mistake
HighLevel doesn't undo a removal on its own. Enroll them again by hand.
Two day-before reminders
Your calendar and your workflow are both sending one. Keep one.
Texts go out at night
In HighLevel, set a Time Window on the workflow's Settings tab (Specific Time, start, end, days).
Texts don't go out at all
Ask your CRM's support whether your business texting registration (A2P 10DLC) is done and approved; HighLevel lists its fees on its A2P fees page (in the sources).
The AI tells you where a setting is in your CRM
It can't see your CRM and may be guessing. Check with your CRM's support or its help pages before you click.
ChatGPT or Claude can't open the guide link
That's fine. Everything it needs is in the walkthrough prompt. Tell it to keep going without the link.

Two lists, one switch

New inquiries hear “When can we come out?” Booked customers hear who's coming, and when. And the booking updates the record, so the robot finally stops selling to people who already said yes.

It's the same CRM-to-calendar wiring we set up on the call floors we build.

Checked on Oct 18, 2026 against

Every claim about a third-party tool in this guide (plans, prices, menu paths, commands, limits) was checked against these official pages on Oct 18, 2026. These screens change often: if something looks different, trust the page over this guide.

Rather skip the setup?

Want help setting this up?

Receipts Group builds these systems. Thirty minutes with Eric tells you which piece is worth building first, or that none of them are. The guides stay free either way.

Keep going

more free guides