A quote request is not yet a quote. A customer describes the work they need; someone on your team checks the scope, chooses the quantities and prices, and prepares a document for review. Keeping those stages separate makes an Airtable workflow easier to understand—and reduces the chance of sending an unfinished estimate.

This tutorial builds that small workflow with a miniExtensions form and a PDF generator. A fictional studio, Northstar Design, receives a request for workshop materials. Its coordinator prepares a two-line estimate, checks the PDF, and decides when to share it. The example deliberately leaves pricing, approval, and delivery with a person rather than treating a form submission as authorization to issue a quote.

What you will build

Use three Airtable tables: Requests for the original brief, Quotes for each proposed version, and Line Items for the work included in a version. One request can have several quotes, but each quote has its own line items. That allows you to keep the original request while revising the proposed work.

The intake form writes only to Requests. Your team creates the quote and its line items in Airtable. The miniExtensions Invoice / Quote / Receipt Generator produces the PDF. An internal status records the team’s decision; it does not itself send a message or establish customer acceptance.

Prepare the base and example data

You need an Airtable base connected to miniExtensions, permission to configure that base, and access to the Form and generator in your workspace. Start in a separate practice base with fictional information. Do not connect outbound email or a scheduled run while checking the first version.

Requests

FieldAirtable typePurpose
RequestSingle line text, primary fieldA short description, such as Workshop materials
Contact nameSingle line textThe person requesting the work
EmailEmailA contact address
BriefLong textScope and quantities requested
Requested dateDate, without timeThe customer’s preferred delivery date
Review statusSingle selectNew, Needs clarification, or Ready to quote

These are suggested workflow fields, not a required miniExtensions template. Add a request for Avery at Example Studio, using [email protected], with a brief asking for workshop handouts and setup assistance. Keep any internal assessment separate from the customer’s wording.

Quotes

FieldAirtable typeConfiguration
Quote numberSingle line text, primary fieldEnter Q-1001-R1 for the sample
RequestLink to RequestsOne request per quote
Client detailsLong textExample Studio and Avery
Quote dateDate, without timeThe date of this version
Review statusSingle selectDraft, Ready for PDF, Reviewed, or Sent
PDFAttachmentGenerated document output
Generation errorLong textOptional processing feedback
Internal notesLong textScope checks and review decisions

Line Items

Create Description as the primary single-line text field, Quote as a link to Quotes with one quote per item, Unit price as a currency field with two decimal places, and Quantity as a number field. The reciprocal link on Quotes should be named Line Items.

On Quotes, add Item prices as a lookup through Line Items to Unit price, and Item quantities as a lookup through the same link to Quantity. Do not filter these two lookups differently: they need to describe the same linked rows. Use clear descriptions because the line-item primary field supplies the document’s row description.

For Q-1001-R1, create Workshop handouts at $12.50 with quantity 20, and Setup assistance at $75.00 with quantity 2. The expected line amounts are $250.00 and $150.00; the simple estimate totals $400.00. These invented prices demonstrate arithmetic, not a recommended rate.

Create a focused quote request form

In the miniExtensions dashboard, choose the workspace and base, then select Create Extension. Find Form, choose Requests, and name it Quote Request. The extension creation guide explains the dashboard flow.

Include Request, Contact name, Email, Brief, and Requested date. Leave the pricing tables, PDF field, and internal review fields out of this intake form. The customer is describing a need, not setting the team’s price or approving a document.

In the builder, select a field to open its settings; use Add element when adding an Airtable field or explanatory text. Put a short note above the brief: “Tell us what you need and your preferred date. We will review your request before preparing an estimate.” This wording sets an appropriate expectation without promising a response deadline you cannot support. See the form builder guide for the current editing controls.

Publish the configured form before testing the end-user link. Use Share → Copy URL, then open that URL in a separate browser session. Submit the fictional request and confirm a record with those values appears in Requests. Draft configuration changes do not automatically replace the published form; the sharing guide explains that distinction.

Review the request before pricing it

Have a coordinator review the brief in Airtable. For the sample, confirm whether “20 handouts” means 20 copies or 20 different designs. If information is missing, set Review status to Needs clarification and record the question internally. Do not create a customer-facing price merely because all visible form fields are filled.

Once the scope is clear, set the request to Ready to quote. Create Q-1001-R1, link it to that request, and add the two line items above. Enter client details deliberately rather than assuming that a contact’s name is a complete billing address. This walkthrough uses manual creation and review; it does not require an Airtable automation to copy records.

Configure the PDF estimate

Return to the same workspace and base in the dashboard, select Create Extension, choose Browse all extensions, and search for Invoice / Quote / Receipt Generator. Select that automation and the Quotes table, give it a descriptive name, and choose Create. Map the following fields using the generator setup guide:

  • Document Title: ESTIMATE.
  • Document Number Label: Estimate #.
  • Client Details Field: Client details.
  • Invoice Number Field: Quote number.
  • Date Field: Quote date.
  • Line Items Linked Field: Line Items.
  • Line Item Price Field: Item prices.
  • Line Item Quantity Field: Item quantities.
  • Invoice PDF Output Field: PDF.

Leave Total Amount Field empty for this example so the generator calculates the total from the lines. Optionally map Error Message Field to Generation error. Review the separator options and the Airtable currency formatting. Add company details or a logo only if they belong on the document.

The estimate uses a standard line-item document. A field called Internal notes is not automatically printed, and changing the title does not create an acceptance or signature workflow. If you require detailed terms, tax treatment, discounts, or a different layout, establish those requirements before extending this example.

Generate one sample and inspect the result

Use the automation’s Run section. Under Option 1: Process Individual Records, choose Get Link and place the supplied formula in an Airtable formula or button field on Quotes. Activate it for Q-1001-R1 only. Follow the individual-record instructions; do not copy another workspace’s generated link.

Open the resulting attachment and compare it with the source rows. Check the estimate number, client, date, descriptions, individual prices, quantities, and $400.00 total. A PDF appearing in the field is not enough: a mis-mapped quantity can still produce an orderly-looking but incorrect document.

Check Processing Behavior → Existing Data Handling before repeating a run. The overwrite documentation warns that enabling Overwrite processes records again on each run. Keep reviewed documents intact; for a changed scope, create Q-1001-R2 with its own items and empty output rather than silently replacing the first estimate.

Use a final review checklist

  • Submit a second fictional request and confirm it does not change the first request or its quote.
  • Check that both lookup fields contain two values and correspond to the intended line items.
  • Try a practice quote with a missing price. Your review process should catch it before generation or delivery; do not rely on a readable PDF as proof of valid data.
  • Change the quantity only in a new practice revision. Compare its document with the original to confirm your versioning procedure.
  • Open the published intake form without builder controls and confirm that internal notes, prices, and review statuses are not offered as customer inputs.

When the document passes review, set its status to Reviewed. Share it through your team’s established process and record Sent only after that action actually happens. None of these suggested statuses automatically sends the file, collects payment, or turns an estimate into a binding agreement.

This is a deliberately narrow starting point: collect a clear brief, retain the original request, prepare a specific version, and inspect the output. Once that works for your team, you can decide whether a customer portal or a broader sales workflow adds value. There is no need to rebuild a complete CRM just to produce a reliable first estimate.