Quote drafter
A serverless drafter that catches every incoming RFQ from your website form, sales inbox, or direct file uploads; extracts the line items against your catalog; prices each one against your rules; drafts a complete quote with a cover paragraph in your voice; and parks it in front of a rep for one-tap approval. Drafts never auto-send. Seven posts on the same system — one diagram at a time — with an engineering reference at the end.
-
01
A quote drafter on AWS for a few dollars a month
The whole system on one page — an RFQ intake, a drafter, and a review-and-send piece, plus the four moves they share for every RFQ.
-
02
How an RFQ reaches the drafter
Three lanes at the door — the website RFQ form fast path, the shared sales inbox via SES, and direct uploads through a presigned S3 portal. Dedupe and screen happen before any AI runs.
-
03
How the drafter reads an RFQ
Three small extractors run in parallel — line items, constraints, context — plus a catalog lookup that knows your aliases. Each with a confidence score the move-picker reads before it decides anything.
-
04
How a quote gets priced
A five-stage pricing pipeline runs per line: base price, tier discount, volume break, regional, bundle. Every applied rule cites the catalog row or rules section that produced it.
-
05
How a draft stays honest
Four guardrails sit between the model and the rep’s queue — citation required, no fabricated SKUs, no commit on availability, discount cap above a threshold. A draft never auto-sends.
-
06
What the quote drafter costs
A coffee a month at SMB RFQ volume. Pennies per RFQ, dominated by Bedrock tokens for the extractors and the cover-paragraph composer.
-
07
Engineering reference: the quote drafter architecture
Same system, drawn purely for engineers. Service names, resource identifiers, region, Bedrock model IDs, Knowledge Base wiring, SES inbound, presigned-upload flow, PDF rendering, and CRM destinations.
Frequently asked questions
- What is a quote drafter?
- A small serverless system that catches every incoming RFQ from your website form, sales inbox, or direct file uploads; extracts line items against your catalog; prices each line against your rules; drafts a complete quote with a cover paragraph; and parks it in front of a rep for one-tap review. Drafts never auto-send; the rep’s approval is the only path to the customer.
- How much does it cost to run?
- About $4/month at typical small-business RFQ volume (around 50–200 RFQs/month). The fixed cost is essentially zero — quiet weeks bill nothing. The variable cost is pennies per RFQ, dominated by Bedrock tokens for the extractors and the cover-paragraph composer. PDF rendering runs on demand in Lambda, only when the rep opens the draft.
- Which AWS services does it use?
- Lambda (with Function URLs for the form endpoint and presigned-upload portal), SQS, DynamoDB on-demand, S3, EventBridge, SNS, SES inbound, Secrets Manager, CloudWatch Logs with seven-day retention, AWS Budgets, and Bedrock (Claude Haiku 4.5 via Global cross-Region inference, plus Titan Text Embeddings v2 with a Bedrock Knowledge Base backed by Amazon S3 Vectors). No API Gateway, no NAT Gateway, no always-on compute.
- Does the drafter ever send a quote on its own?
- No. A draft never auto-sends. Every quote requires a rep’s one-tap approval before it leaves AWS. The drafter does the slow work — extracting line items, pricing them, citing the rules, writing the cover paragraph — but the customer-facing send is always a human action. Drafts that go unactioned trigger a 24-hour reminder and a 48-hour escalation.
- How does the drafter avoid making up prices?
- Three Drive docs ground every draft (catalog, rules, voice) and four guardrails sit between the model and the rep’s queue: citation required (every priced line must reference the catalog row and any applicable rule), no fabricated SKUs (any line item without a catalog match becomes an out-of-scope move, not an invented row), no commit on availability (block-listed phrases that promise specific in-stock claims), and a discount cap that requires manager approval above a configurable threshold.
- What does the drafter do when an RFQ is ambiguous?
- It picks the clarify move. The drafter writes one specific clarification question (it never asks two), drops it in the rep’s draft queue for one-tap send, and parks the RFQ as “awaiting reply.” When the customer answers, the drafter retries with the new information. Common cases: a SKU with multiple variants and no specified size, a quantity range too wide for tiered pricing, a missing delivery destination.
- Where does the catalog live?
- In a Google Drive folder, as three plain Docs: catalog (SKUs, plain-English aliases, base prices, units, minimum order quantities, lead times), rules (tier discounts, volume breaks, regional pricing, payment terms, discount-cap policy), and voice (cover-paragraph templates, signature, brand tone). A small sync Lambda mirrors the Drive folder into an S3 bucket every few minutes; a Bedrock Knowledge Base indexes that bucket. Editing a doc picks up on the next sync. No deploy, no spreadsheet ETL.