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 link to view 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 opens the quote in their portal.
  • The PDF attached.

If they forward the email, the link still works — but only if they have a portal session of their own. The portal will prompt them to sign in if they do not.

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 this quote button (uses the phone’s native share menu so they can forward to a partner or spouse).
  • A Download PDF button.

The page also prints cleanly — they can press print and get a paper copy without portal navigation chrome.

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 link and see a “Sign in” page. Cause: They are not signed in to their portal account, or the link was opened in a private window. Fix: Ask them to sign in to the portal first, then click the email link again.

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: Portal sessions are tied to the customer record. A spouse or business partner needs to be on the same customer record (sharing email or phone) or have their own customer account. Fix: If they share a household email or phone, the same login works for both. Otherwise, send them a copy of the PDF directly.