Renewal automation: a 90-day follow-up workflow

A renewal workflow for expiring agreements, illustrated with HVAC maintenance contracts. Industry-specific contract rules stay tied to that example.

Ivar André KnutsenAI systems and workflow automationUpdated September 10, 202610 min read
Renewal automation: a 90-day follow-up workflow: cover

Renewals can become a predictable workflow when dates, responsibilities and follow-ups are clear. This guide uses HVAC maintenance agreements as a detailed example. The contract values and legal discussion are specific to that context; other agreements need their own review.

Automating HVAC maintenance agreement renewals means three things: a renewal date on every agreement in your software, a fixed run of reminders that starts 90 days out, and a lapse list the owner sees the morning an agreement expires without a yes. The software sends the summary, the notice and the nudge. A person makes one call, at 60 days. Here's the run, the settings in ServiceTitan and Housecall Pro, and what it's worth.

I'm a plumber by trade, and I build phone and follow-up systems for trade businesses. I haven't run a commercial HVAC service desk, so this isn't a post about selling maintenance. It's about the part that gets lost between the sale and the anniversary: the date. I'll write it for one owner. Six techs, forty-odd commercial agreements across offices, a retail park and two industrial units, each renewing on whatever day it was signed, and a spreadsheet nobody opens until a facilities manager rings to say they've gone elsewhere.

Agreements lapse because nobody owns the date

A commercial maintenance agreement rarely gets cancelled. It expires. Cancelled means somebody decided. Expired means nobody did, and the customer found out they were out of contract when the roof unit failed in August and the repair came in at full rate.

Commercial accounts don't lapse because a card expired. They lapse because the purchase order did, and the person who raised it has moved on. Tradesworn's renewal guide lists the causes I'd expect: the contact changed, an invoice nobody could explain, no written proof of what the year's visits found, a competitor in front of the new facilities manager, a complaint fixed on site but never closed on paper. Every one of those gets caught in a conversation 60 days out. None of them gets caught by a spreadsheet.

ServiceTitan's own playbook says to make first contact "a few months before the expiration" and to reach an active member at least three or four times before writing the contract off. That's the standard. The question is who does the reaching, and when, and the answer can't be "whoever remembers."

The 90-day renewal run

Here's the run I'd build. Five touches: three sent by software, one made by a person, and one that goes to you instead of the customer. It starts at 90 days because the Tradesworn guide's 120-day board and ServiceTitan's 60 to 90 days land in the same quarter.

Day 90: the value summary. An email, from the account manager's name, with what this year's agreement actually did on their site. Visits completed. Filters and belts changed. Faults found on a routine visit and fixed before they took the unit down. Then the renewal price and one question: same scope next year, or has anything changed? The software drafts it from the job history. A person reads it before it goes, because a summary that lists a visit the tech skipped is worse than no summary.

Day 60: the call. A human rings the person who signs. Not to close. To ask what's changed: new units, a new facilities manager, a budget cycle that moved. This is the touch the automation can't do, and I'll come back to it.

Day 30: the written notice. Price, term, the renewal clause in plain words, and how to say no. If the contract auto-renews, this is the touch the law cares about, and it has its own section below.

Day 15: the nudge. A text or a short email to the signer. "Renewal for [site] is due [date]. Reply YES for the same scope, or ring me on this number." Sent by the software, with the reply logged against the agreement.

Day 0: the lapse list. Every agreement that reaches its date without a yes goes on one list that lands in your inbox that morning. Yours, not the customer's. You find out the day the run failed, not in August.

If that shape looks familiar, it's the same bones as the day 0, 3, 7, 12 quote follow-up, stretched over a quarter, because a commercial renewal moves at the speed of a facilities budget, not a homeowner's weekend.

The default setting in your software was set for homeowners

Both big platforms can run most of this. Neither runs it well out of the box for commercial work, because the defaults were set for a residential club membership.

