Case Acceptance Lab

Every message in the layer, before you buy

This is the actual copy that ships, verbatim, with the trigger and timing on each one. Nothing paraphrased and nothing held back. If you read this page and decide to write your own instead, that's a fair outcome.

Internal coordinator messages aren't here because they're staff-facing, not patient-facing. What's on this page is finished and is what you get today.


Voice rules for every message in this snapshot:

Merge fields used in these messages: {{contact.first_name}}, {{custom_values.practice_name}}, {{custom_values.practice_phone}}, {{custom_values.doctor_last_name}}, {{custom_values.tc_name}}, {{custom_values.booking_link}}, {{custom_values.review_link}}, {{custom_values.financing_link}}, {{custom_values.financing_partner}}, {{custom_values.benefits_deadline_date}}

Also shipped as fields, used by workflow logic rather than inside message text: {{custom_values.tc_email}}, {{custom_values.consult_address}}, {{custom_values.deposit_amount}}, and the contact date/number fields benefits_reset_date, treatment_plan_value, treatment_plan_date. One field on the list isn't a custom value at all: {{appointment.start_time}} is GoHighLevel's own native appointment field, filled from the booking itself rather than something you set, and it carries the times in the pre-consult stack so they stay right through a reschedule. No procedure-name or diagnosis field ships, deliberately.

Why the split matters on install: leave one of the first group blank and a patient sees a hole in a message. Leave one of the second blank and the automation misroutes — the task goes nowhere, or the deposit ask has no number in it.


High-Ticket Consult Intake

Trigger: opportunity created in "Consult Requested" (a new high-ticket consult inquiry - form fill, call-in, or manual add). Exit: appointment booked (moves to "Consult Booked", where WF2 picks up).

T+2 min - SMS

Hi {{contact.first_name}}, it's {{custom_values.tc_name}} at {{custom_values.practice_name}}. Got your request to come see Dr. {{custom_values.doctor_last_name}}. Want to grab a time now? {{custom_values.booking_link}}

T+2 min - internal task to TC

New high-ticket consult request. Call while they're still warm - the ones you reach by phone in the first ten minutes book at a completely different rate than the ones you text.

T+1 hour, if no booking - SMS

{{contact.first_name}}, easiest way to lock this in is to pick a time here: {{custom_values.booking_link}}. Or reply with a day that works and I'll sort it out.

Next day, if no booking - SMS

{{contact.first_name}}, still happy to get you in with Dr. {{custom_values.doctor_last_name}}. Are mornings or afternoons easier for you?

Day 3, if no booking - Email

Subject: Getting you in to see Dr. {{custom_values.doctor_last_name}}

{{contact.first_name}},

You got in touch about coming in, and I don't want it slipping through the cracks on my end.

The consult is where you find out what's actually involved and what it costs - no guessing and no commitment. It runs about an hour, and you leave knowing exactly where you stand.

Pick whatever time works and we'll take it from there: {{custom_values.booking_link}}

If now isn't the right moment, tell me and I'll check back when it is instead of filling up your phone.

{{custom_values.tc_name}} {{custom_values.practice_name}} {{custom_values.practice_phone}}

Day 6, if no booking - SMS

{{contact.first_name}}, last note from me for now. Whenever you're ready to come in, we're here: {{custom_values.practice_phone}}. No pressure either way.


Pre-Consult Show-Rate Stack

Trigger: appointment booked, calendar in group "High-Ticket Consults" (moves to "Consult Booked"). Exit: appointment status = Showed. A no-show hands off to WF3. Uses GHL's native {{appointment.start_time}} so the time is always current if the patient reschedules.

On booking - SMS

{{contact.first_name}}, you're set with Dr. {{custom_values.doctor_last_name}} on {{appointment.start_time}}. Give yourself the full hour - this is the one where all your questions get answered. Need to move it? Just reply.

On booking - Email

Subject: You're booked - here's what to expect

{{contact.first_name}},

You're on Dr. {{custom_values.doctor_last_name}}'s schedule for {{appointment.start_time}}. Here's what the hour looks like so nothing catches you off guard.

