Automation

Freight Document Generation from Forms

Quote letters, SOPs and claim letters still go out with leftover placeholders. Representative architecture: the form → strict JSON → placeholder-free Google Doc pipeline we delivered on Zapier + OpenAI, adapted for 3PL paperwork. It writes documents only: no rate calculation, TMS lookup or claim filing.

  • Logistics/3PL
  • Zapier
  • OpenAI
  • Document Generation
  • Google Docs Google Docs
Freight Document Generation from Forms — case study visual

Overview

The project at a glance

Quote letters, customer SOPs and claim letters still get written from scratch or from a template full of brackets. This representative architecture adapts a document-generation pipeline we delivered: a form submission is turned into strict structured JSON by an LLM with validation retries, then rendered into a placeholder-free Google Doc.

The original build was for a service business, not a logistics company. It produces documents only. Rates and other commercial figures are typed in by a person; there is no rate engine, lane pricing, TMS lookup or claim filing.

What the engagement had to achieve

  1. Turn a staff-filled request form into a ready-to-send document
  2. Enforce required fields via strict JSON and validation retries
  3. Render into a template with no leftover placeholders
  4. Support quote letters, merchant SOPs and claim / dispute letters
  5. Keep commercial figures human-entered: no rate calculation, rate shopping or claim filing.

The story

The challenge, and how we solved it

What was at risk

The Challenge

Plenty of logistics paperwork is structured writing: a proposal or quote letter that wraps rates already agreed by the pricing team, a merchant-specific SOP, or a claim or dispute letter to a carrier. Each one is rebuilt by hand from an old Word file, with the wrong customer name left in or a placeholder shipped to the client. Generic AI writing invents terms and drops required sections.

Failure mode 01
Template leftovers

Old Word files ship with the wrong name or leftover placeholders.

Failure mode 02
Invented terms from freeform AI

Unstructured generation drops required sections and invents commercial terms.

Failure mode 03
Document only — not a rate engine

Rates in any sample are typed in by a person. No freight quoting, rate shopping, TMS lookup or claim filing.

How we responded

The Solution

Decision 01
Form as the single input

A request form filled in by sales, ops or claims staff, with commercial figures entered by a person.

Decision 02
Enrichment, then strict structured JSON

Context enrichment before generation; LLM output as strict JSON with validation retries until every required field is present.

Decision 03
Template render with no leftovers

Google Docs template rendering rejects the document if a field is missing — it is not sent with placeholders.

Decision 04
3PL document types

Quote / proposal letter (rates typed in), merchant SOP, carrier claim or dispute letter. Claim letter only — never claim filing or recovery.

Decision 05
Where documents go

Output is a Google Doc. Other template tools (PandaDoc, DocuSign) or a handoff to QuickBooks or NetSuite would be set up per project. This is not an AI freight-quoting tool.

Deliverables

What we built

The concrete capabilities designed, built, and shipped in this engagement.

Form as the single input

A request form as the single intake, filled in by sales, ops or claims staff, with commercial figures entered by a person.

Enrichment step before generation

An optional context-enrichment step runs before the LLM generates the document.

Strict structured JSON from the LLM

OpenAI returns strict structured JSON; validation retries until every required field is present.

Placeholder-free Google Docs rendering

Template rendering into Google Docs with no leftover placeholders — the document is rejected, not sent, if a field is missing.

Zapier-orchestrated generation pipeline

Zapier orchestration ties form → enrichment → LLM → Docs so ops can change prompts without redeploying an app.

Explicitly no rate engine

Quote / proposal letter (rates typed in by a person), merchant SOP, or carrier claim / dispute letter. Rate calculation, rate shopping, freight-quote email parsing and TMS lookups are not included.

Technology

The stack

The tools behind the build, and the role each one played.

Stack used

Zapier

Stack used

OpenAI

Stack used
Typeform

Typeform

Stack used
Google Docs

Google Docs

Outcome

What changed

Representative architecture: there are no logistics document volumes to report yet. The design guarantees below come from the original build.

Beyond the launch

Lasting improvements

The changes that keep paying off after the engagement ended.

  1. Strict JSON validation retries until every required field is present
  2. Placeholder-free Docs output — document rejected, not sent, if a field is missing
  3. Ops can change prompts in Zapier without redeploying an app
Your system next

Want an outcome like this one?

A short introductory call covers what's holding you up, whether we can help, and the first thing worth building.