Database reactivation: how to segment a dead list without burning it
A GoHighLevel database reactivation campaign lives or dies on segmentation. The five segments that behave differently, the consent check, and how to batch it.
7 min read
Reactivation is the highest-return thing sitting inside a GoHighLevel account, because the contacts are already paid for. The list is there, the acquisition cost was spent years ago, and nobody is using it.
It is also the easiest of the nine components to do badly, and the reason is that the failure mode is not the one people plan for. Everybody prepares for a low reply rate. Almost nobody prepares for spam complaints, a wave of opt-outs, and a sending reputation that takes months to repair on a number the business needs for everything else.
The order that avoids that is segmentation first, copy second. Not the other way round.
The failure mode is not a bad reply rate
A reactivation send that gets a 1% reply rate is a disappointing afternoon. A reactivation send that gets a 1% reply rate and a spike of complaints is a damaged asset.
The number you are risking is not this campaign’s conversion. It is the deliverability of the phone number and the sending domain that your booking confirmations, your reminders and your review requests all run on. Those are the messages that pay the bills every week. Trading them for one blast to a list of strangers is a bad trade, and it is a trade people make without noticing they made it, because nothing on the screen says “you have just taught the carriers to filter you”.
So the first job is not writing a message. The first job is deciding who is genuinely in the list.
Consent comes before the campaign
An old list is not automatically a mailable list. Two separate questions have to come back clean before anything sends.
Do you have a record of how each contact arrived, and did that route involve them agreeing to be contacted. A customer who booked a job and gave you their mobile is in a different position from a scraped enquiry, a purchased list, or a spreadsheet inherited from a previous owner. Where you cannot answer the question for a group of contacts, the answer is that the group does not get messaged.
Then, separately, has anything since revoked it. Opt-outs, complaints, hard bounces and do-not-contact flags all have to be excluded before the segment is built, not filtered out afterwards. If the list came in from another system, the suppression data usually did not travel with it, and rebuilding it is part of the import rather than a later tidy-up. That is one of the reasons the field-mapping order in a CRM migration matters more than the contact count does.
Five segments that behave differently
Treating a database as one list is the mistake underneath all the other mistakes. These five behave nothing like each other, and they need different messages, different offers and, in one case, no message at all.
| Segment | Why it behaves differently | What the message has to do |
|---|---|---|
| Bought once, never again | Warmest group. They know your price, your van and your voice. Nothing has to be sold from scratch | Name what they are due for, not what you offer |
| Quoted, never bought | They saw a number and did not proceed. Something specific stopped them | Give a reason the answer might be different now |
| Enquired, never quoted | Thinnest intent, usually the largest group, and the one that generates complaints | Offer a step smaller than a quote |
| Cancelled or churned | Carries a reason, and the reason is sometimes you | Acknowledge the gap before asking for anything |
| No consent record | Cannot be messaged at all | Nothing. This segment exists to be excluded |
The fifth row is the one that gets deleted from plans, and it is the most important one on the table. Building it as a named segment rather than a mental note is what stops it quietly rejoining the send three months later when somebody rebuilds the smart list from scratch.
Within the warm segments, the natural trigger differs by trade. A cleaning company is reactivating a household that dropped off a recurring schedule, which is a different conversation from a clinic reopening a file, so the cleaning company crate and the chiropractic clinic crate ship the same component with different segment definitions and different reasons to call. Most of the health and wellness aisle runs on a recall interval, which makes the trigger obvious. Most of the trades run on a season.
What it looks like inside the account
The mechanics are unglamorous, which is a good sign.
A smart list or a tag defines the segment. A workflow drips three to five messages across about a week, SMS led with email support, because SMS is what gets read and email is what carries the detail. An if/else condition pulls anybody who replies straight out of the sequence, before the next scheduled message lands on top of a live conversation. A reply hands off to a calendar link and moves the contact into a named pipeline stage, so a reply is a countable thing on a board rather than a notification somebody may or may not have seen.
That last part is the one that decides whether the campaign works. The goal of a reactivation message is not a booking. It is a reply. Once somebody replies, a human or the AI Chatbot qualifies them in two or three exchanges and pushes them to a booking link. A campaign that generates replies into an unowned inbox has generated nothing.
In a stocked crate this is component eight, and it fires on a six month inactivity trigger with an AI calling campaign behind it rather than text alone, which is worth knowing before you build the text-only version by hand. The database reactivation service exists for lists that need cleaning and segmenting before any of that is safe to run.
Send in batches, always
Never send to the whole list on one afternoon, for two unrelated reasons.
The first is operational. If a segment of 4,000 contacts replies at 3%, that is 120 conversations arriving at once, and a business that can handle 120 conversations at once would not have a dead list. Batching to a few hundred a day keeps the reply volume inside what the person answering can actually work, and a reply answered in four hours converts far better than the same reply answered on Thursday.
The second is technical. A number that has been sending fifty messages a day for a year and suddenly sends four thousand looks exactly like a number that has been compromised. Ramp the volume. Watch the opt-out rate on the first batch before you release the second. If the first batch produces an opt-out rate that makes you uncomfortable, the problem is the segment or the message, and you have found it at 400 contacts instead of 4,000.
The offer has to be true
A message that says “just checking in” gets nothing back, because it is not about anything. The reason for the message has to be real, and the reader has to be able to tell.
Real reasons: a service they are genuinely due, a season that genuinely changed, capacity you genuinely have this month, a price that genuinely moved, a problem you genuinely fixed since they left. Invented reasons read as invented, and a customer who worked out you sent a fake deadline does not come back later.
The four numbers to watch
- Reply rate. Replies divided by contacts messaged, per segment, never blended across the list.
- Booking rate from replies. How many replies became appointments, which is a measure of your response speed more than your copy.
- Show rate. Reactivated bookings no-show more than fresh ones, so this number needs the reminder ladder behind it, and the same recovery sequence in the hour after a miss.
- Revenue per send. The only one that tells you whether to run it again.
Track them per segment. A blended average across five segments that behave differently is a number that cannot be acted on.
The next decision
Before you write a single message, build the exclusion list. Opt-outs, complaints, bounces, and every contact whose arrival you cannot account for. Whatever is left is your database, and it is almost always smaller and better than the count in the dashboard.
Then pick one segment, the warmest one, and run 300 contacts. Every crate across the catalog ships this component already segmented for its trade, and the services counter covers the version where the list needs cleaning first.