Skip to content
AgenticHacks
All hacks

Trades agent system

Renew the membership and fill the slow season

A daily job finds agreements expiring in 60, 30, and 7 days, picks one of three messages from visit history and equipment age, and books tune-ups into open slow-season capacity.

Difficulty
Difficulty 3 of 5 in the research brief.
Setup time
Estimate, not from the brief: a weekend once membership expiry dates and equipment age are actually filled in on the customer record.

The pain

Maintenance agreements lapse because nobody runs the renewal, and the shoulder season is empty while peak season is overbooked. The commercial benchmark shows a large share of firms still renew by hand.

  • MCAA's 2025 benchmark: planned-maintenance retention is above 93%, but 43% of respondents have no automatic renewal. The brief says this is commercial mechanical, and residential will differ.

    MCAA 2025 Benchmark Survey (PDF)

    Source type · Trade association survey, commercial mechanical

Workflow
  1. Daily: agreements expiring in 60, 30, or 7 days

  2. Read visit history and equipment age

  3. Pick one message

    • Renew

      The plan is current and the equipment is not aged out.

    • Renew and upgrade

      Visit history supports a higher tier.

    • Replacement conversation

      The system is over 15 years old. Offer a replacement estimate, not a scare.

  4. SMS or email with a payment link

  5. If it does not renew

    • Card failed

      Dunning branch. Do not cancel the plan in silence.

    • No reply by day 7

      Hand the name to a call list.

    • Visit is due

      Book the tune-up into open slow-season capacity.

  6. Log the result on the membership

Trigger

A daily job flags ServiceTitan memberships or Housecall Pro service plans expiring in 60, 30, and 7 days. A second pass books the tune-up when a visit is due and slow-season capacity is open.

Data sources

  • Membership or service-plan end dates
  • Visit history
  • Equipment age
  • Open slow-season capacity
  • The card on file, so a failed payment can take the dunning branch

Build it

  1. 1

    Make expiry and equipment age real fields

    The daily job is useless if the membership end date or the install year is blank. Fix those fields before you automate the message.

  2. 2

    Choose one of three messages, not a blast

    Renew, renew and move up a tier, or offer a replacement conversation because the system is over 15 years old. The choice comes from visit history and equipment age.

  3. 3

    Send a payment link, then branch on what happens

    SMS or email includes the payment link. A failed card on file enters dunning. No response by day 7 moves the customer to a person on a call list.

    Branch. When a visit is due, book the tune-up into open slow-season capacity instead of waiting for the customer to remember spring.

  4. 4

    Write the outcome back to the membership

    Renewed, declined, card failed, or handed to the call list. The next day's job must not send the same offer again.

Tools and rough monthly cost

Similar to the estimate chase: orchestrator, messages, and the model, on top of the FSM you already have.

ToolJobRough monthly
ServiceTitan or Housecall ProMemberships, equipment, and the tune-up bookingYour existing FSM plan. Housecall Pro webhooks require MAX if you drive this from events instead of a daily pull.
n8n or MakeThe daily expiry scan and the day-7 handoffOften the low tens of dollars. Unverified public list-price estimate, October 2026. Not a figure from the research brief. Check the vendor.Unverified
TwilioSMS, with email as the other channelPer-message usage. Unverified public list-price estimate, October 2026. Not a figure from the research brief. Check the vendor.Unverified
LLM APIPicks and writes the one messageUsually a few dollars a month. Unverified public list-price estimate, October 2026. Not a figure from the research brief. Check the vendor.Unverified

Expected ROI

The brief's formula is: lift in renewal rate × number of agreements × price. The only cited benchmark is MCAA's 43% with no automatic renewal, and that sample is commercial mechanical. Residential will differ. Do not copy 93% retention onto a residential shop.

Caveats

  • MCAA's 93%+ planned-maintenance retention and 43% with no automatic renewal are commercial mechanical figures. The brief says residential will differ.
  • Housecall Pro webhooks require MAX. A daily API pull can still run without them if your plan includes API access.
  • Equipment age over 15 years is the brief's rule for the replacement message. Do not widen it.

Example prompt

Change the names, fees, and slots before you run it. It does not add facts that were not in the brief.

You write one membership message for an HVAC or plumbing customer.

You will be told: days until expiry (60, 30, or 7), visit history, equipment age, and whether a card on file failed.
Choose exactly one:
- renew, if the equipment is not over 15 years
- renew and name the higher tier, only if the visit history you were given supports it
- offer a replacement estimate, only if the system is over 15 years old
Do not threaten a breakdown. Do not invent a discount.
If the card failed, the message is about updating the card, not about a new sale.
Keep it under 120 words.

Want this set up for you?

A short note that you want “Renew the membership and fill the slow season” done for you. We use it to measure demand. No setup service is connected yet.

Placeholder only. The address is checked and then discarded.

+Your logo here