All articles

Playbooks

AI for logistics and freight forwarding companies in Dubai

A quote request lands on WhatsApp, another on email, and the customs paperwork for both is typed out by hand. The four systems that fix that for a freight forwarder, in build order, and where a model must never touch the rate.

Amit Chopra··6 min read

A Dubai freight forwarder runs on the same four moves whatever the cargo: take the enquiry, price the move, get the paperwork right, and get the shipment through customs without a delay. Most of that work is still done by hand, and it happens in a specific place.

A quote request comes in on WhatsApp for an FCL container out of Jebel Ali, a follow-up lands by email from the same shipper with a slightly different HS code, and a rate has to be pulled together from three carrier sheets, a trucking cost and whatever margin the desk keeps in a spreadsheet. Somebody who knows the lanes does that comparison by hand, once, while the shipper is also asking two other forwarders in the free zone for the same number.

This is the shape we build for. Here is what works, in the order it pays back.

Start with one record per shipper and shipment

Before anything else, the business needs one place where every enquiry, shipper, carrier and past shipment actually lives, joined up rather than spread across a phone, an inbox and a booking sheet per lane.

The same shipper usually contacts a forwarder more than once, from more than one channel, and often mid-way through a live shipment rather than at the start of a new one. Until those messages are recognised as one shipper and one shipment, every rate quoted starts from a blank page instead of from the last container that moved on the same lane.

This is mostly not AI. Matching rules on a phone number, an email domain and a company name catch most of it, with a model used only for the genuinely ambiguous cases, which is the right split between code and judgement.

What good looks like: one timeline per shipper, showing every enquiry, every rate quoted, and what actually moved last time on that lane.

Related: data and reporting automation.

Then let the rate comparison compute itself

Once carrier rates, trucking costs and surcharges live in one system instead of a stack of PDF sheets, comparing freight options stops being a manual exercise.

A freight quote is arithmetic: base ocean or air rate, local charges at origin and destination, trucking, insurance, any transhipment cost, converted to one currency, with the margin applied on top. That comparison belongs in code, run against the rates actually on file for that carrier and that lane, not produced by a model asked to estimate a number.

Carrier sheets change often and arrive in different formats from different lines, and a model asked to work out a landed freight cost from a prompt will produce a confident, plausible, wrong number. That failure mode is well documented and it is exactly why the figure on a quote has to come from a calculation the business can check against the rate sheet, not from a paragraph.

What good looks like: a rate comparison across every carrier on file goes out inside the hour it was asked for, built from the current sheet, not last month's.

Related: AI agent development.

Make the customs paperwork happen on its own

The next win is the least exciting one and the most reliably dropped: what happens the moment a quote turns into a confirmed booking.

The booking needs to be confirmed with the carrier. A bill of lading needs to be raised with the right HS code and consignee details. A certificate of origin needs to be requested where the shipment needs one. The customs declaration needs the same details typed in a second time. Right now, all of that depends on the same coordinator who booked the shipment also remembering to do all four, correctly, for every one of the shipments moving that week.

Wire the paperwork to the booking stage instead. Confirming the shipment is the trigger, and each document is generated from the details already on file rather than retyped. The HS code, the consignee, the weights and the values move from the booking record straight onto the document, which is also where an intelligent document workflow earns its keep on the shipments that already have a mountain of prior paperwork to read from.

Related: document generation automation.

Then find out which lanes actually carry the margin

With a joined-up shipper record and a real rate history, the business can finally answer the question every forwarder has an instinct about and no evidence for: which lanes, which carriers and which shippers are actually worth the desk time they take.

Volume and margin are not the same list. A high-volume lane running on a thin margin can be propping up the business while a smaller, higher-margin lane gets deprioritised because it feels less busy. That comparison only exists once the quoted rate and the cost actually paid for every shipment sit in one place rather than in a folder of carrier invoices.

What good looks like: a decision on which carrier relationships to grow, made on margin per lane, instead of on which desk shouts loudest.

Where to keep AI away from the customer

Three boundaries we hold in this sector, and recommend to anyone building here:

Never let a model quote a freight rate. The figure comes from the calculation, against the carrier and trucking rates on file. The model may draft the covering message. It may not touch the number inside it.

Financial answers are role-gated. An assistant that can answer "what is our margin on this shipper" must refuse that question for an account that should not see it, rather than estimate around the gap. A refusal is a correct answer. An estimate is a leak.

Outreach to shippers and carriers is templates chosen by rules, sent by a person. A forwarding relationship runs on trust with a named coordinator on both sides. Generated messages at volume are a fast way to spend that.

What this looks like in practice

The shape above is the one we build for any trading business in Dubai moving physical goods across a border: one database first, then a computed price, then the handoffs, then the margin view. A forwarder has a carrier and customs layer a general trading business does not, which is why the rate-comparison and paperwork steps get their own build here, but the order of operations and the guardrail on the price are identical.

The measurement to agree before you start is simple and easy to check afterwards from your own data: time from enquiry to quoted rate, and the share of bookings where the paperwork went out without a correction. Both are readable before and after without anyone's opinion involved.

Where to start

If a quote still takes three phone calls and a spreadsheet, start with the shipper record and the rate comparison and measure only those two numbers. It is the shortest route from a build to a difference the desk feels within the first month.

Our two-week assessment prices this for your business at a fixed fee: what to build, in what order, what it costs to run, and what it should move.

Make the next AI project one the business can measure.

Thirty minutes with the founder, no slides. You will know what the right solution looks like, what it would take to build, what it should return, and which part to start with.

Replies come from a named person in Dubai within one working day.