In ServiceTitan the list lives under Follow Up, then Expiring Memberships. The help article says the filter defaults to memberships expiring "within two weeks of the current date." Two weeks is fine for a homeowner's tune-up plan at, say, $200 a year. For a commercial account with a PO to raise, it's a lapse with a warning attached. Set the filter to 90 days and use the bulk renewal estimates, so every account on the list has a price attached before anyone picks up a phone. Techs can sell the renewal from the mobile app while they're on the roof, which is often the best moment. Check the account before you ring, because the tech may have renewed it on site yesterday.

In Housecall Pro, plans with a set term don't renew themselves. The renewals article is clear: reminders go out at 1, 3, 7, 14, 30 or 60 days before expiry, each creates a draft in pending renewal status, and "your customer will need to confirm the details of their plan and enter payment information." The customer has to act. For a commercial account that's the right design, because someone with authority should say yes to a new term. But 60 days is the furthest out the software will start, so day 90 is a task on a person's list, not a setting. Plans marked "continues until cancelled" can't be renewed at all; I'd use that only for month-to-month accounts. Billing runs monthly, quarterly or annually, and I'd match it to the customer's PO cycle, not to what suits you.

Whatever platform you're on, three fields matter: the expiry date, the name of the person who signs, and the last date anyone spoke to them. Tradesworn scores an account solid if there's been contact within 60 days, uncertain at 60 to 180, at risk past six months. If your software can't show that third field, the run is running blind.

The written notice is the one touch with a law behind it

If your agreement renews automatically unless the customer says no, the day 30 notice isn't a courtesy. In some places it decides whether the renewal is enforceable at all.

New York is the clearest example, because its rule was written for exactly this kind of contract and covers business customers, not only homeowners. General Obligations Law section 5-903 says an automatic renewal clause in "a contract for service, maintenance or repair to or for any real or personal property" is unenforceable unless the contractor gives written notice "at least fifteen days and not more than thirty days" before the customer's deadline to cancel, "served personally or by certified mail," pointing out the clause. It doesn't apply where the renewal period is a month or less. Miss the window, or send it by ordinary email, and the customer can walk at the anniversary whatever the contract says.

Federally, the picture moved in 2025. The FTC's "click to cancel" rule would have set consent and cancellation standards for auto-renewals nationwide. On 8 July 2025 the Eighth Circuit vacated the whole rule on procedural grounds. What remains, per the same note, is ROSCA for anything sold online, the FTC's general power over deceptive practices, and state automatic renewal laws that regulators "have been increasingly active in enforcing." Most of those are written for consumers. New York's isn't. I'm a plumber, not a lawyer: check your states and your contract with your own advisor, once, then build the notice into the run so nobody has to think about it again.

For a UK commercial air conditioning firm the renewal letter carries a statutory date. Under the F-gas rules on gov.uk, equipment holding 5 to 50 tonnes of CO2 equivalent needs a leak check at least every 12 months, 50 to 500 tonnes every six months, and over 500 tonnes every three, with the interval doubled if there's automatic leak detection. A repair has to be re-tested within a month. NetRegs adds that the operator keeps the records for at least five years. So the letter that says "your next leak check on the three roof units is due 14 March and the renewal covers it" is the strongest renewal argument I know for UK commercial work. A lapsed contract is a missed check on the operator's own books, and the facilities manager knows it.

What the automation can't do is the 60-day call

Software is good at dates and bad at people. The run uses it for what it's good at: knowing the date, drafting the summary from the job history, and sending the same message the same way on the same day every time. It's also good at the boring safety net. ServiceTitan's playbook says to run a report every month on expired cards. For commercial accounts, run the same report on POs that expire before the agreement does.

Here's what it can't do, and I say this as someone who builds it. It can't reprice the contract for the two new units they added in March. It can't hear that the new facilities manager came from a building your competitor services. It can't tell that "we'll think about it" from a procurement office means "send me a reason to keep you." And it must never decide, on its own, that a customer who didn't reply has said yes. That decision belongs to a person.

That's the 60-day call. A person, fifteen minutes, three questions: what's changed on site, who signs this year, and when does your budget close. Write the answers against the account. The automation reads them and adjusts the day 30 notice. The machine owns the calendar. The human owns the conversation.

