Most requests for quotation arrive as a WhatsApp message, a voice note or a photographed spec sheet. An assistant can read them, match them to your catalogue and draft the quote. What it must never do is set the price or promise stock.

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

StepInputOutputWho checks it
1. CaptureWhatsApp Business API, email inbox, the quotation form on the siteOne request record with the raw message, attachments and the senderNobody; it is a log
2. ExtractThe raw message, voice note transcript or PDF textA structured request: line items with description, quantity, unit, standard, brand preference, deadline; each field with a confidence scoreThe assistant flags any line under the confidence threshold
3. MatchEach line item against the catalogue's structured product dataCandidate products per line, ranked, with the specification fields that matched and the ones that did notA salesperson sees the alternatives, not only the top match
4. PriceMatched products against the price list or ERP, through rules (customer tier, quantity break, currency)Unit and line pricesRules written by your commercial team; the model never sets a price
5. DraftThe priced lines and your quotation templateA quote as PDF and as a WhatsApp message, in the customer's languageThe template is yours
6. ApproveThe draft, in the salesperson's dashboardSent, edited, or returned to the customer with a questionA person, every time
7. AttributeThe approved quoteA CRM record and an analytics event carrying the product, the channel and the visitor's languageThe 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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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

Questions

Can an AI assistant quote prices on its own?

It should not. Prices come from your price list or ERP through rules you control; the model only identifies which items the customer asked for and drafts the document. A salesperson approves the quote before it is sent, and the assistant never promises stock or delivery dates it cannot read from a system.

Does it work with requests in mixed Arabic and English?

Yes, if it is built and tested for that. Requests for building systems usually mix an Arabic sentence with Latin product names, standards and units. The extraction step is tested against a suite of real past requests in both languages and in the dialects your customers write in, and a request it cannot parse with confidence goes to a person, not to a guess.

What does a WhatsApp quotation assistant cost?

A WhatsApp assistant over your catalogue with one integration starts at about USD 4,800. A sales assistant that also qualifies leads and writes to your CRM starts at about USD 8,500. Both come with a maintenance plan, because the catalogue, the price list and the WhatsApp platform all change.

Related pages

Related reading