a Sagan program ยท currently in private beta

Ldi Quote Watchdog Agent

Your dashboard shows quote volume, time-to-quote, and win rate per rep, posts a Teams ping when a quote request sits unanswered for 15 minutes, and links every metric to the Outlook thread.
before

Patrick's team gets 3,000 to 4,000 emails per day across shared Outlook inboxes and load-board feeds. Quote requests arrive mixed with noise. No one has a dashboard to see response time, win rate, or how many quote-worthy requests never get quoted. Someone assumes another rep is handling it. Fifteen minutes pass. The customer calls a competitor.

after

Every quote request is automatically classified and labeled by urgency. A 15-minute SLA timer starts on quote-worthy emails. If no reply arrives, a Teams nudge posts as a last-line-of-defense alert. Patrick logs into a dashboard and sees quote volume, time-to-quote by bucket, win rate per rep, SLA breaches, and coverage rate. Every metric links back to the original email thread so he can verify the data and coach his team.

freight brokerage / logistics / transportation / 3pl / reporting / operations / lead intake / Microsoft Outlook / Microsoft Teams / Microsoft Graph API / OpenRouter / Railway /  freight brokerage / logistics / transportation / 3pl / reporting / operations / lead intake / Microsoft Outlook / Microsoft Teams / Microsoft Graph API / OpenRouter / Railway / 
the problem

Quote requests disappear into a 3,000-email-per-day inbox.

Patrick's 12-person freight brokerage gets 3,000 to 4,000 emails daily across shared Outlook inboxes and load-board feeds.

01
No SLA tracking

Missed quotes because no one knew the email was there.

02
No performance data

No dashboard to see hit rate, time-to-quote, or per-rep performance.

03
No coverage metrics

Unknown what percentage of quote-worthy requests actually get quoted.

the math, if you want to look

Catch missed quotes before they're gone. Measure what actually matters.

proof 01
15-minute SLA enforcement

Teams nudge fires when a quote request sits unanswered, catching near-misses before the customer moves on.

proof 02
Win rate by bucket and rep

Dashboard shows which request types (urgent, planned, golden) and which team members convert best.

proof 03
Coverage rate tracking

See what percentage of quote-worthy requests the team actually quoted, identifying blind spots.

proof 04
Email-sourced truth

Every metric deep-links to Outlook so Patrick can verify the data and coach against real conversations.

The agent reads every Outlook message across Patrick's inbox and distribution lists, extracts shipment details from email text and PDF attachments, and decides whether it's worth quoting using rules Patrick defines. When a quote-worthy request arrives, a 15-minute clock starts. If no team member replies within 15 minutes, a Teams message posts as a last-line-of-defense nudge. Every metric in the dashboard links back to the original email thread so nothing is hallucinated and Patrick can always click through to verify.

how it works

How the agent works

The agent monitors Outlook inboxes and distribution lists in real time, extracts shipment details from every incoming email and PDF attachment, applies Patrick's rules to decide if a quote is worth pursuing, labels each request by urgency, and enforces a 15-minute response SLA with a Teams nudge.

step 01
Read and extract

Monitor Patrick's Outlook inbox and selected distribution lists. For each new email, extract structured shipment data: origin, destination, weight, equipment type, pickup window, bonded or hazmat flags, and customer identity. Parse PDF attachments like delivery orders to capture structured data inside the document.

step 02
Classify and bucket

Run a rules prompt to decide if the request is worth quoting. If yes, label it as live/urgent, planned-in-advance, or golden (in-wheelhouse). Apply per-customer rule overrides on top of global rules so repeat customers like Trane get their own thresholds.

step 03
Start the SLA timer

For every quote-worthy email, start a 15-minute clock. Monitor the reply thread for any response from the team.

step 04
Post a Teams nudge if needed

If no team member has replied within 15 minutes, post a message to Teams with the customer name, route, and a link to the email thread. This is the last-line-of-defense alert.

