Skip to content
ConsultEvo

Google Sheets Price List Template: Reliable Quote Workflow

A reliable Google Sheets price list template should separate your current catalog from each client quote. Keep offerings and current prices in one controlled sheet, select items in a separate quote sheet, calculate line totals with formulas, then preserve approved prices before sending the quote as a PDF.

This approach is more dependable than allowing a live price lookup to define historical quotes. For example, a draft for two strategy sessions might select service ID SVC-014, retrieve its current price, and calculate a total. When the catalog changes later, an approved quote should retain the unit price that was actually offered.

The source article describes a workbook with tabs called Price list and Pricing table, and provides a Google Sheets copy link. The workbook could not be independently inspected because the link redirected to Google account authentication. Treat it as an unverified starting point. Check its tabs, formulas, dropdown ranges, permissions, and print settings before entering live prices.

How to use a Google Sheets price list template for client quotes

A price list is a maintained catalog of the products or services your business offers and charges. A quote is a client-specific proposal that records selected items, prices, quantities, terms, and a particular revision. A template can reduce setup work, but it does not decide your pricing rules or preserve quote history automatically.

Use the catalog as the source of current prices. Use a separate quote sheet for each client quote or revision. During drafting, a lookup can retrieve a current catalog price. Before approval, copy the unit price and currency into the quote lines as a snapshot. The approved revision, rather than the live catalog, then records what was offered.

The catalog answers what you charge now. An approved quote records what you offered a client at a particular revision.

Google Sheets supports range-based dropdowns, formulas, exact-match lookups, and printing selected cells or a current sheet. Those capabilities do not confirm that a particular copied workbook is configured correctly. Verify the actual workbook before relying on it.

Design the catalog and quote sheets before adding formulas

Decide what one row represents before building the workbook. One catalog row should represent one product or service. One quote row should represent one line item on one revision of one client quote. Use a stable identifier for lookups, not a display name that might be renamed or shared by multiple offerings.

Suggested catalog fields

  • product_id or service_id: A unique, stable key such as SVC-014.
  • display_name and description: The client-readable offering and its concise explanation.
  • unit_price and currency: Store the price as a numeric value and keep its currency explicit, such as USD.
  • effective_from and effective_to: Dates that identify the intended pricing period.
  • active: A field that indicates whether staff may select the offering for new quotes.

These are recommended fields, not fields verified in the linked workbook. Assign a catalog owner who checks that IDs are unique, keys are trimmed, prices are numeric, currencies are present, and inactive items are handled deliberately.

Google’s VLOOKUP documentation explains that VLOOKUP searches the first column of its selected range and, with exact matching, returns the first matching key. Duplicate IDs can therefore return a plausible but incorrect price. Names can also change or repeat, which is why a stable ID is a safer lookup key.

Suggested quote and line-item fields

At the quote level, record quote_id, revision_number, client_id, status, effective_date, and expiration_date. At the line level, record product_id, quantity, unit_price_snapshot, currency, and line_total.

Set rules for discounts, taxes, quantity limits, decimal quantities, and rounding before relying on totals. A formula can multiply values, but it cannot determine your tax treatment, minimum order rules, payment terms, or approval authority.

Keep a draft distinct from an approved historical offer. A draft may use current catalog values. When an authorized approver moves a revision to Approved, copy the price and currency into the quote lines and retain the revision, approval timestamp, and approver. If a catalog version is important for auditability, store that version on the quote as well.

Build the dropdowns, lookups, and line totals

  1. Create a catalog range with unique product IDs in the first column, numeric unit prices, and the other catalog fields.
  2. On a separate quote sheet, add columns for product ID, quantity, unit price, and line total. Apply a dropdown to the product ID cells using the catalog’s ID range as the source.
  3. In the dropdown’s invalid-data setting, choose Reject input when quote lines must use catalog items. A warning allows the user to keep an invalid value. Google documents both range-based dropdowns and invalid-data behavior in its dropdown instructions.
  4. Use an exact-match lookup for the draft unit price and a separate formula for the line total. The examples below assume product ID is in quote column A, quantity is in B, unit price is in C, and the catalog has IDs in column A and numeric prices in column D.
  5. Validate quantity separately. Unless your business deliberately permits another rule, require a numeric quantity greater than zero. Add a subtotal from the line totals, then apply explicit discount and tax rules.
Unit price in C7, using Catalog columns A:D:
=IF(A7="","",IFNA(VLOOKUP(A7,Catalog!$A$2:$D$500,4,FALSE),"CHECK ID"))

Line total in D7:
=IF(OR(A7="",B7=""),"",B7*C7)

Subtotal for line totals in D7:D16:
=SUM(D7:D16)

These are illustrative formulas, not formulas checked in the supplied workbook. Replace the tab name and ranges with the structure in your copy. The lookup uses FALSE for exact matching and an absolute range so it remains fixed when copied down.

Check that IDs are unique, trimmed, and in the first column of the lookup range. Ensure prices and quantities are numeric rather than text formatted to look like numbers. Google’s formulas and functions guidance supports general formula behavior, not the integrity of a particular workbook.

01Maintain the catalogThe catalog owner checks unique IDs, active status, numeric prices, currency, and effective dates.
02Prepare the draftThe quote preparer selects catalog IDs, enters permitted quantities, and checks the calculated lines and subtotal.
03Approve and preserveThe approver confirms terms and copies unit prices and currency into the quote revision as snapshots.
04Preview and sendThe sender checks the quote output, exports the intended sheet or cells, and reviews the PDF before delivery.

