Customer StoriesAI QuotingOperations

From three days to twenty minutes: an RFQ throughput story

How one mid-sized fastener distributor cut RFQ-to-quote turnaround from three days to under twenty minutes — without touching the ERP and without hiring.

By Jaakko Kytölä8 min read

This is a story about a customer of ours — a regional industrial fastener distributor running on Odoo, serving roughly 2,500 active business accounts, processing about 180 RFQs a week, with two full-time inside-sales people on the quoting desk. The customer has asked us not to name them publicly yet; the details below are accurate, the identifying specifics are blurred.

When we started working with them, their RFQ-to-quote turnaround was sitting at a three-day average, with a long tail of seven-to-ten day outliers when one of the sales people was out. They wanted to be at sub-day. Six months later they are at twenty minutes for 70% of RFQs and sub-day for the rest. They did not hire, they did not buy a new ERP, and their customers say the experience feels the same — only faster.

This is what changed.

The baseline

Before Korso, the loop was the loop you would expect. An RFQ landed in the operations inbox — usually email, sometimes via the customer portal. One of the inside-sales people opened it. They read the email, opened the attached spec sheet or BOM, looked up each line item in Odoo to check stock and standard cost, sometimes phoned a supplier for a price refresh on items where the standing quote was older than thirty days, drafted a quote in their template, ran a margin check, and emailed it back.

On a good day, with no interruptions, this took about ninety minutes per RFQ. The two-person team could process roughly forty RFQs a day, leaving forty-plus RFQs from a 180/week inflow waiting in a backlog that never cleared. The three-day average was really a "first day cleared today, the rest queued" pattern.

Two specific failures kept happening. First, supplier quote refreshes — items where the agent had to phone or email a supplier to get a current price — sat for days because nobody had time to chase. Second, the team prioritized the easy RFQs (in-stock, standard items, fast quote) and the hard ones piled up at the back. The customers with complex orders were the ones who waited longest, which was the opposite of the prioritization the business actually wanted.

What we deployed

We rolled out Korso in four phases over the first sixty days.

Phase one (week 1–2): read-only. Korso ingested every inbound RFQ, parsed the email and any attachments into structured line items, looked up cost and stock in Odoo, and surfaced a "draft quote" suggestion in our interface alongside the original email. The sales people kept working their existing flow; we just showed them, for every RFQ, what the agent would have done. This was the trust-building phase. The agent's drafts were right roughly 85% of the time on day one, and the sales people corrected the other 15% in our interface — which fed back into the operating model as new rules and per-customer profiles.

Phase two (week 3–4): auto-draft, manual send. The agent now drafted the quote document end-to-end, including the supplier RFQ fan-out for items needing a price refresh. The sales people reviewed, made any corrections, and clicked send. The supplier RFQ fan-out was the unlock here — it ran in parallel without anyone having to remember to chase. By end of phase two, the average from RFQ-in to quote-out had dropped from three days to about six hours.

Phase three (week 5–8): tiered auto-send. We worked with the operations lead to define what "obvious" looked like: in-stock items, customer with standing terms, total under a margin-and-value threshold, no anomalies in the BOM. Quotes meeting all four criteria were sent automatically. Everything else still went through human review. About 55% of RFQs qualified on day one of this phase. The auto-send criteria were tuned weekly for the next month.

Phase four (week 9–12): the long tail. We picked up the cases that were not naturally fast: complex BOMs, new customers, supplier-side delays. The agent did not auto-send these but did all the prep work — supplier RFQ fan-out, margin pre-check, customer-history lookup, suggested margin override with rationale — so the human review was the last fifteen percent of the work, not the first ninety. Throughput on the long-tail cases went from "whenever someone gets to it" to same-day.

Where the time savings actually came from

The number people quote — "twenty minutes" — is real but a little misleading. The interesting story is the distribution.

For the 70% of RFQs that now auto-send, the time is dominated by the supplier RFQ fan-out window. When a supplier responds in two minutes, the quote goes out in two minutes. When a supplier takes an hour, it goes out in an hour. The agent is not waiting on a human; the bottleneck is the supplier. This is the cohort that drives the average down.

For the 30% that still go through human review, the average is about three hours, mostly clustered in the morning batch when the sales people sit down. The human time per RFQ in this cohort is about ten minutes — versus the ninety minutes it used to take — because everything except the judgment call is already done by the time they open the case.

For the bottom 5% — the genuinely hard cases — the average is around twenty hours, but with much higher consistency. Before Korso, a hard RFQ might sit for a week. Now the agent surfaces it with a specific question ("supplier Alpha quoted a 20% premium, supplier Beta has not responded, customer deadline is in 72 hours — do you want to accept Alpha or push Beta?") and the operator answers in two minutes.

The fastener distributor's CFO summarized this in one sentence: "The agent did not make the easy cases faster. It made all the cases live in the same throughput band."

What broke

A few things did not go cleanly.

Margin policy was under-specified. The agent surfaced this immediately. The team had margin floors in their heads — "we don't go below 12% on Brand X, 18% on Brand Y" — but those rules had never been written down. When the agent asked the operations lead to confirm thresholds for the auto-send tier in phase three, three new policy decisions had to be made in the same week. Two of them were the right call; one of them was reverted four weeks later. We treat this as a feature, not a bug — the agent forces decisions that had been deferred — but it is real work the customer had not budgeted for.

Supplier email parsing took longer than we expected. Each supplier has their own quote-reply format. We needed about ten suppliers tuned individually before the agent could parse 95% of inbound supplier replies cleanly. This was a two-week effort, mostly in the operating model. Adding the next supplier is now a one-hour task; the front-loading was unavoidable.

One specific customer disliked it. Out of 2,500 accounts, exactly one objected — a long-time buyer who had a relationship with one of the inside-sales people and wanted to keep getting quotes from that specific person, not "the system." We did not push them. That account still routes through human-only handling. This is the right call; an agent that costs you a relationship account is a bad agent.

Where they are now

Six months in, the inside-sales team is the same two people. They are processing roughly 220 RFQs a week — up from 180 — because the lead time has dropped enough that customers are sending in more RFQs to win business they previously did not bother to compete for. The team's day is dominated by margin review, supplier negotiation, and complex-case handling. Nobody is opening individual emails to copy line items into Odoo anymore.

The customer's measured impact is a 3.4x increase in throughput-per-rep and a roughly 9% absolute increase in quote-to-win rate, the latter driven mostly by speed: when the customer asked their buyers why they were placing more orders, the most common answer was "you got back to me faster than anyone else."

We tell this story not as a case study — we will publish a real one when the customer is ready to be named — but as a worked example of what changes when the agent owns the loop. The economics are different. The team's day looks different. The customers' experience is different. And the ERP, for the record, was never touched.