Dr. {{custom_values.doctor_last_name}} walks you through what's involved, how long it takes, and what it costs. You leave with the real plan and the real number, not a ballpark. There's nothing to prepare, and nothing you're committing to by coming in.

If you have dental insurance, bring the card and we'll check what it covers while you're here.

We're at {{custom_values.consult_address}}. If anything changes, reply here or call {{custom_values.practice_phone}}.

{{custom_values.tc_name}} {{custom_values.practice_name}}

Day before - SMS

{{contact.first_name}}, looking forward to seeing you tomorrow at {{appointment.start_time}} for your consult with Dr. {{custom_values.doctor_last_name}}. Still good on your end?

3 hours before - SMS

{{contact.first_name}}, today's the day - {{appointment.start_time}} with Dr. {{custom_values.doctor_last_name}}. We're at {{custom_values.consult_address}}. Text me here if traffic gets in the way.

2 hours before - SMS

See you at {{appointment.start_time}}, {{contact.first_name}}. Bring your questions - that's what the hour is for. {{custom_values.consult_address}}


Consult No-Show Recovery

Trigger: appointment status = No Show, calendar in group "High-Ticket Consults".

T+15 min - SMS

Hi {{contact.first_name}}, it's {{custom_values.tc_name}} at {{custom_values.practice_name}}. We had you down for today and I want to make sure everything's okay. Want me to find you another time?

T+15 min - internal task to TC

No-show on a high-ticket consult. Call within the hour - these convert on the phone, not by text.

T+3 hours, if no reply - SMS

{{contact.first_name}}, no problem if today got away from you. Dr. {{custom_values.doctor_last_name}} held the full hour, so I'd rather rebook you than let it drop. Two options: {{custom_values.booking_link}}

Next day 10am, if no reply - Email

Subject: Still worth your hour?

{{contact.first_name}},

You booked a consult with us and didn't make it, which usually means one of three things: the day fell apart, the timing isn't right, or you've started second-guessing whether it's worth doing at all.

If it's the first, here's the link: {{custom_values.booking_link}}

If it's the second, tell me roughly when and I'll reach back out then instead of pestering you.

If it's the third - that's the most common one, and it's fair. A consult is the only way to find out what the actual plan and the actual number are. You are not committing to anything by sitting in the chair for an hour.

{{custom_values.tc_name}} {{custom_values.practice_name}} {{custom_values.practice_phone}}

Day 4, if no reply - SMS

{{contact.first_name}}, last one from me. If you ever want to pick this back up, we're here: {{custom_values.practice_phone}}. No pressure either way.

Branch: second no-show on the same contact

Tag: repeat-no-show. Route to the deposit-hold rebooking sequence instead of the standard one.

Deposit-hold SMS

{{contact.first_name}}, happy to get you back on Dr. {{custom_values.doctor_last_name}}'s schedule. Because this would be the third hour we've held, we take a $50 hold that comes straight off your treatment. Sound fair? {{custom_values.booking_link}}


Treatment Presented, Not Accepted (objection-branched)

Trigger: opportunity moves to "Treatment Presented" and sits 48 hours without moving to "Case Accepted".

T+48h - SMS asking the real question

{{contact.first_name}}, {{custom_values.tc_name}} here. Be straight with me - is it the cost, the timing, or do you want a second opinion first? Whichever it is, I can help.

Reply routing: cost / money / afford → COST branch. time / busy / later / next year → TIMING branch. think / opinion / spouse / husband / wife → CONSIDERING branch.

COST branch

SMS

Totally fair. Most people don't pay for this out of pocket in one go. {{custom_values.financing_partner}} runs a soft credit check that doesn't affect your score, and it takes about two minutes: {{custom_values.financing_link}}

Day 3 - Email

Subject: What it actually costs per month

{{contact.first_name}},

The number Dr. {{custom_values.doctor_last_name}} quoted is the whole thing. Almost nobody writes that check.

Broken into monthly payments through {{custom_values.financing_partner}}, most patients land somewhere between a car payment and a phone bill, depending on the term they pick. Checking what you'd qualify for takes two minutes and doesn't touch your credit score: {{custom_values.financing_link}}

If you'd rather I just tell you the monthly range before you apply, reply here and I'll work it out for your specific plan.

