Problem
Veterans needed a safe way to send sensitive claim documents. Email attachments weren't acceptable.
Each veteran's file had to be visible only to that veteran and the staff allowed to see it.
The portal couldn't suggest any link to the VA or promise an outcome.
What I built
- A portal where veterans sign in, upload claim documents and read resource articles, with an admin center for staff.
- A HighLevel webhook that creates the portal account, a Google Drive folder and the matching CRM fields for each new client. It replaced an earlier Make scenario with direct API calls, and it's safe to run twice.
- Role-based access (super admin, admin, veteran) and CSRF protection, so the portal runs safely inside the CRM.
- Uploads that go straight to cloud storage. That gets past the hosting platform's 4.5 MB request limit and allows files up to 100 MB.
- An in-app help center for veterans and staff.
Stack
- Next.js
- Vercel
- Vercel Blob
- Google Drive API
- HighLevel webhooks
Outcomes
- Onboarding runs from the CRM with no manual setup, and it's safe to run twice.
- Claim files up to 100 MB upload straight to cloud storage.
- Each veteran sees only their own documents, and staff access follows their role.