Skip to content
All For One
Sprinklers spraying across the lawn of an Arizona home
All work
Case 05 / 08 Irrigation company

241 overwritten customer names, recovered

A broken integration between the field-service system and the accounting software overwrote customer names and imported a foreign customer list. I found every bad record and gave the office a clean way back.

Headline figure
241 verified name overwrites found and corrected
Built with
Field-service API, Accounting system data, Next.js, PocketBase
Client
Irrigation company, kept anonymous
The problem

A sync between the company's field-service software and its accounting system had gone wrong. It had overwritten real customer names and imported roughly 900 customers who did not belong to the business at all. The customer list could no longer be trusted, and neither could anything built on top of it.

The numbers

Measured on the project. Nothing rounded up, nothing projected.

01 241 verified name overwrites found and corrected
02 ~904 foreign customer records identified and removed
03 98% of customers whose real name could be recovered from the record itself
04 $86,120 of lifetime revenue history sitting on the corrupted records, protected
03

What I built

A reconcile tool. It checks each customer record against what the bad sync left intact: the email, the phone and the primary contact. For 98% of customers, the record's own primary contact recovers the real name.

The result: 241 verified name overwrites and about 904 foreign records identified. The customer count went from 2,374 down to 1,387 real customers, with no job or revenue lost along the way. $86,120 of lifetime revenue history sat on the corrupted records, and the cleanup protected it.

The field-service API only allows reading, so the fixes went to the office as clean CSV files they could apply, rather than a script quietly rewriting their system.

Inside the build

Mockups with sample data. The way the system works is real.

  1. 01 / 01The reconcile tool checks each record against what the bad sync left intact.

An open tool case with a multimeter on a workbench
Why it matters

Before you can text a customer list, call it, or bill it, it has to be right. This is the unglamorous work that every other system sits on top of.

Built with

  • Field-service API
  • Accounting system data
  • Next.js
  • PocketBase
  • CSV handoff

The client is kept anonymous. Every number on this page was measured on the project. Photos are stock and screens are mockups with sample data.