Product Updates

What’s New

Every improvement, fix, and new feature shipped to FreightLeads Pro — newest first.

v2.9New FeatureDispatchCalendarCRM

Unified Calendar, Multi-Leg Loads & Service Providers

Your calendar is now a full operations hub — task tracking, email compose, and drag-drop rescheduling all in one screen. Multi-leg loads let you split a shipment across carriers, and a new Service Providers directory keeps subcontractors organised.

August 3, 2026
Three screens replaced by one
📅 Calendar view
All CRM tasks, load pickups/deliveries, meetings, and manual events on a single FullCalendar grid — month, week, and day.
📋 Task drawer
Click any CRM task to open a detail drawer. Add completion notes, mark done, and the activity is logged to the pipeline lead automatically.
✉️ Email compose
Click an email-type task to open the floating compose window — same draggable, resizable window as Managed Inbox — without leaving the calendar.
Unified task calendar — The calendar and CRM task list are now a single screen. CRM outreach tasks (call, email, follow-up, LinkedIn, meeting), load pickup and delivery milestones, Google Meet meetings, and manual events all appear on the same grid. Toggle between month, week, and day view.
Task detail drawer — Click any CRM task on the calendar to open a side drawer showing the contact name, company, task title, activity type, and due date. Enter completion notes, then click “Complete Task” — the task is marked done and the note is written to the pipeline lead's activity timeline automatically. No need to navigate back to CRM to log the action.
Floating email compose on calendar — Clicking an email-type CRM task now opens the same draggable, resizable compose window that exists in Managed Inbox — rich text toolbar, signature selector, CC/BCC, attachments, and draft auto-save. The task drawer stays open in the background so you can complete the task immediately after sending.
Drag-and-drop rescheduling — Drag any CRM task to a new day directly on the calendar grid to reschedule it. The due_date is updated immediately via API — no modal, no form.
Multi-leg load support — Loads can now have multiple legs, each with its own carrier, rate, and status. Add legs from the Dispatch detail page via the new Legs panel. Each leg tracks its own origin, destination, carrier name, carrier email, load rate, and currency. Useful for relay loads, intermodal moves, or any shipment that changes hands mid-route.
Per-leg carrier assignment — The Legs panel includes a carrier lookup tied to your address book. Select a saved carrier or type a new one — name and email auto-populate. Each leg can have a different carrier from every other leg on the same load.
Service Providers directory — New page at /dashboard/service-providers for managing subcontractors, lumpers, customs brokers, and any vendor that isn't a carrier. Backed by the same address book as Dispatch so contacts are shared across the platform. Add, edit, and remove providers; link them to loads as needed.
Multi-stop loads — Loads now support multiple pickup and delivery stops via a JSONB stops array. Each stop carries its own name, address, appointment window, and appointment number. The dispatch detail page renders all stops in order so the full route is visible at a glance.
🗓️The unified calendar replaces the need to bounce between CRM tasks, the dispatch board, and your calendar app. Everything that has a date is in one place — and you can act on it without leaving the screen.
v2.8New FeatureSecurityInbox

Gmail Integration & Email Security

Connect your Gmail account and send emails from your own address directly inside FreightLeads Pro. Email content is encrypted with AES-256-GCM — even FreightLeads Pro cannot read it. Available to all users.

