An HVAC contractor can warn a property manager 90 days before a maintenance contract ends by storing each contract's end date in GoHighLevel and firing a Custom Date Reminder workflow at 90, 60, and 30 days. The first message arrives before the property manager's own cancellation window opens, because many commercial service contracts renew automatically unless the customer gives written notice, often 60 to 90 days ahead. The bottom line: your renewal offer has to land before their notice deadline, not after it.

Why 90 days is the safe starting point

Two sources describe the buyer side. A guide written for facility buyers warns that many contracts lock in a new term unless written notice is given, often 60 to 90 days before the current term ends. A maintenance software vendor says a typical minimum notice period for non renewal is 60 to 90 days. If your customer's notice window is 90 days, a renewal offer sent at 60 days arrives after they could have left.

A service contract tracking guide from a maintenance software vendor lays out a sequence: internal review at 90 days, first customer outreach with a value summary at 60, a second touch at 30, an urgency reminder at 15, a 30 day grace period after expiration, and a win back campaign after that. Treat the numbers as one vendor's suggestion and check your own contracts for the notice clause.

The timeline

Days before contract endWhat the workflow doesWho acts
90Creates a task to review the account: visits completed, repair calls, and open issues. Emails the property manager a value summary and the renewal options.Service manager
60Sends the renewal agreement through a documents and contracts action. Sends a short text that it is in their inbox.Account manager
30Creates a call task if the agreement is unsigned.Account manager
Day of expirationNotifies the service manager that the contract ends today and starts the grace period follow up.Service manager

How this was handled before

Many contractors start with a spreadsheet of contract end dates. A vendor blog puts the limit of that method at roughly 50 to 75 agreements, after which missed visits and renewal lapses become predictable. Treat that as one vendor's estimate, but the failure it describes is familiar: the list exists, and nobody opens it in the weeks that matter.

Build it in GoHighLevel

  1. Create a date field on the contact called Maintenance contract end date and a text field for the notice period.
  2. Add tags for the notice window, such as notice 60 and notice 90, taken from each contract.
  3. In Automation, create a new workflow from scratch and add the Custom Date Reminder trigger.
  4. Select the contract end date field and add Before Number of Days set to 90.
  5. Add a Has Tag filter for notice 90, and build a second workflow at 120 days for contracts tagged notice 90 so the offer lands ahead of that window.
  6. Add Add Task, Send Email, and Send Documents and Contracts actions as shown in the table.
  7. Publish the workflow and repeat for the 60 and 30 day steps.
  8. If the property manager is a management company with many buildings, GoHighLevel also supports company based workflows that use date fields on the Company record.

Email to send at 90 days

Subject: Your maintenance agreement for [building name] ends on [end date]. Hi [first name], this year we completed [number] scheduled visits and [number] repair calls at [building name]. Your agreement ends on [end date] and asks for [notice period] days written notice, so we are sending the renewal options now. Reply here and we will walk through them.

What the workload looks like

A contractor with 120 commercial agreements ending on different dates has about 10 agreements reaching the 90 day mark every month (120 divided by 12). Each needs a value summary that names visits completed and repairs made. The workflow can create the task and pull the numbers you store in custom fields, so the service manager spends time on the accounts that need a conversation instead of building 10 summaries by hand.

Mistakes to avoid

Check before you switch it on

US text messages sent from a standard 10 digit number need A2P 10DLC registration. The HighLevel support portal says registration is required for texts to US recipients from 10 digit long code numbers and that toll free numbers do not require it. HighLevel's opt in guidelines also say a person cannot be forced to agree to text messages in order to submit a form, so keep the consent box optional. One compliance guide separates informational texts, which need documented consent, from marketing texts, which need prior express written consent. Ask your attorney which category your reminders fall into. Property managers are business contacts, but text messages still need consent. Use email for the renewal packet and text only as a nudge. This is general information, not legal advice.

Questions people ask

How do I set the timing if contracts have different notice periods?

Tag each contract with its notice period and run a separate workflow for each tag, starting at least 30 days before that window opens.

Should the contract auto renew?

That is a business decision. Sources describing customer side risk say auto renewal clauses often require written notice 60 to 90 days ahead, so tell customers where that date is.

Can I send the agreement from GoHighLevel?

GoHighLevel's action list includes Send Documents and Contracts, which sends a document or contract from a template.

Ready to try it yourself? Start a GoHighLevel account here.

You can also see this in action in our GoHighLevel capabilities demo.