Bell Automation RFQ prototype: keeping partial quotes explicit for an agent

Bell Automation works on document and data workflows. One current prototype prepares an Excel quotation from a text-PDF RFQ and an approved-price CSV catalogue.

The design separates two failures. A requested item with an unknown code, duplicate catalogue entry, missing price or unit conflict is retained unpriced on a Review sheet. An extraction that cannot reconcile the document’s declared row count is rejected before a workbook is produced. Pricing uses exact catalogue matching and decimal arithmetic.

The synthetic example has ten requested lines: four priced and six retained for review. Its subtotal is labelled as covering the quoted lines only. It passed twelve tests, additional independent PDF cases, and workflow import/execution through the CLI in isolated self-hosted n8n 2.20.0. The demo supports one deliberately simple synthetic layout; customer layouts, browser-editor import and production integrations still require validation. The supplied adapter needs self-hosted n8n; scanned PDFs and OCR are outside its scope.

Free synthetic demonstration, source, Excel output and setup notes.

For anyone exposing a quotation tool to an LLM agent: would you return a partial quote with an explicit review_required status and quoted_lines_subtotal, or withhold every amount until all requested lines are resolved? The current workbook makes the distinction visible to a person. I would be interested in API response designs that keep an agent from treating a partial subtotal as the total RFQ price.

I’d go with the partial quote With 10 lines, most of the time at least one will need review anyway, so if you hold everything back the tool won’t get used much.

Just keep the total empty until everything’s resolved and list what’s pending. Agents love picking up the first number they see lol

If you’re adding scanned PDFs later, this was a helpful read:

Document AI guide