Customer portal
A branded, white-label surface where end clients file requests, see their own form submissions, manage brand assets, and approve staging deploys.
Where it lives
The portal lives at portal.<your-agency-domain>.com/<client-slug> by default. Once you’ve connected Cloudflare we provision the subdomain for you.
Auth model
Clients log in with magic links — no passwords. Sessions are 7 days, refreshable. Per-client roles are Client Admin (everything the client can do) and Client Member (read + reply, can’t invite, can’t approve).
What clients can do
- File and reply to requests (ticket-style threads).
- See their own form submissions, scoped via row-level security.
- Upload and download brand assets — logos, fonts, brand guides.
- Approve a staging deploy for promotion to production (when gated).
- Invite their own teammates as Client Members.
What clients cannot do
- See other clients’ data. Ever. RLS at the DB layer enforces this.
- Edit env vars or DNS records.
- Access the agency dashboard.
Branding
Configurable per agency: portal subdomain, logo, accent color, footer copy. Out of the box, the word “Caddi” does not appear in the portal — only your brand and the client’s.