For your review · detailed flow

How it works — every step the agent takes

Dave — read through and mark up anything that doesn't match how you actually quote. Push back on the classification rules, the line items, the follow-up timing — whatever feels off. We adjust before any code gets written.
Lotus Design · Gatineau QC · prepared by Derik Lawlis · 2026-04-27
Agent step You decide Edge case / what-if Input / output
1Trigger — how the agent starts~1 sec
Three trigger modes (any combination, you pick)
  1. 1.1
    Manual — Desktop shortcut on your shop PC. One click runs the agent on whatever's in the inbox.

    Right when you sit down to quote, double-click and walk through what it surfaces.

  2. 1.2
    Scheduled — Runs at fixed times you choose, e.g. 8:00 AM, 1:00 PM, 4:00 PM weekdays only.

    Skips weekends and holidays automatically. You can pause it from the agent UI.

  3. 1.3
    Inbox watch — Polls your MS365 inbox every 15 minutes. Only acts on emails that look like RFQs (next stage).

    You can set quiet hours (e.g. only between 7am and 7pm).

What if you want it off? Quit the agent app — done. Nothing keeps running. There's no SaaS to cancel and no scheduled job in the cloud.
2Detect — is this a real RFQ?~1 sec / email
Pattern match against incoming email
Two signals must both be present: an RFQ-shaped subject AND a CAD-shaped attachment.
  1. 2.1
    Subject keywords (EN)

    RFQ, quote, request for quote, estimate, RFP, pricing

  2. 2.2
    Subject keywords (FR)

    devis, soumission, demande de prix, estimation, cotation

  3. 2.3
    Attachment requirement

    At least one of: .step, .stp, .iges, .igs, .x_t, .pdf. Files inside .zip are unpacked first.

  4. 2.4
    Confidence score (0–100)

    Combines: subject match + attachment type + sender reputation (have we quoted them before?). Threshold to act: 60+.

  5. 2.5
    Below threshold

    Email is logged in maybe-rfq.log for your weekly review — never silently dropped. You can re-classify it manually.

Match example (confidence 92)
From: john@acme-eng.com
Subject: RFQ — bracket revision 2
Attachments: bracket-rev2.step, bracket-rev2.pdf
Near-miss example (confidence 42, logged for review)
From: sales@randomshop.com
Subject: Pricing inquiry
Attachments: brochure.pdf
Edge cases handled: chained Re: Re: threads · forwarded RFQs (looks at original sender) · multiple STEP files in one email · revision overwrites (rev3 supersedes rev2)
3Extract — pull every useful field~3 sec
What gets captured into the RFQ folder
  1. 3.1
    Email metadata
    • From, to, cc, subject, date, thread-id
    • Body (plain text + HTML version, both kept)
    • Reply-to address (if different from sender)
  2. 3.2
    Attachments

    Each saved with original filename + a SHA-256 checksum (so you can detect re-sends of the same revision).

  3. 3.3
    Body parsing (Claude reads it)
    • Quantity ("12 pieces", "qty 50", "x3", "douzaine")
    • Lead-time language ("ASAP", "next week", "by end of month", "no rush")
    • Material callouts ("6061", "stainless", "PEEK")
    • Specific finish or treatment requests
    • Any mention of tolerances, certifications, inspection
  4. 3.4
    Customer match against QuickBooks
    • Exact email domain → QBO customer (e.g. @acme-eng.com → Acme Engineering)
    • Fuzzy match on company name in signature if domain is generic (gmail, hotmail)
    • If no match: flagged as NEW CUSTOMER, onboarding fields surfaced
  5. 3.5
    Customer history (if repeat)
    • Last quote date, amount, was it won?
    • Average lead time they've accepted
    • Payment terms, currency (CAD/USD), shipping address on file
