Sales

How to automate quote generation

The short answer

To automate quote generation, use an LLM to read incoming quote requests and map each requested item to a SKU and unit of measure, calculate every price in code from your price book and customer-specific terms, route anything below your margin floor for approval, and generate the quote in your CRM or accounting system. The AI handles messy requests; it never sets a price.

What this automation does

A customer emails “need pricing on 40 of the 3/4 brass ball valves and 2 cases of the PTFE tape we got last time” and a correct quote goes back in minutes, not tomorrow.

  1. Receive the request. A shared quotes inbox or web form triggers the workflow. Attachments are pulled along with the body.
  2. Identify the customer. Match the sender’s email and domain to a customer record, which determines their price list, terms and tax status.
  3. Extract line items. The model returns each requested item with description, quantity, unit of measure and any part number mentioned, as structured JSON.
  4. Map to SKUs. A matching step checks the customer cross-reference table, then the catalog, then order history (“what we got last time”). Each line gets a match confidence.
  5. Price in code. For matched lines, code pulls the customer’s price, applies volume breaks and contract terms, adds freight rules and tax status, and computes margin per line and overall.
  6. Check and route. Quotes with all lines matched and margin above the floor are created ready to send. Anything with an unmatched line, a below-floor margin, or an unusual total goes to a rep or manager for approval.
  7. Create, send, track. The quote is created in the CRM or accounting system with a validity date, sent as a PDF, and a follow-up is scheduled before it expires.

When it is worth building

It pays off when quote requests arrive as free-form emails, inside sales spends much of the day keying them into a system, and slow turnaround costs you orders. In distribution and trade sales, the first accurate quote back often wins the order.

Skip it if your quotes are a few complex, engineered jobs a week; those need an estimator and possibly the proposal generation approach. If customers already order through a portal with live pricing, improve the portal instead. For freight pricing specifically, see AI freight quote automation.

Architecture

LayerWhat we useWhy
IntakeOutlook or Gmail shared inbox, web formWhere quote requests already arrive
ExtractionOpenAI’s GPT models or Claude Sonnet 5.5 with structured outputReads emails, tables and PDF attachments into line items
Item matchingCatalog plus cross-reference table in Postgres, with fuzzy and semantic searchCustomer wording rarely matches your SKU descriptions
Pricing engineCode reading the price book and customer termsDeterministic, testable, auditable prices
ApprovalsSlack or email approval with the margin breakdownManagers approve exceptions without opening the ERP
Quote recordHubSpot or Salesforce quotes, QuickBooks Online estimates, or NetSuite through its REST APIThe quote lives where orders and invoices are created
Orchestrationn8nConnects inbox, database, CRM and accounting in one flow

How to build it

  1. Export the catalog and price rules. Get SKUs, descriptions, units of measure, price lists, customer-specific pricing and volume breaks into a form code can read. Document any rule that lives only in a rep’s head.
  2. Build the cross-reference table. Seed it from past quotes and orders: customer part numbers, superseded SKUs, and common shorthand. This table improves every week the system runs.
  3. Write the extraction schema. Line items with raw text, quantity, unit and part number. Ask the model to keep the customer’s original wording alongside its interpretation.
  4. Match with confidence. Exact part number matches first, then cross-reference, then semantic search on descriptions limited to in-stock or active items. Set a threshold below which a human confirms.
  5. Write the pricing engine as tested code. Unit conversions, price lookups, breaks, freight and tax rules each get test cases from real past quotes.
  6. Set approval rules. Margin floor, maximum auto-quote total, and new-customer handling. Every approval request shows the margin math.
  7. Run alongside reps. For two to three weeks, generate quotes in parallel with the manual process and compare line by line before letting any quote send automatically.

What breaks in production

  • Unit of measure errors. “2 cases” quoted as 2 each, or a box of 12 priced per unit. Store pack sizes per SKU and convert explicitly; this is the most expensive error class.
  • Contract pricing missed. A customer with negotiated pricing gets list price and complains, or list-price customers get a contract rate. Customer matching must succeed before pricing runs.
  • Stale price book. Supplier cost increases are loaded in the ERP but not in the copy the workflow reads. Read prices live or sync on a schedule with a freshness check.
  • Superseded and discontinued SKUs. The model maps to an item you no longer sell. Restrict matching to active items and maintain supersession links.
  • Partial quotes. Eight of ten lines match and the quote goes out missing two items. Never send a partial quote without a clear note and rep review.
  • Expired quotes honored by accident. Orders arrive against quotes past their validity date. Store the validity date and check it at order entry, as the order processing guide describes.

Timeline and cost

A single inbox, one catalog and one system of record typically take two to four weeks, including the parallel run. Lumeor builds quote automation in the range of $5,000 to $12,000. Large catalogs with messy data, multiple warehouses, or ERP integrations that need partner or admin-level API setup push toward the top of the range. Running costs are model usage per request plus hosting, usually small relative to the rep time saved.

How to measure success

  • Median time from request received to quote sent
  • Share of line items matched without human correction
  • Quotes sent per inside sales rep per day
  • Margin exceptions and approval turnaround time
  • Quote-to-order conversion rate, compared with the period before

Frequently asked questions

Is this the same as a CPQ system?

It overlaps. CPQ (configure, price, quote) software handles complex product configuration and approval inside the CRM, and is the right choice for configurable products with many dependent options. This automation focuses on the front end, turning messy emailed requests into a priced quote fast, and can feed a CPQ or the CRM's native quote object.

Can AI read requests with customer part numbers or old catalog numbers?

Yes, with help. The workflow keeps a cross-reference table of customer part numbers, superseded SKUs and common nicknames. The model proposes matches using that table and your catalog, and anything below a confidence threshold is shown to a rep to confirm rather than quoted.

Where do prices come from?

Only from your systems of record, such as the price book in your ERP, accounting system or CRM, plus customer-specific contract pricing and volume breaks. Code applies those rules. The model is not given authority to change or invent a price.

Can quotes be sent without a human checking them?

For repeat customers, standard catalog items and quotes above your margin floor, many teams auto-send after a few weeks of supervised running. Quotes with unmatched items, discounts, special freight or large totals should always get a rep's review.

What about attachments like spreadsheets or drawings?

Spreadsheets and PDFs listing items are handled well. Engineering drawings that require interpreting dimensions or tolerances are a different problem; route those to an estimator, and use AI only to summarize what the request includes.

Next steps