Give customers a useful view of their work.
Customers can submit requests and follow progress from their own portal. Requests, supporting documents, and updates stay connected, so the view reflects the work the team is managing.
Client project · Product and operations
A customer portal and staff workspace that connect requests, documents, assignments, progress, and billing reports.
Custom software for a client
Product and workflow design · Application development
The problem
A service request involves more than an intake form. Customers need to provide documents and see progress. Staff need to know what has arrived, who is responsible, and what happens next.
I built a customer portal and staff workspace through Outermost around a common record of the work. The product connects the customer experience with the team’s queue, supporting documents, progress updates, and reporting.
Scroll across to explore the interface.
View full-size screenshot →
The work
Customers can submit requests and follow progress from their own portal. Requests, supporting documents, and updates stay connected, so the view reflects the work the team is managing.
Staff can triage, assign, and manage requests from the same underlying records. The workspace connects assignments with the documents and status information needed to carry the work forward.
Customer and staff views expose the records and actions appropriate to each user. Access checks use the customer context, signed-in identity, and permitted actions, so sharing an application does not mean sharing every record.
What it provides
The delivered application supports customer intake and visibility alongside staff assignment and follow-through. Billing summaries are brought into reporting views through a read-only import, keeping reporting available within the workspace.
The request record connects the customer’s view with the team’s responsibilities.
System architecture
Customer and staff views connect to one application, with separate services for records, documents, reporting imports, and notifications.
Customers submit requests and view progress. Staff triage, assign, and manage the work.
A containerized React application uses Auth.js and Drizzle, with an AWS application load balancer handling web traffic.
PostgreSQL stores application records, S3 stores documents, and KMS supports field encryption.
A read-only integration imports billing summaries for the reporting views.
Scheduled jobs trigger notification sweeps in the application.
Email delivers sign-in links and notifications.
Server-side checks combine customer context, identity, and permitted actions. Transactional records, documents, and imported reporting summaries have distinct storage and access responsibilities.
AWS CDK defines separate development and production stacks. The application ships as a Docker container, keeping deployment configuration and application code maintainable together.
What are you working through?
hello@outermost.us