The problem.
An industrial B2B company with twelve sales reps received between 80 and 120 quote requests (RFQs) each month through mixed channels: generic sales@ email, web forms, customer e-procurement portals, and requests that landed directly on a specific rep's mobile (often only they would see).
Each quote required the same manual flow: read the customer's spec sheet or product list, identify each reference in the internal catalog, check stock and lead times, calculate price with the customer-specific discounts (volume, history, framework contract), check whether a similar quote had been issued to avoid contradictions, draft the proposal in the exact format the customer requires (their own Excel, Word template, portal form), attach datasheets, and send. Average time: 3-4 hours per RFQ.
The sales team spent 50% of the day on quoting instead of selling. Urgent RFQs got all the attention; "easier-looking" ones got pushed back until the deadline expired. Only 60% of requests were answered on time. When responses arrived late, the customer had already decided. When on time, there were criteria inconsistencies between reps (different discounts for similar customers, conditions contradicting earlier quotes).
What we built.
1. Unified multichannel capture
An n8n workflow monitors the four input channels and normalizes any RFQ into an internal format: customer, requested products, quantities, requested lead time, required response format, deadline, customer contact. If the RFQ comes through a rep's WhatsApp, it's forwarded to a shared inbox the system listens on. No RFQ goes unrecorded.
2. LLM analysis and product matching
A model (Claude for contextual reasoning, GPT-4o for tabular extraction) reads the spec or list, identifies each reference, and matches it against the internal catalog: exact product, equivalent, or substitute. If the customer asks for something not catalogued, the system flags it as an exception and proposes alternatives with technical justification.
3. RAG over previous quotes and internal knowledge
The system vectorizes the RFQ and searches against a knowledge base that includes: history of previous quotes to the same customer and similar customers, commercial policies (volume discounts, payment terms, standard warranties), active framework contracts, current promotions, and technical specs and product datasheets. Returns relevant passages to the generator model so the proposal stays consistent with what the company has already offered.
4. Filling out the customer's format
The most time-consuming manual part: each customer wants the quote in their own format. Excel with the cells their procurement system uses, Word template with their fields, portal form with their product structure. The system recognizes the format (modeled once per customer when onboarded) and fills each field in place: reference, quantity, net price, applied discount, lead time, warranty, payment terms. Generates the final file ready to send.
5. Draft for human validation
The sales rep gets a CRM notification with the complete draft, a reasoning summary (which discounts were applied and why, which previous quotes were used as reference, which exceptions need human attention), and low-confidence fields highlighted in yellow. Reviews, adjusts what they think, signs, sends. Average time: 30 minutes, with peaks of 60 minutes on large RFQs and 10 minutes on repetitive ones.
6. Learning loop
Every won/lost RFQ feeds the base. If the proposal is modified before sending, the system learns from the change. If the quote is won, it becomes a gold example for similar customers. If lost, the reason is annotated (price, lead time, technical, other). After 3 months, the percentage of fields the rep leaves untouched goes from 70% initial to 88%.
The rep went from making quotes to selling. Before, we'd skip RFQs; now we answer them all, and better. Conversion didn't improve because of the system — it improved because we can now focus on the big ones.
Stack used.
n8n self-hostClaude SonnetGPT-4opgvectorSupabasePipedrivedocx-js · ExcelJSPostgreSQLGrafana
What kind of companies this pattern fits.
Any company receiving on-demand quotes (RFQs, RFPs, proposals) in heterogeneous formats with a limited sales team. Especially well suited for:
- Industrial distribution with broad catalogs and volume discounts.
- Engineering and technical services with proposals mixing products and hours.
- B2B supplies (industrial, healthcare, office) with recurring customers and framework conditions.
- Construction and renovation with bid-from-measurement quotes.
- B2B Software / SaaS with volume licenses and personalized SLAs.
Typical breakeven threshold: 40-50 RFQs/month. Below that, the ROI takes longer. Above, the system starts paying for itself in the first quarter.