-
Notifications
You must be signed in to change notification settings - Fork 0
Customer Portal
Doug edited this page Aug 8, 2026
·
2 revisions
A white-label, customer-facing surface: your customers see their jobs, estimates, and invoices, and pay online — without needing an account password.
- View jobs — status and upcoming visit dates.
- Estimates — view, then accept or decline.
- Invoices — view history and pay online (Stripe Checkout; saved payment methods and ACH with micro-deposit verification are supported in the portal).
- Book service — the public booking form captures name, phone, service, and a preferred date/slot; availability is checked so approved slots don't double-book. Approving a request creates the job.
- Messages / contact — request a callback or send a message.
Magic links — a customer enters their email, receives a one-hour login link, and clicking it starts a portal session (httpOnly cookie; short-lived JWTs). No password required.
Password login — customers who prefer a password can set one and sign in with email + password from then on, with a remember-me option. Magic links keep working either way.
Individual estimates and invoices can also be shared by public link (a long unguessable token, expiring after a configurable window — default 90 days) with no login at all.
- Enable the customer_portal module; portal users are tied to customer records.
- Set
CUSTOMER_PORTAL_BASE_URLso magic-link emails point at the right host, and make sure email sending is configured — login links arrive by email. - Online payment needs Stripe configured.
- Landing leads — marketing-site form submissions (with UTM tracking) land in a triage list (see Sales & Estimating).
- Instant estimate — a public "describe your job, get a ballpark" endpoint that parses the description and prices it from your catalogs (AI-assisted when a local LLM is configured).