Automating how requests are assigned to drivers
The dispatcher was sorting 200 requests a day by hand in a spreadsheet. We replaced route building with a script that checks the constraints.
- Client
- Logistics company, St Petersburg
- Industry
- Logistics
- Year
- 2026
- Duration
- 3 weeks
Requests arrived by email, by messenger and over the phone. The dispatcher collected them into a spreadsheet and assigned them from memory: who was in which zone, who had which body type. When he took leave, the process stopped.
What we did
and why we did it that way.
One point of intake
Every channel feeds a single queue, with the address normalised and duplicates checked.
Rules instead of memory
Zones, body types and driving-hours limits are expressed as rules the dispatcher edits himself.
A bot for drivers
The assignment arrives in Telegram; the driver accepts or declines in one tap.
Dashboard and alerts
Grafana shows unassigned requests and overdue jobs. Previously this came to light from the client.
What changed
and what we measured it with.
How it went
day by day and week by week.
- Week 1
Time and motion
We recorded the real process and costed an hour of the dispatcher’s time.
- Week 2
Rules and queue
We built the intake and the assignment engine.
- Week 3
Bot and dashboard
Drivers connected, run in parallel with the manual process.
How it looks
in schematics.
These are screen schematics. We do not publish client interfaces without permission
A similar problem
on your side?
Describe it in the brief. In working hours we come back with an estimate of time and cost within two hours.