How to Pull a Lapsed Customer List from ServiceTitan, Housecall Pro, and FieldEdge
Step-by-step instructions for pulling a lapsed maintenance customer list out of ServiceTitan, Housecall Pro, and FieldEdge. The exact filters, exports, and clean-up rules.
What 'lapsed' actually means for an HVAC company
Before you pull any list, you need a definition. 'Lapsed' is not a feature in your FSM software — it's a filter you apply to your customer records. Different HVAC companies define it differently and the definition matters because it changes who you reach out to and how they react.
The definition that works best across the HVAC companies we've worked with is this: a customer is lapsed if their last service was more than 12 months ago and they have no future appointment scheduled. That's the floor. For a more aggressive first campaign, drop to 9 months. For a more conservative one, raise it to 18 months.
The highest-value subgroup inside any lapsed list is maintenance agreement holders who let their agreement expire. These customers chose to pay for a service relationship and then let it lapse — they're not indifferent to your company, they just drifted. The reactivation rate on lapsed maintenance agreement customers is typically 2–3x higher than on general lapsed service customers, and the messaging can be more direct.
Don't go past 24 months on the first pass. Customers who haven't been serviced in two years are a different kind of conversation. Start with the 12–24 month window where the relationship is still warm and the system is likely still in the same house.
Before you pull anything: define your inactive window
Pick a single date as your 'as of' date. Today's date is fine. Then pick your inactive window — the period of time since their last service that qualifies them as lapsed. For most HVAC companies, the right window for the first reactivation campaign is 12–24 months.
Why the upper bound? Because customers who haven't had service in over two years often have life context you don't see — they sold the house, they went with a competitor, the system was replaced and they chose a different company. You'll convert a much higher percentage by going after the 12–24 month bracket first, and then circling back to the older cohort with a different message.
Write your window down before you open your FSM software. Otherwise you'll talk yourself into pulling 900 records on the first try and the campaign will feel un-runnable. The right first wave is 30–50 customers — enough to test the messages and get real data, small enough that your CSR can handle the inbound without getting overwhelmed.
Pulling the list from ServiceTitan
ServiceTitan has the most robust reporting of the three major FSM platforms. The report you want lives in the Reports section.
Navigate to Reports → Customer Reports → Last Service Date report. Apply two filters. First: 'Last service date' — set the range to between 24 months ago and 12 months ago. Second: 'Has scheduled job' — set to No. That combination gives you a clean lapsed cohort with no active future appointments.
Add these columns before you export: Customer Name, Phone, Email, Last Service Date, Service Type, Technician, Membership Status. The service type column is the most valuable for segmentation — AC tune-up customers get a different reactivation message than furnace repair customers, and the seasonal framing changes entirely. Membership Status tells you which customers had an active maintenance agreement that lapsed.
Export to CSV directly from the report screen. ServiceTitan lets you do this with one click. Save the file with the date range in the filename so you don't confuse it with later pulls.
Pulling the list from Housecall Pro
Housecall Pro doesn't have a native 'dormant customer' filter the way ServiceTitan does, so the path here is slightly longer — you'll do a full export and filter in a spreadsheet.
Go to Customers → Export. This downloads a full customer CSV. The columns you need are Customer Name, Phone, Email, and Last Job Date. Once you have the CSV open in Excel or Google Sheets, filter the 'Last Job Date' column for dates between 12 and 24 months ago. That's your raw lapsed cohort.
The second step is to pull a list of customers with open estimates or scheduled jobs. In Housecall Pro, go to Estimates → Export (filter for open/pending status) and Jobs → Scheduled (export upcoming jobs). Cross-reference both lists against your lapsed cohort and remove any customer who appears in either. What's left is your true lapsed list — no active relationship pending.
Housecall Pro also lets you tag customers. If you've been tagging maintenance agreement customers, you can filter for that tag in your export to pull the lapsed maintenance agreement subgroup separately. This is the highest-value segment for a first reactivation campaign.
Pulling the list from FieldEdge
FieldEdge has a native inactive customer report that makes this the most direct path of the three. You don't need to do a full export and filter — the report does the work for you.
Navigate to Reports → Customer Reports → Inactive Customers. Set the inactivity window to your chosen date range (12–24 months for most first campaigns). FieldEdge will return every customer whose last service date falls within that window and who has no scheduled future job.
The report includes a Maintenance Agreement Status column by default. Filter for 'Expired Agreement' to pull your highest-value reactivation cohort — these are the customers who actively signed up for a service relationship and then let it lapse. The reactivation rate on this group is substantially higher than on general lapsed service customers, and the message can reference the lapsed agreement directly.
Export to CSV. FieldEdge emails the export to the logged-in user, so check your inbox within a few minutes. Save the file with the date range in the filename.
What to filter out before contacting anyone
A raw FSM pull is not a campaign list. There are five categories of customer you need to remove before you send a single message.
First: any customer with a do-not-contact flag or who previously opted out of marketing communications. This is non-negotiable from a compliance and reputation standpoint. SMS is regulated under TCPA and a single complaint from someone who told you to stop messaging them creates real downstream cost.
Second: any customer who is already on the books for a future job. If your filter didn't catch them, do a second-pass exclusion. Sending a 'haven't heard from you in a while' message to someone who has a job scheduled Tuesday is a confidence-eroding experience.
Third: any customer with a missing or invalid phone number. HVAC reactivation works best on SMS first and email second. A list with no phone numbers is half a list.
Fourth: any customer who was served by a technician who left the company under difficult circumstances. Practices with technician turnover often have customers who had a poor final experience. Reaching out to those customers risks surfacing a grievance you'd rather handle with a different approach.
Fifth: any customer where your records flag a complaint, refund, or dispute. The cost of re-engaging an unhappy former customer is not just the failed conversion — it's the public review they're more likely to leave when reminded that you exist.
What to do with the list once you have it
The mistake most HVAC companies make is doing nothing with the list because it looks daunting. The fix is to not think of it as a list — think of it as a queue.
The most effective format is a 14-day reactivation campaign sent in waves of 30–50 customers per week. Smaller waves let your CSR handle the booking calls without getting overwhelmed, and they let you test message variations across waves.
The campaign itself is a sequence of low-pressure SMS and email touches that don't sound like marketing. We've published the exact 14-day sequence we use as a separate playbook. Two practical notes if you're running the first wave yourself: send from a real-looking number, not a short code — customers respond to texts that look like a person. And batch the inbound calls that come from the campaign into specific 90-minute windows for your CSR, instead of letting them trickle in throughout the day.
If you'd rather not run the campaign in-house, this is the work we do. The audit is free and walks through your specific FSM software and your specific lapsed customer cohort.
Next step
Want this running in your company in 14 days?
Book a 15-minute business audit. We'll map your call flow, count your lapsed customers, and tell you exactly what's leaking — no pitch.