Everything a service operations team needs
Built as a modular monolith with real tenant isolation — not a demo with the features bolted on later.
Dynamic complaint forms
Configure field labels, types, required rules, and options per tenant. Publishing a change creates a new version — historical complaints keep the fields they were created with.
Complaint master table
Server-side search, filter by status/district/product, and pagination built for real operational volume, not a client-side table that loads everything at once.
Engineer allocation
Assign or reassign an engineer with a role-checked action. Every assignment is timestamped, audited, and triggers an in-app notification to the assignee.
Activity timeline
Customer calls, part orders, site visits, and reschedules are logged as timestamped, attributed records with mandatory remarks — enforced server-side, not just in the form.
SLA engine
Response, allocation, first-visit, resolution, and feedback SLAs with configurable targets and warning thresholds. A background worker evaluates every active instance and fires warning/breach notifications exactly once.
Secure customer feedback
A cryptographically random, single-use, expiring link per completed complaint. No customer account. The link is invalid the moment it's reused or expired — safely, without leaking complaint data.
Notifications
In-app notification center with unread counts, covering assignment, SLA warnings and breaches, and feedback-link generation.
Tenant branding
Company name, logo, and primary color apply across the app, login, and the customer feedback page — with a live contrast check so branding never breaks readability.
Audit trail
Append-only log of every sensitive action — who, what, when, before/after — for user changes, role changes, SLA config, complaint transitions, and more.
Import & export
Bulk-import complaints from CSV or XLSX with row-level validation and a preview before anything is written. Export filtered complaint data as CSV.
Role-based access
Platform Admin, Tenant Admin, Manager, and Employee/Engineer roles, each with server-enforced permissions — never just hidden buttons in the UI.
Analytics
Operational dashboard, SLA overview, and an hourly employee activity matrix — built on real aggregation queries, not hardcoded numbers.