MDL Ops Engine - Central Task List
🚀 The "Set and Forget" Path (Autonomous Operations)
Goal: Minimize User interaction time by 90% through proactive AI and background agents.
- [ ] [Proactive Briefing] Create a
daily_intelligence.pyagent that sends one summary email per day with "Exceptions" needing approval, instead of manual dashboard checking. - [ ] [Self-Healing State] Implement 15-min background sync that mirrors Supabase Landed Costs back to Backbone (Full Constitution compliance).
- [ ] [Background QBO] Transition
automate_qbo_tracking_sync.pyto a full background service (Dockerized) so tracking numbers are pushed without user commands. - [ ] [Auto-Pilot Sales] Design "AI Auto-SOP" where if a PO matches a Quote 100%, the supplier PO is drafted/sent automatically with no user oversight.
🛡️ Today's Focus (Mar 6-7): Logistics Intelligence & PDF Parsing
Goal: Eliminate manual data entry for shipment tracking and status verification.
- [x] [Shipment Alert] Integrate
pdfjs-distfor client-side PDF text extraction from waybills. - [x] [Carrier] Implement live API tracking for UPS and FedEx (OAuth 2.0).
- [x] [Ops] Replace carrier scraping alerts with silent API fallbacks.
- [x] [Build] Securely inject UPS/FedEx credentials into the production Docker build.
- [x] [Strategy] Document n8n "Zip and Move" migration protocol for domain preservation.
- [x] [Docs] Regenerate all documentation (HTML/PDF) and sync to GitHub.
📅 March 5: Customs Automation & Workflow Merges
Goal: Harden the financial border by automating customs fee prevention and consolidating versioned workflows.
- [x] [SOP-010] Finalize and distribute SOP-010: Customs Clearance (Sync Markdown to PDF/HTML).
- [ ] [Ops] Implement HS Code Logic Gates in PO Validation (Mandate
8517.62.00.00for broadcast hardware to bypass PGA fees). - [ ] [N8N] Integrate Ancillary Fee Auto-Dispute triggers into the invoice ingest script (UPS/FedEx).
- [ ] [Carrier] Verify BN15/RPP "Hard Link" across both UPS and FedEx portals to eliminate Disbursement Fees.
- [ ] [Admin] Add a secondary Business Account Manager (BAM) to the CARM portal to ensure digital continuity.
- [ ] [Merges] Consolidate pending
merge_v...pyworkflow scripts into a unified production V2 state. - [ ] [Ops Check] Audit the newly matched SKU lists. Verify if the
shipping_cost / total_unitslogic is accurately distributing costs only to physical hardware. - [ ] [UI Polish] Review the dashboard's
partscolumn rendering. If descriptions are too long, implement a "Read More" or tooltip behavior to keep the table readable. - [ ] [Data Mapping] Verify why the user still sees the state as "messed up" — check for outlier project IDs that the fuzzy matcher might have misidentified.
- [ ] [Backbone Sync] Ensure the new SKU data from QBO is mirrored back to the Backbone (Google Sheets) for persistence.
🛳️ Completed (Feb 28)
- [x] [Intel] Developed
sync_qbo_to_shipping_intel.pywith Fuzzy DocNumber resolution. - [x] [Intel] Fixed "Skeleton" gap — Resolved 30 historical records from QBO project metadata.
- [x] [UI] Hardened
shipping.htmlwith fixed-layout and word-wrapping. - [x] [Intel] Enhanced SKU extraction to separate Hardware vs. ESAR/Support units.
🔴 Critical / High Priority (Next)
-
[x] [Ops] Define folder structure for
business_ops(Mapped todocs/01..06) -
[x] [Ops] Create SOP-001 for Quote Approval
- [x] [N8N] Refine intelligence using new
samples/training data (Merged into FINAL MASTER) - [x] [BSC] Migrate hubs to Supabase & fix Hub Update bug
- [x] [N8N] Implement file type detection (PDF/XLSX) & Audit Log mapping
- [x] [Docs] Expand System Manual & Sync BSC Documentation
- [ ] [N8N] Continue training n8n with additional quotes
- [ ] [Product Sync] Finalize Cloud-Based 15-Min Product Sync
- [ ] Run
bsc/database/create_configs_table.sqlin Supabase SQL Editor - [ ] Add Vercel Environment Variables (
SUPABASE_SERVICE_ROLE_KEY,QBO_CLIENT_ID,QBO_CLIENT_SECRET,QBO_BASE_URL) - [ ] Add GitHub Secret
SYNC_URL(https://bsc.mdlcommunications.com/api/products/sync) - [ ] Manually trigger the GitHub action "15-Min Product Sync" and verify the green checkmark
- [ ] Run
- [x] [N8N] Process PDF invoices from Outlook -> Parse -> Match QBO PO -> Create QBO Bill & Link
- [x] Create Outlook Trigger for invoice intake (Implemented via
sync_outlook_attachments.py) - [x] Design Gemini prompt for Invoice-to-JSON parsing
- [x] Implement PO lookup logic in n8n Code Node (Implemented in
ingest_shipping_bill.py&test_po_linkage.py) - [x] Implement Bill creation & PO linking logic (via Automated Tax-Conflict Handshake / ATCH protocol)
- [x] Create Outlook Trigger for invoice intake (Implemented via
- [ ] [QBO] Append the MDL PO number to the Vendor Bill Memo field for visual traceability
- [x] [AI Quote] Extract Salesperson from QBO and add dropdown to web interface
- [x] [AI Quote] Calculate profit split between MDL and contractor, then add profit from shipping to MDL's profit to visualize full potential profit (Implemented in Hub & QBO Sync)
- [x] [AI Quote] Populate Salesperson field when pushing estimate to QBO
- [ ] [Ops] Map Sales Contractor Quote Template (Excel) for easier AI Parsing
- [ ] [Ship-To] Create an automated ship-to app that mimics the existing fillable PDF
- [ ] [QBO] Automatically add tracking number to all QBO documents (Estimate, Invoice, etc.)
- [ ] [QBO] Automatically generate the QBO Invoice from the Estimate/Order
- [ ] [Email] Create professional invoice email templates
- [ ] [Ops] Standardize naming conventions for all documents across the organization
- [ ] [QBO] Add the CBC catalog price list to QBO and designate it as part of the CBC Catalog (Sencore and Haivision SKUs)
- [ ] [N8N/Intelligence] Create intelligence that recognizes a CBC Catalog order, validates prices, and automatically generates a supplier PO
- [ ] [Outlook] Refine automated Outlook folder organization
- [ ] [Outlook] Add local folder organization that mimics Outlook folders
- [ ] [Ops] Create Supplier PO creation SOP - use customer's PO as reference so that it can be linked back to customer and quote ID easier
- [ ] [Ops/Shipment Alert] Test the latest shipping alert form to make sure it has the right format, wording, and information needed to go to automated production.
🟡 Backlog (To Do Later)
- [x] [N8N] Create
samples/directory structure for AI training - [ ] [Docs] Migrate documentation to Cloudflare Pages and secure it with Microsoft Azure AD
- [ ] [QBO/Tax] Tax automation for TotalShip invoices: Apply GST/PST to shipping lines, but exclude tax for customs brokerage fees.
-
[ ] [Meta] Create
business_opsfolder structure -
[x] [QBO] Test sync script with new submodule path (Verified & Enhanced with Blacklist)
- [x] [N8N] Automate Outlook Folder Organization (Deployed
organize_outlook_emails.py) - [ ] [BSC] Create API for shipping quotes (Address/Hub/Dest) for N8N consumption
- [ ] [Finance] Automated Shipping Bill Payment — 20–60 day horizon
- Context: Shipping bills (TotalShip, UPS, FedEx, DHL) are now auto-ingested into QBO and trigger Outlook email tags (🔴 red), a "Bill Logged" calendar event, and a "Bill Due" reminder with alarm. The next step is to close the loop by automating payment itself.
- Best path: Wise Transfers API (full CAD support, well-documented, supports EFT + Interac-style payouts).
- RBC Business: No public API — not viable for programmatic payment initiation.
- Venn.ca: No confirmed public API — verify with them before building.
- Interac e-Transfer: No direct API; may be routable through Wise on the receiving end.
- Approach when ready:
- Build
pay_bill()inscripts/pay_bill.pybacked by Wise API. - Add a human approval gate (CLI prompt or n8n approval button) before any transfer executes.
- On confirmed payment, auto-call
mark_bill_paid()→ email goes 🟡 yellow + paid calendar event.
- Build
- What you'll need to provide: Wise API token, Wise Profile ID, vendor banking details (transit #, institution #, account # or email).
🟢 Completed
- [x] [Meta] Migrate workspace to Meta-Repo architecture
- [x] [Meta] Create Developer Guide
- [x] [Ops] Design Automation Architecture Artifacts (Constitution, Backbone Schema, SOP Template)
- [x] [Docs] Document infrastructure, Docker services, and network architecture in MDL System Manual
💡 Ideas / wish List
- [ ] Add "Inventory Manager" project
- [ ] Create a dashboard for all container statuses
- [x] Create a master SOP document that encompasses the whole MDL Communications business
- [x] [Backlog] Implement SOP-007 Meeting Transcript Ingestion Engine (Impact/Effort prioritization)
- [ ] [App] Web Interface for Sales Quotes (Automated calculations, PDF output matching print format)
- [ ] [Web] Document
www.mdlcommunications.comand track changes - [ ] [E-com] WooCommerce Online Store (Separate B2B and B2C portals)
- [ ] [Marketing] Brainstorm Marketing Ideas & SEO Strategy