PDAM Customer Complaint

A complaint desk for water customers, where every report has to end with photo proof of the fix.

A burst pipe or a day without water used to mean calling the office and hoping the message reached a technician. Now customers file the complaint themselves, choose what's wrong, and follow its progress from their own account.

Admins take it from there: assign a technician, schedule the visit, and close the loop with evidence photos. Leads can see everything but change nothing, which gives management oversight without adding another pair of hands to the data.

Results

−45%

Average time to resolve a complaint

100%

Resolved complaints backed by photo proof

500+

Complaints handled

Pending  →  In  Progress  →  Resolved

A complaint starts as Pending, the only stage where the customer can still cancel it. Assigning a technician and a date moves it to In Progress.

It can only be marked Resolved once at least one evidence photo is uploaded. Photos are compressed in the browser before upload and stored on Cloudinary, so a technician on a weak connection isn't stuck waiting.

What  customers  can  report

  • Pipe leak
  • No water flow
  • Murky water
  • Low pressure
  • Burst pipe
  • Broken meter
  • Other

Behind  the  counter

Technicians without logins

Technicians are managed records rather than accounts, so field staff never need a password.

Paper when it's needed

Printable complaint sheets for the field, and Excel import to bring existing customers on board.

Built  with

  • Next.js 16
  • Prisma
  • PostgreSQL
  • Clerk
  • Cloudinary
  • SheetJS
  • Recharts

Related  Work