One more human job. Customers often reply by phone, on a Tuesday afternoon, while your six techs are on six roofs. A renewal call that lands in voicemail is a renewal you're chasing again. The HVAC answering post covers what catches it, and the calculator shows what the missed ones cost.

What a lapse costs, and what to do this week

Say you hold 40 commercial agreements. Harold Brothers Mechanical, a commercial contractor in Massachusetts, puts annual maintenance contracts at $1,000 to $10,000 or more a year, so call yours $3,000 on average. Take the renewal rate from Tradesworn's example: 32 of 40 renew, 80%. Eight lapse.

Eight × $3,000 is $24,000 in contract revenue gone. Then the work behind it. ServiceTitan's contracts guide says commercial maintenance agreements typically pull through two to four times their value in repair and replacement, at margins it puts at 40% and up. Take the low end. Eight × $3,000 × 2 is $48,000. Call it $72,000 a year, walking out through a date nobody owned.

Now say the run lifts you from 80% to 90%. Four agreements back: $12,000 in contracts and, at 2x, $24,000 in work. $36,000 a year for five touches, four of them automatic.

In pounds, for a UK firm with 25 sites at, say, £2,500 a year: 80% renewal loses five sites, £12,500 in contracts and £25,000 in work behind them. The leak-check letter alone would hold some of those.

What to do this week:

  1. Export every agreement with its expiry date, the signer's name, and the last contact date. If the third column is empty, that's your first finding.
  2. Set the expiring list to 90 days out (ServiceTitan), or the furthest reminder your platform allows (60 days in Housecall Pro), and put day 90 on a person's task list if the software can't reach it.
  3. Write the day 30 notice once, with the renewal clause in plain words and how to say no. Ask your advisor whether any of your sites need it by certified mail.
  4. Ring every account expiring in the next 90 days. Three questions. Write the answers down.

If you do those four and your renewal rate is already north of 90%, keep your money. If the export takes a day because the dates live in six places, that's the build: one date field, one run, one lapse list. The HVAC page shows what I set up, and the implementation page shows how the admin builds work. If you want me to look at your export before you build anything, book a growth call. Thirty minutes, free, and if the answer is a spreadsheet and a Tuesday afternoon, I'll say so.

Questions people ask

How far ahead should I start renewing an HVAC maintenance agreement?

Ninety days for a commercial account, because a purchase order and a budget cycle sit between the customer and yes. ServiceTitan's own playbook says a few months out, with three or four contacts before you write the agreement off, and Tradesworn's renewal guide works a 120-day board. Homeowner plans can start at 30 to 60 days.

Does ServiceTitan or Housecall Pro renew maintenance agreements automatically?

Housecall Pro doesn't. Its renewal reminders go out at 1, 3, 7, 14, 30 or 60 days before expiry and create a draft in pending renewal status, but the customer has to confirm the plan and enter payment. ServiceTitan lists expiring memberships under Follow Up with a default filter of two weeks, and lets you build renewal estimates in bulk and sell renewals from the mobile app. For commercial accounts I'd treat the customer's explicit yes as a feature, not a gap.

Do I have to send written notice before a maintenance contract auto-renews?

It depends where the site is and what your contract says. In New York, General Obligations Law 5-903 makes an automatic renewal clause in a service, maintenance or repair contract unenforceable unless the contractor gives written notice 15 to 30 days before the cancellation deadline, personally or by certified mail. The federal click-to-cancel rule was vacated in July 2025, but state laws still apply. Ask your own advisor about your states, then build the notice into the run so nobody has to remember it.

What is a good renewal rate for commercial HVAC maintenance agreements?

Tradesworn's guide uses 32 of 40 renewing, 80%, as its worked example and treats renewal rate as the number to track account by account. I'd want two things before judging yours: whether every agreement has a named owner for the date, and how many of the lapses were never contacted at 60 days. A lapse nobody rang is a process failure, not a pricing one, and it's the cheaper kind to fix.

Can AI handle maintenance agreement renewals?

