Your techs write good estimates. A $9,000 system replacement, a $1,400 repipe, a panel upgrade. The customer says “let me think about it”, the tech moves on to the next call, and the estimate sits. In a small shop there’s no sales manager whose job it is to chase them, so nobody does. ServiceTitan already tracks every unsold estimate. This guide turns that into a routine: a daily call list, a clear status on every estimate, a weekly check, and, if you have Marketing Pro, automatic texts.
What you need
- ServiceTitan, any package. The pricing page lists three per-technician packages (Starter, Essentials, The Works) with no public prices. You request a quote.
- Permission to use the Follow Up screen. ServiceTitan’s help center says this needs a permission set by your account admin, and it’s meant for managers and office staff.
- Report access for the Opportunity and Estimate Follow Up report.
- Optional: Marketing Pro, for automatic SMS follow-ups. ServiceTitan’s FAQ calls Marketing Pro a modular add-on and says to ask your Customer Success Manager about pricing. The SMS unsold-estimates campaign in this guide is documented for Marketing Pro v1, and needs ServiceTitan’s chat feature active.
If you don’t have Marketing Pro, steps 1 to 5 still work. They’re a manual process that the software keeps honest.
Step by step
1. Learn the opportunity statuses
ServiceTitan groups estimates into opportunities. Each one has a status, and the whole routine depends on keeping it right:
- Not Attempted: nobody has contacted the customer since the opportunity was created.
- Unreachable: someone tried, but didn’t reach them.
- Contacted: someone reached them, but nothing sold yet.
- Won: an estimate sold at or above the job type’s sold threshold.
- Dismissed: the customer declined, or the sold amount fell below the threshold.
The first three count as open. Your goal is simple: no open opportunity should stay “Not Attempted” for more than two business days.
2. Build the daily call list from the Follow Up screen
Click Follow Up in the toolbar. The Unsold Estimates tab opens by default. Filter by job type, technician, date range, business unit and status. Sort by any column, and bookmark the view, since each area has its own URL.
The view I’d set up for a five-truck shop:
- Status: Not Attempted and Unreachable
- Date range: last 30 days
- Sorted by estimate subtotal, highest first
That’s your morning list. Whoever owns follow-up works it top down before 10am. Click Refresh Table after making changes.
3. Log every attempt properly
Open an opportunity and click Call the customer. After the call, use Log a follow-up at the bottom of the opportunity page. You can pick a template note or write your own, and set the next contact date in Change appointment date.
The detail that trips people up: if you leave a note without ticking Successfully reached the customer, ServiceTitan sets the status to Unreachable. Tick it only when you actually spoke to them, and it becomes Contacted. That keeps the data true.
A simple cadence for the person making calls:
- Day 1–2: first call. If no answer, leave a voicemail and log it.
- Day 5: second call, different time of day.
- Day 10: third call. If reached and still undecided, set the next date for 30 days out.
- Day 30: final check. If they’ve gone elsewhere, dismiss it.
Voicemail script: “Hi Mrs. Patel, it’s Sam from Northside Heating. Mike was out Tuesday and left you two options for the furnace. I wanted to see if you had questions about either one. Call or text me at 555-0188.”
4. Close the loop when they decide
If the customer says yes, use Sold/Convert on the opportunity. You can edit the estimate first, add another option, then book the job from the Sold Estimates tab. If they say no, dismiss the estimate or the whole opportunity, with a short reason in the notes. A dismissed opportunity stops showing in your call list, which is what you want.
5. Check the weekly report
Run Reports > Opportunity and Estimate Follow Up. Useful columns include Estimate Age (Days), Follow Up Date, Number of Follow Ups, Last Follow Up Date and Opportunity Status. You can run it by creation date or by follow up date.
Every Monday, check three numbers:
- How many open opportunities are older than 14 days with zero follow-ups.
- Total subtotal of open estimates.
- Won versus dismissed in the last 30 days, by technician.
Worked example: if the report shows 35 open estimates worth $90,000 and 12 of them have zero follow-ups, those 12 are the first call list on Monday. If one tech has a much higher dismissal rate than the others, that’s a coaching conversation, not a follow-up problem.
6. Optional: automate texts with Marketing Pro
If you have Marketing Pro v1, ServiceTitan can text customers with unsold estimates for you. Go to Marketing > Pro Campaigns > Create Campaign and choose SMS Text Message - Transactional Campaigns. Then:
- Name it (60 characters max), e.g., “Unsold estimates – HVAC”.
- Set Goal: choose Unsold Estimates.
- Add Tracking Number: get a new local or toll-free number, or assign one you have. This lets you see calls the campaign drives.
- Add Audience: build it from Estimates, Customer and Location filters. Each group needs at least one estimates filter. Won and Dismissed opportunities are excluded automatically.
- Create Message Content: up to 4 messages, with merge tags such as Customer First Name, Company Name, Tracking Phone Number, and the Unsold Estimates Link.
- Stop trigger: choose Job Booked so nobody gets a text after they’ve booked. Call Created is the other option.
- Test and schedule. Send yourself a test. The earliest launch is the next day.
Message 1 (day 3): “Hi {Customer First Name}, it’s {Company Name}. Your options from this week’s visit are here: {Unsold Estimates Link}. Questions? Call {Tracking Phone Number}.”
Message 2 (day 10): “Hi {Customer First Name}, still thinking it over? Happy to go through financing or a repair-only option. {Tracking Phone Number}.”
Texts only go to customers whose records have both Marketing updates and Job Notifications switched on, and only to the oldest mobile number on file. Clean those records first or the campaign reaches fewer people than you expect.
Common mistakes
- Leaving notes without ticking “Successfully reached the customer”. Everything shows as Unreachable and the report stops meaning anything.
- Nobody owns the list. Pick one person. “The office” is not a person.
- Never dismissing. Dead estimates clog the call list and inflate the open-estimate total.
- Texting and calling on top of each other. If you turn on Marketing Pro texts, space the calls around them.
- Ignoring opt-in toggles. Without Marketing updates and Job Notifications on, Marketing Pro texts won’t send.
When it’s worth getting help
The routine in steps 1 to 5 costs nothing but discipline. Where help is useful is getting permissions right, building the saved views and report, and, if you have Marketing Pro, writing and testing the campaign without texting customers twice. If you’d like that set up, see the trades page, or try the trades cost calculator to weigh it up.