Use caseDocument AIWorkflow automation
RFQ emails with drawings turned into draft quotes in your ERP, priced from your own job history
RFQ emails with PDF drawings and STEP files read, checked and costed from your ERP history into a draft quote, with the estimator setting every price.
A blueprint, not a client story. The business described is illustrative; the architecture, integrations and trade-offs are real, and this is how I would build it. By Ergini, .
The short version
An automated workflow for machine shops and sheet metal fabricators that turns RFQ emails into draft quotes. It reads each drawing's title block and notes, measures the STEP file, checks units and revisions, finds similar jobs in your ERP history, and computes material, setup and cycle costs with a cost model in code. The estimator reviews every assumption, sets the margin and approves, and the quotation is created in SAP Business One or Business Central. The language model never sets a price.
- Best for
- Precision machining, sheet metal and assembly shops with more RFQs than their estimators can read, and years of history in the ERP.
- Connects to
- Outlook and Microsoft 365, SAP Business One or Business Central, Excel price lists, PDF drawings and STEP files, Vector index of past quotes
- The AI does
- Sorts the files in an RFQ package, reads title blocks, notes and callouts into structured fields, and drafts questions to the customer.
- People do
- Estimators check the flags and assumptions, adjust times, set the margin and approve every quote before it leaves.
- Built as
- AI Workflow Automation, usually $15K - $30K
What happens to an RFQ between the inbox and the quote
Picture a precision parts shop with 60 people in southern Germany: milling and turning, some sheet metal, small assemblies, customers among machine builders and medical device makers. Around 40 RFQs arrive a week, and two estimators handle them. A typical one goes like this.
- It lands in the shared sales inbox: a purchasing email, a zip file with eleven PDF drawings and nine STEP files, quantities of 10, 50 and 250, and a reply-by date.
- An estimator opens every drawing and reads the title block: material, revision, general tolerance class, surface treatment, weight.
- They scan the views for what drives cost: tight tolerances, threads, deep pockets, roughness values, and features that force a second setup.
- They search old quotes in the ERP and the shared drive for anything similar, usually by remembering a part number.
- They copy material prices from a supplier spreadsheet, estimate setup and cycle time per operation, and email the anodizing supplier when a finish is unusual.
- They build the quote in Excel, retype it into SAP Business One as a sales quotation, and write the assumptions into the email body.
In this scenario a multi-part RFQ takes most of a morning. Two estimators cannot do that 40 times a week, so the queue decides which customers get a real quote.
Where the estimator's week actually goes
The buyer on the other side sends the same package to four or five shops. The quotes that come back first get read first, and a quote that arrives a week later often arrives after the order has gone elsewhere. So the shop triages without ever deciding to: repeat customers and big volumes get quoted properly, everything else gets a rough price or a polite no.
Errors are the other cost, and they are quieter. Material prices copied from last quarter's spreadsheet. Setup times pasted from a part that was similar, but not similar enough. A surface treatment missed in a note on page two. These mistakes rarely lose the job. They win it at a price that loses money, and nobody finds out until the post-calculation, if anyone runs one.
The knowledge to do better is already in the building. SAP Business One holds years of production orders with the times actually booked on each operation. What it lacks is a way to bring that history to the estimator at the moment of quoting, next to a drawing somebody has already read and checked.
One drawing in, extracted fields and checks out
Part 4 of that zip file, as the system sees it. The model does the reading in the first two calls; everything after that is checks, lookups and arithmetic.
RFQ 2026-0914, part 4 of 11
Customer · Email
Please quote the attached parts in 10 / 50 / 250 pcs, delivery six weeks after order. Drawings and STEP files attached. Reply by Friday please.
- read_title_block(file: "20-3318_C.pdf")part 20-3318 / rev C / material EN AW-6082 T6 / general tolerance ISO 2768-mK / finish: anodized, color not stated / units: mm
- read_callouts(file: "20-3318_C.pdf")2 bores H7 / 6 x M6 threads / Ra 0.8 on one face / tightest tolerance +/- 0.01 mm / note 3: deburr all edges
- measure_step(file: "20-3318_B.step")bounding box 142 x 86 x 38 mm / volume 212 cm3 / 2 setups likely / model is revision B
- validate(part: "20-3318")FLAG revision mismatch, STEP B vs drawing C / FLAG anodizing color missing / OK units consistent / OK alloy in price list
- similar_jobs(part: "20-3318", k: 3)3 matches / closest: 2024 order, same alloy, 2 setups, 35 min cycle planned, 41 min actual
- cost_model(part: "20-3318", quantities: [10, 50, 250])material, setup, cycle and anodizing per quantity break / cycle based on actual, not planned / 4 assumptions listed / price left empty
- Two questions drafted for the customer, which revision is valid and which anodizing color, held for the estimator. The flags sit above the numbers on the review screen.
The path from RFQ email to draft quotation
The language model reads documents and writes questions. Geometry, costs and the decision to send are handled by code and by the estimator.
01 Trigger · Microsoft Graph
An RFQ reaches the sales inbox
A Microsoft Graph subscription picks up the email. Attachments are unpacked, zip files included, and each file is fingerprinted so a resent package is recognized instead of quoted twice.
02 AI model · Structured output
Sort the package and read each drawing
A vision-capable model classifies every file (drawing, 3D model, specification, purchasing terms) and reads title blocks, notes and callouts into a strict schema per part. Each value keeps a pointer to where on the sheet it was read.
03 Plain code · Open CASCADE
Measure the geometry
A CAD kernel reads the STEP file for bounding box, volume, holes and threads, and for sheet metal the flat pattern and bend count. Geometry comes from the model file, never from a language model looking at a picture.
04 Plain code
Cross-check and normalize
Units, decimal commas, material designations (1.4404 and 316L are the same steel), drawing revision against STEP revision, quantities against the email. Conflicts become flags, never silent corrections.
05 System · SAP Business One Service Layer
Find similar past jobs
A vector index over old quotes and production orders returns the closest parts, with their quoted times and the actual times booked on the shop floor.
06 Plain code
Run the cost model
Material from stock size and the current price list, setup and cycle time per operation from routing history, outside processing from supplier rates, per quantity break. Plain arithmetic, versioned and covered by tests.
07 Decision
Is this a normal quote?
Rules decide which path a part takes.
- Every field confident, no flags, known material and process then a draft quotation with its assumptions, ready for review
- Missing finish, revision conflict or an unreadable dimension then a drafted question to the customer, held for the estimator to send
- Size, material or tolerance class the shop does not run then a suggested decline with the reason, for the estimator to confirm
08 Person
The estimator sets the price
The review screen shows each part with its drawing crop, flags, assumptions, similar jobs and computed cost. The estimator adjusts times, sets the margin and approves. Nothing leaves without that click.
09 Result · Service Layer, Quotations
The quotation exists in the ERP
The approved quote is written to the ERP as a sales quotation linked to the RFQ, and the PDF is generated from your template. The write is keyed on RFQ and revision, so a retry cannot create a second quotation.
Where every number in the draft quote comes from
A draft is only as honest as its inputs, so every figure has a named source and a named owner. None of them is produced by the language model.
| Figure | Source | Who can change it |
|---|---|---|
| Raw material | Stock size from the geometry plus allowance, times the current supplier price per kilogram | Purchasing, in the price list |
| Setup time | Median setup booked on similar production orders | The estimator, per part |
| Cycle time | Actual times of similar parts, scaled by volume and feature counts | The estimator, per part |
| Machine rate | Hourly rate per work center in the ERP | Management |
| Outside processing | Anodizing, plating or heat treatment rates from supplier lists, or a flagged request for a price | Purchasing |
| Quantity breaks | The quantities in the RFQ, with setup spread across each batch | Fixed by the customer's request |
| Margin and final price | Nothing but the estimator's judgment | The estimator |
The model reads, the cost model prices, the estimator decides
The AI model
Read title blocks, notes and callouts
Drawings are images full of abbreviations, standards and mixed languages. Reading them is model work.
Sort the files in a mixed RFQ package
Drawings, models, specs and terms arrive in one zip file with meaningless names.
Draft questions to the customer
Specific to each flag and written in the buyer's language, for the estimator to send or edit.
Plain code
Measure geometry from the STEP file
A CAD kernel is exact where a model reading a picture is not.
Normalize units, materials and revisions
Lookup tables and rules that behave the same way on every RFQ.
Compute cost per quantity break
Arithmetic on your own rates and history, versioned and auditable.
A person
Set margin and final price
Price is a decision about the customer, the order book and the shop's capacity.
Decline, or question a customer's drawing
Both are relationship calls, and the estimator knows the relationship.
Drawings that break naive extraction
Two revisions in one package
The drawing says revision C while the STEP file is still B, or a corrected drawing arrives two days later in a separate email. The quote pins the revision it was based on, and a newer revision for the same part number reopens the quote instead of quietly updating it.
Inches, millimeters and decimal commas
A US customer draws in inches, a German drawing writes 12,5 where an American one writes 12.5, and some title blocks never state units at all. Units are resolved in code from the title block, the geometry and the dimensions together, and any conflict stops the part at review.
The finish hidden in a note
Surface treatment sits in note 5 on page two, or it says 'anodized' with no color and no layer thickness. A missing finish becomes a question to the customer, never an assumption baked silently into the price.
Automatic estimates that drift low
Planned times are optimistic, which is why instant quotes so often get revised upward later. The cost model reads actual booked times, and a monthly post-calculation compares quoted against actual cost per part family, so drift shows up in a report before it shows up in the margin.
Drawings under NDA
Customer drawings are confidential. Processing runs in an EU region under a data processing agreement with no training on your files, which stay in your own storage with the same permissions as the shared drive. Where a customer's NDA rules out cloud processing, a self-hosted model reads their drawings instead.
Assemblies and sheet metal
An assembly RFQ is a bill of materials with purchased parts, welding and fitting time; sheet metal needs the flat pattern, bend count and nesting. Each gets its own cost route rather than being forced through the machining model, which is exactly where generic quoting tools stop.
Paperless Parts, CloudNC, or a build around your own ERP?
If you are a CNC shop quoting mostly milled and turned parts, try Paperless Parts or CloudNC's Quote Agent before anything custom. Both are built for exactly that job. CloudNC's own figure is 5 to 9 minutes per RFQ against 2 to 4 hours by hand, which is a vendor claim but a useful benchmark, and a subscription costs less than any build. If they fit your parts and your ERP, use them.
A build earns its cost when your work does not look like their typical customer's: sheet metal, weldments, castings, assemblies with purchased parts, or a mix of all of them. It also wins when the estimate should come from your ERP history rather than a generic time model, and when that ERP is SAP Business One, abas, proALPHA or Business Central. SAP Business One has no native AI agent and no official MCP server, so any AI there is integration work whichever way you go.
The hybrid is common. Keep a quoting product for standard machined parts and build the intake and ERP layer around it, so every RFQ is read, checked and filed the same way whichever tool prices it. The same intake later feeds order entry when the purchase order arrives, and the reading side is covered in depth in the post on AI document extraction.
How you would know it is working
A blueprint has no results to report, so here is what I would measure from the first week instead, on your own data.
- RFQ turnaround
- Hours from RFQ received to quote sent, per customer tier, compared with the same weeks last year.
- Estimator minutes per part
- Time spent on the review screen per part, logged by the screen itself, which shows where drafts still need work.
- Quoted versus actual cost
- Post-calculation per part family once orders have run: the only honest test of the cost model.
- Flag precision
- Of the revision, unit and finish flags raised, how many were real. Too many false ones and estimators stop reading them.
- Hit rate by response time
- Won quotes split by how quickly they went out, which tells you what speed is actually worth in your market.
What a build like this costs
This is built as AI Workflow Automation, which runs $3.5K - $60K overall. A build like this one usually lands in the multi-step workflow tier: $15K - $30K, 3-5 weeks. The first working version runs on your real data well before the end of that window.
What it costs to run
Reading drawings with a vision model costs from cents to tens of cents per sheet, depending on size and resolution, so a 40-RFQ week is a small line. The geometry and cost model run on ordinary servers. Self-hosting a model for NDA drawings adds a fixed GPU cost that only pays off at volume or when customers insist on it.
What moves the price
- The mix of work: machined parts only, or sheet metal, assemblies and castings, each with its own cost route
- How usable the ERP history is: routings and actual times on production orders feed the cost model, and missing actuals mean building a time model first
- The ERP interface: SAP Business One's Service Layer and Business Central's API are straightforward, while abas or proALPHA may need their own connector
- Whether customer NDAs require self-hosted models instead of an EU cloud region
Who this is for
- Precision machining and sheet metal shops where two or three estimators cannot keep up with incoming RFQs
- Contract manufacturers on SAP Business One, Business Central, abas or proALPHA with years of production history nobody uses for quoting
- Shops quoting assemblies, weldments or castings, where CNC-only quoting tools do not fit
- Owners who suspect some quotes win jobs at a loss but have no post-calculation to prove it
Questions people ask about this
Can AI read engineering drawings accurately?
It reads title blocks, notes and most callouts reliably, into a strict schema with structured outputs, and that is where it is used here. It is not trusted with geometry: dimensions for costing come from the STEP file through a CAD kernel. Anything read with low confidence is shown to the estimator next to the drawing crop, and unreadable scans are flagged rather than guessed.
How do I automate the RFQ process without losing control of pricing?
Automate everything around the price, and leave the price alone. The system reads the package, checks it, finds similar jobs and computes costs from your own rates, then stops. The estimator sets the margin and approves every quote, and the draft lists each assumption, so a wrong one is visible before it reaches the customer.
Does it work with SAP Business One?
Yes. The Service Layer exposes items, business partners, production orders and sales quotations, which is everything this needs: history in, draft quotation out. SAP Business One has no native AI agent, so this is integration work either way. Business Central works the same way through its API, and abas or proALPHA through their own interfaces.
Can it quote sheet metal and assemblies, not just CNC parts?
Yes, with separate cost routes. Sheet metal needs the flat pattern, bend count and cut length, which the CAD kernel computes from the STEP file, plus nesting assumptions. Assemblies are costed from the bill of materials, purchased parts and assembly time. That is usually the reason to build rather than buy, since most quoting tools are designed around milled and turned parts.
Our quotes take hours. How much faster will they go out?
That depends on where the hours go today, which is why turnaround is the first thing I would measure. What changes is that nobody spends the start of the job reading title blocks and hunting for old quotes; the estimator begins from a checked draft. Whether that means same-day quotes depends on review capacity, not on the software.
Is it safe to send customer drawings to an AI model?
It can be, with the right setup: an EU region, a data processing agreement, no training on your data, and files kept in your own storage. Some NDAs forbid any cloud processing, and for those customers a self-hosted model reads the drawings on your own infrastructure. Check the NDAs before the pilot starts, not after.
Sources