Product Updates

What’s New

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

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.