# Re-engage dormant GoHighLevel contacts with personal messages

> Every Monday, find the leads who have gone quiet, read what they originally asked about, and send each one a short personal nudge.

- Workflow type: agent
- Services: GoHighLevel, Google Sheets
- Categories: Sales, Marketing
- Published: 2026-08-13

## What it does

- Every Monday morning, finds the contacts who have had no activity for about 60 days and leaves out anyone marked do not contact.
- Reads each person's previous conversation so the message can mention the thing they actually enquired about.
- Writes and sends one short, specific message per person instead of one template blasted to everybody.
- Keeps each run to 25 people and records who was messaged, which angle was used, and when, in a Google Sheet so you can see which angles earn replies.

## What you'll need

- A GoHighLevel account containing the contacts and conversation history you want to re-engage.
- A connected phone number or sending email address in GoHighLevel so the messages can actually go out.
- A Google account and a spreadsheet where the outreach log should be written.
- Contacts who have some previous conversation history, since each message is written from what that person originally asked about.

## Prompt

Every Monday at 8am, wake up my dormant GoHighLevel contacts with re-engagement messages that do not read like a blast. Each message must be written from that person's own history, not from a template.

Start by finding the people who have gone quiet. Use the GoHighLevel Contacts Search Contacts operation with advanced filters to find contacts with roughly no activity in the last 60 days. Exclude anyone flagged do not contact. GoHighLevel does not emit an event for a contact going cold, so the dormancy test has to be expressed through the Search Contacts advanced filters inside this workflow rather than as a trigger condition.

Before drafting anything, read the outreach log with the Google Sheets Get Values operation and skip any contact who already appears there with a send date in the last 90 days. This workflow runs every week against a slow moving list, so without that check the same people would be messaged over and over. One nudge per dormant contact, not a weekly drip.

Cap the run at 25 contacts. This limit is deliberate: it keeps the volume human and protects deliverability on the sending number and domain. If more than 25 contacts qualify, take the ones who have been quiet longest and leave the rest for next week. Never raise the cap to clear a backlog faster.

For each of the 25, reconstruct the history before writing a word. Use Conversations Search Conversations to locate that contact's prior thread, then Conversations Get messages by conversation id to read what was actually said. Identify the specific thing that person enquired about: the service they asked to price, the question that never got answered, the quote that went out with no reply, the timing they said did not suit.

Write one short message per contact, in my voice, referencing that specific thing. Two or three sentences. Open with the concrete detail from their thread so it is obvious this is not a broadcast, then make one clear low friction ask. No merge-field greetings, no "just checking in", no discount bait, no pretending an interval has not passed. Reply on the same channel the original conversation used, and send it with Conversations Send a new message.

If a contact has no usable prior thread, or nothing specific enough to reference, skip them rather than sending something generic. A skipped contact is a better outcome than a message that reads like a blast.

Log every contact messaged to my Google Sheet with the Append Values operation, one row each: send timestamp, contact name, contact id, channel used, the angle taken, and the message that went out. Record the angle as a short reusable label such as "unanswered pricing question", "quote sent no reply", "timing did not suit", or "enquiry never followed up", and reuse the same vocabulary across runs so the labels stay groupable. The point of this log is measuring which angles actually earn replies, not just keeping an audit trail, so consistent angle labels matter more than descriptive prose.

Finish with a short run summary: how many contacts qualified, how many were messaged, how many were skipped and why, and the angle mix used this week.

## How to customize

- Change the quiet period from 60 days, or move the run to a different day and time.
- Raise or lower the cap of 25 people per run depending on how much volume you are comfortable sending.
- Choose whether replies go out by text or email, and adjust the angle labels recorded in the log.

## Example output

Sent to Marcus Webb (SMS, 8:04am)
"Hi Marcus, you asked back in April about whether we could do the kitchen fit out in stages rather than all at once. We can, and we have a slot opening in September if that timing suits better. Want me to sketch out what a phased version would cost?"

Logged row: 2026-08-17 08:04 | Marcus Webb | SMS | angle: unanswered pricing question | "phased fit out, September slot"

Run summary: 25 contacts messaged, 6 skipped (3 do not contact, 2 no prior thread, 1 contacted 5 weeks ago).

## FAQ

### Will this message the same person every week?

No. Everyone who gets messaged is written to the log, and the workflow reads that log before each run, so anyone contacted in the last 90 days is skipped. A dormant contact gets one nudge, not a weekly drip.

### Does it respect do not contact?

Yes. Anyone flagged as do not contact is filtered out before any message is written, so those contacts are never drafted for and never messaged.

### Why only 25 people per run?

Volume is what makes re-engagement look like spam. Twenty five personal messages a week reads like a person catching up on their follow ups, and it keeps your phone number and sending domain in good standing. Sending hundreds at once is the fastest way to get filtered.

### What happens if a contact has no previous conversation?

They get skipped rather than sent something generic. The entire value here is referencing what the person actually enquired about, so if there is nothing specific to reference the workflow leaves them alone.

### Can I review the messages before they send?

By default the messages send automatically. If you would rather approve them first, you can ask for a review step when you set the workflow up, so each batch waits for your sign off before going out.

### How do I tell which angles actually work?

The Google Sheet records the angle used for every message alongside the send time, so after a few weeks you can group by angle and compare reply rates. That comparison is the point of the log, not just an audit trail.

Use this prompt in General Input: https://www.generalinput.com/prompts/re-engage-dormant-gohighlevel-contacts-with-personal-messages