Blog / For brokers

For brokers

How to turn shipper load emails into a live load board automatically

Shippers send loads as email text, Excel attachments, scanned PDFs and Google Sheets. Here's how to turn all of them into one clean, deduplicated load board without retyping, with a real example and production numbers from 38,321 load postings.

Short answer

Automating shipper load emails means treating each shipper as a live feed, not a one-off tender. SmartLoads gives every shipper format its own tested reader, turns each load into the same record (lane, date, truck, weight, rates), cleans cities and equipment codes, fingerprints every load so re-sent emails update instead of duplicating, and then posts to Truckstop automatically and to DAT as a ready file. At one agency it structured 38,321 load postings from 16 shipper feeds in four months.

Every shipper sends loads their own way. One pastes a list into the body of an email every morning. Another attaches an Excel sheet with merged cells. A third sends a scanned PDF with no text in it at all. A fourth keeps a Google Sheet they edit all day and expect you to watch.

Before SmartLoads, our first agency customer handled this the way most broker desks do: a person retyped it. Their TMS (Aljex) had no export, so a broker keyed each load into the TMS, or at the end of the day reformatted everything into one spreadsheet to upload to the load boards. There were never enough hours to get every load posted.

What does one shipper email actually look like?

Here's a real daily email from a scrap-metal shipper, lightly trimmed. It has no attachment and no structure beyond habit:

Thursday 7/2

5 - Opa Locka, FL - cars - Jackson, TN $2000 / Baldwin, FL $800 - ALL IN
1 - Hialeah, FL - cars - Jackson, TN $2200
1 - Ft. Pierce, FL - cars - Baldwin, FL $750 / Jackson, TN $2000

Thanks, [signature]
From: ... Sent: Wed 7/1
[yesterday's list, quoted]

A person reads that as seven loads. Software has to work that out too:

  • "5 -" means five separate loads on the same lane.
  • The part after the slash is an alternate destination and rate, not another load.
  • "cars" means crushed cars on a flatbed.
  • "ALL IN" means a flat rate.
  • Yesterday's quoted list underneath must be ignored.

Here's what lands on the board:

#OriginDestinationRateMilesAlternate
1/5 to 5/5Opa Locka, FLJackson, TN$2,0001,025Baldwin, FL $800
1/1Hialeah, FLJackson, TN$2,2001,035none
1/1Ft. Pierce, FLBaldwin, FL$750245Jackson, TN $2,000

That's seven load records: five Opa Locka slots and two singles, each with mileage filled in. If the shipper re-sends the same email an hour later with one rate changed, those seven rows update. No copies appear.

Why generic email parsers fall short

Most email-to-load tools treat an email as one tender: one email, one load. A broker desk that works recurring freight has a different problem. The same shipper sends the same list, or the same sheet, many times a day with dozens of loads, and the board must show exactly the right set of loads every time.

That changes the requirements:

  • Per-shipper readers, not one universal guess. Each format has its own reader, mapped by column headers rather than fixed positions, so a shipper adding a column doesn't break it.
  • Count expansion. "5 loads" becomes five records, each with its own identity.
  • Ditto marks and blanks. A row that says " under the pickup city inherits the one above.
  • Withdrawn loads. When a row disappears from a sheet, or the shipper hides a tab, the load comes off the board.
  • Plant notes. Text like "CLOSED FRI" in a pickup's hours matters on Friday.
  • Scanned PDFs. Some documents have no text layer. SmartLoads sends those to an AI model, then checks the result like any other row. A load with a missing lane or an impossible rate waits for a person.

The pipeline in plain English

  1. Collect. Emails arrive at an inbound address. Google Sheets are re-read every 5 to 30 minutes. TMS exports are uploaded as CSV.
  2. Read. Each shipper's reader knows its format. AI reads scanned pages.
  3. Fill the card. Every load becomes the same record: lane, ship date, truck, weight, commodity and rates.
  4. Clean. One spelling per city, the load boards' equipment codes, carrier pay set by formula, dates fixed.
  5. No doubles. Each load gets a fingerprint, so a re-sent list updates loads and never copies them.
  6. Check. Anything odd, like a thin-margin rate or an unknown city, waits for a person.
  7. Post. Truckstop gets new loads automatically through its API. DAT gets a file that uploads in under a minute.
  8. Answer. When a carrier calls about a load, SmartLoads' AI phone agent finds it by load number or lane. A person books.

The formats a broker desk actually receives

FormatHow it arrivesHow SmartLoads reads it
Email body textPasted lists, one line per laneLine reader with count expansion and alternate destinations
Excel attachmentDaily sheet emailed to the deskHeader-mapped column reader
PDFTender or load listText reader, with an AI fallback for scanned pages
Google SheetShipper edits it all dayRe-read every 5 to 30 minutes; changes flow through as updates
TMS CSVReport export (for example Aljex Big 500)CSV reader, skipping customers that already have their own feed

Results at one agency

These are production numbers from SmartLoads' first agency customer:

MeasureValue
Load postings structured, May 21 to September 25, 202638,321
Loads on the board per weekday, last 30 days595
Automated shipper feeds16
Import runs17,261
Source rows read (re-sends and sheet refreshes included)1,052,385
Loads posted to Truckstop through the API since July 2317,769
DAT upload files generated since June 3537

The two rows that matter most are the source rows and the postings. The system read over a million rows to produce 38,321 postings, because sheets refresh all day and emails get re-sent. Fingerprint deduplication is what collapses that into one clean posting per load. (We wrote a technical paper on how the fingerprints work.)

What to ask before you automate load entry

  • Can it handle each of your shippers' actual formats, including the scanned PDF?
  • What happens when a shipper re-sends the same sheet? Do you get duplicates?
  • When a load disappears from the sheet, does it come off the board and the load boards?
  • Does it protect a load once it's booked, so a re-sent sheet can't overwrite it?
  • Does it fill mileage and equipment codes the load boards accept?
  • Can a person review anything uncertain before it posts?
  • Does it post to Truckstop and DAT, or just give you another spreadsheet?

Frequently asked questions

Do shippers have to change how they send loads?

No. SmartLoads reads each shipper's existing format. The point is that shippers keep sending what they send today.

What happens when a shipper sends the same sheet twice?

Nothing new appears. Each load has a fingerprint built from its lane, date and slot. A re-sent sheet updates the matching loads, adds new ones and removes the ones that disappeared.

Can it read scanned PDFs?

Yes. When a PDF has no text layer, SmartLoads sends it to an AI model and then validates the result like any other row. Anything that doesn't pass waits for a person.

How long does it take to add a new shipper?

A new format needs a reader, usually built and tested against the shipper's real files. Once it exists, that shipper's loads flow in automatically from then on.

Does it replace our TMS?

No. Your TMS stays the system of record for settlements, carriers and accounting. SmartLoads runs the front of the day: intake, the live board, posting and carrier calls.

See it on your own loads. Send us a day of shipper emails and sheets and we'll show you the board they become.

Book a demo