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