Back
Product Design · Product Lead

Invoices: billing built into the field-service workflow

TLDR: Service businesses had to leave Menaia to invoice and chase payment. I designed a first-party billing system, built on a ledger, that laid the foundation for payments.

Invoices list page with financial summary cards: Project Value, Not Invoiced, Collected, Due, and Overdue
The Problem

Menaia took a service business from first lead to finished job, but stopped short at the one step that pays the bills: invoicing.

Businesses had to leave Menaia entirely, dropping into QuickBooks, a spreadsheet, or paper to bill and chase payment.

Skip straight to the shipped design
Goals & Opportunity

If billing lived inside Menaia, it could become the source of truth for the money side of the business too, not just the operational side.

Research

Before sketching a single invoice, I wanted to see how these businesses actually bill today.

I ran sessions with office managers, bookkeepers, and accountants, the people who send invoices and chase payment every week, watching them work in QuickBooks, spreadsheets, and paper.

Video call screenshot of a Google Sheet crew work schedule, tracking crew hours, budgets, and collection amounts by hand, alongside Evelyn's live reaction My live reaction after an Operations Manager shared their spreadsheet of daily cost tracking: there were a lot of opportunities for improvement!
Competitive Analysis

I looked at the main competitors in the field service landscape to see how they handled invoicing, and where Menaia could land.

Two Paths

That research surfaced a real gap: SMB teams needed to move fast, enterprise teams needed a far more thorough process.

From Scratch

Smaller teams needed a quick invoice on the spot: a blank invoice, a few line items, send.

Pull from Estimate

Enterprise customers ran a stricter process: proposal signed, invoice generated straight from those exact line items. No re-keying, no mismatch.

User Flow

Both paths, mapped from the first click through to paid.

< 100% ≥ 100% Client Invoices Create New Invoice Create New From Scratch Pull from Estimate Save Changes Invoice · Draft Send Invoice Invoice · Open Record Payment Invoice · Partially Paid Invoice · Paid
Either entry point opens the same create flow. From there, an invoice moves from Draft to Open, then to Partially Paid or Paid.
Iteration

The pull-from-estimate flow raised a harder question: how much should someone be able to edit, and where does the source of truth live?

Early versions buried the connection to the signed estimate behind a generic breakdown and placeholder line items. I iterated toward a simpler summary that kept the real line items front and center, linked directly to the source proposal.

Left: an early pass with a fuller breakdown, work that eventually spun into its own feature outside the invoice flow. Right: the simplified version, with real pulled items linked to the signed proposal, but locked down completely.
User Testing

After each round, I put the designs back in front of the same office managers and accountants from research.

Testing showed that even a thorough, locked-down process hit edge cases it didn't account for. Being too rigid just pushed enterprise teams back to workarounds outside Menaia.

Each became a deliberate exception, not a loophole: the thorough default stayed, with just enough flexibility for edge cases that were routine for them, if rare in the data.

Shipped Design

Phase 1 shipped the core invoicing features: creation, payments, visibility, plus a settings area for custom automations.

Create Invoice modal, step 2 of 2: choose to import items from a previously created estimate, or create a new invoice from scratch
Invoice creation

Build a custom invoice on the fly, or import one straight from a signed proposal, the two paths in one clean step.

Invoice detail screen on desktop: line items, payment terms, due date, and a disclaimer before sending to the client
Customize before sending

Adjust line items, net terms, and taxes, then preview exactly what the client will see before it goes out.

Financial summary screen on desktop: Project Value, Not Invoiced, Collected, Due, and Overdue cards
Financial summary & balances

Easily track how much has been invoiced and what is outstanding or overdue.

Record Payment modal open over a project overview, allocating a $100 payment across open invoices INV-001 and INV-002
Record a payment

Record a payment right from the project overview and allocate it across open invoices.

Invoice settings on desktop: per-branch Invoice Automations to auto-create and auto-send a deposit invoice when a proposal is signed
Settings & Automations

Each branch tailors its own invoice settings, including automations that create and send a deposit invoice the moment a proposal is signed.

Post Launch

Phase 2 brought online payments directly into Menaia, powered by Stripe Connect.

Each business is a connected account. Because statuses were already derived from transactions, Stripe webhooks slot into the same model, no rework needed.

Menaia Pay screen: total balance, payout history, and connected payments account status powered by Stripe Connect Menaia Pay: payments, payouts, and account status live natively in the app, powered by Stripe Connect.
Stuff I'm low-key proud of
Not a numbers person (allegedly) I'm not a numbers person (I dropped out of grade 12 math), but I designed a system that juggled real technical complexity under a very aggressive timeline.
Systems thinking Chose a ledger and derived-status architecture over hand-set states, eliminating a whole category of financial bugs.
Product + design ownership Authored the PRD, ran technical discovery (Stripe, QuickBooks), and designed the experience end to end.
Designing for the roadmap Made explicit, documented trade-offs so Phase 1 could stand alone yet extend cleanly into payments and accounting.