A request for quotation from a contractor rarely arrives as a clean form. It arrives as a WhatsApp message with a photo of a spec sheet, a voice note listing quantities, or an email with a PDF from the consultant. An AI quotation assistant reads that request, matches each line to items in your own catalogue, prices the items from your price list, and drafts the quote for a salesperson to approve. It logs which product and which channel produced the request, so the quote is attributed before it is sent. What it must never do is invent a specification, set a price, or promise stock.
This article is the build plan we use, the seven steps, the five checks that keep it safe, and the one precondition most distributors skip.
Why the request is a translation problem
A request for quotation is written in the customer's language and answered from your product data. The customer writes "cable tray, hot dip galvanised, 300 by 50, 3 metres, BS EN 61537". Your catalogue has a product family, a brand, a subcategory and a specification table. Somebody on the sales desk translates one into the other, item by item, and that translation is where the day goes.
The buyer has already done most of the work before writing to you. Industry surveys put the share of the B2B buying journey completed before any sales contact at about two thirds, and contractors report three to five hours of online research on suppliers and specifications before they call anyone. The share of contractor orders placed online grew from about 4% in 2018 to about 30% by 2025 in one e-commerce vendor's data. These are vendor and industry figures, not audited ones, but the direction is the same in every source: the buyer arrives with a list, and the list arrives on WhatsApp.
The seven steps
| Step | Input | Output | Who checks it |
|---|---|---|---|
| 1. Capture | WhatsApp Business API, email inbox, the quotation form on the site | One request record with the raw message, attachments and the sender | Nobody; it is a log |
| 2. Extract | The raw message, voice note transcript or PDF text | A structured request: line items with description, quantity, unit, standard, brand preference, deadline; each field with a confidence score | The assistant flags any line under the confidence threshold |
| 3. Match | Each line item against the catalogue's structured product data | Candidate products per line, ranked, with the specification fields that matched and the ones that did not | A salesperson sees the alternatives, not only the top match |
| 4. Price | Matched products against the price list or ERP, through rules (customer tier, quantity break, currency) | Unit and line prices | Rules written by your commercial team; the model never sets a price |
| 5. Draft | The priced lines and your quotation template | A quote as PDF and as a WhatsApp message, in the customer's language | The template is yours |
| 6. Approve | The draft, in the salesperson's dashboard | Sent, edited, or returned to the customer with a question | A person, every time |
| 7. Attribute | The approved quote | A CRM record and an analytics event carrying the product, the channel and the visitor's language | The client reads it monthly against the baseline |
Step 3 is the whole product. Extraction and drafting are commodity; matching a free-text line to the right item in a catalogue of several hundred products across a few dozen brands is where the accuracy lives, and it only works on structured product data. More on that below.
The five checks, applied to quotations
Every assistant we build runs inside five checks, and for quotations they read like this.
- The model never decides. It proposes matches and drafts documents. Prices come from rules, stock and lead times come from systems, and a person approves the quote. If the ERP is not connected, the quote says "subject to availability", and it says so because a rule wrote it.
- Data is stripped before it leaves. Customer contact details are removed before any text reaches the language model, and the model call is documented as a data transfer. Hosting sits in the jurisdiction the client's law expects.
- Output is validated against a schema. The extracted request is a fixed JSON structure. A line the model could not fill stays empty and visible; it is never filled in fluently.
- Every step leaves a trail. Raw message, extracted request, matches, prices, edits, approval and send time are in an append-only log the client owns. When a customer disputes a quote, the trail answers.
- Both languages, including mixed. The test suite is built from real past requests: an Arabic sentence with Latin product names, units written three ways, a voice note that switches language mid-sentence. The assistant replies in the language the customer wrote in.
The precondition: a catalogue the assistant can read
An assistant matches requests to product data. If the product page is a photo and a link to the manufacturer's PDF, there is nothing to match against, and the assistant will either fail or guess. This is the finding that shaped our own catalogue work: on the site we rebuilt for Progress Horizon Trading, a 144-product catalogue across 22 manufacturer brands, the median product page had zero words of body copy and one product in 144 had an Arabic description. Search engines had nothing to index and an assistant would have had nothing to match.
The rebuild put every product into a content API with twelve bilingual document models, each text field a required English and Arabic pair, and an admin dashboard where a specification table is a form field. That structure is what a quotation assistant needs, and it is the same structure that search engines and AI answer engines need. The full field list is in Spec sheets into structured product data. Build that first. An assistant on top of an empty catalogue is a demo, not a system.
Vendors in this space agree on the point even when they sell the opposite. One guide for contractors states plainly that AI tools deliver value only where the company already has centralised project data and accurate records. The same is true of a distributor's catalogue.
Integrations, in the order they pay off
- WhatsApp Business API through a business solution provider, never a consumer number. The provider handles the platform's rules; you keep the conversation history.
- The price list. A spreadsheet is fine to start. The rule engine reads it; the model does not.
- The CRM (HubSpot, Zoho or the one you have) for the request, the quote and the follow-up task. This is where step 7 lands.
- The ERP for stock and lead times, when the ERP has an API and the data is maintained. Until then the quote carries the availability caveat.
- The website quotation form, already prefilled with the product the visitor was reading, so the form and WhatsApp feed the same request record.
What you measure, and when
Before anything ships, both sides sign a Day-0 baseline: requests per week by channel, time from request to first reply, time from request to quote, the share of requests that had complete specifications, and quotes per salesperson per day. The assistant then reports its own events: requests captured, lines extracted with confidence, lines sent to a person, quotes approved, quotes edited before approval. At 120 days the report compares the two. We do not claim a number before that report closes, and neither should a vendor selling you the same thing.
Cost and the first step
A WhatsApp assistant over your catalogue with one integration starts at about USD 4,800. A sales assistant that also qualifies the enquiry and writes to the CRM starts at about USD 8,500. Multi-system automation, for example extraction feeding the ERP and the invoicing tool, runs USD 8,000 to 20,000 depending on the systems. Every build ships with a maintenance plan, USD 250 to 900 a month, because the catalogue, the price list and the WhatsApp platform all change and somebody has to own that.
The first step costs nothing: send us one week of real requests, in whatever form they arrived, through the contact page. You get a written map of what the assistant could have extracted, what it would have sent to a person, and a fixed price for the first build.
Sources
- How AI matches RFQs to your product catalogue, ADSM Tech, on RFQs as a translation problem between customer language and product data.
- AI in procurement 2026, SpecLens, on specification extraction and comparison matrices. Vendor source.
- AI quotation automation solutions for enterprise sales teams in 2026, Jinba. Vendor roundup.
- AI construction software in 2026: a practical comparison for contractors, FirstBit, on centralised data as the precondition. Vendor source.
- Building and construction materials e-commerce in 2026, BigCommerce, for the online order share figures. Vendor source.
- How B2B buyers research vendors in 2026, DemandWorks, for the share of the journey completed before sales contact.
- Digital marketing for building materials, Salsita, for contractor research hours. Vendor source.


