runbookify
← All plans
Field Service & Dispatch / Quotes, Estimates & Field Payments

Deposit & Payment-Collection Tracker: See Every Balance Due at a Glance

Turn your invoices and payment records into a live balance-and-aging view per customer, then let a coordinator approve which overdue reminders and statements actually go out — so nothing slips, and nobody gets a dunning email by accident.

BeginnerAn afternoonBuilds onNext.jsSupabaseResend
What you'll build

A web tool where you import invoices and payments, the app computes each customer's balance due and aging (30/60/90) without double-counting partial payments, a billing coordinator reviews the overdue list and approves which reminders and statements go out, the approved reminders send via Resend, and you export a clean aging report and reminder log as CSV.

Gated download

Enter your email — the plan downloads instantly and a copy lands in your inbox.

By submitting your email you'll also receive the weekly runbookify newsletter. You can unsubscribe at any time.

Before you start

  • A Supabase account (free)
  • A Vercel account (free)
  • A Resend account (free)
  • Your invoices/jobs as a CSV/sheet (amounts + due dates)
  • Your payment and deposit records as a CSV/sheet
  • Your aging buckets and deposit rules
  • Claude Code or any AI coding agent

The problem this kills

You know money is owed. You're just never sure exactly how much, by whom, or how long it's been sitting. The invoices live in one system, the deposits in another, and the partial payments are scribbled on a printout or buried in a bank export. So every Friday someone rebuilds the same fragile spreadsheet from scratch, eyeballs who's overdue, and fires off reminder emails one at a time — sometimes to a customer who paid yesterday, sometimes missing the one who's been ignoring you for ninety days.

Worse, the big jobs go out the door before the deposit clears, because nobody had a single place that said "this customer still owes a deposit, don't schedule yet." Cash that should be in the bank is instead aging quietly in a column nobody trusts. You don't need a new accounting system to fix this, and you don't need to be a developer. You need one clear collections view that does the math correctly and keeps a human in charge of who actually gets chased.

What you'll build

A simple internal web tool for tracking what's owed and collecting it cleanly. You import your invoices/jobs (with amounts and due dates) and your payment and deposit records from a sheet or CSV. The tool matches payments to invoices, computes each customer's balance due, and sorts every balance into your aging buckets (current, 30, 60, 90+) — without double-counting partial payments, because it dedupes on the invoice + payment id. It flags any big job missing its required deposit so you can hold scheduling until the deposit lands. Then it gives you a real collections view: who owes, how much, how overdue, and a drafted reminder or statement for each.

Nothing goes out automatically. A billing coordinator reviews the overdue list and approves exactly which reminders and statements send — so a customer who just paid never gets a dunning email, and the ones who need a nudge actually get one. Approved messages send via Resend, and you export a clean aging report and reminder log as CSV in the columns your accounting system expects.

What's inside the Implementation Plan

The downloadable plan is a step-by-step file you paste into an AI coding agent. It opens by interviewing you about your business — your exact aging buckets and grace periods, how you decide a deposit is required (and the dollar threshold for "big jobs"), how invoice numbers and customer codes are shaped in your data, how you handle partial payments and credits, your typical and peak invoice volumes, and the messy edge cases (overpayments, payments with no invoice number, a customer disputing a charge) — and then it tailors the data model, the balance math, and every later step to your answers. This is not a generic template; the agent reads a short spec back to you and waits for your thumbs-up before it builds anything. From there it walks the agent through the imports, the balance-and-aging engine, the deposit-required flag, the coordinator's review-and-approve screen, the Resend reminders, and the CSV exports — each step with a ready-to-copy prompt. There's also a fallback so you can build and run the whole thing today with no integration to your accounting software at all.

The governance it includes (this is the point)

This tool touches money and sends customer-facing collection messages, so it ships with the controls a billing operation needs: login so only your team can use it, row-level security so you only ever see your own organization's invoices and customers, a complete audit trail of who imported, matched, approved, and sent each reminder and when, a hard human-approval gate so no reminder or statement is ever sent until a coordinator reviews the overdue list and signs off, and duplicate guards keyed on invoice + payment id so the same payment can't be counted twice and the same reminder can't be sent twice in a run.

Who it's for

Billing coordinators, office managers, and owners at field-service and project businesses — HVAC, plumbing, electrical, contracting, landscaping, installation, and anyone who invoices jobs, takes deposits, and has to stay on top of balances due. If you can describe your aging buckets and your deposit rule, you can build this. No accounting degree and no coding required.

You've got this — start with the plan, paste the first prompt, answer the interview, and you'll have a trustworthy collections view by the end of the afternoon.

Gated download

Enter your email — the plan downloads instantly and a copy lands in your inbox.

By submitting your email you'll also receive the weekly runbookify newsletter. You can unsubscribe at any time.