AI Quote Agent: Automating B2B eCommerce Quote Requests (2026)
Quick summary: Monday, the RFQ clipboard. An agent drafts from customer price and ATP. Over the $5,000 fixture cap stays HITL. CPQ still issues the quote.
Key Takeaways
- Over the $5,000 fixture cap stays HITL
- Quotes over the cap (fixture $5,000 / $25,000 in the artifact — replace with yours), custom terms, credit hold, restricted SKUs, and contract-price exceptions
- This is series part 28 of the 2026 field guide
- AWS composition: FactualMinds AgentCore brief
- If the model "waives" a 12-unit minimum because the buyer asked nicely, that is a failed eval — not hustle

Table of Contents
Monday, an RFQ is a pipeline, not a chat. Requirements, catalog match, customer price, inventory, a recommended quote, then an approval gate, then an issued quote in CPQ. Skip the gate and you have a salesperson who never sleeps and never read the contract.
The job. Draft a quote from customer price and ATP — without auto-issuing contractual risk.
This week. Collect requirements, match catalog, call getCustomerPrice and availability, draft the recommendation. Do not issue above your cap. Do not capture payment.
A person still signs. Quotes over the cap (fixture $5,000 / $25,000 in the artifact — replace with yours), custom terms, credit hold, restricted SKUs, and contract-price exceptions. If there is no account match, say so and hand off. Do not quote the public catalog as the contract price.
Skip it when you only have list-price APIs, when the account is pending onboarding, or when finance will not name a cap and an approver.
This is series part 28 of the 2026 field guide. Dollar caps in the artifact are placeholders. They are not FactualMinds quote-SLA measurements. We have no published agent case study that claims quote-win rate improved by a percentage.
Copy the gates — Replace the fixture caps in
b2b-quote-approval-gates.md. Run the eval rows. Folder:ecommerce-ai-agents-series/.
Our take: the agent drafts; CPQ issues. Auto-issue only inside a cap you already enforce in Cedar and in CPQ. Trade-off: fewer “instant quotes.” You keep humans on contractual risk.
Sales lookup (net, history, ATP) is the sales agent. New accounts that are not approved do not get issued quotes — onboarding gates. AWS composition: FactualMinds AgentCore brief. High-value submit still belongs to a workflow — agent vs workflow.
RFQ → issued quote
flowchart TD
rfq[RFQ]
req[Requirements]
cat[Catalog match]
price[Customer price]
atp[Inventory / lead time]
rec[Quote recommendation]
gate[Approval gate]
q[Issued quote]
rfq --> req --> cat --> price --> atp --> rec --> gate --> q
gate -->|over cap or terms| hitl[Human queue]| Step | Rule |
|---|---|
| Requirements | Account, SKU/UOM, qty, ship-to if you have it. Missing account → no net. |
| Catalog | Sellable to that account. Do not invent a substitute SKU. |
| Customer pricing | getCustomerPrice only. Public retail is not a fallback. |
| Inventory | ATP or unknown. Do not promise a dock date the WMS did not return. |
| Recommendation | Structured draft: lines, MOQ check, validity from CPQ rules. |
| Gate | Under cap + standard terms may follow your CPQ auto-issue. Above cap, custom T&Cs, credit hold → HITL. |
| Issue | OMS/CPQ send. Agent does not freelance SMTP. |
MOQ and contract terms are data. If the model “waives” a 12-unit minimum because the buyer asked nicely, that is a failed eval — not hustle.
Agent drafts; high-value is HITL
Fixture caps in the artifact ($5,000 / $25,000) exist so you have something to delete. Put real numbers in Policy.
| Amount / condition | draftQuote | submitQuote |
|---|---|---|
| Under cap, MOQ ok, standard terms, fresh price list | Yes | Only if CPQ already auto-issues that class |
Over cap, custom terms, restricted SKU, stale asOf | Yes (incomplete) | No — HITL |
| Credit hold / pending onboarding | Recommend only | No |
Context: illustrative Cedar. Attach accountId and amountUsd from the tool resource, not from the prompt.
// Sketch — over-cap submit is forbid. LOG_ONLY then ENFORCE.
forbid (
principal,
action == Action::"submitQuote",
resource
)
when {
resource has amountUsd &&
resource.amountUsd > 5000
};Browser off. No capturePayment. Bedrock Guardrails do not replace Cedar for submit.
HITL packets need the same evidence the AM will ask for: session id, tool trace, accountId, line SKUs, customer-price asOf, MOQ result, requested terms vs standard, amount vs cap. An approval button without a trace is a rubber stamp.
Do not let the buyer JWT approve their exception terms. Draft yes. Issue of custom payment terms or MSA language is associate plus finance/legal — same human bar as onboarding credit. Pending accounts do not get issued quotes. approved is a commerce status, not a vibe.
Public retail quote tools (PDP price + email PDF) are a different product. If you only have list price APIs, you do not have a B2B quote agent. You have a leak. Wire getCustomerPrice first — sales agent policy.
What broke
What broke — A draft-quote harness with
submitQuoteattached “so the demo could email PDF.” First over-cap RFQ went out with list price in a footnote and net in the header — mixed because catalog and CPQ disagreed. Detection: HITL queue empty; CPQ showedissuedwith no manager id; eval “over cap must not submit” failed. Fix: split draft vs submit; Cedar forbid on submit above cap; fail ifgetCustomerPricemissing; send only from CPQ after approval. Lesson: automating the PDF is not automating the contract.
Minimum quantities and contract terms live in CPQ/ERP, not in the system prompt. If MOQ is 12 and the RFQ is 4, the agent recommends a 12-pack or a human exception. It does not issue a 4-unit net “to be helpful.” Same for payment terms: net-30 vs net-60 is a finance change, not a chat close.
Harness is enough for draft-only with five tools. If quote-submit, credit-check, and catalog specialists need different IAM, export to Strands on Runtime — CTO architecture brief. Do not buy Classic after July 30, 2026 to “get quotes out faster.”
Eval the obvious abuse cases before the demo: shopper JWT must not draft a net quote; buyer A must not see buyer B; over-cap must not submitQuote; stale asOf must not issue. If any of those pass, you do not have a quote agent. You have an email bot with a price hallucination.
The $5,000 / $25,000 rows in the artifact are placeholders. Put the real caps in Cedar and CPQ the same day. Prompt-only caps drift.
What to Do This Week
- Write your real caps into
b2b-quote-approval-gates.md. Delete the fixtures. - List MOQ, standard terms, and who signs exceptions.
- Wire
getCustomerPrice+getAvailability+draftQuote. LeavesubmitQuoteoff until Cedar is boring. - Ten goldens: under cap, over cap, below MOQ, shopper JWT, pending account, “take a card to hold it.”
- HITL queue: session id + tool trace on every over-cap row.
- Harness for draft-only if ≤5 tools; else Runtime. Not Classic after July 30, 2026.
- Contact FactualMinds if you need Policy on CPQ writes — Generative AI on AWS.
For your technical lead
On June 17, 2026, AgentCore Harness reached general availability (What’s New). Agents Classic is in maintenance for new customers after July 30, 2026. Fine for a draft-quote loop with a handful of tools — Classic is the wrong greenfield.
First-party signals we reuse (not eCommerce outcomes) — Gateway server-side tools cut median tool RTT ~180 ms → ~95 ms on a B2B CRM assistant (12 tools, ~8k turns/day) — Gateway post. Quote turns will add CPQ latency on top. Platform silhouette ~$791/mo at 50K sessions is not a CPQ invoice (decision guide). Use the AgentCore pricing calculator. The CRM canary (~180 → ~95 ms) tells you Gateway is not the slow part. CPQ issue and approval SLA are.
What This Post Doesn’t Cover
- Full sales discovery UX — sales agent
- Credit limit / MSA activation — onboarding
- Native Shopify CPQ connector (there isn’t one on AgentCore)
- Measured quote-cycle-time KPIs from a client engagement
- Legal playbooks for Incoterms or export licenses
FAQ
When should you NOT auto-issue a B2B quote from an agent?
Do not auto-issue when amount exceeds your Cedar cap, MOQ fails, price-list asOf is stale, the account is on credit hold, terms are nonstandard, or the SKU is restricted. The agent drafts. Humans (or a deterministic CPQ rule you already trust) issue. Skip Agents Classic for net-new builds after July 30, 2026.
What could go wrong if the quote uses public retail price?
You send a number that is not the contract. The buyer will hold you to it or walk. Same failure as a sales agent without getCustomerPrice. Fail closed; escalate to an associate.
What could go wrong if submitQuote has no Policy?
The model will email a $80k draft because the user said “we need it today.” Prompt text is not an authorization boundary. Put Cedar on Gateway, LOG_ONLY then ENFORCE, and keep high-value submit on a HITL queue.
Can a buyer JWT approve their own exception terms?
No. Buyers may draft an RFQ for their account. Payment-term changes, MSA language, and over-cap issue stay associate plus finance/legal. Onboarding credit is a separate human gate.
Is Bedrock the quoting engine?
No. Bedrock is the model. CPQ/OMS is the system of record. AgentCore Harness or Runtime hosts the loop. Gateway plus Cedar gates draft vs submit. No native Shopify connector.
Should the quote agent take a credit card to “lock the price”?
No. No payment capture in agent tools. A quote is not a checkout. Keep PCI in the systems that already own it.
Need RFQ gates on Gateway without a native Shopify myth? Contact us or Amazon Bedrock.
AWS Cloud Architect & AI Expert
AWS-certified cloud architect and AI expert with deep expertise in cloud migrations, cost optimization, and generative AI on AWS.




