Quote request intake: from inbox to draft quote in McLeod
1 The problem, as you described it
About 180 quote requests a week arrive by email in every format: forwarded chains, PDFs from brokers, photos of rate confirmations. Four dispatchers retype each one into McLeod, look up the route history by hand, and send a quote. Median time from email to quote is four hours. After 3 p.m., most requests wait until the next morning. Two dispatchers spend roughly 14 hours a week each on the retyping alone.
2 What we will build
- D1Inbox watcher
A mailbox rule plus an n8n trigger. It picks up every message to quotes@ and its attachments, whether PDF, image, or plain text.
- D2Extraction step
Text recognition for images and scans, then an AI model that returns origin, destination, dates, equipment, weight, and commodity as a checked, structured record. Each field gets a confidence score.
- D3Route lookup
Matches against the last 18 months of routes in McLeod. Returns the median rate, the last three quotes, and the carrier mix.
- D4Draft quote
A draft in McLeod with the extracted fields and a suggested rate, flagged "needs review". The system never sends anything to the shipper.
- D5Dispatcher queue
A Slack message per draft with the fields, confidence scores, and a one-click link to open it. Low-confidence fields are highlighted.
- D6Monitoring and runbook
Error alerts to #ops-alerts, a daily count, a runbook, and a 20-minute recorded walkthrough.
3 Tools, and why
| Layer | Choice | Why |
|---|---|---|
| Coordination | n8n (hosted in your AWS account) | Visual flows your ops lead can read, with retries and error handling built in. |
| Extraction | Claude via API, OCR via Textract | Best accuracy on your 60 sample emails during scoping (94% of fields correct). |
| Main system | McLeod transport system, or TMS (existing) | No migration. We write drafts through the API you already license. |
| Notifications | Slack (existing) | Dispatchers already live here. |
| Data | Postgres on RDS (new, small) | Route history cache and run logs. Yours. |
4 Out of scope
- Sending quotes to shippers automatically. A dispatcher sends every quote.
- Carrier selection or rate negotiation.
- Requests that arrive by phone or the web portal (phase 2 candidate).
- Changes to McLeod configuration or user permissions.
5 Assumptions
- McLeod API access with a service account, provided by week 1.
- 60 labeled sample emails to test the extraction step.
- One dispatcher available for 30 minutes on demo Fridays.
- AWS account owned by Lumen; estimated run cost under $90 a month.
6 Timeline
- Week 1Kickoff, access, sample set
Credentials, 60 labeled sample emails from you, a test mailbox.
- Week 2D1 to D3 working in the test setup
Demo Friday: emails flow to extracted records with route matches.
- Week 3D4 to D5, then a run alongside the manual process
Drafts land in McLeod and Slack alongside the manual process.
- Week 4Cutover, D6, handoff
Numbers match for five business days, then the old way stops.
7 Acceptance
The build is accepted when these conditions are met over five consecutive business days of running alongside the manual process. At least 95% of extracted records need no field corrections. Every draft reaches the Slack queue within three minutes of the email arriving. The runbook must also be walked through with the ops lead. Fixes for anything found in the 30 days after acceptance are included.