I have been working on a quote-to-invoice workflow with our users in Airtable and wanted to share the setup in case it helps others building a similar process.
The common issue is that a quote and its final invoice contain much of the same information: client details, products or services, quantities, prices, tax, and totals. Once a client accepts the quote,
manually recreating that data for an invoice creates duplicate work and can introduce errors.
Workflow overview
This is the flow I use:
- Create a Quote record in Airtable with the client, line items, totals, and related project information.
- Change the quote status to Sent.
- An automation generates a PDF quote and emails the client an e-signature link.
- The client reviews and signs the quote from that link.
- Once every signer has completed the signature, a field on the linked Invoice record updates to Accepted.
- That Invoice status change triggers a second automation that generates the invoice PDF and emails it to the client.
The result is that a signed quote becomes the trigger for invoice generation, without re-entering client information or line items.
Airtable base structure
At a minimum, the setup uses:
- A Quotes table
- An Invoices table
- A linked record between each quote and its invoice
- A Quote status field, such as Draft, Sent, Signed, or Declined
- An Invoice status field, such as Draft, Accepted, or Sent
- A line-items table or linked line-item records, if quotes and invoices can contain multiple products or services
Both the quote template and invoice template pull their data from the same Airtable base. That means the invoice can reuse the linked client, line items, pricing, and tax data already captured for the
quote.
The key automation detail
The part that connects the two documents is an action that updates a field on the linked Invoice record when all required signers complete the quote.
In this case, the logic is: when all quote signers complete the e-signature process, update the linked Invoice record's status to Accepted.
The Invoice automation watches for that status change. When it sees Accepted, it generates and sends the invoice.
In this setup, I use two TypeFlow Automations:
- Quote automation: triggered when the Quote status becomes Sent
- Invoice automation: triggered when the Invoice status becomes Accepted
Video and guide
I recorded a short video showing the full process, including signing the quote and seeing the invoice generated automatically
I also wrote up the Airtable base structure and the configuration steps here
If anyone is building a similar Airtable quote, approval, e-signature, or invoicing workflow, I am happy to answer questions about the table structure or trigger logic.
