Customer Portal

Token-gated customer self-service: invoices, estimates, messages, booking, surveys.

Token-gated customer self-service. There is no customer login. Access is through the unguessable token in the portal URL.

URL shape

/portal/{tenantId}/{token}

What a customer can do

  • See every job, estimate, and invoice on their account.
  • Pay an invoice through Stripe Checkout (if you've connected Stripe).
  • Approve or decline an estimate, including paying a deposit if one is set.
  • Submit, edit, or cancel a service request (with photo uploads).
  • Message you, and read your replies.
  • Book an open scheduling slot, if you've enabled booking.
  • Leave post-job feedback and complete a survey.

Token rotation

Customer detail -> Portal -> Rotate Token. Every previously shared link stops working, and new emails carry the fresh token. The portal is also rate-limited per token to shut down guessing.

Portal vs Public Booking

  • Portal is for existing customers (they have a record and a token).
  • Public Booking is for net-new leads: anonymous, no account. See Public Booking.

Plan tier

Portal is on every plan.