When the estimate is ready, send it. The customer gets a text (and email, if you have one on file): "Hi Sarah, your estimate for the 2019 Honda CR-V ($842.50) is ready. Review and approve: [link]." The email also carries the estimate as a PDF attachment, so customers who file paperwork have their copy without clicking anything. If the customer has texted STOP, the quote still goes out by email and the send confirms with a note saying so. When a new estimate replaces one the customer already saw (you voided and rebuilt it), the message says it was updated with the new total instead of announcing a fresh estimate.
Send for approval opens the Send quote sheet. Jobs on the left, one card each with a checkbox: ticked jobs go on the quote, unticked ones stay on the repair order (the header counts them, "1 of 3 included", with Select all beside it). Open a card and you see what the customer will read: the description with Edit description, and on diagnosis jobs Show full explanation to edit every sentence of the writeup (Possible cause, If delayed, Driving) or remove the writeup for that job. Under it, the job's lines as a table: item, quantity or hours, price or rate, a per-line Discount cell, and the amount (the discounted price, with the list price struck through under it). The Discount cell is always editable: + Add on a line with no discount, the deal already on the line, or a job discount's share shown muted. Changing a covered cell gives that line its own deal while the others keep the job's; setting it back to zero returns the line to the job's discount. Quantities, prices, descriptions, and line discounts edit right there and the totals follow. The rail on the right is the same one the invoice uses: Send to with a Text and an Email checkbox (the phone or address under each, and the reason when one cannot be used, such as texting off for this shop or no email on file), the Message the customer receives, which you can rewrite for this send (the review link is added automatically at the end, shown as a fixed [link] chip, so a message that contains a link or the word [link] will not send), Attachments with + Add file, and the Quote summary ladder: parts, labor, charges, Discount with Add or Edit, Shop supplies with Edit, Tax with Details (rate, whether labor is taxed, tax-exempt customer), then the quote total. The footer states the fact ("2 jobs included · Sending by text and email") and holds Record customer approval and Send for approval. The draft builds itself in the background while you work the jobs, and the AI-written customer descriptions fill in moments later (your own edits always win). Once a quote is out, the Sent quote link in the money rail opens the same sheet for it: each job wears Approved, Declined, or Awaiting instead of a checkbox, prices are the frozen ones the customer sees, and the footer offers Send reminder and Record customer approval; Void quote sits in the sheet's menu. The sheet is where you fix anything before sending: line items, discounts, or a flat shop-supplies charge (taxed with the sale, like your environmental fee). Discounts live in one place: tap Add discount under the totals and answer two questions. First, where it applies: the whole quote (approved work already sold on the bill is never touched) or a single job ("$50 off the brake job"). Then, what within it: everything, labor only, or parts only — so "10% off labor" never eats your parts margin, whether it covers the whole quote or just the brake job. The invoice's Discount row opens this same form, so discounting a bill works exactly like discounting a quote. Single items discount right in the job's line grid: a quiet Discount action on each part and labor row takes a percent or dollar amount, shows the savings on the row, and stays put — the job-level discount machinery never overwrites a discount you set on a specific item, and the customer sees that item's original price struck through. Every discount can carry a reason that prints on the customer's copy: whole-quote, labor, parts, and single-job discounts alike ("Military 10%" on just the brake job). Discounts your shop gives often ("Military 10%", "First visit $25") can be saved as presets in Settings, Pricing & invoicing — they appear at the top of the picker on every quote and draft invoice, apply with one tap, and print their name as the reason. Each active discount shows as its own row with the dollars off and a quick remove. A quote-wide discount lands ON the jobs: every job gets the same discount (a dollar amount splits across jobs by their size), so the savings show inline on each line instead of hiding in the totals — and you can still change any single line while the rest keep the discount. Applying a new quote-wide discount replaces the previous one; discounts you set on specific items are never touched. Picking a job that already has a discount edits that one rather than doubling it. The customer sees a discounted item's original price struck through next to the new one, and the other items stay full price. Set automatic shop supplies in Settings, Pricing & invoicing. They pre-fill only when the new quote includes priced parts—not labor-only work or standalone charges. When you approve only labor from a new mixed quote, automatic supplies stay with the parts-bearing jobs. An amount you explicitly set remains a quote-wide fee; the review screen still lets you adjust or remove it per quote, and the Shop supplies line in the vehicle page's money rail opens the same edit without leaving the page. The Environmental fee line works the same way: tap Edit to set a flat amount or remove it for this quote only — your shop pricing settings never change. Either edit sticks: the amount you quoted (including a removed fee) is the amount that lands on the invoice when the customer approves, and it stays put through later invoice updates. Supplies are charged once per visit: a follow-up quote in the same visit only pre-fills whatever room is left under your cap (nothing, if an earlier quote already hit it), and the bill collects the combined amount exactly once.
The quote flips to sent the moment the link is live. The text and email go out right behind it, and a delivery that fails is retried automatically. The vehicle page's quote card tells the truth about that delivery as it happens: Sending by text and email while the messages are going out, then just Quote sent for approval with when it was sent and whether it has been opened once a channel reached the customer, and if nothing got through the card turns orange, reads Quote not delivered with the reason in plain words (the number could not receive texts, email bounced before, no email address on file), and offers Resend plus Send by email instead when the other channel is on file. The card updates on its own, no reload. The same lines appear at the top of the sent quote's sheet.
Approve also lives on each pending job card and on every charge row, and it approves just that job — record the customer's counter OK for one repair, or your own call for shop-side money like a sublet or tow, while the rest of the ticket keeps waiting on the customer. The confirm lists every job with its price — untick any the customer didn't say yes to and only the ticked ones are approved — and records how the OK came in (in person, phone, or text) plus who gave it, alongside the signed-in advisor it already stamps. That record lives on the approval for good. Send and Record customer approval wait for every report, part, labor, discount, and shop-supplies edit to finish saving. If an edit cannot save, the quote stays a draft and shows the error instead of sending older text or totals.
Only one sent quote can stay active for the same jobs. To send revised scope after a quote already went out, void the active quote from the vehicle first, then review and send the new draft. This prevents two live approval links or two send notifications for the same work. On mobile, tapping the sent job in the send sheet's job picker does this in one step: it confirms, cancels the quote the customer has, and folds the job into the new quote so you send one combined link. Opening a sent quote or a sent invoice in the mobile preview also offers a void link on that exact document, so mixed repair orders with several quotes are never stuck.
A send is recorded before text or email delivery begins. If a provider is temporarily unavailable, CarSignal keeps the unfinished channel queued and retries it; sending the same quote again resumes that delivery without recreating the quote or repeating a channel that already succeeded. A corrected phone number or email is picked up on the retry.
When delivery fails outright, the error says which channel failed and why: an invalid phone number, an email address that has bounced before, or a customer who marked earlier emails as spam. The quote is still saved. On web the quote card in the money rail carries the same fact and the Resend door; on mobile, the vehicle's next-step card switches to Quote not delivered with a resend button. Fix the contact info on the client, then resend.
If the job came from a Quick Estimate or an accepted diagnosis, the first quote keeps the tax and fees the estimate was priced with — the number the customer already heard. When your Settings have changed since then, the review screen says so and offers the choice: keep the estimate's pricing, or reprice with your current settings.
The readiness gate
Complaint-based quotes will not send if the diagnosis is not actually ready: still pending, no recommended repair, or confidence below 70%. That protects you from quoting guesses. You can explicitly override to send a diagnostic-only quote, and maintenance work skips the gate entirely.
Estimate-built jobs have a second check. A quote stays in draft while an estimate is still building, after a draft failure, or while a required part still needs a real price. Finish or retry the estimate and price every required part, then refresh the quote. Empty jobs that are not on the quote do not hold up other ready work. The same check runs when you send or use Record customer approval, on web and mobile.
The customer report
On send, CarSignal writes a customer-facing report for each issue: a plain-English headline, what is wrong, what caused it, how the shop knows, what happens if it waits, an urgency badge, and a clear can-I-keep-driving answer. The language automatically stays only as confident as the diagnosis actually is. Every section is editable per repair on the review screen, and a section you blank stays blank on the customer's page and PDF — useful when the work is already done and "if not fixed" no longer applies. Jobs where a narrative is just filler can drop it entirely: Remove writeup for this job under the report leaves the customer with the title, line items, and prices, and it stays off even as the job changes — restore it any time from the same spot.
What happens in the app
The Send quote sheet's Attachments row lists the vehicle library files; tick the ones that should ride this quote (photos, authorization forms). They print as exhibit pages in the PDF and appear at the bottom of the customer's approval page. Nothing is attached unless you tick it. Files added anywhere on the vehicle page appear here immediately, even while still uploading; they become tickable as soon as the upload finishes.
- The quote is snapshotted: line items, tax, fees, discounts, and totals are locked so what the customer approved never drifts.
- A draft keeps the tax and fees its jobs were estimated with. If you changed those Settings since, the Send quote window says exactly what differs (for example "environmental fee off → $30") with a Use current Settings link that reprices the draft before you send.
- The customer copy prints each part's number unless Part numbers on customer documents is off in Settings; your own screens keep the numbers either way. The Part numbers row under Attachments in the Send quote window flips it for this one quote, and the invoice built from it follows.
- The vehicle moves to Waiting approval and its next action becomes Waiting on customer.
- Re-sending the same quote reuses the existing link instead of spamming the customer with new ones.
Printing a quote at the counter
Customer standing in front of you? Tap Print at the top of the quote (open it with View customer link on the vehicle or issue page), or on a draft, at the top of the review screen — so you can show or hand over the estimate before anything is sent, then record the yes with Record customer approval. Print takes you straight to the print dialog — a small window opens with the estimate document (shop letterhead, each job with its description, parts with part numbers, labor, the totals ladder, a customer signature block on unanswered estimates, and the estimate terms), prints, and closes itself. Choose Save as PDF in the dialog for a file. Customers on their own link still get the PDF in a tab so they can keep a copy. Printing does not count as the customer viewing the quote. Customers see the same Print button on their own link, so out-of-state customers can keep a copy. Shop-side opens are read-only: the Approve and Decline buttons only appear on the customer's own link. An answered quote's PDF marks each job Approved or Declined and shows who authorized it and when.
Approval links expire after 30 days for security. If a customer sits on a quote longer than that, re-send it to give them a fresh link.
Next: What the customer sees.