August 2, 2026
What connecting your Gmail unlocks
📬 Managed Inbox
All carrier and customer replies land in a unified, threaded inbox — no forwarding rules needed.
🤖 AI Parsing
Inbound emails are classified automatically: RFQ, rate reply, ETA update, invoice, or general.
📋 Auto-Logging
Every sent and received email is logged to the CRM contact and load timeline without any manual effort.
📅 Meeting Invites
Send Google Meet invites directly from FreightLeads Pro. Attendees receive a calendar invite with a real Meet link.
Real-Time Sync
Gmail push notifications keep your inbox up to date in real time — no polling, no delays.
🔒 Private by Design
Email content is encrypted with AES-256-GCM before storage. FreightLeads Pro staff have no access to your inbox — only you as the workspace owner can view your emails.
Gmail OAuth — send from your own address — Connect your Gmail account in Settings → Connected Email. Carrier rate requests, quote replies, and outbound emails are sent from your real Gmail address. Recipients see your name and email, not a relay address.
Managed Inbox — now available to all users — The Managed Inbox is no longer a beta feature behind a flag. Every account can access the unified threaded inbox at /dashboard/inbox. Connect Gmail for full real-time sync, or use the email forwarding token (Settings → Email Log Token) to forward emails manually — both paths work.
Google OAuth safety explainer — Because FreightLeads Pro hasn't completed Google's lengthy (and expensive) app verification program, Google displays an “unverified app” warning during the OAuth flow. We added a pre-connect modal in Settings that explains exactly what this warning means, what permissions are requested (read + send on your behalf), and what each permission unlocks — so you can make an informed decision before connecting.
Email body encryption (AES-256-GCM) — All email body content is now encrypted at rest using AES-256-GCM with a key that is never stored in the database. FreightLeads Pro staff have no access to your email content — there is no admin panel, no support backdoor, and no way for anyone on our team to view your inbox. Only you, as the workspace owner, can access your emails. Encryption is backward-compatible — existing emails are returned as-is; all new emails are encrypted on write and decrypted transparently on read. This satisfies the “appropriate security safeguards” requirement under PIPEDA and Quebec Law 25.
90-day body retention policy — A daily background job nulls the body content of emails older than 90 days. Subject, sender, timestamp, AI summary, and parsed fields are retained permanently for your records; only the full body text is cleared.
Google Meet integration — Schedule meetings and generate Google Meet links from the Inbox and CRM. Attendees receive a proper Google Calendar invite with a join link. Requires a connected Gmail account.
Critical security fix — cross-tenant email policy — A Supabase row-level security policy on crm_email_logs was incorrectly configured as a public-role ALL policy, which in PostgreSQL's permissive model effectively granted any authenticated user access to all rows. The policy has been dropped. Service role access (used by background jobs) bypasses RLS by design and required no policy. The user-scoped SELECT policy remains and correctly isolates data by user_id.
🔒Forwarding-rule users keep every feature that doesn't require OAuth (inbox, AI parsing, rate detection, CRM logging, tasks, meetings). Connecting Gmail adds real-time sync, send-from-your-address, and Google Meet links on top of that baseline.
v2.7ComplianceDispatchNew Feature

FMCSA Carrier Safety Intelligence

The carrier Verify button now pulls a full SAFER-style safety snapshot — inspection counts, OOS rates benchmarked against national averages, crash breakdown, fleet size, and ISS score. Every check is timestamped in your carrier record for auditing.

