Skip to content
ParsedMail

Email parser for freight brokers

An email parser for freight brokers reads load tenders, rate confirmations and carrier quote requests that arrive by email, including PDF attachments, and returns the load number, pickup and delivery stops, equipment type, weight and rate as typed JSON. ParsedMail delivers it by webhook or API to your TMS, spreadsheet or dispatch board, so nobody retypes a load.

Try a sample

No account or card. Demo emails are deleted after 24 hours.

Parse an email above, then compare plans and pricing or read the API docs.

Email received

From: Dana Whitfield <[email protected]> Subject: Load tender 88214 Columbus OH to Nashville TN Hi, Tendering load 88214 for your team. Pickup: Columbus, OH on Tuesday, Nov 10 between 8 and 12 Delivery: Nashville, TN on Wednesday, Nov 11 by 4 pm 53 ft dry van, 38,400 lbs, palletized auto parts. All in rate $1,850.00. Please confirm by 3 pm today. Dana

Fields described as

load number, customer, pickup city and state, pickup date, delivery city and state, delivery date, equipment type, weight in pounds, commodity, rate

JSON delivered to your webhook

{
  "load_number": "88214", 0.99
  "customer": "Northline Shippers", 0.90
  "pickup_city_state": "Columbus, OH", 0.97
  "pickup_date": "2026-11-10", 0.94
  "delivery_city_state": "Nashville, TN", 0.97
  "delivery_date": "2026-11-11", 0.93
  "equipment_type": "53 ft dry van", 0.96
  "weight_lbs": 38400, 0.98
  "commodity": "Palletized auto parts", 0.90
  "rate": { "amount": 1850, "currency": "USD" } 0.98
}

Why load emails are hard to automate

Freight moves on email. Each shipper has its own tender layout, one writes the stops in a table, another in a sentence, a third attaches a PDF rate confirmation from its own system. Carriers reply with quotes in free text. Load boards and portals add notification emails of their own. A fixed template or regex breaks the moment a shipper changes its format, and a dispatcher ends up typing the load into the TMS.

ParsedMail reads the message the way a person would. A language model fills the fields you described, so a new shipper does not need a new template.

Fields a broker or carrier usually extracts

Email typeFieldsWhere it goes
Load tenderload number, stops, dates, equipment, weight, rateNew load in the TMS
Rate confirmation (PDF)carrier, rate, accessorials, pickup and delivery windowsMatch against the booked load
Carrier quote replycarrier, MC number, quoted rate, truck availabilityQuote sheet for the load
Proof of delivery emailload number, delivery time, signer, notesStatus update and invoicing trigger

Stops can be a table of rows, so a multi stop load comes back as an array your automation loops over.

PDFs and scanned documents

Rate confirmations and bills of lading usually travel as attachments. ParsedMail reads PDFs with a text layer on every plan and scanned PDFs and images on paid plans, and merges the attachment with the email body. Up to 8 files per email are read. See invoice email parsing for how attachment pages count toward a plan.

Getting the load into your TMS

ParsedMail posts a signed JSON event to your webhook within seconds of the email arriving. Most TMS products expose an API or an import route, so a small service, or a Zapier, Make or n8n workflow, can verify the signature and create the load. Teams without an API can write to a board or spreadsheet that dispatchers already use. Use data.needs_review to hold uncertain tenders for a person instead of booking a wrong rate.

What it costs against dispatcher time

Starter is $49 a month or $24 billed yearly for 1,000 emails and 300 attachment pages. Growth is $149 a month or $74 yearly for 5,000 emails and the review queue. At four minutes to read and key a tender, 500 tenders a month is over 30 hours of data entry. See pricing for every limit, and the email parser comparison if you are weighing other tools.

Frequently asked questions

Can the parser read PDF rate confirmations?

Yes. PDFs with a text layer are read on every plan, and scanned PDFs and images on paid plans. Stops and charges in a PDF table come back as an array of row objects.

Does it work with my TMS?

ParsedMail has no native TMS connector. It sends signed JSON to a webhook, and a small service, Zapier, Make or n8n workflow creates the load through your TMS API or import route.

What about loads with several stops?

Describe stops as a table in the schema, and each stop becomes a row with its own city, date and type. Your automation can loop over the rows.

What if a shipper changes its email layout?

The extraction is language based, not template based, so a new layout usually just works. Emails below your confidence threshold are flagged with needs_review so a person checks them.

How many tenders can I process each month?

Starter includes 1,000 emails a month, Growth 5,000 and Scale 25,000. Each parsed email is one event, so the plan limit is the ceiling for loads created from email.

Related

See your own email as JSON

Paste one into the demo, describe the fields and look at the result. No account needed.