Case study · Freight brokerage · Salesforce + Sage Intacct

The bridge skipped records. The reports couldn't join. We fixed both.

How a $60M freight brokerage on a Salesforce-native TMS and Sage Intacct replaced an outsourced bridge, reconciled its numbers to the penny, and surfaced nearly $300K of commission-stamping discrepancies in the source system.

Client
US freight brokerage, $60M. Anonymized.
Systems
Revenova (Salesforce-native TMS), Sage Intacct (multi-entity), TriumphPay
Scope
Live TMS mirror, Intacct bridge takeover, payment write-back, commission engine, analytics
Posture
Read-only first. Two audited writers. Everything else untouched.
4–8 hrs
Manual Excel consolidation removed per reporting cycle
4 → 1
API calls per record to Intacct
$2.36M
Payment records backfilled, 0 duplicates
Nearly $300K
Commission-stamping discrepancies surfaced
The situation

Three systems, one outsourced bridge, and a lot of Excel.

The brokerage ran its operation on a Salesforce-native TMS, its books on Sage Intacct across multiple entities, and its carrier payments through TriumphPay. A third-party vendor ran the bridge that moved TMS records into Intacct.

The TMS was a strong system of record and a weak reporting tool. Each reporting cycle meant consolidating several reports by hand in Excel, and commissions were calculated in a workbook the controller maintained.

The problems

Four failures, none visible from inside the systems.

1 · REPORTING

Hours of manual consolidation

Four to eight hours of multi-report Excel work every reporting cycle.

2 · THE BRIDGE

Failures that made no noise

The outsourced bridge skipped records without raising an error, used four API calls per record, and marked invoices paid without creating the payment records the TMS roll-ups depend on.

3 · COMMISSIONS

Math nobody could audit

The source system's own stamping carried errors: a dual-role rule left unapplied across 1,232 loads, duplicate multi-leg stamping, a per-leg double-counted quarterly bonus, and a UTC-versus-local month boundary. A partner-channel workbook had 226 rows caching zero, which shorted reps.

4 · THE PACKAGE

Logic nobody could see

The vendor's plan-margin field under-netted multi-leg carrier settlements, and a retroactive formula recalculation left six figures of overstamping in the source system.

What we did

Look first. Mirror second. Replace last.

1

Mapped the org before touching it

Read-only enumeration through the Tooling and Data APIs covered 90 objects, their fields, relationships, and history tracking, and produced a 5.2K-line specification. That specification is where the plan-margin defect turned up.

2

Mirrored it live

190K+ loads, 13K carriers, and 179K stops now flow into Postgres on a five-minute freshness target, with a Flow webhook for instant single-record upserts. Scheduled jobs moved to a client-credentials path that never contends with the always-on loop's refresh token, which ended a recurring class of 400-level failures. About 155K historical loads across three-plus years were unified alongside them.

3

Reconciled before trusting

Every number was tied to a source the controller already trusted. The commission engine matched the controller's workbook to the penny before it paid anyone, and the same engine exposed the stamping discrepancies in the source system.

4

Took over the bridge without source access

We mirrored the incumbent's behavior from the outside and reproduced its silent-skip failure 24 of 24 times. The owned replacement uses fail-closed dedup, pre-flight validation, verify-after-write readback, a single-runner interlock, and an append-only run journal. It makes one API call per record instead of four, which removes about $18K a year in avoidable API tier alone.

5

Closed the payment gap

A watcher finds invoices marked paid without payment records and creates them idempotently: 903 records worth $2.36M, with zero duplicates. A 1,052-invoice outage window backfilled with zero failures.

6

Locked down what can write

Exactly two sanctioned writers, set-only and mirrored to an audit table. Rep attribution is stamped at ingest, so a retroactive recalculation can never silently repay history. 1,069 regression tests cover the money-touching rules, each anchored to a verified production vector.

What carries over

Four lessons that apply to any Salesforce org.

Mirror it. Don't replace it.

Salesforce stays the system of record. A live mirror takes the reporting load and keeps the history Salesforce expires.

Reconcile before you trust.

A number tied to a source the controller already believes is worth more than a clever dashboard.

Bridges fail silently.

The only reliable check is reading the record back after every write and keeping a journal of every run.

Write rarely. Log every write.

With two sanctioned writers, "what changed this?" has two places to look, not a whole platform.

The expensive failures weren't outages. They were systems that kept running while quietly being wrong.

Does this sound familiar?

Five signs your org is in the same position.

Start with a read-only look at your org.

No pitch decks, no rip-and-replace. You'll hear back from a human, usually the founder.

Related: Sage Intacct integration · Freight brokerage systems

About this case study: the client is anonymized, and every figure comes from production systems. Results are specific to this engagement; your numbers will differ.