GoHighLevel Re Engage Leads: How It Works
What actually counts as a dormant lead
A lead who filled out a form last week and hasn't answered yet isn't dormant. One who's opened nothing and clicked nothing for a couple of months is a different problem, and that's what a GoHighLevel re engage leads workflow is built to fix.
Mailchimp's guidance on re-engaging inactive subscribers puts the realistic ceiling at about 10 percent of an inactive list for a well-built campaign. That sounds modest until you count how many contacts never got a second message at all.
Smart Lists draw the line between quiet-for-now and actually dormant. They're dynamic: contacts move in and out on their own as activity changes, instead of sitting on a static export someone has to refresh.
HighLevel's own documentation on Smart Lists shows how specific that filtering gets. It combines conditions like "Opened an email in the last 30 days" with "Has an open invoice" using AND logic between filters. Build a dormant segment the same way.
Stack a tag for active status on top of a last-activity window that's come up empty, and the segment is done.
Get that segment wrong and nothing downstream matters. A workflow built to re-engage leads is only as good as the list feeding it.
Building the GoHighLevel re engage leads workflow
The Contact Tag trigger is the simplest entry point. It fires whenever a tag is added to or removed from a contact. Workflows fire after the tag update is actually applied, so nothing retroactive gets swept in once the automation goes live.
Add a tag through a Smart List action, and that tag becomes the workflow's starting gun.
Email Events triggers handle the other half: deciding when someone has already come back and should leave the sequence. The trigger can fire on clicked, opened, bounced, unsubscribed, or marked as spam.
Wire an exit condition to the first two, and a response mid-sequence pulls the contact straight out. Nothing damages a list faster than emailing someone who already replied.
Timing between touches is where sequences usually fall apart. The Wait step controls that, and it runs on more than a flat delay.
| Wait type | What it does | Where it fits a re-engagement sequence |
|---|---|---|
| Fixed duration | Holds the contact for a set number of hours or days before the next step runs | Spaces out each touch, for example three days between the first and second message |
| Contact reply | Pauses until the contact responds by SMS or email, with an optional timeout | Stops the sequence the moment someone answers, with a fallback if they never do |
| Contact action | Pauses until an email is opened, a link is clicked, or another engagement event fires | Counts a click as re-engagement even without a reply |
| Specific date | Pauses until an exact calendar date, hardcoded or pulled from a contact field | Times the last message to land before a lead's record would otherwise go cold |
Routing replies so nothing falls through
A reply is where most re-engagement workflows actually fail, not where they succeed. The sequence sends fine. What happens to the person who answers is the part that gets skipped.
Pair the Contact Reply wait with an if/else split: a reply routes to a team member or a booking step, and silence after the timeout routes to the next message or, eventually, out of the sequence entirely.
Build that branch before the first message goes out, not after someone replies and the workflow has nowhere to send them.
Keep the Smart List driving the dormant segment running after the workflow ends, too. Anyone who re-engages drops out of it automatically once their activity updates, and whoever goes quiet again months later lands right back in, without a second project to set it up.
That's the part worth getting right before writing a single message: the segment and the exit logic, not the copy.
Cover photo by Artem Podrez on Pexels
Need help implementing this in GoHighLevel?
Our team builds, automates, and scales GoHighLevel systems for agencies every day. Book a free call and we'll map out exactly what to ship next.
Book a free call