Docs navigation

Customer approvals by text

Customer approvals replace phone tag with a link. You text the customer a secure link to the estimate; they open it on their phone — no login, no app, no account — and approve or decline each job, and the repair order updates the moment they submit.

You send the link from the repair order itself, while it is still an Estimate.

  1. Open the repair order and scroll to its Messages panel.
  2. Click Send approval request. There is no confirmation step — the text queues immediately.
  3. Watch the delivery mark under the message bubble move from Queued to Sent to Delivered. If it reads Failed, a Retry button appears next to it.

The Messages panel on an estimate, with the approval request sent and its delivery status showing

The approval request in the repair order’s Messages panel. The bubble carries an Approval request badge, and the delivery status prints under it.

The customer receives a short text from your shop’s number: your shop name, “Your repair estimate is ready. Approve or decline here:” and the link.

If the button is disabled, the panel tells you why directly above the thread. The reasons match what the send needs:

  • The repair order must still be an Estimate. Once it is authorized, in progress, or invoiced, there is nothing left to approve.
  • The customer needs a phone number on file. Add one on the customer card and the button enables.
  • The customer must not have opted out of texting. If they replied STOP at some point, only they can restart the conversation, by texting START from the same number.

Role note: sending and resending approval requests takes an Owner or Advisor account. Technicians do not see the Messages panel on a repair order.

What the customer sees

The link opens a phone-sized page in the customer’s browser. It shows your shop’s name and letterhead details, the customer’s name and vehicle, and the estimate grouped by job — each job with its lines, prices, and subtotal. If the repair order has a digital inspection, the findings and their photos appear above the estimate, so the customer can see the worn brake pad next to the line that replaces it. See digital inspections for how those findings get onto the estimate.

The customer’s approval page on a phone, with each job as a checked row and the three action buttons at the bottom

The customer’s view. Every job starts checked (approve); unchecking a job declines just that work.

Every job starts set to approve. The customer unchecks any job they want to decline, then picks one of three actions:

  • Submit my choices — records their per-job decisions exactly as toggled.
  • Approve entire estimate — approves everything in one tap, ignoring the toggles.
  • Decline all — declines everything.

Below the jobs, the page shows the same totals the estimate carries — subtotal, tax, and any discount or fee you have set on the repair order — so the number the customer approves is the number you quoted.

Note: the link always shows the current estimate. If you edit the repair order after sending — add a job, change a price — the customer sees the updated version when they open it.

After the decision

The decision lands on the repair order immediately:

  • If the customer approves at least one job, the repair order moves from Estimate to Authorized. You can start the work.
  • If they decline everything, the repair order stays an Estimate, so you can revise it and send again.

Each job card on the estimate builder now wears its outcome: a green Approved badge or a red Declined badge.

The repair order back at Authorized, with one approved job and one declined job struck through

After a partial approval. The declined job stays on the repair order, dimmed and struck through.

Declined jobs are kept, not deleted. They stay on the repair order for the record — struck through, excluded from the total, and never included when you generate the invoice. The invoice is built from approved work only.

Tip: a declined job also becomes a recommendation on the vehicle, so it resurfaces the next time that car is in your shop. See customers and vehicles for the recommendations panel.

The decision is one-shot: once the customer submits, the link shows their recorded decision and cannot be submitted again. To give them another round, resend.

Resending

Once an approval request exists on the thread, the header button reads Resend approval request. Use it when the customer lost the text, the link expired, or the estimate changed and you want a fresh decision. Resending works while the repair order is still an Estimate — if an earlier round already approved work and moved the order to Authorized, set the status back to Estimate first (the builder header status select), then resend.

A resend does two things:

  • It mints a fresh link. The newest link is the only one that works — every earlier link stops working the moment you resend.
  • It resets every job to undecided, so the customer decides the whole current estimate again, including jobs they approved in an earlier round.

Note: approval works one round at a time. There is no way to send “just the new job” for approval — a resend always puts the full current estimate back in front of the customer.

Tips and edge cases

Tip: for a walk-in customer standing at the counter, skip the text entirely — change the repair order’s status from Estimate to Authorized yourself. Any jobs still awaiting a decision are treated as approved.

  • Links expire. An approval link works while the repair order is still an Estimate, for up to 14 days. A customer who taps an expired or replaced link sees a friendly message asking the shop for a new one — just resend.
  • The link dies when the estimate is handled. If you authorize the repair order at the counter after sending, or the customer already decided, the page tells the customer the estimate has been handled rather than letting them submit twice.
  • Replies thread back to you. If the customer texts a question instead of tapping the link, it lands in the same thread on the repair order and in the shop’s Messages inbox. Answer it and resend if you need to.
  • Watch the delivery status. A Failed mark means the text never reached the customer — retry it or check the number before assuming they are ignoring you. Delivery and failure details live in text messaging.
  • An empty estimate has nothing to approve. If the repair order has no jobs yet, the customer page says the shop is still preparing the estimate and shows no buttons. Build the estimate first — see the estimate builder.