{{custom_values.tc_name}}

TIMING branch

SMS

Got it. Two things worth knowing: the quote holds for 90 days, and if you have dental insurance those benefits reset {{custom_values.benefits_deadline_date}}. Want me to check in closer to then?

Day 30 - SMS

{{contact.first_name}}, checking in like I said I would. Is now a better time to get this scheduled?

CONSIDERING branch

SMS

Smart. Anything I can send that helps the conversation - photos, the written plan, what other patients asked?

Day 2 - Email

Subject: The three questions people ask before they say yes

{{contact.first_name}},

Whoever you're talking this over with is going to ask you three things. Here are the answers so you're not stuck.

How long does it take? Dr. {{custom_values.doctor_last_name}} laid out the timeline in your plan - if you want it in writing, reply and I'll send it.

What happens if I do nothing? Usually the honest answer is: it gets more expensive. Bone doesn't come back, and the fix for a bigger problem costs more than the fix for this one.

Is this the right price? Get a second opinion if you want one. Ask them to quote the same materials and the same number of visits, or you're comparing two different things.

{{custom_values.tc_name}}

No-reply fallback (all branches)

Day 7 - SMS

{{contact.first_name}}, I'll stop texting. Your plan stays on file and the quote holds through {{custom_values.benefits_deadline_date}}. Call anytime: {{custom_values.practice_phone}}


Financing Follow-Up

Trigger: tag "financing-sent", no approval recorded.

T+24h - SMS

{{contact.first_name}}, did the {{custom_values.financing_partner}} application go through okay? If it hung up on you anywhere, tell me where and I'll sort it: {{custom_values.financing_link}}

T+72h - SMS

Still open on my end. If you'd rather do it over the phone with me, call {{custom_values.practice_phone}} and it takes about five minutes.

On approval - SMS

Approved. Let's get you on the schedule while the approval is good - most of them expire in 30 days: {{custom_values.booking_link}}

On denial - SMS

{{custom_values.financing_partner}} didn't come back with a yes, which happens and doesn't mean you're out of options. We have two other lenders and we can also phase the treatment so you're paying for it in stages. Worth a five-minute call: {{custom_values.practice_phone}}


Unscheduled Treatment Reactivation

Trigger: contact tagged "unscheduled-treatment", last visit over 90 days ago. Long cycle, re-touch quarterly.

Touch 1 - Email

Subject: The work Dr. {{custom_values.doctor_last_name}} found last time

{{contact.first_name}},

When you were last in, Dr. {{custom_values.doctor_last_name}} flagged treatment that never got scheduled. That's normal - life happens and nothing hurt, so it waited.

Two reasons to look at it now: dental problems don't hold still, and if you have insurance you're leaving money on the table every year you don't use it.

If you want, I'll pull your chart and tell you exactly what's outstanding and what it would cost today. Reply "chart" and I'll do that this week.

{{custom_values.tc_name}} {{custom_values.practice_name}}

Touch 2, day 5 - SMS

{{contact.first_name}}, did you want me to pull up what's outstanding on your chart? Takes me a minute and there's no cost to look.

Touch 3, day 21 - SMS

No rush on this. If it's easier just to come in and have Dr. {{custom_values.doctor_last_name}} take another look, that's a short visit: {{custom_values.booking_link}}

Quarterly re-touch - SMS

Hi {{contact.first_name}}, quarterly check-in from {{custom_values.practice_name}}. Still have treatment on file that hasn't been scheduled. Want to knock it out this quarter?


Hygiene Recall & Overdue Patient Reactivation

The routine side, kept deliberately separate from the high-ticket track so the two never share a cadence or a tone - softer, lower-key, never a sales push. NO CLINICAL DETAIL: this workflow names only the routine visit itself (cleaning, checkup), never a condition, and every "something's actually wrong" moment is pushed to a phone call rather than described by text.

Recall path

Trigger: contact tagged "hygiene-recall". Exit: appointment booked.

Recall due - SMS

Hi {{contact.first_name}}, it's {{custom_values.tc_name}} at {{custom_values.practice_name}}. You're about due for your next cleaning and checkup. Want me to find you a time? {{custom_values.booking_link}}

