AI & automation
Transport orders read straight from email
Legno's transport orders arrive by email — new bookings, changes to bookings, and questions, all in the same inbox. A dispatcher used to read each one and retype it into the planner.
The Challenge
Every order reached Legno as an email, and every email had to be read before anything happened: is this a new booking, a cancellation, updated times for a job already in the plan, or someone simply asking a question? Container and road transports carry different details, some carriers send jobs with no order number at all, and an email sent twice could put the same job in the plan twice.
The Solution
- We built it twice. The first version ran as an n8n workflow; we then moved it to its own service on a server, because n8n burned through its execution quota, kept its logic as text inside workflow files, and could not be tested offline
- A language model reads each email — PDF attachments included — and decides what it is. Only a new booking becomes an order: cancellations, updated stage times and questions create nothing
- Every change to how emails are read is tested against 50 real email threads with known correct answers before it goes live, and a dry-run mode shows exactly what would be written without writing it
- It reads the owner's inbox without marking anything as read, so the mailbox looks exactly the way he left it
- Container and road transports go into separate tables, because they carry different fields
- Before writing, it checks what is already recorded and adds only what is missing — including jobs that arrive without an order number, where it pulls an identifier out of the reference so duplicates are still caught
- A day view per driver brings both kinds of job together and flags any day with more than four jobs
- The history came across from the old planning file. Every date was checked against its weekday first, which caught errors a straight import would have carried over
The Result
Orders are taken from the email they arrive in instead of being retyped, and no change to how emails are read reaches live data without passing the test set first. Moving off n8n is what made that testing possible — and it took the flow off a platform quota it had outgrown.
It is the second system we have built for Legno. The first was the task app for their workshop.
Get in touch
Tell us briefly about your challenge and we'll get back to you within one business day.
What happens next?
By submitting, you agree to us processing your personal data in accordance with GDPR.