Oct 14, 2026

AI Order Intake Agent for a Freight Forwarder

Custom AI agent that turns freight enquiry emails into CRM orders across eight European markets, three brands and five freight modes.

8

European markets on one system

5

Freight modes read from email

1,000

Emails a day it is built for

About the client

The client is a freight forwarding group working across eight European markets. It books road, European road, air, sea and rail cargo, runs three brands with a separate CRM behind each one, and takes 1,500 to 2,000 orders a month across all of its offices.

The challenge

Every order starts as an email. The customer writes the loading address, the goods, the dates and the price in plain text, usually with a PDF, a scan or a spreadsheet attached. A forwarder reads that email and types the same order into the CRM by hand. In one market alone, 20 people were doing this for more than 30 orders a day.

We put manual entry at 10 to 15 minutes an order, which makes the group’s monthly volume worth 250 to 500 hours of typing. That range is our estimate, not a figure the client measured.

The first version we built for them was a visual workflow of 46 nodes, and it handled one email at a time. Twenty forwarders sending at once was more than it could take, so the tool never reached daily use.

The solution

We rebuilt the agent as custom code on a dedicated server in Germany, and carried nothing over from the workflow tool.

A mail worker polls each mailbox. Every email is written to a run log first, so one message is processed exactly once and a retry never creates a second order. The body and the attachments are cleaned and read, scans and office documents included. An extraction agent pulls the freight mode, the ordering company, the loading and unloading places, the goods, the dates and the price, and a rules layer checks all of it against the client’s own freight rules and field names before a value reaches the CRM.

Process diagram with four lanes: the customer sends an enquiry email, the system checks the sender and reads the order, asks the customer for anything missing, creates or updates the order in the CRM, and sends the order number back

When something is missing, the agent asks the sender by email and waits up to 14 days for the answer. A reply on the same thread goes back into the same order, and a change the customer sends later updates the order in place. Once the order is created or changed, the sender gets the order number back.

The address an email was sent to decides which of the three CRMs receives the order and which language the reply is written in, one mailbox per market and eight in total.

Routing diagram: eight markets from Lithuania to Czechia feed three CRM brands, one of them used in every market and the other two in one and two markets

The agent answers in nine languages, formally in Lithuanian, Latvian, Estonian, Polish and Czech, and informally in Danish, Swedish and Finnish. Orders are accepted only from the client’s own email domains, and each mailbox is switched on by an administrator in the dashboard.

AI agent capabilities

  • Reads order emails together with their attachments, including scans and spreadsheets

  • Covers five freight modes: road, European road, air, sea and rail

  • Creates the order in the right CRM and sends the order number back

  • Updates an existing order when the customer changes something

  • Asks the sender for what is missing instead of guessing, and holds the thread open

  • Reads a relative date such as “next Monday” against the customer’s own message, not the forward

  • Remembers each company’s places, contacts and standing instructions

  • Asks before booking when the email is a price request, a tender or a rate offer

  • Replies in nine languages, in the language the sender used

Tools & infrastructure used

  • Custom application code, no workflow tool

  • Dedicated server in Germany, HTTPS and nightly database backups

  • PostgreSQL for orders, the run log and per-company memory

  • Microsoft 365 mailboxes over OAuth2, so no mailbox passwords are held

  • Gemini 3.8 Flash for reading the email and its attachments

  • The client’s CRM API, three instances

  • A dashboard with sign-in through the client’s own Microsoft accounts

The results

  • One system across eight markets, three brands and five freight modes, where the first version covered one office and one CRM

  • Built for 1,000 emails a business day and 6,000 orders created or changed a month

  • 1,097 automated tests, all passing

  • 24 of the client’s own order emails run through one by one, with every mistake found and fixed

  • 250 to 500 hours a month of manual order entry the system takes over