It can own the calendar: hold the date, draft the year's value summary from the job history, send the same reminder the same way every time, log replies, and put lapses on a list you see that morning. It cannot reprice the contract, negotiate scope, or decide that silence means yes. The 60-day call to the person who signs is a human's job, and the automation should schedule it, not replace it.

Sources

  1. 1.ServiceTitan Help: Follow up on expiring memberships · Follow Up > Expiring Memberships; default filter is memberships expiring within two weeks; build renewal estimates and set renewal memberships in bulk; call the customer from the screen; technicians can sell renewals from the mobile app
  2. 2.ServiceTitan Contractor Playbook, chapter 10: Renewing yearly and maintaining monthly memberships · First contact a few months before expiration; mailed estimates, courtesy calls and emails 60 to 90 days out; contact members at least 3 to 4 times before deeming the contract expired; research the customer before calling because the tech may have renewed on site; run a monthly report on expired cards
  3. 3.Housecall Pro Help Center: Service plan renewals · Automatic renewal reminder options 1, 3, 7, 14, 30, 60 days before expiration; reminders create a draft in PENDING RENEWAL status; the customer must confirm the plan details and enter payment; plans set to continue until cancelled cannot be renewed
  4. 4.Housecall Pro: HVAC maintenance agreement software · Auto-bill service agreements on a monthly, quarterly or annual schedule; customers can view, renew or upgrade their plan online
  5. 5.Tradesworn: HVAC service agreement renewal rate, keep your best accounts · Worked example: 40 commercial agreements up, 32 renewed, 80%; start renewal work 120 days out; contact recency scored solid within 60 days, uncertain 60 to 180 days, at risk over six months; lapse causes: contact changes, unexplained invoices, no documented value proof, competitor engagement, unresolved complaints, weak pricing
  6. 6.ServiceTitan: HVAC service contracts guide 2026 · 9 July 2026: service work at commercial accounts can run 40%+ margins; preventative maintenance agreements typically generate 2 to 4x in pull-through repair and replacement work; residential plans usually $150 to $300 a year
  7. 7.Harold Brothers Mechanical: How much does commercial HVAC preventative maintenance cost? · 14 November 2025, Weymouth MA: one-time visit $200 to $1,000 or more; annual maintenance contract $1,000 to $10,000 or more per year; quarterly maintenance recommended for most commercial systems
  8. 8.New York State Senate: General Obligations Law section 5-903 · Automatic renewal provision in a contract for service, maintenance or repair to real or personal property is unenforceable unless the contractor gives written notice at least fifteen and not more than thirty days before the cancellation deadline, served personally or by certified mail; does not apply where the renewal period is one month or less
  9. 9.Cooley: Eighth Circuit vacates entirety of FTC's Negative Option Rule · Decision 8 July 2025; rule vacated in full for a procedurally defective rulemaking; ROSCA, FTC Act Section 5 and state automatic renewal laws still apply; state regulators increasingly active
  10. 10.GOV.UK: Checking F gas equipment for leaks · Published 21 August 2019: 5 to 50 tonnes CO2 equivalent at least every 12 months, 50 to 500 tonnes every 6 months, over 500 tonnes every 3 months; automatic leak detection doubles the interval; repeat the test within a month of a repair
  11. 11.NetRegs: Stationary refrigeration, air conditioning and heat pumps, F-gas controls · Same leak-check intervals; records must be kept for at least 5 years; operators must maintain detailed records for all systems containing F-gases
Ivar André Knutsen

Written by Ivar André Knutsen

I build and run AI systems, internal tools and workflow automation. You work directly with me from the first conversation through implementation and support. About Ivar

Want this looked at in your business?

We look at where you want the business to go, what is slowing you down and where AI could make a useful difference. You get a clear recommendation: a tool to try, a focused automation, a broader system or a closer look at the process. Any build is scoped and quoted before work starts. Free, no obligation.

Single automations are quoted on the call: a setup fee plus a monthly retainer to run them. Full systems start at $4,500, fixed scope, fixed price.

Book a free 30-minute call