
GoHighLevel Renewal Reminder Workflow: Setup Guide (2026)
GoHighLevel Renewal Reminder Workflow: Setup Guide (2026)
By Dr Priya Jaganathan, GoHighLevel Certified Admin · HL Growth Partner, Australia · Updated 9 September 2026 · 9 min read
Some links below are affiliate links — if you sign up through them, HL Growth Partner may earn a commission at no extra cost to you. It never changes what we recommend. Full disclosure.
A GoHighLevel renewal reminder workflow is the automation I build most often for clients whose revenue depends on something expiring: gym memberships, retainers, insurance policies, NDIS plans, annual service contracts. If a customer has a renewal date, this Workflow earns its keep in the first month.
This guide walks through the full build in order — the Date custom field, the trigger, the reminder ladder, the If/Else branches, the date roll-over after payment, and how to measure it. Everything here runs on a standard sub-account with no third-party tools.
Quick Facts
| Trigger used | Contact Date Reminder (on a Date custom field) |
| Custom field type | Date — named "Renewal Date" |
| Reminder touchpoints | 30, 14, 7 and 1 day before, day-of, 3 days lapsed |
| Channels | Email (Mailgun) + SMS (LeadConnector/Twilio) |
| Build time | 60–90 minutes for a first build |
| Plan required | Any plan from $97/month (Starter) upward |
What a renewal reminder Workflow actually covers
It is one pattern — a date field, a date-based trigger, a short reminder ladder, and a loop that resets the date after payment — and it fits anything with an expiry.
- Gym, yoga and Pilates memberships on a fixed term
- SaaS seats, agency retainers and coaching programs
- Insurance policies, licences, domains and hosting
- NDIS plans and annual service contracts
You only need the renewal date in a field; billing does not have to live inside HighLevel.
Step 1: Create the Renewal Date custom field
Go to Settings, then Custom Fields, and add a field named Renewal Date with the type set to Date — not Text. Date-based triggers only see Date-type fields, so a text field holding "12/03/2027" is invisible to the automation. Our GoHighLevel custom fields setup guide covers folders, field keys and import mapping.
Two supporting fields worth adding
- Renewal Value (Monetary) — for branching on high-value renewals
- Renewal Term (Dropdown: Monthly, Quarterly, Annual) — how far to push the date after payment
Populate the date by CSV import, a signup form, or an Update Contact Field action when a payment lands.
Step 2: Choose the right Workflow trigger
Choosing the wrong trigger is where most half-working builds fail. The core of a HighLevel renewal automation is the Contact Date Reminder trigger, which fires relative to any Date custom field with a before, on or after offset and a time of day.
| Trigger | What it fires on | When to use it |
|---|---|---|
| Contact Date Reminder | A Date custom field, offset X days before or after | The main reminder ladder |
| Birthday Reminder | The built-in date of birth field only | Not for renewals; same mechanics, locked to DOB |
| Payment Received / Invoice Paid | A successful payment through GHL Payments or invoices | Rolling the Renewal Date forward and tagging renewed |
| Inbound Webhook | A POST from Stripe, Xero or another billing system | Same as above when billing lives outside HighLevel |
| Customer Replied | Any inbound SMS, email or chat reply | Handing "how do I renew?" replies to Conversation AI or a human |
| Tag Added | A tag such as renewal-due applied manually | Manual overrides and testing without waiting for a real date |
The trigger checks once a day at the time you set, so a date entered after that hour is picked up the next day. Its logic matches the date triggers behind birthday and anniversary automations; HighLevel's trigger reference is at help.gohighlevel.com.
Prerequisites before you build
- A verified sending domain in Mailgun so reminder emails avoid spam
- An SMS-capable LeadConnector number with a registered Australian sender ID
- Consent recorded on the contact — a signup checkbox or an sms-consent tag
- A Renewals pipeline with stages Due in 30 Days, Reminded, Renewed and Lapsed
- Ten test contacts with renewal dates spread across the next 30 days
Not on HighLevel yet? Start with a free 30-day trial here — long enough to build everything in this guide before you pay a cent.
Step 3: Build the reminder ladder
Six touchpoints is the sweet spot; fewer and the day-of message is a surprise, more and you sound like a debt collector. Each rung has one job, and the channel matches the urgency.
| Day | Channel | Goal | Message summary |
|---|---|---|---|
| 30 days before | Awareness | Your plan renews on {{date}}; here is what is included and the price | |
| 14 days before | Value reminder | Recap of what they used or achieved, link to renew early | |
| 7 days before | SMS + email | Action | One week to go, one-tap renew link |
| 1 day before | SMS | Urgency | Renews tomorrow; reply RENEW or tap the link |
| Day of | SMS + Internal Notification | Last chance | Today is the day; owner alerted if unpaid |
| 3 days lapsed | Email + SMS | Recovery | Plan has lapsed; reinstate without a rejoining fee this week |
One Workflow or six?
Build six small Workflows with separate offsets, or one Workflow triggered at 30 days before with Wait steps between messages. I use one combined Workflow for the ladder and a separate one for lapsed contacts, with Wait steps set to "wait until date" so a changed date does not break the timing.
Step 4: Message templates that get replies
Keep SMS under 160 characters and always merge the actual date and amount. Specific reminders get paid.
30 days before (email)
Hi {{contact.first_name}}, your Annual plan renews on {{contact.renewal_date}} at $1,188. Nothing to do if you are happy to continue — otherwise reply and we will sort it out.
7 days before (SMS)
Hi {{contact.first_name}}, your plan with {{custom_values.business_name}} renews next Monday. Renew in one tap: {{trigger_link}} — Reply STOP to opt out.
3 days lapsed (SMS)
Hi {{contact.first_name}}, your plan lapsed on Monday. Reinstate this week and we will waive the rejoining fee: {{trigger_link}}. Reply STOP to opt out.
Use Trigger Links rather than raw URLs — a click can then tag the contact renewal-clicked and alert the owner.
Step 5: If/Else branches for renewed and lapsed tags
Every rung needs an If/Else check, otherwise a customer who paid on day 25 still gets the 14-day nag. Before each send action, add an If/Else on Contact tag includes "renewed": true removes the contact from the Workflow, false sends.
Tags you will use
- renewal-due — added at the 30-day rung, removed on payment
- renewed — added by the Payment Received Workflow
- lapsed — added on day 3 after the date if renewed is absent
Once a contact carries lapsed for a fortnight, stop the renewal messaging and hand them to a database reactivation campaign with a different offer and a slower cadence.
Step 6: Update the Renewal Date automatically after payment
This step turns a one-off sequence into a loop. Build a second Workflow with a Payment Received trigger (or Invoice Paid) with these actions in order:
- Add tag renewed; remove renewal-due and lapsed
- Update Contact Field: set Renewal Date to the current date plus 12 months (or 1 or 3 based on Renewal Term)
- Move the opportunity to Renewed and remove the contact from the reminder Workflow
- Send a short thank-you email with the new date
If billing lives in Stripe or Xero, use an Inbound Webhook trigger and map the email and paid date from the payload — our HighLevel payments and Stripe subscriptions guide shows the mapping. Test the date maths on a 29 February contact before you trust it.
Step 7: Internal Notifications and pipeline moves for high-value renewals
A $12,000 retainer or a $30,000 NDIS plan deserves a phone call. Add an If/Else on Renewal Value greater than 5000 at the 14-day rung; on the true branch, fire an Internal Notification to the assigned user and create a "Call about renewal" Task.
Use Update Opportunity actions to move the contact through the Renewals pipeline: Due in 30 Days, Reminded, Renewed, Lapsed. The pipeline becomes your renewal dashboard at no extra cost. For plan-end-date builds with support coordinator alerts, see our GoHighLevel for NDIS providers guide.
Step 8: Let Conversation AI answer "how do I renew?"
Roughly one in five recipients replies with a question — "what does it cost?", "can I pause?", "how do I renew?". Turn on Conversation AI for SMS in auto-pilot mode, train it on your pricing page and cancellation policy, and give it the renewal link.
A Customer Replied trigger filtered for "cancel" or "pause" hands those to a human via Internal Notification. Let the AI handle the yes and the how; let a person handle the no.
Consent, opt-outs and the Spam Act
Australian renewal SMS and email sit under the Spam Act 2003, enforced by ACMA. Plain reminders to existing customers are generally reasonably expected, but add an upsell and the message becomes commercial.
- Record consent at signup with a checkbox field and timestamp
- Include "Reply STOP to opt out" on every SMS and honour DND automatically
- Name the business in every message and never send SMS between 9pm and 8am
How to measure renewal rate
Build a Smart List of contacts tagged renewed and another of contacts who entered the 30-day rung, then compare them monthly against three numbers.
- Renewal rate — target above 80 percent for memberships and 90 percent for retainers
- Days-to-renew — how early the payment lands; earlier means the ladder is working
- Lapsed recovery rate — lapsed contacts who pay within 14 days, usually 15 to 30 percent
Common mistakes to avoid
- Creating Renewal Date as a Text field, so the trigger never sees it
- Skipping the If/Else check on renewed, so paid customers keep getting reminders
- Using fixed-day Wait steps instead of "wait until date"
- Forgetting to roll the date forward after payment, so next year's reminders never fire
- Sending SMS with no opt-out line, which breaches ACMA rules and gets numbers flagged
- Launching without test contacts, then finding leap-year and time-zone bugs live
If you want renewal, recall and follow-up Workflows built and tested in your GoHighLevel account — not just a template dropped in — book a strategy call with the HL Growth Partner team.
Or if you just need the software first: grab the 30-day HighLevel trial and book us when you're ready to scale it.
Frequently asked questions
Which GoHighLevel trigger should I use for renewal reminders?
Use the Contact Date Reminder trigger pointed at a Date-type custom field such as Renewal Date. It lets you set an offset of days before or after the date and a time of day to fire. The Birthday Reminder trigger works the same way but is locked to the date of birth field.
Does the Renewal Date custom field have to be a Date type?
Yes. Date-based triggers in HighLevel only read Date-type custom fields, so a text field holding a date will never fire the Workflow. Create the field under Settings then Custom Fields and choose Date as the type.
How do I stop reminders once a customer has paid?
Build a second Workflow with a Payment Received trigger that adds a renewed tag and removes the contact from the reminder Workflow. Wrap each message in the ladder with an If/Else that checks for the renewed tag before sending.
Can the Workflow update the renewal date automatically after payment?
Yes. In the Payment Received Workflow add an Update Contact Field action that sets Renewal Date to the current date plus the term length. If billing runs through Stripe or Xero, use an Inbound Webhook trigger and map the paid date from the payload.
Do renewal reminder SMS messages need consent in Australia?
A plain reminder to an existing customer is generally treated as expected service communication, but adding any offer makes it commercial under the Spam Act 2003. Record consent at signup, identify your business in every message, and include a working opt-out such as Reply STOP.
Can Conversation AI handle replies to renewal reminders?
Yes. Enable Conversation AI on the SMS channel, train it on your pricing and renewal steps, and give it the renewal link as a response. Route replies containing cancel or pause to a human through a Customer Replied trigger and an Internal Notification.
Related Articles on HL Growth Partner
More date-driven and follow-up Workflows
- Service reminder Workflow setup guide
- Quote follow-up Workflow setup guide
- No-show and reschedule automation