step 05
Track the outcome

Monitor reply emails to detect win or loss signals. When a customer accepts or declines, mark the quote outcome and stop the SLA timer.

step 06
Populate the dashboard

Feed all classified emails, SLA timers, and outcomes into a web dashboard. Show quote volume, time-to-quote by bucket, win rate by bucket and rep, SLA breaches, and coverage rate. Every row links back to the Outlook thread.

ai agent · estimator console inputs transform outputs public preview
inputs
Outlook inbox and distribution lists +

Patrick's personal mailbox, Operations Columbia, ProTrans Expedite, Trane, ProTrans, and other configured folders. ~3,000 to 4,000 emails per day total.

Email body text +

Shipment details embedded in the email: origin, destination, weight, equipment type, pickup window, bonded or hazmat flags, customer name.

PDF attachments +

Delivery orders and rate confirmations that carry structured shipment data inside the document.

Reply emails +

Customer responses indicating acceptance, decline, or clarifying questions.

Global and per-customer rules +

Patrick's rules for what makes a load quote-worthy (weight cap, equipment type, geography, bonded/hazmat handling) and per-customer overrides (e.g., Trane gets a higher weight cap).

transformation
Extract shipment details +

Parse email body and PDF attachments to extract origin, destination, weight, equipment type, pickup window, bonded/hazmat flags, and customer identity.

Classify as quote-worthy +

Run a rules prompt against the extracted data to decide if the request is worth quoting. Filter out load-board noise and non-quote emails.

Label by urgency bucket +

Tag each quote-worthy request as live/urgent, planned-in-advance, or golden (in-wheelhouse). Apply per-customer rule overrides.

Start SLA timer +

Record the timestamp when the quote-worthy email arrived. Begin monitoring the reply thread.

Detect reply and outcome +

Monitor the email thread for any team response. When a customer reply arrives, classify it as win, loss, or no signal.

Calculate metrics +

Compute time-to-quote, SLA breach status, win rate, and coverage rate. Store all data with a link back to the Outlook conversation ID.

outputs
Classified email record +

Structured data: quote-worthy yes/no, bucket (urgent/planned/golden), extracted shipment details, customer name, timestamp, Outlook conversation ID.

SLA timer and breach alert +

15-minute clock on each quote-worthy email. Teams nudge posted if no reply within the threshold.

Win/loss outcome +

Classification of the customer reply: accepted, declined, or no response after N days.

Dashboard metrics +

Quote volume, time-to-quote by bucket, win rate by bucket and rep, SLA breach list, coverage rate. Every row links to the Outlook thread.

Teams notification +

Internal message posted to Teams when a quote request sits unanswered past 15 minutes. Includes customer name, route, and a deep link to the email.

draft ready for estimator review _
tech used
Microsoft Graph API for Outlook inbox monitoringMicrosoft Teams webhooks for SLA alertsOpenRouter for email classification and extractionSQLite for quote metrics storagePDF parsing for delivery-order attachments
tool alternatives
Gmail API or other email provider API instead of Microsoft GraphSlack webhooks instead of Teams for notifications
honest qualification

Is this for you?

built for you if
  • + Freight brokerage operations managers - Teams managing high-volume quote requests across shared Outlook inboxes who need SLA tracking and per-rep performance data.
  • + 3PL and logistics operations - Non-asset-based middlemen who live in email and need a dashboard to track response time, win rate, and coverage without changing how the team works.
  • + Teams with 5 to 50 quote handlers - The SLA nudge and per-rep metrics are most valuable when multiple people touch the same inbox and coordination is hard.
  • + Organizations using Microsoft 365 - The build integrates directly with Outlook and Teams via Microsoft Graph and webhooks. Requires delegated access to Patrick's mailbox.