Day 5, if no booking - SMS

{{contact.first_name}}, easy to get your cleaning on the calendar whenever works - here's the link: {{custom_values.booking_link}}. Mornings tend to go first.

Day 14, if no booking - Email

Subject: Time for your next visit

{{contact.first_name}},

You're due for your cleaning and checkup with us. Nothing's wrong - this is just the routine six-month visit that keeps small things from becoming big ones.

If something's actually bothering you, don't text me about it - give us a call at {{custom_values.practice_phone}} so we can get you seen properly.

Otherwise, grab whatever time works: {{custom_values.booking_link}}

{{custom_values.tc_name}} {{custom_values.practice_name}}

Overdue path

Trigger: contact tagged "overdue-patient" (well past due, e.g. 12+ months since last visit). Long cycle, quarterly re-touch, automatic stop after four cycles. Exit: appointment booked.

Touch 1 - SMS

Hi {{contact.first_name}}, {{custom_values.tc_name}} at {{custom_values.practice_name}}. It's been a while since we've seen you - no lecture, just want to get you back in for a cleaning when you're ready: {{custom_values.booking_link}}

Touch 2, day 7 - Email

Subject: Been a while

{{contact.first_name}},

It's been long enough that you're overdue for a visit, and I'd rather reach out than let it keep sliding.

Coming back is simpler than you'd think - a cleaning and a look from Dr. {{custom_values.doctor_last_name}}, and you're current again. If it's been long enough that you're not sure what you need, that's exactly what the visit is for.

Anything actually bothering you, call us at {{custom_values.practice_phone}} rather than texting, and we'll get you in sooner.

Book whenever suits you: {{custom_values.booking_link}}

{{custom_values.tc_name}} {{custom_values.practice_name}}

Touch 3, day 30 - SMS

{{contact.first_name}}, still easy to pick this back up whenever you're ready: {{custom_values.booking_link}}. No pressure either way.

Quarterly re-touch - SMS

Hi {{contact.first_name}}, quarterly check-in from {{custom_values.practice_name}}. Still happy to get you back in for a cleaning whenever the time's right: {{custom_values.booking_link}}


Insurance Benefits Expiring (three paths, six touches)

Trigger: two ways in - the contact's "Benefits Reset Date" field changes, or the contact is tagged "benefits-reset-unknown".

Every touch is scheduled off the contact's reset date, not a fixed calendar date. Between touches the workflow holds all outbound until the next scheduled send. The calendar dates shown below assume a January 1 reset.

Suppressed: contacts tagged benefits-maxed-out get a single check-in text with no deadline pressure, not the full sequence.

Exit: appointment booked.

PATH A - reset date known, resets in January

90 days before reset - Email

Subject: You've got dental benefits that expire December 31

{{contact.first_name}},

Quick heads up. Your dental plan resets January 1, and whatever you haven't used by then is gone. It doesn't roll over.

If you have treatment on file that hasn't been done, this is the cheapest it will be. The same work in January costs you the full amount out of pocket.

Our December fills up every year, so the useful move is getting on the schedule now even if the appointment itself is weeks out: {{custom_values.booking_link}}

Want me to check how much you have left? Reply "check" and I'll look it up.

{{custom_values.tc_name}}

60 days before reset - SMS

{{contact.first_name}}, two months until your dental benefits reset. Want me to check what's left on your plan?

30 days before reset - SMS

{{contact.first_name}}, December is when our schedule goes. If you're using your benefits before they expire, now's the time: {{custom_values.booking_link}}

21 days before reset - Email

Subject: Three weeks left

{{contact.first_name}},

Three weeks until your benefits reset. After that it's a fresh year and a fresh deductible.

If you've been waiting on treatment, we have a few spots left before we close for the holidays: {{custom_values.booking_link}}

If you've got an FSA, that money may also expire - worth checking with your employer, since some plans allow a grace period or a small carryover.

{{custom_values.tc_name}}

16 days before reset - SMS

Last call - benefits reset Jan 1 and we have a few spots left before the holidays: {{custom_values.practice_phone}}

8 days after reset - Email

Subject: Fresh benefits, and the cheapest month to start

{{contact.first_name}},

