Win back expiring service memberships before they lapse

Every morning, customers whose maintenance plan is about to expire get a personal renewal email that points to the work they already received.

Agentic Task
ServiceTitanGmailSlackSalesCustomer SupportEmail AutomationNotifications & Alerts
PromptCreate

Every morning at 7am, find the service memberships that are about to lapse and win them back before they expire. Membership renewals are the highest margin retention lever we have, and most lapses happen simply because nobody reached out in time.

Start in ServiceTitan with "List Memberships" and pull the active memberships whose expiration date falls within the next 30 days. Immediately drop any membership that is already set to renew automatically, since those customers are not at risk of losing anything. For each membership that remains, work out how many days are left until it expires, and only take action when that number is 30, 14, or 7. That way each customer hears from us three times across the final month instead of every single day. If a run was missed and a membership slipped just past one of those marks without having been contacted for it, treat it as due and send once rather than skipping the window entirely.

For every membership that is due for contact, use "List Membership Types" to get the plan's proper name and its renewal price, so the email can state both exactly rather than vaguely.

Then use "List Jobs" filtered to that customer and to the span of the membership term to see what they actually received while they were covered: the completed tune-ups, seasonal inspections, priority service calls, and any other work orders that were finished. This is the single most important input to the email. The pitch is not "your plan is expiring," it is "here is what this plan already did for you." If the term genuinely had no completed visits, do not invent any. Instead lean on what the plan covers and what is still available to them, and use that as a reason to get a visit booked before the term runs out.

Use "List Customers" to get the customer's name and details, then "List Customer Contacts" to find a usable email address for them.

Send the renewal note with Gmail "Send a Message". Write it personally to that one customer: greet them by name, name their plan, state the renewal date and the renewal price plainly, and point to the concrete value delivered during the term by referencing the actual visits that were completed, such as the number of tune-ups and when the inspection happened. Keep the tone warm and appreciative rather than pushy, and close with a clear, easy next step to renew. Adjust the urgency to the window: at 30 days it is a friendly heads up, at 14 days it is a reminder that the date is coming, and at 7 days it is a last call that makes the lapse date unmistakable. Never send if there is no email address on file for the customer.

Finish with a digest to Slack using "Send a Message". List who was emailed, and for each one give the customer name, plan, renewal date, renewal price, and which of the three windows it was. Then list separately, under a clear heading, the customers whose membership is expiring but who have no email address on file, including their phone number and renewal date, so a CSR can call them instead. Note how many auto renewing memberships were skipped. If there was nothing to act on that morning, post a single short line saying so rather than an empty report.

Example output

Membership renewals, Tuesday 7:00am Emailed 4 customers: - Dana Whitfield, Gold Maintenance Plan, expires Sep 8 (30 day mark), renews at $349. Had 2 tune-ups and a fall furnace inspection this term. - Marcus Reyes, Silver Plan, expires Aug 23 (14 day mark), renews at $199. Had 1 AC tune-up in June plus a priority service call. - Ellen Park, Gold Maintenance Plan, expires Aug 16 (7 day mark), renews at $349. Had 2 visits this term. - Tom Alvarez, Comfort Club, expires Aug 16 (7 day mark), renews at $249. Had 1 tune-up. No email on file, please call: - Rita Donnelly, Silver Plan, expires Aug 23, renews at $199. Phone (555) 402-1183. - Joe Camarillo, Comfort Club, expires Aug 16, renews at $249. Phone (555) 776-9920. Skipped 11 memberships already set to auto renew.

What does this prompt do?

  • Checks every morning for maintenance memberships set to expire in the next 30 days
  • Reaches out at the 30 day, 14 day, and 7 day marks instead of pestering the same customer every single day
  • Builds each email around what that customer actually got during their term, naming the tune-ups, inspections, and service visits that were completed
  • Leaves memberships that already renew on their own alone, so nobody gets a renewal pitch for something they are not losing
  • Posts a Slack recap of who was emailed and which customers have no email on file, so a CSR can phone those ones instead

What do I need to use this?

  • A ServiceTitan account with memberships and service history in it
  • A Gmail account to send the renewal emails from
  • A Slack workspace and a channel for the daily recap

How can I customize it?

  • Change the reminder windows: 30, 14, and 7 days is the default, but 45 and 15 works just as well for annual plans
  • Move the send time off 7am, or switch it to weekdays only so nothing lands on a Saturday
  • Decide whether memberships already set to renew automatically should be included or skipped
  • Point the recap at a different Slack channel, or send it to the CSR who makes the calls

FAQs

Will customers get an email every single day until they renew?
No. That is the main thing this is built to avoid. Even though it checks daily, each customer only hears from you three times: once at 30 days out, once at 14, and once at 7. The rest of the daily runs simply pass them over.
What happens when a customer has no email address on file?
They are never silently dropped. They get listed by name in the Slack recap, with their plan and renewal date, so a CSR can pick up the phone and call them that morning.
Does this pester people whose plan renews automatically?
Not by default. Memberships already set to auto renew are skipped, since those customers are not about to lose anything. If you would rather send them a courtesy heads up about the upcoming charge, that is a one line change.
What if we did not actually perform any visits during the term?
The email adapts. Rather than inventing work that never happened, it leans on what the plan itself covers and what is still available to them, which is also a natural nudge to get a visit booked before the term ends.
Can I change how the emails are written?
Yes. The tone, length, and signature are all yours to set. Many shops start by having the first few runs send to their own inbox so they can read what goes out before letting it reach customers.

Related templates

Auto-fix your calendar when a flight slips, and flag what's at risk

When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.

Google Calendar
AviationStack
Slack
Agentic Task
Trace phishing emails to the sending IP and report abuse

Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.

AbuseIPDB
Gmail
Slack
Agentic Task
Turn procurement portal tenders into CRM deals each morning

Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.

Anchor Browser
Google Sheets
HubSpot
+1
Agentic Task
Turn each week's football fixtures into a venue staffing plan

Every Monday, rank the week's matches by expected demand, put the big ones on your venue calendar, and post a rota-ready summary to Slack.

API-Sports
Google Calendar
Slack
Agentic Task
Weekly flight risk brief for trips your team already booked

Every Thursday, rank your team's upcoming flights by how likely they are to run late, and email the fixes while changes are still cheap.

AeroDataBox
Airtable
Gmail
Agentic Task
Warn customers before their saved card expires and billing fails

Each month, spot the saved cards about to expire, email the customers still on recurring billing, and rank the revenue at risk in Slack.

Authorize.Net
Gmail
Slack Bot
Agentic Task

Stop letting good memberships quietly lapse.

Recurring maintenance agreements are the most profitable customers you have, and most of them churn simply because nobody reached out in time.