not for you if
  • - Teams without Outlook or Microsoft 365 - The build is purpose-built for Outlook and Teams. Gmail or Slack-only teams would need a different integration.
  • - Organizations that want fully automated quote responses - This build is analytics and SLA enforcement first. Auto-drafting quote responses is explicitly out of scope and deferred to a future phase after the team has data to identify which quotes are safe to automate.
  • - Teams that need TMS integration in the first phase - The build reads Outlook only. Integration with the LDi TMS (LDI4 or LDI5) is deferred to a future phase. Win signals come from email replies, not TMS records.
  • - Load-board-only operations - The build filters out load-board noise by default (Nucor and Ryerson boards are excluded). If your primary revenue comes from load boards, this build is not the right fit.
pricing

Pricing

to build

LDI Quote Watchdog is a scoped custom build for Patrick Gooding and Logistic Dynamics Columbia. Pricing covers the initial build, prototype approval, and deployment to production. Usage-based costs are separate and cover ongoing API calls to Microsoft Graph, OpenRouter (for email classification and rules evaluation), and Teams webhooks.

then
  • Build scope includes prototype with synthetic inbox, rules editor, and fully functional dashboard.
  • Production deployment requires Patrick's Microsoft 365 delegate access, Teams webhook URL, and final rules configuration.
  • Usage costs scale with email volume. LDi's 3,000 to 4,000 emails per day will incur modest OpenRouter charges for classification and extraction.
  • Ongoing maintenance and rule refinement are separate from the initial build fee.
FAQ
How does the agent know if an email is worth quoting?

The agent extracts shipment details from every email and PDF attachment, then runs your rules against the data. You define what makes a load worth quoting: weight caps, equipment types, geography, bonded or hazmat handling. The agent also recognizes repeat customers like Trane and ProTrans and applies customer-specific rule overrides on top of the global rules.

What happens if no one replies to a quote request within 15 minutes?

A Teams message posts automatically with the customer name, route, and a link to the email thread. This is your last-line-of-defense alert. The timer stops as soon as any team member replies to the thread, so the nudge fires only once per quote request.

Can I see which team members are winning the most quotes?

Yes. The dashboard shows win rate broken down by rep, by bucket (urgent, planned, golden), and by customer. Every metric links back to the original email thread so you can verify the data and coach your team against real conversations, not CRM records that might be stale.

What is the coverage rate metric and why does it matter?

Coverage rate shows what percentage of quote-worthy requests your team actually quoted. If the agent classifies 100 emails as worth quoting but your team only quoted 70, your coverage is 70 percent. This metric identifies blind spots and helps you understand how much business is slipping through because no one saw the email or had bandwidth to respond.

Does the agent draft quote responses for my team?

No. This build is analytics and SLA enforcement first. The agent reads every email, classifies it, starts a timer, and posts a Teams nudge if no one replies. Your team still writes the quotes. Auto-drafting quote responses is deferred to a future phase after you have enough data to identify which quotes are safe to automate.

How does the agent handle PDF attachments like delivery orders?

The agent parses PDF attachments on every email to extract structured shipment data: pickup and delivery addresses, weight, equipment type, pickup windows, bonded or hazmat flags. This works the same way for inline email text. Both shapes are handled so you don't have to re-type data from the PDF into the system.

What if a customer wins a quote but never replies to the email?

If a customer accepts the load via EDI tender or a separate system, the agent detects that signal in the inbox and marks the quote won. If there's no reply after several days, the quote is marked as no response rather than lost. Email is the system of record, so every win and loss metric links back to the original thread for verification.

Do I need to change how my team works today?

No. The agent monitors your Outlook inbox and Teams in the background. Your team keeps replying to emails the same way. The dashboard and SLA nudges are new, but the workflow stays the same. This build gives you the metrics and alerts you've been missing without disrupting how the team operates.

next step

Ready to stop losing quotes to inbox chaos.

LDI Quote Watchdog gives Patrick the SLA tracking and per-rep performance data his team has been missing. Every metric links back to the original email thread so he can verify the data and coach his team. The 15-minute Teams nudge is the last line of defense against missed leads.