4Classify — four decisions, all surfaced~5 sec
Each decision shown with all branches it considered
If any rule below doesn't match how you'd actually classify, flag it — these are the levers we tune.
4.1 · Rush level?
ROM (default): "no rush", "next month", or no urgency stated → standard 24–48hr quote turnaround Rush: "next week", "asap", "urgent" → flag, expedite reply within 4hr, suggest 15% rush surcharge in estimate Hot rush: "today", "by end of day", "emergency" → notify David immediately, drafts an SMS-style ack, holds estimate for owner review
4.2 · Size / scope?
Soft-jaw range (fits ~6"×6"×4"): standard quote, in-stock material likely, fast turnaround Mid-fixture (6"–24" envelope): fixture cost added to line items, longer programming time Beyond machine envelope (>24" or weight over Haas/Nakamura limits): flag for David — may need no-bid, sub-contract, or split into ops
4.3 · Customer relationship?
Repeat — same part: use last 3 quotes' line items, adjust for current material costs Repeat — new part: use customer's historical pricing patterns and lead-time expectations New customer: flag for onboarding — PO terms, NET-30 vs prepay, ship-to address, tax status Internal / test sender: route to RFQs/internal/, no reply drafted
4.4 · Risk flags (multi-select, all logged in summary)
Tight tolerance: any callout ±0.001" or tighter on critical features Special finish: anodize, chromate, plating, passivation — anything not in your standard flow Material not in QBO inventory: custom order needed, extends lead time DFM concern: deep pocket > 4× tool diameter, undercuts, thin walls, deep threading ITAR / aerospace markings: drawing notes mention export control — flag for owner before any reply Quantity surge: >10× the customer's normal qty — may not fit machine schedule
None of these are deal-breakers. Every flag goes into the summary so you can decide whether to ask the customer or proceed.
5Organize — drop everything in a folder you can open~2 sec
OneDrive folder structure (per RFQ)
OneDrive/
└── RFQs/
    └── 2026/
        └── 04-April/
            └── Acme-bracket-2026-04-27/
                ├── 00-email.eml              ← original RFQ archived
                ├── 01-bracket-rev2.step      ← STEP file
                ├── 02-bracket-rev2.pdf       ← drawing
                ├── 03-summary.md             ← the agent's plain-English summary
                ├── 04-toolpath-output.json   ← Phase 2: Toolpath result
                ├── 05-customer-history.md    ← past quotes and outcomes
                └── status.json               ← drafted | sent | won | lost | follow-up
What's inside 03-summary.md
  1. 5.1
    Header — customer, RFQ ID, date, agent confidence
  2. 5.2
    Email summary — 2-line recap of what they asked for
  3. 5.3
    Customer info — repeat or new, history, payment terms
  4. 5.4
    Quantity, lead time, material — extracted values, with confidence per field
  5. 5.5
    Risk flags — every flag from Stage 4, each with one line of context
  6. 5.6
    Suggested ROM range — low–high with rationale
  7. 5.7
    Open questions for customer — things to ask before quoting precisely
  8. 5.8
    Open questions for you — things only David can answer (machine availability, etc.)
6Build drafts — parallel · Outlook reply + QBO estimate~8 sec total
✉️ Outlook Draft (lands in your Drafts folder)
Mirrors your past replies in tone. Never sent.
Draft (English)
To: john@acme-eng.com
Cc: (your sales backup)
Subject: Re: RFQ — bracket revision 2
Hi John,

Got rev 2 — thanks. ROM for 12 pcs of the bracket in 6061-T6 is ~$4,500, lead time ~10 business days from PO. Estimate attached.

One question: the ±0.0005 callout on the bore — is that critical to function, or is the rest of the part to ±0.005?

David
  1. 6.1
    Greeting — first name from QBO if known, otherwise "Hi" + signature name
  2. 6.2
    Acknowledgement — references the rev/part to confirm we read it
  3. 6.3
    ROM + lead time — single sentence, ballpark
  4. 6.4
    Open questions — the customer-facing items from summary 5.7
  5. 6.5
    Signature — your standard sig block
  6. 6.6
    Language — auto-detected from incoming email; FR variant uses your French templates