Your benefits just reset, which makes January the best month of the year to start treatment you've been putting off - you have the full annual amount ahead of you instead of scraps.

It's also our quietest month, so you can actually get the appointment time you want: {{custom_values.booking_link}}

{{custom_values.tc_name}}

PATH B - reset date known, does not reset in January

90 days before reset - Email

Subject: Your dental benefits don't reset in January

{{contact.first_name}},

Quick heads up. Your dental plan resets {{contact.benefits_reset_date}} - not January 1, like most people assume - and whatever you haven't used by then is gone. It doesn't roll over.

If you have treatment on file that hasn't been done, this is the cheapest it will be. The same work after your plan resets costs you the full amount out of pocket.

The last few weeks before a plan resets are always the busiest, so the useful move is getting on the schedule now even if the appointment itself is weeks out: {{custom_values.booking_link}}

Want me to check how much you have left? Reply "check" and I'll look it up.

{{custom_values.tc_name}}

60 days before reset - SMS

{{contact.first_name}}, two months until your dental benefits reset. Want me to check what's left on your plan?

30 days before reset - SMS

{{contact.first_name}}, one month until your benefits reset. If you're using them before they expire, now's the time: {{custom_values.booking_link}}

14 days before reset - Email

Subject: Two weeks left

{{contact.first_name}},

Two weeks until your benefits reset. After that it's a fresh year and a fresh deductible.

If you've been waiting on treatment, we have a few spots left before your plan resets: {{custom_values.booking_link}}

If you've got an FSA, that money may also expire - worth checking with your employer, since some plans allow a grace period or a small carryover.

{{custom_values.tc_name}}

5 days before reset - SMS

Last call - benefits reset {{contact.benefits_reset_date}} and we have a few spots left: {{custom_values.practice_phone}}

8 days after reset - Email

Subject: Fresh benefits, and the cheapest time to start

{{contact.first_name}},

Your benefits just reset, which makes right now the best time to start treatment you've been putting off - you have the full annual amount ahead of you instead of scraps.

It's also the cheapest time to begin: starting early in your benefit year means you can spread treatment across the months while your coverage is full, instead of racing the next reset: {{custom_values.booking_link}}

{{custom_values.tc_name}}

PATH C - reset date unknown (two touches, no deadline claimed)

Touch 1 - SMS

Hi {{contact.first_name}}, {{custom_values.tc_name}} at {{custom_values.practice_name}}. Most dental plans reset at the start of January and unused benefits don't roll over, but some employer plans reset on a different date. Want us to check yours?

Touch 2, day 10 - Email

Subject: Worth two minutes to find out

{{contact.first_name}},

Most dental plans reset at the start of January and anything unused disappears. Some employer plans reset on a different date entirely - the policy anniversary, or the company's fiscal year.

We don't have your reset date on file, so I don't want to tell you a deadline that isn't yours. If you send over your plan details, or just reply with your insurance carrier, we'll find out and let you know what you have left and when it goes.

{{custom_values.tc_name}} {{custom_values.practice_name}}

SUPPRESSED - benefits already maxed out

SMS

Hi {{contact.first_name}}, you've used your dental benefits for this plan year, so there's nothing expiring on you. When your plan resets we'll have the full amount to work with - want me to pencil something in for then? {{custom_values.booking_link}}

Post-Treatment: Review, Referral, Next Phase

Day 2 - SMS

{{contact.first_name}}, checking in after your visit. If anything doesn't feel right, call us rather than texting - {{custom_values.practice_phone}}. Someone's there all day.

Day 7 - SMS

Glad that went smoothly. If you've got 30 seconds, a review genuinely helps us: {{custom_values.review_link}}

Day 14, if more treatment on file - SMS

{{contact.first_name}}, now that phase one's behind you, want to get the next part on the calendar? Easier to keep the momentum: {{custom_values.booking_link}}

Day 30 - Email

Subject: One favor

{{contact.first_name}},

Hope you're happy with how everything turned out.

Most of our patients come from other patients. If someone in your life has been putting off the same thing you just did, send them our way - I'll take good care of them.

{{custom_values.tc_name}} {{custom_values.practice_name}}


Get the layer — $197Back to what's in it