Turn the quote into a client-ready PDF

Before exporting, confirm the quote ID and revision, client details, effective and expiration dates, currency, line totals, subtotal, tax, discount, payment terms, and expiration language. Check page breaks and make sure hidden rows, unrelated tabs, and catalog data do not appear in the output.

  1. Open the quote sheet and choose File > Print.
  2. Choose Current sheet for a quote-specific tab or Selected cells for a defined print area.
  3. Review the print preview and page layout. Use the browser’s print dialog to save or print as a PDF.
  4. Open the resulting PDF and check the content, page breaks, totals, and visible client information before sending it.

Google’s Sheets printing instructions describe printing the current sheet, workbook, or selected cells. The browser dialog can vary. Google also documents available download formats, but the print workflow is the safer documented path for controlling quote output.

Restrict workbook and PDF access to people who need the client information. Duplicating a quote tab may suit a simple process, but verify its formulas, dropdown source, quote identifiers, named ranges, protected cells, and print settings before using it for another client. Do not assume that copying one tab always creates an isolated quote.

Automate only after the quote process is controlled

Automation should come after the manual catalog, quote ID, revision, status transition, approval owner, and PDF process are stable. A configured Google Sheets workflow may pass an approval event to an email or invoicing action, but permissions, account access, destination capabilities, required fields, and duplicate controls determine what can actually run.

Use a deliberate transition such as Draft to Reviewed to Approved rather than triggering whenever a row happens to contain the word Approved. A filter can restrict execution to the intended status change, and paths can route missing-data or exception cases. Human review must be explicitly configured. These are documented Zapier capabilities, not automatic features of the workbook. See Zapier automation design for a related implementation service.

A practical approval workflow could use the following sequence:

  1. A Google Sheets row event identifies a quote revision whose status has changed to Approved.
  2. Validation confirms that the quote ID, revision, client identifier, currency, total, tax treatment, and payment terms are present and unambiguous.
  3. A processing ledger checks a key such as Q-1042|revision-1|create-invoice and records the source event, status, completion time, destination record ID, or failure reason.
  4. A configured email or invoicing action runs only when the destination app supports the required operation and the account has permission to perform it.
  5. Missing customer matches, unresolved tax rules, failed actions, and duplicate warnings go to a named operations or finance reviewer.
Prevent duplicate actions

A search-before-create check is not concurrency-safe. Two workflow runs can both find no invoice and then create one. Prefer a destination-side unique constraint, transactional upsert, or single-writer control where supported. If those are unavailable, keep a durable processing ledger with a unique key and route conflicts to review.

Zapier currently advertises more than 9,000 apps or app connections, but that directory claim does not guarantee that a specific invoicing app supports the action, attachment, customer lookup, or idempotency control you need. Verify the exact destination action and permissions before building around it. Filters are plan-dependent according to current Zapier documentation, and paths and review steps require configuration.

Use AI only for bounded drafting or classification

AI can help turn an unstructured request into candidate catalog IDs and quantities, preserve source wording, or draft client-facing text. It should not set prices, calculate tax, approve a quote, overwrite the catalog, or create an invoice without deterministic checks.

For example, a form submission could produce a structured draft like this:

{
  "source_submission_id": "SUB-8831",
  "catalog_version": "2026-11",
  "line_items": [
    {
      "proposed_product_id": "SVC-014",
      "quantity": 2,
      "source_text": "Two strategy sessions",
      "confidence": 0.96,
      "ambiguity_reason": null,
      "requires_review": false
    }
  ]
}

This is a proposed design pattern, not an official Google, Zapier, or AI-provider template. Validate every proposed ID against the active catalog, calculate price deterministically, check quantities and duplicate lines, and preserve the source submission ID and catalog version. Unknown products, unclear quantities, conflicting requests, and low-confidence matches should go to a quote preparer.

A source submission is not the same grain as a quote, quote line, workflow event, or AI run. Keep a unique submission ID for the raw request, a quote ID plus revision number for the business document, a line key such as quote ID plus revision plus line number for each line, and a separate workflow event or run ID for retries. If multiple AI runs are retained, add an AI run ID or deterministic request hash rather than reusing the quote ID.

For invoice or email actions, retain a processing record keyed by quote ID, revision number, and action type. Store the source event ID, first-seen time, completion time, destination record ID, status, and error reason. A prior search alone is not enough when concurrent runs are possible. If you are designing bounded classification or review workflows, see AI agent design.

A short launch check before using the sheet with clients

Test the manual quote and PDF process first. If those tests pass, enable downstream automation separately and assign an owner for failed, held, and duplicate runs. Keep the catalog as the source of truth for current prices and each approved quote revision as the source of truth for what was offered.

Test before rollout
  • Use a valid ID, an unknown ID, and a duplicate catalog ID. Confirm invalid entries are rejected and duplicate keys are resolved before live use.
  • Test blank, nonnumeric, zero, negative, and decimal quantities against the written quantity policy.
  • Approve a quote, change the catalog price, and confirm the approved unit-price and currency snapshots remain unchanged.
  • Export a multi-line quote and verify that the PDF includes the intended quote but not the catalog, unrelated tabs, hidden rows, or extra client data.
  • If automation is enabled, repeat an approval event and test a missing client identifier, a failed destination action, a concurrent run, and the named owner for review.

A Google Sheets price list template is useful when it supports a controlled catalog-to-quote process: unique IDs, validated calculations, revision-specific price snapshots, deliberate PDF scope, and reviewable downstream actions. Add automation only when those records are stable enough to serve as reliable inputs.