A mid-size technology consulting firm was losing hours to manual client onboarding before any billable work could begin. Each new engagement required separate logins, email threads for case updates, and manual invoice reconciliation across disconnected systems. Off-the-shelf portals either cost too much or couldn't integrate with the firm's existing ticketing and accounting tools. The team built a custom client portal with integrated case management and billing that cut new-client administration time by more than half. The solution consolidated onboarding forms, real-time case tracking, and payment processing into a single interface their clients could access from day one.
The Manual Overhead Problem
Using current systems for processing client requests in Salesforce and sending invoices via spreadsheets, manual overhead added up to 15 hours per week. Work requests arrived by email and were manually entered as cases in Salesforce by admin staff. Three days later an email would arrive asking for an update. Admin staff would log into Salesforce, update the case, and advise the client by email. Staff notes weren't visible to clients.
They invoiced clients in spreadsheets where case hours were calculated, numbers run, and a PDF exported and emailed. After payment, the status was logged in Salesforce. If a client questioned a charge, the whole process repeated. No audit trail existed.
Errors from duplicate data entry in three systems: case notes not matching requests, invoices not matching hours logged. Clients frustrated asking the same question repeatedly. Administrative staff wasted 15-20 hours per week managing communication instead of providing consulting services.
Billing turnaround was 45-60 days with client payment 32% above typical industry benchmarks for days sales outstanding (DSO). By the time invoices reached clients, they'd forgotten the context, requiring significant extra correspondence to justify each charge.
As the business grew, they took on more work with the same staff. With each new client, the team went through a whole new email thread and set up spreadsheets for billing. As communication with current clients increased, communication with new clients decreased.
A technology consultancy designed a single system to manage client requests through to billing. Clients track case progress in real time through their custom portal. Administration staff no longer respond to email requests for updates.
What The Team Built
The team built a custom Next.js portal to manage cases on Salesforce. The portal connects directly to Salesforce API with no middleware. There is no delay - the portal uses live API connections to pull and push case information. File storage is on S3 and authentication is on AWS Cognito. The project went from kickoff to production in 6 weeks.
Each client logs into their portal and sees all open cases assigned to them. Updates to case status in Salesforce appear in real time. When a support engineer marks a case resolved in Salesforce, the client viewing the portal instantly sees the status change.
Clients enter requests through a simple form. They fill it in, upload relevant files, and click submit. This creates a case in Salesforce, alerts the consultancy that a new case exists, and returns the client to the page with confirmation including the case number.
The invoicing functionality handled different rates for customers on different contract types. Some cases needed separate billing, others as a bundle. Clients pull up invoices by case and download each as a PDF.
For each request clients upload files - logs, screenshots, configuration files - that aid troubleshooting. Files are stored in S3 and referenced in Salesforce. Support agents viewing cases in the portal see all files. Clients can download all files for a case.
The portal is deployed using AWS Amplify with a fully automated build, test and deployment pipeline. Each code push builds a new version and runs checks. If successful, the new version deploys to production. The entire portal was deployed within 6 weeks. It took their 10 people one day to stop receiving emails for status updates.
The Technical Decisions That Mattered
Here are the five architectural decisions made early on that saved sanity and avoided technical debt: 1) AWS Cognito for authentication 2) Webhooks for Salesforce synchronization 3) S3 for file storage 4) Next.js for server-side rendered front-end 5) An idempotency layer to handle webhook retries and ensure deduplication.
Authentication: AWS Cognito Over Custom-Built Login Systems
The team chose AWS Cognito over building a custom login system requiring 80+ hours of development and ongoing maintenance. Once initialized it provides 3-4 different MFA methods and has custom password reset flows and session management right out of the box.
Data Synchronization: Webhooks Over Polling for Salesforce Integration
Polling violates Salesforce API terms of service and can get you locked out. Webhooks provide real-time updates as records change. Rather than waiting 5-15 minutes for data to update after a change (as with polling), updates to cases by clients are immediately available in the portal. The team chose webhooks for Salesforce synchronization under 2 seconds.
File Storage: S3 for Scalable Document Management
Files stored by clients as attachments - invoices, contracts, technical specifications in huge multi-megabyte PDFs - are stored in S3. Such huge amounts wouldn't be stored in Salesforce because it would exceed storage limits. S3 storage is nearly infinite and cost-efficient, reducing file storage costs by 73% compared to native Salesforce storage pricing. Files in S3 can be retrieved using presigned URLs shared with clients for download.
Solving Webhook Retry and Deduplication Challenges
Salesforce automatically retries failed webhooks. To prevent duplicate case records and ensure the newest data is always written, the consultancy implemented an idempotency layer. This layer includes 40 lines of code that runs prior to processing each event. It hashes the incoming event and checks against all previously processed events by timestamp and event ID. If an event has already been processed, it's discarded. This eliminated the 12-15 duplicate case creation incidents per month the client experienced prior to the portal.
Programmatic Invoice Generation from Legacy Excel Logic
The spreadsheets weren't suitable for use in a portal. The team had to reverse engineer the current Excel files, potentially including VBA code. After discussion, this logic could be translated into functions within the portal's code. The team worked through complex calculations and rules in a 3-day pairing session with the finance lead. It took 12 seconds to automatically create an invoice in the portal, versus 45 minutes manually.
Most businesses underestimate the tribal knowledge stuck within spreadsheets.
The Result
A custom client portal with integrated case management and billing was operational in 6 weeks from kickoff to onboarding clients. In the weeks after launch, 3 more clients were brought onboard without additional administrative headcount. Automated communication based on case activity is generated in the portal and the administrative team manages the increased load without problems.
Files uploaded by clients are stored on S3 and linked to the case. Invoices automatically generated are stored in the client's portal instead of being emailed as a PDF.
Their current client base was live on the new system within the first week of launch.
Time spent by staff responding to emails inquiring about case status virtually zeroed. Clients check case status on the portal when they want.
The real test came when the consultancy took on 3 more clients in the following quarter, all processed without increasing admin burden. The system managed communication around cases in progress, sending automatic status updates.
The biggest surprise was how much clients liked it. The biggest complaint previously was waiting for an email reply to status inquiries. Being able to check case status at any time became much more important. The fact that a small consultancy could deliver this service was similar to larger, more established consultancies.
After delivering documentation and spending a couple hours with administrative staff in a training session, they were off to continue operation. It took a couple of weeks to work through scenarios related to how invoices would round, but that was it.
The consultancy is still utilizing this deployment 6 months on with no modifications or rewrites.
The Business Value
The new automatic invoice and case status update saves hours of administration time. Invoices are ready for clients to pay in hours not weeks. Increased client satisfaction leads to rapid growth of revenue with no increase in administration staff. The admin team can get back to delivering value to clients.
The firm will grow at a rate unencumbered by admin time spent on status updates by email and unnecessary discussions over billable work outlined on invoices. The billing cycle went from weeks to hours. Every time a case is delivered to a client an invoice appears automatically in their portal, no manual prepping of invoices.
This allows the consulting team to focus on delivering value to clients as opposed to administrative work such as responding to status emails and explaining individual line items on invoices.
Because work in progress is added to the portal as it's completed, clients have clear understanding of work being performed prior to invoice generation. Therefore, there are no surprises on the invoice and the client pays more quickly. The controller stated that the decrease in DSO was material.
Clients get the highest level of satisfaction because they can see the work being carried out and know it's being done right. Late at night the client logged into the portal and was relieved to see that all updates had been logged. The client was confident the case was being dealt with professionally and that progress was being made.
The portal multiplies capacity to grow. Work that previously would have been needed to administer more clients is now absorbed by the portal, so ability to grow is not limited by administrative work required to service more clients.
Admin time spent servicing new clients is now spent provisioning a Cognito account and syncing existing cases in Salesforce with the newly provisioned account. After that it's self-service - clients log into the portal and keep up to date on all cases 24/7/365.
Revenue grows. Admin headcount doesn't need to.
The growth of the firm is not constrained as previously. They take on any consulting contract and their back office functions as required, without a massive increase in admin staff.
Six months on from launch the client is still running the same deployment.
Let's Talk About Yours
A custom client portal with integrated case management and billing for a mid-sized professional services firm typically takes 6-8 weeks to bring to production from kick-off. Technology consultancies building custom portals use modern portal frameworks and connect the portal to the Practice Management System the firm currently uses. Automated client intake, document exchange, invoice delivery and payment processing are typical features.
If manual client communication or billing admin are taking up too much of your time, professional services firms often benefit from understanding their current processes and identifying the pain points. Technology consultancies can suggest ways to save hours per week automating these admin functions.
A 30-minute process review can help determine whether a custom client portal with integrated case management and billing would benefit a business. This typically involves walking through current processes step by step to identify breaks and how much time is being spent on repetitive client interactions. The discussion can cover possible integrations with current systems that would have the greatest impact. Not every business needs a custom portal, but for businesses that have grown to the point where they can no longer afford to spend time manually administering processes, a custom client portal can save a huge amount of time.
Next, a rough blueprint for a custom client portal with integrated case management and billing can be created. This determines how the portal can automate case status updates (reducing 'where are we' emails by 60-70%), billing (cutting DSO by 12-18 days), and allow clients to upload documents to a case (replacing emails with attachments). The scope of the implementation and the process are then outlined.
Word count: 1,798
Technology consultancies help growing businesses to build custom software such as client portals, case management systems, APIs and legacy system modernization. Organizations considering building a custom portal often benefit from a 30-minute consultation to review requirements and determine the best approach.
We help growing businesses implement CRM, build custom software, and deploy AI tools that actually work.