What this automation does
Spot quote requests arrive as messy emails: “Need a rate Dallas to Atlanta, 22 pallets, Thursday pickup.” Whoever replies first with a credible number usually wins the load. This workflow gets the number in front of a broker in a couple of minutes.
- Catch the request. The agent watches the quotes inbox and identifies which emails are RFQs, which are replies to earlier quotes, and which are something else (tracking questions, invoices, carrier offers).
- Structure the shipment. A language model extracts origin and destination (city, state and ZIP), pickup and delivery dates, mode (FTL, LTL or partial), equipment (dry van, reefer, flatbed, step deck), weight, pallet or piece count, dimensions, freight class, commodity, hazmat flag, temperature requirements and accessorials.
- Fill gaps. If a required field is missing, the agent drafts a short reply asking for exactly that, and parks the quote until the shipper answers.
- Price in code. Deterministic logic pulls your recent loads on that lane and equipment, any market rate data you subscribe to, fuel surcharge, and accessorial charges, then applies margin rules by customer tier and lane.
- Draft and approve. The broker sees the structured request, the rate breakdown and a drafted reply. They approve, adjust the number or decline.
- Send and log. The quote goes out with an expiry time, and the request, rate and outcome are logged to the CRM so win rates by lane are measurable.
When it is worth building
This makes sense when brokers spend a large share of their day keying requests into a rating screen and copying numbers back into email. If your team answers more than 50 spot requests a day, or if you lose loads because quotes go out an hour late, the speed alone pays for the build.
It is not worth building for a book that is mostly contract freight on fixed rates, or for a desk that quotes a handful of very specialized loads a week (heavy haul, project cargo) where every quote needs a phone call anyway. Also check your TMS first. Several TMS and rating platforms now include email parsing or quoting features, and if yours covers your request formats, use it.
Architecture
| Layer | What we use | Why |
|---|---|---|
| Inbox | Outlook or Gmail shared mailbox | Where shippers already send requests |
| Agent runtime | n8n for the pipeline, or a small code service for complex tool use | Handles classification, follow-up questions and handoff to pricing |
| Extraction and drafting | Claude or OpenAI’s GPT models through the API | Reads free-text requests, tables and attached spreadsheets, and drafts replies in your tone |
| Lane history | TMS export or API, cached in a database or Google Sheets for small desks | Your own margins on your own lanes are the best predictor |
| Market data | Rate data subscriptions and carrier rating APIs, where access is approved | Context for lanes you have not run recently |
| Pricing rules | Code, versioned and reviewed by sales leadership | Margins and floors must never be left to a language model |
| Record | HubSpot or Salesforce | Quote history, win/loss and customer tier |
How to build it
- Collect 200 real requests. Pull a few weeks of RFQ emails covering your main customers and modes. They define the extraction schema and become the test set.
- Define the shipment schema. Required versus optional fields per mode. For LTL, freight class or enough data to estimate density (dimensions and weight) is required. For reefer, temperature range is required.
- Build classification and extraction. Use structured output so every request becomes the same JSON shape. Normalize locations to ZIP codes and dates to ISO format in code after extraction.
- Write the pricing service. Lane lookup by origin and destination region plus equipment, recency weighting, fuel surcharge, accessorial table, margin by customer tier, and a floor. Return the breakdown, not just a number.
- Add the approval step. A Slack message, Teams card or simple web view showing request, breakdown and draft reply. Approve sends it; edit opens the draft.
- Handle replies. When the shipper books, the agent should recognize the acceptance and create the load or a task in your TMS or CRM, not just log a win.
- Run alongside the desk for two weeks. Compare the system’s price with the broker’s on every request before letting it draft live.
What breaks in production
- Multi-lane requests. One email with a spreadsheet of 40 lanes is a bid, not a spot quote. Detect it and route it to the RFP process instead of quoting line by line.
- Ambiguous locations. “Springfield” is not a location. Require a state or ZIP, and confirm when the model guessed.
- Stale lane data. A lane you last ran three months ago may be badly off after a seasonal shift. Show the age of the data next to the rate.
- Accessorials hidden in the text. “Delivery to a strip mall, no dock” means liftgate and possibly limited access. Make the model list inferred accessorials so the broker can confirm.
- Quote expiry. Spot rates move. Every quote needs a validity window, and the agent should re-price, not re-send, if the shipper replies after it expires.
- Thread confusion. Shippers reply to old threads with new loads. Treat each request as new unless it clearly references an open quote.
Timeline and cost
A single-desk deployment with one inbox, one TMS data source and one CRM typically takes four to eight weeks. Lumeor builds this in the range of $18,000 to $45,000, depending on how many modes you quote, whether market data and carrier rating APIs are in scope, and how open your TMS is. The cost of a custom AI agent page explains where that money goes, and our custom AI agent vs off-the-shelf comparison helps if your TMS vendor already offers a quoting feature. Once loads are booked, the paperwork side is covered in automating bill of lading processing.
How to measure success
- Median minutes from request received to quote sent
- Quote-to-book win rate by lane and customer, before and after
- Margin per load on automated quotes versus manually priced quotes
- Share of requests that needed a follow-up question, and how fast it went out
- Broker hours per day spent on quoting