July 31, 2026
Live FMCSA Safety Data — pulled on every Verify
TypeOOS RateOOS CountInspections
Driver
0.7%
nat'l 5.5%
14420,113
Vehicle
22.0%
nat'l 20.7%
2,41510,983
Hazmat
1.0%
nat'l 4.5%
7686
Total Crashes
1,485
Fatal
46
Injury
499
Tow-away
940
Full inspection table — Driver, Vehicle, and Hazmat rows each show OOS rate, OOS count, and total inspections pulled live from FMCSA SAFER on every Verify click.
National average benchmarks — Each OOS rate is shown alongside the national average (e.g. “nat'l 5.5%”) so you can immediately tell whether a carrier is above or below the industry norm — not just a raw number in isolation.
Fleet context — Power unit count, driver count, and ISS score shown above the table. 22% Vehicle OOS looks different for a 10-truck fleet vs. a 25,000-truck carrier.
Full crash breakdown — Total crashes split into Fatal, Injury, and Tow-away for a complete picture of the carrier's accident history.
Timestamped audit trail — Every Verify saves the full safety snapshot and a fmcsa_checked_at timestamp to your carrier record. Documented proof of due diligence before every load tender.
SAFER deep links — Two direct links open the carrier's full SAFER report (Canadian inspections, IEP data) and BASIC percentile scores in your browser — data that goes beyond what any API provides.
🛡️FMCSA regulations require brokers to verify operating authority and insurance before tendering a load. The timestamped snapshot in your carrier record satisfies that requirement and gives you a defensible paper trail if a claim ever comes up.
v2.6New FeatureAnalyticsDispatch

Rate Intelligence Analytics

Your quote history is now a searchable analytics layer. Search any lane and see every rate you've ever collected — charted over time per carrier, ranked cheapest to most expensive.

July 22, 2026
Toronto → Chicago · FTL Dry Van · Last 6 months of quote history
1
J&B Transport
$1,720Best Rate
2
Swift Logistics
$1,997Mid-Range
3
Maple Hauling
$2,452+43% above
Carrier spread: $732/load — all from your own quote history, not an external data feed
Rate Intelligence page — New page at /dashboard/rate-intelligence. Search any origin + destination by city and state with a configurable radius. Pulls every rate you've ever logged on that lane.
Rate Trend Chart — SVG chart showing every quote over time, colour-coded per carrier. Filled dot = booked load, open ring = quote only. Up to 8 carriers plotted simultaneously.
Carrier Rate Comparison — Horizontal bar chart ranked cheapest to most expensive. Spread callout shows the dollar gap between best and worst on the lane. Each bar shows the carrier's average rate across all quotes.
Sidebar nav item — Rate Intelligence is now accessible from the main sidebar under Reports. Available to all roles (owner, admin, manager, dispatcher, accountant).
📊This is your proprietary rate intelligence — built entirely from quotes you've logged. The more loads you quote, the sharper the picture gets. No external data subscription required.
v2.5DispatchAINew Feature

Carrier Rate Intelligence

Every carrier rate you collect — from a phone call, an email reply, or AI auto-parse — is now stored, searchable, and used to rank carrier suggestions. Your quoting history becomes a proprietary rate database.

July 8, 2026
Three ways rates get logged
📞 Manual Log
Click "Log Rate" next to any carrier → type the quoted amount → done. Free on all plans.
🤖 AI Auto-Parse
Carrier replies to rate request email → AI extracts the dollar amount → stored automatically. Pro/Team.
📦 Dispatch Booking
When a load is booked, the rate is flagged as "won" — closing the win/loss loop.
carrier_lane_quotes
New table — every rate stored with carrier, lane, source, and win/loss flag
Enriched suggestions
Carriers from quote history appear in To Quote suggestions with avg rate + quote count
Log Rate button
Per-carrier inline input on every suggestion row in To Quote — amber badge after save
carrier_lane_quotes table — New Supabase table stores every carrier rate collected: carrier name/email, origin/dest city+state, rate amount, source (manual | email_reply), linked CRM load, and a was_booked flag for win/loss tracking. Workspace-isolated via RLS so team members share the same rate history.
Log Rate button — free for all plans — Each carrier suggestion row in the To Quote expanded workspace now has a “Log Rate” button. Click it, type the quoted amount, press Enter or Save. Rate is stored instantly and an amber badge shows the saved amount for the session. No AI cost, no gating.
AI auto-parse now writes to rate history — When a carrier replies to a rate request email, the existing AI parser now also writes to carrier_lane_quotes (source: email_reply) in addition to the existing lane_rates entry. Pro/Team only — gating unchanged.
Carrier suggestions enriched with quote history — Carriers who have quoted a lane before (but may not have been booked) now appear as suggestion entries with a “N× quoted” badge and their average quoted rate. Existing booked carriers gain a “quoted avg $X” annotation.
/api/carrier-lane-quotes — New POST + PATCH endpoints. POST inserts a manual rate log. PATCH will set was_booked = true when a load is dispatched to that carrier (Phase 2).
📈The longer you use it, the more powerful it gets. Every logged rate is a data point. After a few months you'll know exactly who to call first on any lane — and what rate to expect before you dial. Full feature overview →
v2.4FinanceBug FixQuickBooks

Reporting & Financial Accuracy

AR aging now works correctly for all payment terms. QuickBooks export was silently missing carrier bills — fixed.

July 8, 2026
AR Aging — Now ages from due date
Current
$12,400
Not yet due
1–29d
$4,800
Past due
30–59d
$1,200
Past due
60+d
$0
Critical
QuickBooks IIF export — Carrier payable bills were completely missing from every export since launch due to a wrong table reference. All three data types (invoices, carrier bills, expenses) now export correctly.
AR Aging date basis — Previously aged invoices from their issue date, which produced wrong buckets for NET15 or NET60 customers. Now ages from due date — consistent with the cron job, the KPI page, and actual payment terms.
90d+ bucket was always empty — The "90d+" column in the customer aging table was hardcoded to "—" with no data wired to it. Now shows real balances for invoices 90+ days past due.
KPI "Collected MTD" — Was counting invoices created this month that happen to be paid, not invoices paid this month. Now correctly reads the paid_at timestamp.
QuickBooks expense entries — Expenses were debiting "Accounts Payable" instead of "Checking." Fixed so expense checks post to the correct bank account in QuickBooks.
📊Re-export your QuickBooks IIF for any period where you had carrier payables — previous exports were missing the carrier cost (bill) section entirely.
v2.3InvoicingCRMDispatch

Smart Invoice Contact Picker

Billing contacts are now a master record — set once in CRM and they follow invoices, dispatch, and the billing banner automatically.

July 7, 2026
Customer Email — Billing Contact
Billy BobBillingSandra Kowalski[email protected]
Click any pill to switch — or type a different address for one-off sends without touching the master record.
Invoice contact picker — The “Customer Email” field on invoices now shows pill buttons for every CRM contact linked to that customer. Billing contacts (★) appear first. Click to switch; type below to override for one-off sends without touching the master record.
CRM form consistency — The “Add Company” form in CRM now includes the same billing contact and billing address fields as the Dispatch customer form. Data entered in either place flows to the same master record.
Billing inbox support — Contacts no longer require a name — a shared inbox like [email protected] is now valid everywhere. This unblocks common enterprise setups.
Contacts tab synced across CRM & Dispatch — The contacts tab in Dispatch detail writes to the same crm_contacts table the CRM reads from. One master record, consistent everywhere.
Billing banner false positive — The “no billing email” warning in Dispatch was firing even after adding a billing contact in CRM. Now correctly checks the CRM contacts table rather than just the flat customer field.
v2.2MobileUX

Full Mobile Responsive Pass

FreightLeads Pro now works properly on phones and tablets across every major section of the app.

July 2, 2026
🚛
Dispatch
Card layout, tap-to-call carrier phone
🧾
Invoices
Card list, 2-col aging summary
💳
Payables
Expandable rows, action buttons surfaced
Dispatch list — Mobile card layout with stacked status, date, and lane; desktop grid hidden on small screens.
Dispatch detail — Responsive header, stacked sections, tap-to-call link for carrier phone number.
Invoices — Card list on mobile; 2-column aging summary grid; export buttons tucked away on small screens.
CRM / Pipeline — Reduced padding, horizontal scroll on nested load tables, hidden toggle buttons on mobile.
Payables — Collapsed card rows that expand to full detail; Mark Paid / View Load / Delete buttons promoted to the top of the expanded panel on mobile.
📱All layouts use a new useMobile() hook — SSR-safe, 640px breakpoint — so the switch is clean with no flash of wrong layout on page load.
v2.1DispatchAICRM

To Quote Dispatcher Workspace

Dispatchers now have a full inline workspace for quoting — AI-drafted carrier emails, RFQ replies, and internal notes without leaving the page.

June 12, 2026
Expandable quote rows — Click any “To Quote” row to open the full dispatcher workspace inline, without navigating to a new page.
Reply with Quote — Compose a quote reply directly from the inline panel. Sends via the broker's inbox for thread continuity.
AI carrier rate requests — Enter the carrier name and email; the AI drafts the outbound rate request (including weight, commodity, and lane). Edit before sending.
Internal notes — Add team notes scoped to the CRM company. Notes appear instantly; stored in the shared CRM record visible across modules.
CRM sort & pagination — Sort by A–Z, Date Added, or Last Activity. Per-page selector (10/25/50). Pagination controls at the bottom.
SMS / Twilio removed — Carrier communication is now fully email-based. The “Send Dispatch SMS” button and the underlying Twilio integration have been removed.
🤖Rate request emails now include weight and full commodity description — carriers get what they need to quote without a follow-up.
v1.0 — FoundationEarly 2026

Platform Launch

Core TMS (Dispatch, Load Board, Track & Trace), CRM & Pipeline, Invoicing, Carrier Payables, AR Aging, Lane Margins, GST/HST reporting, carrier insurance compliance, factoring support, AI lead suggestions, and the Lead Finder.

Have a feature request or found a bug? Contact us — we read everything.