Skip to content

Customer Portal

Business or higher Web App

The Customer Portal is a branded, read-only space where your customers can see the bids you’ve sent them, sign them digitally, approve change orders, and follow the progress of their active projects — without needing to email PDFs back and forth. Every action is logged for audit.

Customer Portal is a Business plan feature (and Business Plus). Owner and Manager roles can invite customers.

When a customer signs in at /portal, they land on a dashboard showing their company name (“Welcome, Jane — Acme Excavation Proposals”) and four quick-action cards:

  • Shared Bids — proposals you’ve sent them. They can review the line items, download attached documents, and sign to accept.
  • Active Projects — jobs currently in progress, with progress tracking, recent updates, and the assigned project manager’s contact info.
  • Contracts — signed bids stored as verifiable contracts. Each comes with a signature certificate.
  • Change Orders — pending scope changes awaiting their approval.

The portal is responsive; customers can use it on phone, tablet, or desktop.

  1. You invite them from the customer record.
  2. They receive an email with a pre-filled login link.
  3. Clicking the link sends them a one-time code to their email.
  4. They click that code and they’re in. The session persists so they don’t have to do this every visit.
  1. Go to Resources → Customers in the web app.
  2. Find the customer you want to invite. Click their row or the Invite button.
  3. In the invite dialog:
    • Contact name and Contact email pre-fill from the customer record. Adjust if the person you want to invite is different from the primary contact.
    • Review and Send Invite.
  4. The customer’s invitationStatus flips from noneinvited.
  5. They get an email from you (sender: your company) with a branded invitation and the magic-link button.
  6. When they first sign in, their status becomes accepted.

Once accepted, they can see every bid, project, and change order you’ve explicitly shared with them — nothing more.

Inviting doesn’t automatically share anything. You share each resource separately so customers see only what they should.

To share a bid:

  • Open the bid detail page.
  • Click Share with customer (only visible if the customer has invitationStatus === 'accepted').
  • Pick an access level:
    • View — read-only, no actions.
    • Comment — read + leave comments.
    • Approve — full, including electronic signature / acceptance.
  • The customer sees the bid in their Shared Bids list next time they log in.

Projects share via the project detail page. Open the project, look for Sharing Status in the Project Status card, and click Share with customer next to the badge. The same row shows Stop sharing once the project is shared, so you can revoke access without leaving the page (the project list also shows the live sharing state in the Sharing column at a glance).

Once a project is Completed and shared, the share is locked on purpose — customers keep their historical view of the finished job.

Change orders share the same way via the project detail page.

Every share action is recorded with timestamp, sharer, and customer ID, so you always know who saw what and when.

Things the customer can do from the portal:

  • Accept a bid — digital signature (typed or handwritten on touchscreen). Once signed, the bid becomes a contract in the Contracts list, and the app automatically creates a Project for the accepted scope.
  • Reject a bid — with an optional reason.
  • View and download bid documents — specs, plans, attachments. Views are tracked (you see “customer opened the document” in the activity log).
  • Approve or reject change orders — with optional reason. Your team gets a notification on either action.
  • Download signed contracts — complete with signature certificate and verification details.

Every signed contract has a verifiable signature certificate capturing:

  • The customer’s name and email at time of signing.
  • A cryptographic hash of the document they saw.
  • Their IP address and device info.
  • Timestamp.

If anyone ever disputes the contract, you can verify the signature through the signatures verification endpoint — the record proves what was signed, by whom, and when.

The customer record tracks three invitation states:

  • none — default, not yet invited.
  • invited — invitation sent, awaiting their first login.
  • accepted — they’ve signed in at least once. Only customers in this state can have resources shared with them.

You can see the status in the customer list and on individual customer cards.

The portal shows your company name and (if uploaded) logo throughout. Invitation emails include your company name in the subject and sender. Customers see it as an extension of your business, not a generic Excavation Expert portal.

If you’re on the Free plan (no portal access), the Invite button is hidden and an upgrade prompt appears. Upgrading to Business unlocks:

  • Customer Portal sharing
  • Electronic bid acceptance + signatures
  • Change order approval flows
  • Project sharing with progress tracking

See Plans & Pricing for the full comparison.