💼 QuickBooks Estimate Draft
Appears as a draft Estimate in QBO. Never sent.
Customer: Acme Engineering
Estimate #: EST-2026-0042 (draft)
Currency: CAD
Terms: NET-30 (per QBO history)
Programming & setup — 1 × $400
CNC machining — 12 × $250
Material (6061-T6 plate, 2"×6"×6") — 1 × $480
Deburr / standard finish — 12 × $20
First-article inspection — 1 × $180
Subtotal $4,300 · QC tax TBD · Total TBD
  1. 6.7
    Programming — fixed setup hours × hourly rate (from your QBO items)
  2. 6.8
    Machining — qty × per-piece time × machine rate (Toolpath provides per-piece time in Phase 2)
  3. 6.9
    Material — pulled from QBO inventory if matched, else flagged "verify quote from supplier"
  4. 6.10
    Finishing — added per-piece if any flag in 4.4 fired
  5. 6.11
    Inspection — added if tight tolerance flag in 4.4
  6. 6.12
    Tax + terms — uses customer's QBO tax setup; you confirm before send
7Notify you — single ping, all channels~1 sec
One summary line, delivered however you want
🔔 RFQ ready · Acme bracket · ROM ~$4.5k · 1 risk flag · NET-30 · EN · OneDrive › RFQs/2026/04-April/Acme-bracket-2026-04-27
Desktop pop-upmacOS / Windows native notification
Outlook taskAdds a flagged email to your Tasks list
Teams DM to yourselfSingle-thread queue you can scroll
SMS (optional)Twilio webhook to your phone
For hot rush (4.1): all enabled channels fire simultaneously, not just one.
8You review — the human checkpointyour call
Your turn. Same Outlook + QuickBooks you already use.
Three paths from here. Nothing reaches a customer without you clicking Send.
  1. 8.1
    Open the folder · OneDrive → the RFQ folder → read 03-summary.md. Glance at the STEP if you want.
  2. 8.2
    Decide — three paths:
    SHIP — drafts look right
    Skip to 8.3 + 8.4. Status → sent.
    EDIT — change something
    Edit the Outlook draft normally (typing in Outlook). Edit the QBO estimate normally (in QBO). Save. Hit Send when ready. Status → sent.
    REJECT — agent missed something big
    Drop a one-line note in 03-summary.md ("redo with X assumption", "wrong material", etc.). Re-run the agent. It reads your note and re-drafts. Loop until you're happy. Each re-draft increments a revision counter.
  3. 8.3
    Send the email · Open the Outlook draft, hit Send. Customer gets your reply.
  4. 8.4
    Send the estimate · Open QBO, draft estimate is already there. Hit Send. Customer gets the formal quote.
9Customer receives — looks identical to today
📨 Reply email · from your Outlook account · your headers, your signature, your domain
💰 QuickBooks estimate · your branding · normal QBO email · normal payment links
10Track & follow up — close the loop
Status flips automatically as things happen
  1. 10.1
    Logged in tracker.md — single markdown file, opens in any editor or in OneDrive
    Date inCustomerPartROMStatusSentFollow-upOutcome
    04-27Acme Engbracket rev2$4.5kQuoted04-2705-02
    04-22Norbecjig plate$2.1kFollow-up04-2205-06
    04-15Bombardierfixture$18.4kWon04-15$18.4k
    04-08QuickShopplate set$1.2kLost04-08
  2. 10.2
    Follow-up logic
    • D+5: friendly nudge drafted (template). You approve and send.
    • D+10: second nudge with a different angle (price flexibility, shorter lead time).
    • D+14: final check. Mark no-response if still silent.
  3. 10.3
    Customer reply detected
    PO received: status → Won, folder moves to RFQs/won/, job number assigned, files copied to production folder Question: agent drafts a clarification reply, you approve and send Negotiation / pushback: flagged for owner — no auto-reply Decline: status → Lost, agent prompts for reason (price / lead-time / capacity / other)
  4. 10.4
    Stats kept (rolling)
    • Quote turnaround time per RFQ (clock starts at email arrival, ends at send)
    • Win rate by customer
    • Average deal size, repeat-customer share, FR vs EN mix
    • Loss reasons aggregated for the next quarter's review
Phase 1 keeps tracking in plain markdown. A real CRM is Phase 4 — only if you want it after living with this for a few months.

Read it through. Mark up what's wrong.

Anything that doesn't match how you actually quote — flag it back and we adjust the rules before any code gets written.

Reply to dalawlis@gmail.com · text +1 514 213 7720