Quotes & Invoices
Send professional quotes, convert them to bookings with one click, and track payments from start to finish with QuoteLab.
How Quotes Work
A quote is a price estimate that you send to a potential customer before they commit to a booking. Quotes are created using the same pricing engine that powers your booking widget — base prices, multipliers, add-ons, and compound conditions all apply.
Quotes can be generated in two ways:
- Automatically from the widget — When a customer fills out the booking widget and sees a price, a quote record is created in your dashboard. If they complete the booking, the quote is marked as converted.
- Manually from the dashboard — Create a quote for a customer who contacts you by phone, text, or email. Select the service, fill in dimensions, add any notes, and send it directly.
Creating a Quote
To create a quote manually, go to /dashboard/quotes and click New Quote. Fill in the following:
- Customer — Select an existing customer or enter a new name, email, and phone number. If you enter new details, a customer record is created automatically.
- Service — Choose the service the customer is asking about. The base price populates automatically.
- Dimensions — Fill in the pricing dimensions (vehicle size, property sqft, etc.). The price updates in real time as you make selections.
- Add-ons — Select any optional extras the customer requested.
- Notes — Add any details or special instructions. These appear on the quote that the customer sees.
- Expiration — Set how long the quote is valid. The default is 7 days, but you can change this to any duration.
Click Save to create the quote as a draft, or Save & Send to immediately deliver it to the customer.
Sending Quotes to Customers
When you send a quote, the customer receives an email and optional SMS with a link to a branded quote page. The page shows your business name and logo, the service details, a line-by-line price breakdown, and an Accept & Book button.
To send a quote that has been saved as a draft, open it from /dashboard/quotes and click Send to Customer. You can also resend a quote if the customer has not responded.
QuoteLab tracks whether the customer has opened the quote. If a sent quote has not been viewed after a few days, you will see a prompt: “This quote has not been viewed — send a reminder?”
Quote PDF
Every quote can be downloaded as a professional PDF. The PDF includes your business name, logo, contact information, the customer's details, service description, line-item pricing breakdown, total, and expiration date.
To download a PDF, open the quote from /dashboard/quotes and click Download PDF. The customer can also access a PDF from their quote page link.
PDFs are useful for customers who need a formal estimate for insurance claims, fleet managers who need documentation for approval, or commercial clients who require written quotes before authorizing work.
Converting a Quote to a Booking
When a customer is ready to proceed, a quote can be converted to a booking in two ways:
- Customer accepts online — The customer clicks Accept & Book on the quote page, picks a date and time, enters payment details (if required), and confirms. The quote status changes to “converted” and a booking is created automatically.
- You convert manually — Open the quote in your dashboard and click Convert to Booking. Select a date and time, confirm the details, and the booking is created. Use this when a customer accepts over the phone or in person.
The converted booking retains all pricing, dimensions, add-ons, and notes from the original quote. The quote record links to the booking for a complete audit trail.
Quote Statuses
Your quotes page at /dashboard/quotes shows quotes organized by status. You can view them as a kanban board or a filtered list.
| Status | Meaning |
|---|---|
| Pending | Draft quote that has not been sent to the customer yet. |
| Sent | Quote has been delivered to the customer via email or SMS. Waiting for their response. |
| Accepted | The customer accepted the quote. Ready to be converted to a booking. |
| Converted | The quote has been turned into a confirmed booking. |
| Expired | The quote passed its expiration date without being accepted. |
| Declined | The customer declined the quote. |
Payment Tracking
Once a quote is converted to a booking, QuoteLab tracks the full payment lifecycle. Each booking shows a clear payment status:
- Pending — No payment has been collected yet.
- Deposit paid — The customer paid the deposit at booking time. The remaining balance is due on completion.
- Paid in full — The full amount has been collected. No balance remaining.
- Refunded — A full or partial refund has been issued.
You can view all payment details on the booking page, including deposit amount, balance due, tip amount, and Stripe transaction references. For a business-wide view, check your analytics at /dashboard/analytics for revenue breakdowns, payout history, and outstanding balances.
Tips for Better Quote Conversion
- Respond quickly — Send quotes within minutes of a customer inquiry. Studies show that response time is the single biggest factor in winning local service jobs.
- Include a detailed breakdown — Customers are more likely to accept a quote when they can see exactly what they are paying for. The line-item format that QuoteLab generates helps build trust.
- Follow up — If a quote has not been viewed in a few days, send a friendly reminder. QuoteLab will prompt you when a follow-up is recommended.
- Set reasonable expiration — A 7-day expiration creates urgency without being pushy. For larger jobs, 14 days may be more appropriate.
- Use instant quote links — For common quote requests (like Instagram DMs asking for pricing), send a pre-filled booking link that takes the customer straight to a quote with their selections already made.
Need more help? Contact our support team or email [email protected].
