
GoHighLevel Database Reactivation Campaign Guide (2026)
GoHighLevel Database Reactivation Campaign Guide (2026)
By Dr Priya Jaganathan, GoHighLevel Certified Admin · HL Growth Partner, Australia · Updated 20 August 2026 · 8 min read
A GoHighLevel database reactivation campaign is a short, deliberately unglamorous sequence of SMS and email sent to people already sitting in a CRM who stopped responding — old enquiries, expired quotes, lapsed clients — with the single aim of restarting a conversation and getting a booking on the calendar. It is not a newsletter, it is not a promotion, and it is not a broadcast. It is a workflow with a goal event, and the goal is a reply.
Realistic numbers first, because this is where most agencies oversell. On a properly cleaned Australian list, expect a reply rate of 3% to 8% of contacts actually messaged and a booked-appointment rate of roughly 1% to 3%. Anything higher means a very warm list or a very good offer. Direct media cost is small — a few hundred US dollars on a 5,000-contact list, since GoHighLevel bills SMS and email usage in USD on top of your subscription — and the real cost is the human hours spent answering replies. Here is how I build these for Australian clients, starting with the consent question that decides whether you should run one at all.
Who is actually in your “dead” list
The biggest determinant of results is not the copy. It is who you exclude. Most sub-accounts I inherit hold 5,000–40,000 contacts, and perhaps a third are legitimately reactivatable.
Build the segment before you build the workflow
Work from a saved Smart List, not a CSV export — my walkthrough on building GoHighLevel Smart Lists and segments covers the operators. The base filter I use: created more than 90 days ago, no inbound message in 60 days, no appointment in 90 days, and a mobile number in E.164 format (+61...). Australian mobiles stored as 04XX XXX XXX fail silently, so normalise them first.
Exclusions that are not optional
- Unsubscribed and DND. Anyone with DND on any channel or an email unsubscribe. GoHighLevel usually respects DND at send time, but relying on that is how people discover a branch that bypassed it.
- Current customers. Anyone with an open Opportunity, an upcoming appointment or an active membership. Nothing damages a client relationship faster than a “we haven’t heard from you in a while” text landing on someone who paid an invoice yesterday.
- Staff, suppliers and test records, filtered by the client’s own domain and tags like test or internal.
- Known bad data — hard-bounced emails, landlines in the mobile field, contacts with no name.
Tag the survivors with something explicit like dbr-2026-08-batch1. Use a tag rather than a custom field here — tags are what workflow triggers and Smart Lists filter on cleanly, and they are far easier to remove in bulk when the campaign ends.
The consent question under the Spam Act 2003
This separates a legitimate HighLevel database reactivation from something that earns your client an ACMA infringement notice. The Spam Act 2003 requires three things of every commercial electronic message sent to an Australian address: consent, accurate sender identification and a working unsubscribe facility.
Express versus inferred consent
Express consent is where the person filled in a form, ticked a box, or told you by phone or in person that they wanted to hear from you. Inferred consent is narrower than most marketers assume: the ACMA’s position is that you can infer consent where someone knowingly gave you their address and there is a provable, ongoing relationship, and the marketing is directly related to that relationship. Their worked example is a bank telling a savings customer about a different savings product — but not selling them insurance. Read the current guidance at the ACMA’s avoid sending spam page before you commit to a send.
In practice, an old enquiry who submitted a form asking for a quote on the same service you are now messaging about is defensible. A list scraped from a directory is not. Neither is “we bought this list” — the ACMA is explicit that you remain responsible for proving consent for every address you use, regardless of who supplied it. If the client cannot tell you where a contact came from, exclude it.
What to put in the messages
Every SMS needs the business name and an opt-out that costs the recipient nothing — Reply STOP is the standard. That rules out an alphanumeric sender ID, because those generally cannot receive replies, which breaks the unsubscribe requirement and the point of the campaign. Send from a proper mobile or local number. Requests must be honoured within five working days, though GoHighLevel processes STOP instantly. Registration for US or Canadian numbers on the same sub-account is covered in my GoHighLevel SMS and A2P compliance guide for Australia.
Building the GoHighLevel database reactivation campaign as a Workflow
Build this as one Workflow, not five. A single workflow with proper goal events is far easier to debug than a chain of campaigns.
Trigger
Use Contact Tag — tag added — dbr-2026-08-batch1, with re-entry off, then bulk-apply the tag to your Smart List in controlled batches. I never run a 5,000-contact list in one hit. Send 300–500 on day one, watch reply volume and opt-out rate, then release the rest over a week. That protects sender reputation and stops a two-person team drowning in replies on a Tuesday morning.
Wait steps and send windows
Every Wait step needs a window: weekdays only, 9:00am to 6:00pm. A reactivation SMS at 7:40pm reads as spam even when it is perfectly legal. Set the window to the contact’s timezone if the client operates across states, otherwise a Perth contact gets a 6:00am message. The mechanics are covered in the GoHighLevel Wait steps and Goal events setup guide, and HighLevel’s own reference for the Goal Event workflow action is worth reading first.
Goal event and branches
Add one Goal Event set to Customer Replied, placed so it captures a reply at any point. The goal branch should remove the campaign tag, add dbr-replied, create an Opportunity, assign the conversation to a user and stop the sequence. The most common failure I see in audits is a goal event that fires but never terminates the sequence, so the contact who replied “yes please call me” still gets message four. Put an explicit Remove from Workflow action at the end of the goal branch.
Use If/Else for channel logic rather than sending both channels to everyone: no valid mobile branches to email-only; a previously bounced email branches to SMS-only.
The message sequence
Short, plain, from a person. No emojis, no “HUGE NEWS”. Message one exists to get a reply, not to sell.
Day 0 — SMS
Hi {{contact.first_name}}, it’s Sarah from Northside Dental. You enquired with us a while back about a check-up and clean and we never got you booked in. Are you still after one? Reply STOP to opt out.
Day 2 — Email
Subject: Your enquiry from last year. Three short paragraphs, no header image. Reference when they enquired, state what has changed (new hours, shorter wait times, a fixed price), and end with a question rather than a button. Plain-text-styled email from a warmed, authenticated domain lands far better here than a designed template.
Day 5 — SMS with the offer
Hi {{contact.first_name}}, Sarah again. We’ve held three check-up spots this week at $149 including X-rays for past enquiries. Want me to put your name on one? Northside Dental. Reply STOP to opt out.
Day 9 — SMS, the close-the-loop message
Hi {{contact.first_name}}, last one from me — should I close off your file or would you like me to hold a spot? Either answer is fine. Sarah, Northside Dental. Reply STOP to opt out.
That final message consistently outperforms everything before it. Permission to say no produces more yeses than another discount.
| Day | Channel | Message purpose | Typical reply rate |
|---|---|---|---|
| 0 | SMS | Re-introduce, ask a single yes/no question | 2.0–3.5% |
| 2 | Context and credibility, no hard offer | 0.3–0.8% | |
| 5 | SMS | Specific, scarce, time-bound offer | 1.0–2.0% |
| 7 | Social proof, one case example | 0.2–0.5% | |
| 9 | SMS | Close the loop — permission to decline | 1.5–2.5% |
Routing the replies
Replies are the campaign. If nobody answers within about ten minutes, your booked rate halves.
Conversation AI or a human
I use Conversation AI for after-hours coverage and simple qualification — confirming the service wanted, offering two time slots, handling “how much is it”. In business hours, positive replies go to a human. The pattern that works is AI first, then handoff the moment the contact says something the bot has not been briefed on. Set it to stop on any complaint, price negotiation, or clinical or legal wording. Configuration is covered in the GoHighLevel Conversation AI guide.
Booking and Opportunities
Every positive reply should create an Opportunity in a dedicated pipeline, not the client’s main sales pipeline, which it would distort. Stages I use: Replied → Qualified → Booked → Attended → Won → Lost, with the source set to Database Reactivation so the client sees exactly what the campaign produced — see setting up GoHighLevel pipelines and Opportunities. Send the booking link only after intent is confirmed; a calendar URL in message one measurably lowers reply rates.
Measuring it — a worked example on 5,000 contacts
Take a 5,000-contact database. After excluding DND, unsubscribes, current customers and bad numbers you are typically left with around 3,200 emailable addresses and 2,600 messageable mobiles. That reduction is normal.
At the time of writing, GoHighLevel bills messaging in USD as a pass-through on top of your plan. US SMS sits under a cent per segment plus carrier fees, but Australian mobile termination costs materially more — budget roughly USD $0.05–$0.09 per segment for +61 sends, and check your own sub-account’s rate card before quoting, because these move. Email is cheap, around USD $0.70–$1.40 per thousand. Three SMS touches across 2,600 contacts is about 7,800 segments, so call it USD $400–$700 plus under USD $30 of email. Keep messages under 160 characters to avoid paying for two segments.
At a 5% reply rate you get about 130 replies. Perhaps 60% are genuinely interested rather than opt-outs, and a competent inbox converts around half of those — roughly 40 appointments, or 1.5% of contacts messaged. That is USD $10–$18 of media per booked appointment. The honest number includes labour: 15–20 hours of inbox handling at AUD $60–$90 an hour puts the true cost closer to AUD $35–$55 per booking. Track four metrics only — delivery rate, reply rate, booked rate and cost per booked appointment — then add show-up rate. If delivery drops below about 95%, check number formatting and carrier filtering rather than blaming the copy.
Running it as a paid offer
Reactivation is the easiest first engagement to sell to an Australian SME: the asset already exists and the risk is legible. A flat build fee of AUD $2,000–$4,500 covers the audit, cleaning, compliance review, workflow build and a fortnight of monitoring. A performance rate of AUD $100–$250 per attended appointment suits high transaction values, provided you define “attended” in writing. A hybrid of the two is what I use most often.
Two conditions go in every agreement: the client answers replies within their stated business hours, and the client warrants that the contacts were collected with consent. Without the first you have no campaign. Without the second you have their compliance risk sitting on your account.
Common mistakes to avoid
- Sending the whole list in one batch, then having nobody rostered to answer 200 replies within the hour.
- Using an alphanumeric sender ID, which cannot receive replies and therefore cannot support a compliant SMS unsubscribe.
- Leaving the goal event without a Remove from Workflow action, so people who already booked keep getting follow-ups.
- Storing mobiles as 04XX rather than +614XX — sends fail silently and it looks like a copy problem.
- Messaging a purchased or scraped list assuming inferred consent covers it. It does not, and the burden of proof is yours.
- Writing message one as an offer instead of a question, which reliably halves replies.
If you want a database reactivation campaign built, tested and running in your GoHighLevel account, book a strategy call with the HL Growth Partner team.
Frequently asked questions
How long does a GoHighLevel database reactivation campaign take to build?
One to two working days for the build itself — segmentation, data cleaning, workflow, copy and a dedicated pipeline. Consent review and number normalisation usually take longer than the automation, particularly on databases migrated between CRMs.
How old can a contact be before it is not worth messaging?
I message enquiries up to about 24 months old and see usable reply rates to around 18 months. Beyond two years, mobile number decay and the consent argument both weaken, so I restrict older records to email only.
Will this damage the client’s sender reputation or get their number blocked?
Not if you batch it and watch the STOP rate. Anything above roughly 3% per batch means the list or the message is wrong, and you should pause rather than push the remaining batches.
Should I offer a discount in the first message?
No. Message one should ask a single question. Introduce a specific, time-bound offer at the second SMS touch, once you know the number is live and the person is at least reading.
Can I use trigger links to track who is engaging without replying?
Yes. A contact who clicks but never replies is a warm lead for a phone call. Trigger links record engagement as a tag, giving your sales team a second list to work.
