To automate invoice collections on ServiceTitan, connect an AI agent to your open-invoice report, cross-reference it against QuickBooks to strip out unapplied-payment noise, score each remaining open invoice by age, balance, customer history, and job margin, then generate a ranked contact queue, text-payment-link for residential, call prompt for commercial, escalation flag for 90-plus, that an office person approves before any outreach reaches a customer. Top Builder AI's Financial agent runs this loop on a configurable cadence: it reconciles the two systems, ranks what to chase first and why, proposes the specific action for each invoice, and logs every approved contact back to ServiceTitan. Nothing reaches a customer without a human decision.
You can have a full dispatch board and a strong gross margin on paper and still run out of operating cash because the invoices you billed six weeks ago are still sitting in a pending column nobody is getting to. A ServiceTitan shop doing $700,000 a month in billings at a 45-day average collection cycle is carrying over $1 million in open receivables at any given point. That is not an accounting problem, it is a cash-flow problem, and it has a specific cause: the aging list exists, but a prioritized, ready-to-act queue does not.
ServiceTitan's 2026 "AI in the Trades" report found that 74% of residential contractors see AI as key to operational efficiency. A/R collection is one of the areas where the gap between what the platform can do natively and what a purpose-built agent can do is widest, because the bottleneck is not billing, it is prioritized follow-up across dozens of open invoices while the office team is also running dispatch, scheduling, and customer service.
Why contractors leave money in the A/R column
The mechanism is consistent across shops of every size. An invoice is generated in ServiceTitan when the technician closes the job. It gets emailed or texted to the customer. Some pay immediately, especially residential customers who pay by card in the field. Many do not. The residential customers who got a paper invoice forget. The commercial accounts have their own payment cycles, and $3,000 owed to a subcontractor does not always rise to the top of their AP queue by the 30-day mark.
The office team knows this. They have the aging report. What they do not have is a prioritized queue that tells them which of the 40 open invoices to call today, in what order, and what to say to each one. So the work defaults to oldest-first, or biggest-first, or whoever-happens-to-be-at-the-front-desk-first. Systematic follow-up, the kind that actually reduces Days Sales Outstanding, requires a scoring model the team does not have time to build manually every morning.
A second force multiplies the problem: the data itself is unreliable. The ServiceTitan aging report and the QuickBooks accounts receivable balance often do not match, because payments flow through both systems on different schedules and sometimes do not reconcile cleanly. Before you can prioritize the chase, you have to trust the list. Most shops do not yet have a process that guarantees that trust automatically.
How ServiceTitan's native A/R module works and where it leaves gaps
ServiceTitan has solid invoicing and collections infrastructure. Technicians can email or text invoices from the truck. Customers can pay online through the invoice link. The ServiceTitan Contractor Playbook on Collections documents the native AR workflow in detail. The aging report shows open balances by bucket: 0 to 30 days, 31 to 60, 61 to 90, and 90 and over. Bulk statement printing and emailing exist for volume follow-up. For many shops this is sufficient infrastructure for the problem they have.
Where it leaves a gap is prioritization and reconciliation. The aging report is a list, not a ranked queue. Every invoice in the 31-to-60 bucket looks the same, whether it is a $300 residential tune-up or a $14,000 commercial installation with a relationship that took three years to build. ServiceTitan does not know which one to call first, what to say, or whether the customer had a callback issue that should be resolved before any outreach goes out.
The platform also does not reconcile against QuickBooks automatically in real time. The two-way sync moves revenue and invoice status between systems, but it runs on a batch schedule. Between runs, a payment deposited in QuickBooks may not yet have cleared the corresponding invoice in ServiceTitan. The aging report in ServiceTitan may show an invoice as open when the money has already landed in the bank account.
Three ways invoices go stale in the system
Chasing a reconciliation mismatch means calling a customer who already paid. That call costs goodwill. If it happens twice with the same account, it costs the relationship. The reconciliation has to precede the collection, and right now that reconciliation is a manual step that most shops skip or do quarterly at best.
The QuickBooks reconciliation gap in plain terms
The practical question an office manager has to answer before making any collections call is: does this customer actually owe this money right now? The answer lives in two systems that neither system reconciles on its own in real time.
ServiceTitan knows the job, the invoice, and any payments received through its own payment processing. QuickBooks knows the bank deposits, the applied payments, the journal entries, and the credit memos. Where these two ledgers agree, you have a clean balance. Where they diverge, you have a reconciliation task disguised as a collections task.
The Financial agent resolves this by pulling both ledgers at the start of every cycle, matching customers and invoice references across the two systems, and flagging any invoice where the systems disagree. Those flagged invoices come out of the chase queue entirely and land in a separate cleanup list for the bookkeeper. What remains is the genuine outstanding balance, the invoices where both systems agree the money has not arrived.
That cleanup step alone, before any outreach is proposed, is often the most valuable output of the first cycle. Many shops find that 10 to 20 percent of their apparent 60-plus aging is actually reconciliation noise, not delinquency. Fixing that noise does not collect any cash directly, but it stops the office from burning goodwill on customers who have already paid.
The four-step Financial agent collections loop
After setup, the Financial agent runs on a configurable cadence: daily for high-volume shops, every two to three days for smaller operations. Each cycle has four steps.
How the prioritization scoring model works
The aging report treats every invoice in the same bucket as equal priority. The scoring model does not. It weights four factors together to produce a ranked queue, not an alphabetical or oldest-first list.
Age. Older invoices weight more heavily because the probability of full collection decreases with time. An invoice at 75 days has a different risk profile from one at 38 days, even if the balance is identical. The weighting is not linear; the risk acceleration is steeper past 60 days.
Balance. Larger balances represent more gross profit dollars in the uncollected pile. A $9,200 commercial invoice at 42 days outranks a $280 residential tune-up at 58 days for the same daily contact budget. The model does not ignore small balances, but it allocates priority proportionally.
Customer payment history. A customer with a pattern of paying promptly after the first reminder needs a different first touch than one with a history of requiring two or three contacts. The model uses the logged outcomes of prior cycles to refine this dimension per customer over time. New customers with no history start at a moderate-priority default.
Job margin. The Financial agent knows the margin estimate on each job from the ServiceTitan job costing data. A high-margin job uncollected is a larger net loss than a thin-margin job at the same dollar amount. The model reflects that a $6,000 install at 58% gross margin is a bigger financial exposure than an $8,000 installation job at 18% margin.
The combined score produces a ranking that the office manager sees as a queue, not as a raw report. The top of the queue is the invoice where the combination of age, balance, history, and margin says "contact today, here is how."
Worked example: a 10-tech HVAC shop, one cycle
All figures below are illustrative to demonstrate the process. They are not a client result.
| Monthly billings | $650,000 |
| Outstanding A/R | $920,000 |
| Average collection cycle | ~42 days |
| 0 to 30 days | $380,000 |
| 31 to 60 days | $290,000 |
| 61 to 90 days | $170,000 |
| 90+ days | $80,000 |
| Reconciliation mismatches removed from chase queue | $42,000 |
| Genuine 61-plus open balance | $208,000 |
| Same-day contact queue proposed (approved in ~8 min) | 3 actions |
The three proposed actions in this cycle:
- Payment-link SMS to a residential customer at 68 days, $3,840 balance. Customer payment history shows 4 of 5 prior invoices paid within 24 hours of an SMS reminder. Recommended: first-touch text with a payment link.
- Call prompt to a commercial property manager at 74 days, $18,400 balance. Commercial tier; the agent recommends a voice call with the specific invoice number and a note that their prior contact for this account changed recently. Draft call brief provided.
- Escalation flag on a 97-day account, $61,000 balance. Above the shop's $50,000 threshold. Agent recommends a formal demand approach and notes a prior dispute on one of the three invoices that should be resolved first.
The office manager approves the first two actions, edits the call brief on item two to reference the correct February job number, and skips item three to discuss with the owner. Total review time: 8 minutes.
Comparison: manual vs. native ServiceTitan vs. AI-assisted
| Capability | Manual | ServiceTitan native A/R | Top Builder AI Financial agent |
|---|---|---|---|
| Prioritized contact queue | No | Aging buckets only | Scored: age + balance + history + margin |
| Reconciles against QuickBooks | Manual, per session | Batch sync (may lag) | Every cycle; removes mismatches before chase |
| Proposed contact scripts | Written from scratch | Not included | Per-invoice draft; human approves |
| Escalation flags above threshold | At owner's discretion | Not included | Configurable per shop |
| Logs outreach to both systems | Manual note | ST notes only | Audit trail: timestamp, approver, outcome |
| Adjusts to customer payment patterns | No | No | Self-learning on the narration side (figures are deterministic) |
| Human approval required | — | — | Mandatory — no auto-outreach |
How it connects to the broader back-office picture
Collections is one of eight agents in Top Builder AI's back-office stack. The Financial agent handles collections and cash-position reporting. The Inventory agent watches material costs. The Workforce agent tracks labor and payroll. The Booking agent handles after-hours intake. All eight run on the same ServiceTitan and QuickBooks data already in the systems a contractor is running today.
The collections data the Financial agent manages feeds directly into the cash-position report: cleared cash from QuickBooks, expected collections based on the scored aging queue, and outstanding payables from the vendor side. The combined picture is what an owner needs to answer a bank or investor question: not "what did we bill last month" but "what cash will clear this week, and what is committed to go out."
That cash-position report is the output that most fractional CFOs and CPA firms spend several hours per week building manually from QuickBooks exports. The Financial agent computes it from live data, updated on each cycle, so the number is always current rather than a week-old export.
The full back-office overview covers all eight agents and how the Financial, Inventory, Workforce, Booking, Routing, Documents, Pricebook, and Collections functions work together. The ServiceTitan-to-QuickBooks job costing guide covers the reconciliation architecture in more depth.
What does not change
A few properties of the Financial agent are non-negotiable, regardless of shop size or volume:
- No automated outreach. Every proposed contact requires a human to approve it first. The agent has no visibility into the relationship context, ongoing disputes, or scheduling issues the office team knows about.
- No fabricated figures. Every balance, every aging calculation, every margin figure comes from deterministic, tested code. The language model explains the result in plain language; it never generates or adjusts a number.
- Fully reversible. If an outreach action logs back to ServiceTitan incorrectly, or an escalation is misapplied, the prior state can be restored. The agent does not make irreversible writes.
- Dispute-aware. The agent reads associated callback tasks and dispute notes from ServiceTitan. An invoice with an unresolved dispute never enters the standard chase queue; it goes to a separate review list.
Your outstanding A/R is a solvable problem
If your aging report has invoices older than 60 days and your QuickBooks balance does not match what ServiceTitan shows as open, those are the two signals the Financial agent addresses first. Book a 30-minute fit call and we will run the reconciliation check against your actual books.
Book a fit call →