Quotes with a deposit: price the job before you invoice it
A quote in Groundbase is a priced offer the customer accepts online, optionally by paying a deposit through your own Stripe. When they say yes, it becomes a draft invoice in one click with the deposit already on it.
Most jobs start with a price, not an invoice. A contractor prices the deck before anyone picks up a hammer. A photographer quotes the wedding a year out and wants something down to hold the date. The invoice comes later, and by then the customer has already said yes to a number.
That first step is where a one-person business leaks. The number goes out in an email, the yes comes back as "sounds good", the deposit arrives whenever it arrives, and the invoice is built from memory six weeks later. Quotes in Groundbase make that one path: price it, send it, get a real yes with money behind it, and turn it into the invoice without retyping a line.
It is built on the same screen as an invoice
A quote lives beside invoices under Billing. You build it the way you build an invoice: pick a contact or company you already have, add lines from your saved items, set taxes once for the document, apply a discount if there is one. The same saved item with the same price in each currency you charge in, the same billing profile filling in the customer's currency and address.
The one field a quote has that an invoice does not is valid until. It defaults to 30 days from the issue date, and you can change it.
Save it as a draft or issue it straight away. Issuing gives it a number on its own sequence, QT-0001 and so on, so quote numbers never collide with invoice numbers, and it freezes the amounts. A draft you abandon leaves no gap, because numbers are handed out at issue, not at creation. That is the same rule invoices follow, for the same reason.
The customer accepts on a page, not in a reply
Send emails the quote from your own address, or from Groundbase's address until you connect one, with a link to a hosted page. The customer reads the quote there and presses Accept. They type their name, and the quote records that name, the time, and where they accepted from.
There is also a No thanks button. A declined quote tells you so rather than going quiet, which matters more than it sounds. A quote that was declined on Tuesday is a lead you can follow up on. A quote nobody answered is a question you have to ask.
If the customer says yes on the phone or in person instead, open the quote and press Mark accepted, and note who said it. No deposit is collected that way. You record it as a payment on the invoice once you actually have it.
The deposit is paid by card, through your own Stripe
Set a deposit on the quote as a percentage or a fixed amount. With Stripe connected, accepting online means paying that deposit by card, into your Stripe account. Groundbase uses Stripe Connect with direct charges, so the money goes from your customer to you. It never passes through Groundbase, there is no payout to wait for, and Groundbase takes no fee and no percentage. Stripe's own processing rates are the only cost, billed to you by Stripe, the same way Twilio and Resend bill you for texts and campaign email.
The detail I spent the most time on: the quote only becomes accepted once Stripe confirms the payment. Someone who opens the checkout and closes the tab at the card form has not accepted anything. The quote stays open. An "accepted" quote with no deposit behind it is the kind of record that sends a contractor to buy materials for a job that never happens.
Because of that rule, a quote with a deposit on it cannot be issued until Stripe is connected. The app tells you so at issue time. The alternative is a customer looking at an Accept button that does nothing, and you hearing about it from them.
A deposit the customer paid is not refunded if you later void the quote. The app says so and asks before going ahead. The money is in your Stripe account, so returning it is something you do there.
One click to the invoice, deposit already on it
On an accepted quote, Create invoice makes a draft invoice with the same lines and totals, using your default payment terms. If the customer paid a deposit, it is already on the invoice as a payment, so the invoice shows the balance actually left to pay. No negative line for the deposit, and no wondering whether it was ever recorded. It was recorded the moment Stripe confirmed it.
The quote and the invoice link to each other. Issue the invoice when you are ready to bill the rest, and send it the normal way.
A worked example. A landscaper quotes a patio at $4,000 with a 25 percent deposit. The customer accepts online and pays $1,000 by card. Two weeks later the job is done. The landscaper opens the quote, presses Create invoice, checks the draft, and issues it. The invoice shows $4,000, a $1,000 payment against it, and $3,000 due. The customer pays that from the invoice page by card, or by bank transfer the landscaper records by hand. The receipt goes out either way.
Expiry and voiding
An open quote past its valid-until date shows as Expired, and the link stops letting the customer accept. A price you gave in March should not be accepted in September without you looking at it again. If they come back late, you can still mark it accepted by hand, or void it and raise a fresh one at today's prices.
An issued quote is voided rather than deleted, so its number stays in the sequence. The customer's link then says the quote was withdrawn.
Workflows on quote.accepted
Quotes fire three events for workflows and outbound webhooks: quote.issued, quote.accepted and quote.declined. The accepted and declined events fire whether the customer pressed the button on their link or you marked it by hand.
The one I use is "when a quote is accepted, text me and make a task to send the invoice." That is a workflow with two steps, a Send SMS step with your own number in the To field and a Create task step, and it runs for the quote's contact. A therapist might instead create a task to send the intake forms. A consultant might apply a tag that an ongoing campaign picks up for onboarding emails.
A workflow cannot create the invoice itself. You open the accepted quote and press Create invoice. That is a deliberate stop, because the moment between acceptance and invoice is usually when the scope gets one last adjustment.
The workflows guide covers triggers, conditions and steps. The help article on invoices and quotes has the complete quote section, and a Slack or Discord channel connected under Settings → Connections gets a line when a quote is accepted.
What it does not do
Being straight about the edges, because a features post that oversells costs you a trial and me a refund.
A deposit needs Stripe. There is no other online payment method for it. Without Stripe connected, you can still issue and send quotes without a deposit, and the customer can still accept online by typing their name. You collect any deposit however you collect money today and record it on the invoice.
It will not chase an unanswered quote for you. There is no quote reminder setting the way invoices have overdue reminders. If you want a follow-up when a quote has sat for a week, that is a workflow on quote.issued with a Wait step and a Send email step, and the Wait step can end the run if they replied or booked in the meantime.
The deposit is a payment, not a hold. The customer pays it when they accept, and it is recorded as a payment from that moment.
Not a proposal builder. A quote is lines, quantities, prices and taxes. It is not a multi-page document with your case studies and a cover photo. If the job needs a signed scope of work, that is a separate document for e-signature, and the quote is the priced part.
Building a quote is a desk job. Like invoices, drafting lines stays on web and desktop. Over MCP, your AI assistant can draft, issue, send and void quotes and turn an accepted one into an invoice, so "quote Dana for two sessions at the usual rate" works from Claude if you prefer that to the screen.
Where it fits
Quotes are included in the one plan, $19 a month or $199 a year, with no per-quote fee and no cut of the deposit. If you already use Groundbase for invoicing, this is the step before it, built on the same items and the same customers. If you quote from a Word template and invoice from a separate app, this removes both the template and the retyping between them.
Questions about this one? Email me directly: blog-quotes@groundbasecrm.com — I read every one.
Built by a solo dev. Try it.
Start your 14-day trial →More from the Pipeline
How to leave Groundbase
Everything you put into Groundbase comes out with one button, at any time, including after you stop paying.…
Event-driven workflows — when X happens, do Y
A Groundbase workflow starts when something happens in your CRM and does the thing itself: sends the text, …
Set up a booking link that keeps your Google Calendar free
A step-by-step setup for a Groundbase booking link that only offers the times you actually want to give awa…
Can Groundbase replace QuickBooks for invoicing? Yes, for invoicing. Not for the books.
If you pay QuickBooks Online mainly to send invoices and get paid, Groundbase does that job inside the CRM …