Stripe logo

Draft an invoice from every quote request

Every quote request finds or creates the client in Stripe, adds an invoice item for the scope, and leaves a draft invoice to review.

When this happens

New submission on your "Request a quote" form

Do this

Find or create the customer, add an invoice item, then create a draft invoice in Stripe

One-directional. A submission triggers the action — nothing is written back into your form.

Quote requests arrive carrying almost everything an invoice needs — who is asking, what they want, roughly what they expect to spend — and then get retyped into Stripe by hand a week later.

Consultancies and agencies use this to close that gap. The Zap finds or creates the client, attaches an invoice item for the scope, and leaves a draft sitting in Stripe. Nothing goes out on its own: finance opens the draft, corrects the figure once the scope is agreed, and presses send.

Setting it up

  1. 1

    Publish your quote request form with Email Address required. It is the only value the Stripe customer search can match on, so a missing email means a duplicate client record every time.

  2. 2

    In Zapier, set up the formformform trigger on New Submission, select the quote form, and load a real submission — the amount handling in the later steps needs live sample text to test against.

  3. 3

    Add Stripe's Find or Create Customer action and search on Email Address. On the create side, map Full Name to Name and Company or Organization to Description so a new client record is recognisable in the Customers list.

  4. 4

    Insert a Zapier Formatter step between the customer and the invoice item. Estimated Budget arrives as text such as "£4,000": strip the symbol and commas, then multiply by 100, because Stripe takes amounts in the smallest currency unit as a whole number.

  5. 5

    Add Create Invoice Item, point Customer at the ID returned by the find-or-create step, use Service Type as the description and the Formatter output as the amount.

  6. 6

    Add Create Invoice against the same customer and leave it as a draft. Do not add a finalise or send step — the whole point is that a human reads the scope before the client sees a figure.

  7. 7

    Map Project Description into the invoice memo so the person reviewing the draft can see what was actually asked for without opening the responses list.

  8. 8

    Test with one quote, open Invoices then Drafts in Stripe, confirm the line item and its amount, then turn the Zap on.

What maps where

Using the Quote Request Form as the starting point. These are its real fields — swap in your own and the mapping works the same way.

Form fieldStripe
Email AddressSearch key for Find or Create Customer in Stripe
Full NameName on the Stripe customer when one has to be created
Company or OrganizationDescription on the Stripe customer
Service TypeDescription on the invoice item
Estimated BudgetAmount on the invoice item, converted to the smallest currency unit
Project DescriptionMemo on the draft invoice

Variations worth knowing

Set the due date from the timeline they gave

Feed Project Timeline through a Zapier Formatter lookup table that turns each answer into a number of days, then map the result to Days Until Due on the Create Invoice step. A rush job drafts with a short window, a next-quarter project drafts with a long one, and nobody edits dates by hand.

Keep small enquiries out of Stripe

Add a filter on Estimated Budget so only requests at or above your minimum engagement reach the invoicing steps. Below that line the submission still sits in the responses list to be answered by email, which stops your draft invoice queue filling with jobs you were never going to take.

If something isn't arriving

The invoice item step fails, or the amount is wildly wrong.

Stripe rejects anything that is not a whole number in the smallest currency unit, so "£4,000" fails and "4000" bills forty pounds. Check the Formatter is stripping the symbol and comma and multiplying by 100. If Estimated Budget is a range rather than a figure, map a zero amount and let finance set the real one.

The draft invoice is created with no lines on it.

Create Invoice sweeps up pending invoice items for that customer, so the item has to exist first and sit against the same customer ID. Check the step order, and check both steps reference the ID from the find-or-create action rather than two different lookups.

Frequently asked questions

Does the client get emailed the invoice automatically?

Not while it is a draft. Stripe only sends once someone finalises the invoice, which stays a deliberate click in the dashboard. That is why this recipe stops at the draft — the scope and the figure both need a human read before a client sees them.

Can the form take a deposit at the same time?

Yes. Add products and priced options to the form, then collect payment through secure hosted checkout with Stripe, PayPal, or Square. Payment status is tracked alongside the response.

What if the client is already in Stripe?

Find or Create Customer matches on the email you search with, so an existing client is reused and the invoice item lands on their existing record. A different email — personal instead of work — reads as a new client and creates a second customer.

Related automations

Build the form first

The automation needs somewhere to fire from. Publish a form, connect it once, and every submission from then on runs this flow.

Start free