// case 01 — shipped sep 2025 · finlab
./payflow
role:
lead product designer
team:
2 pd · 6 eng · 1 pm
timeline:
jan — sep 2025
platform:
web app
$ cat ./context
the problem
invoicing was the #1 reason customers threatened to leave.
finlab’s invoicing module was a straight port of a 2016 internal tool. an 11-step wizard, three different “save” buttons, and a reconciliation view nobody could explain.
the brief >
“make invoicing something our customers stop noticing.”
22 min
time to first invoice (was 4.5 days)
−41%
invoicing support tickets within one quarter
+32%
activation (first invoice sent, w1)
68 nps
module nps (+18 vs. old tool)
$ cat ./process
research → flows → iterations
(a) research
users didn’t want more features. they wanted fewer decisions.
19 customer calls, 3,200 support tickets mined and tagged, and four afternoons shadowing bookkeepers. every “missing feature” request traced back to the same thing: too many choices per screen.
(b) flows
11 steps became 3, with smart defaults doing the rest.
(c) iterations
three rounds of testing. one sacred cow killed.
usability tests with 8 users per round. the beloved “advanced mode” toggle confused 7 of 8 — we cut it in round two and nobody asked for it back.
$ open ./solution
what shipped
reconciliation as inbox zero — match, snooze, flag. median session: 4 minutes.
receipt capture on mobile web — no app install, 78% of receipts now arrive same-day.
$ tail ./outcome
after launch
rolled out to all 40k customers over six weeks with zero rollbacks. invoicing dropped out of the churn-driver top five for the first time since tracking began.
— laura m., head of support @ finlab