Skip to content

Receiving and responding to quotes in the customer portal

When you send a standalone quote to a customer, they get an email with the PDF attached and a button that opens the quote in their portal. From the portal, they can accept the quote, reject it, or request changes. This guide explains what the customer sees and what happens at each step, so you can answer their questions.

For the staff side of building, sending, and converting quotes, see “Building and sending standalone quotes”.

A branded email from your garage with:

  • The quote number and total.
  • A summary of the lines (up to 5, with “and X more items…” if there are more).
  • A View Quote button that signs them in to their portal and opens the quote. They do not need a password or a separate sign-in link.
  • The PDF attached.

The button is personal to that customer and works for up to 90 days. Anyone they forward the email to is signed in to their portal too, so if they want to show the quote to someone else, suggest they send the PDF instead.

When the customer signs in to the portal, a Quotes section appears above their work orders. It lists active quotes (Sent or Viewed, not expired) with:

  • Quote number.
  • Vehicle, or “General quote” if no vehicle was set.
  • Total.
  • Expiry countdown (“Expires in 5 days”).
  • A View quote link.

The section is hidden when there are no active quotes. They see no empty state.

The quote page shows your branding and:

  • The quote number, date, and expiry.
  • The vehicle (if set) with the registration plate prominent.
  • Each line with description, qty, unit price, VAT, and line total.
  • Subtotal, VAT, and total.
  • Customer notes (if you wrote any). Internal notes are never shown.
  • A Call the garage link (sticky at the bottom on phones) with your phone number tap-to-call.
  • A Share button (uses the phone’s share menu to send a link to the PDF).
  • A Download PDF button.

The page also prints cleanly. They can press print and get a paper copy without the portal navigation.

The customer sees three buttons: Accept, Reject, and Request changes. The behaviour depends on the quote’s state.

The confirmation dialog asks them to confirm the gross amount: “Accept quote {number} for £xx.xx?”. This is a deliberate guard against accidental tap-to-accept.

After accepting:

  • The quote moves to Accepted status on your side.
  • A green banner on their portal page reads “Thanks - we’ll be in touch to book the work” with the timestamp.
  • All decision buttons are disabled.
  • You receive an email naming the customer, the quote number, and the gross amount.

The work order is not created automatically. You decide when to convert the accepted quote.

The dialog gives them an optional textarea labelled “Tell us why (optional)” capped at 500 characters.

After rejecting:

  • The quote moves to Rejected status on your side.
  • A subdued banner reads “Rejected on {date}” with the timestamp.
  • All decision buttons are disabled.
  • You receive an email with the customer’s reason if they gave one.

The dialog requires them to write a message (1-1000 characters) and confirm with “Send this to the garage?”.

After requesting changes:

  • The quote stays in its existing state (Sent or Viewed). The status does not change.
  • The decision buttons lock with a banner: “Changes requested on {date}. Decision buttons will reappear once we send you an updated quote.” There is a “Cancel my change request” link in case they want to undo and pick Accept or Reject instead.
  • You receive an email with their message.
  • The change request appears in your Quote Inbox under the Change requests section, and on the quote’s Portal activity panel.
  • The status chip “Sent” vs “Viewed”. Internally we know when they first opened the quote, but the customer always sees the human-friendly state in prose. They do not see “Viewed” as a label, only “Sent”.
  • Internal notes, even when the staff member writing them assumed they were customer-facing.
  • Any other customer’s quote, even if they share an email account.
  • The exact wording of your finance settings (prefix, expiry default).

Expired quote. The customer is shown a courtesy page with a prominent amber banner: “This quote expired on {date}.” The decision buttons are gone. The PDF, share, and call buttons remain. The page calls out your phone number prominently as the way to ask for a fresh quote.

Voided quote. A dedicated info page that says “This quote is no longer available” with tap-to-call and tap-to-email buttons. The PDF can still be downloaded.

Converted quote. A banner reads “Accepted - work order created”. Decision buttons are gone. PDF still downloadable.

Revised quote. If you create a revision and send it, a customer who clicks the link to the original quote is redirected automatically to the latest live revision. They never see the superseded version.

  • The portal silently records the first time the customer views the quote and updates the staff-side timestamp. Link-preview bots (WhatsApp, iMessage, Slack, etc.) are filtered out, so previews in chat apps do not flip the status.
  • We do not send a “quote viewed” email to staff. That signal lives in the inbox to avoid spam. Acceptances, rejections, and change requests do email the staff member who created the quote.
  • The Call / Share / Download PDF buttons are always available, even on terminal states (Accepted, Rejected, Expired, Voided). Customers can always reach you.
  • The quote PDF route works for both staff sessions and portal sessions, so customers can always download the PDF that was attached to their email.

Problem: Customer says they clicked the email button and see a “Sign in” page, or an error page. Cause: The link has expired (it lasts up to 90 days), or the email was sent before 3 September 2026, when the View Quote button did not open the quote. Fix: Click Resend on the quote so they get a working button. Or ask them to sign in with their email address; active quotes are listed on the portal home page.

Problem: Customer accepted but is now asking to change something. Cause: Acceptance is a one-way state from the customer’s perspective. They cannot un-accept. Fix: Build a new revision yourself using Duplicate on the original. Send the new quote. The original accepted quote stays in your records as historical context. When the new quote is accepted, you can convert that one to the work order.

Problem: Customer requested changes a week ago but the buttons are still locked. Cause: The change request has not been acknowledged or replaced with a revision. Fix: Acknowledge the change request from the inbox, or click Revise quote to create the new draft. Sending the revision unlocks the customer’s decision buttons (on the new quote).

Problem: Customer rejected, then changed their mind. Cause: Rejection is also one-way from the customer’s perspective. Fix: Duplicate the original quote to create a fresh draft, then Send it. The customer can accept the new one.

Problem: Customer says the share link they sent to their partner did not work. Cause: Share shares a link to the PDF, and the PDF only opens for someone signed in to that customer’s portal. Their partner sees a sign-in page instead. Fix: Ask the customer to use Download PDF and send the file itself. If their partner shares the household email address on the customer record, they can sign in with that.