CASE STUDY

Designing a logistics operations platform from fragmented tools

A role-based internal platform for logistics teams — built to support pickup-point requests, shipment management, route configuration, and operational control at scale.

Avito logistics platform screens for route management and pickup-point requests.

Overview

I designed a role-based internal platform for logistics operations, bringing fragmented workflows into one system used by internal teams to manage pickup-point requests, shipments, routes, and related operational scenarios.

I was the only designer on the platform and worked end-to-end across workflow design, information architecture, UI, edge cases, handoff, and implementation support.

Context

As the delivery network grew, the operational model became more complex. New logistics entities were being introduced, while the existing tools no longer matched the needs of a growing network.

Part of the work was still spread across spreadsheets, legacy admin tools, dashboards, support channels, and manual checks. Some workflows existed only in partial form; others did not exist as system tools at all.

The goal was to create a single operational product that could support growth without turning internal operations into a bottleneck.

Fragmented tools feeding the logistics operations team and creating manual work.
Operational context
Text description: Operational context

Before

  • Excel / Google Sheets
  • Legacy admin
  • Helpdesk / support
  • Dashboards / manual checks
  • Scattered workflows

Consolidated into

Need

One operational platform for managing requests, locations, shipments, routes, and related actions in one place.

Before / Need

Problems

Fragmented workflows

Teams had to switch between multiple tools, cross-check information manually, and rely on support or developers when something broke.

Limited scalability

The toolset was not ready for a growing network, new pickup points, and more complex logistics scenarios.

Unclear operational logic

Statuses, terminology, permissions, and actions needed stronger structure to support both daily work and future growth.

Users and roles

The platform was built for internal operational teams with different levels of responsibility:

  • logistics specialists handling shipment-related operations
  • special agents working with more critical route-related changes
  • support specialists who needed deeper operational visibility in specific cases

  • administrators and leads with broader access
  • trainees with read-only visibility during onboarding

Pickup-point owners were not direct users of the platform. Their only touchpoint was status communication through email flows related to pickup-point requests and follow-up actions.

Roles, main tasks, access levels, and typical actions.
Users and roles
Text description: Users and roles
RoleMain tasksAccess levelTypical actions
Support SpecialistInvestigate cases, check statuses, get deeper operational visibilityLimitedOpen details, review statuses, clarify context, escalate
Incident SpecialistResolve shipment incidents, handle manual exceptionsOperationalReview incidents, change statuses, reroute in allowed cases, escalate
Routing SpecialistManage route logic and route configurationHighCreate routes, fix broken links, update route chains, activate valid drafts
Admin / LeadOversee setup, manage permissions, support broader configuration decisionsAdminManage access, review sections, support configuration, monitor usage
TraineeLearn workflows, observe the systemRead-onlyOpen lists and details, review statuses, observe without editing

Product scope and system complexity

The platform was not a single-feature admin panel. It combined several operational areas into one system: pickup-point requests, pickup points, shipments, incidents, routes, geo-tags, partner entities, user roles, and financial operations such as claims and penalties.

These objects were closely connected. An approved partner request created a pickup point; pickup points were linked to route and geo-tag logic; shipments moved through those points and routes; incidents and financial operations could be tied to the same operational chain.

This created several layers of complexity:

  • many interconnected entities
  • status-heavy workflows
  • risky actions affecting many shipments or points
  • role-based restrictions
  • the need to support future logistics entities and more complex route logic

A big part of the design challenge was making this logic readable and usable without flattening the domain too much.

Product entities and their related list and detail actions.
Product scope map
Text description: Product scope map

Shipment list

  • Shipment list
  • Search and filter
  • Batch status updates
  • Batch rerouting

Shipment

  • Update status

Incidents

  • List of incidents
  • Search and filter
  • Batch close
  • Create incident

Incident

  • Resolve incident

PP Requests

  • List of requests
  • Search and filter
  • Batch approve / reject

Pickup Point Request

  • Reliability check
  • Contact partner
  • Approve / reject

Partner requests

  • List of requests
  • Search and filter
  • Batch approve / reject

Partner request

  • Contact partner
  • Approve / reject

Pickup points

  • List of PP
  • Search and filter
  • Batch status updates
  • Create pickup point

Pickup point

  • Update information
  • Manage services
  • Reroute shipments
  • Open / close

Sorting centers

  • List of SC
  • Search and filter
  • Batch status updates
  • Create sorting center

Sorting center

  • Update information
  • Open / close

User list

  • List of users
  • Search and filter
  • Enable / disable access
  • Create user

User

  • Update information

Settlements

  • List of Settlements
  • Add settlement

Settlement

  • Update information

Tariffs

  • List of Tariffs
  • Add tariff
  • Deactivate tariff

Tariff

  • Update information

Financial operations

  • List of operations
  • Search and filter
  • Add penalty
  • Add claim

Operation

  • Update information

Route management

  • List of routes
  • Search and filter
  • Create route
  • Change provider

Route

  • Update information
  • Deactivate
  • Activate

Geo tag directory

  • List of Geo tags
  • Search and filter
  • Create geo tag

Geo tag

  • Update information

Information architecture

The platform was structured primarily around entities rather than task lists. Users usually already knew what operational task they needed to perform; the design challenge was to help them quickly find the right object, understand its current state, and take the correct action.

A key part of the work was deciding what information belonged in list views and what should stay on detail pages. Users were used to spreadsheets and often expected table-heavy interfaces, but reproducing that pattern everywhere would have made the product dense in the wrong way.

Instead, I introduced more structured list views with filters, strong status visibility, and clear information hierarchy, while keeping deeper details and histories inside dedicated object pages.

Shipment list and detail views with their purposes, information, and actions compared.
List view vs Detail view
Text description: List view vs Detail view

List view

Purpose
Search, filter, and scan quickly
Visible information
Current status, dates, route summary, flags, and fields users filter by
Actions
Search, filter, open a shipment
Why
Keeps the list fast and scannable

Detail view

Purpose
Review one shipment in depth
Visible information
Movement history, leg-level statuses, key dates, and full shipment context
Actions
Change status, reroute, review history
Why
Keeps dense context out of the list and supports careful decisions

Pickup point requests

One of the first major workflows in the platform was processing pickup-point requests.

The goal was to help logistics teams review incoming applications, check whether a pickup point met business and operational requirements, and make a clear decision: approve, reject, or return later if the point could become relevant in the future.

Before that, much of the verification process was scattered across different systems. Teams had to collect and compare information manually, including geography, partner checks, and operational readiness.

I consolidated that decision-making into one place without turning the queue into a raw data dump. I chose a card-based list view instead of a table-first approach, even though users initially expected spreadsheet-like layouts. The card format made stages, statuses, and decision signals easier to scan, while more detailed checks stayed in the object page.

After launch, we continued iterating on the flow. One improvement was adding more detailed partner reliability information directly into the platform, so users no longer had to leave the tool to complete the review.

Pickup-point requests list in the logistics platform.
Pickup-point requests list
Pickup-point request list leading to a request detail with verification stages.
Pickup-point request detail

Route configuration

Another critical area was route management.

The goal was to let logistics teams create and update route logic inside the platform — for example, when connecting a new geo-tag or configuring a new route sheet.

Previously, this work relied heavily on spreadsheet exports and manual handling. As the network grew, the cost of route errors became much higher: one wrong configuration could affect many shipments, pickup points, delivery times, and customer experience.

The challenge was not only to model route logic in the interface, but also to make incomplete or invalid routes visible before activation. I focused on making gaps in the route sheet explicit, blocking invalid activation, and adding safeguards around critical actions.

This flow shows how the platform balanced operational flexibility with strong error prevention.

Route management leading to a route editor with a missing link highlighted.
Route creation and editing

Shipment visibility and rerouting

Shipment management was one of the core operational areas of the platform.

The goal was to give logistics teams a clear view of shipment state, movement history, incidents, return scenarios, and critical dates — and to let them take actions such as status changes or rerouting when needed.

One of the hardest parts here was building a readable status model that worked both for internal users and for the evolving system architecture. The logic had to remain understandable to logistics teams while staying scalable enough for more complex delivery chains later.

A representative scenario was rerouting shipments when a pickup point became temporarily unavailable. The risk was high: users could select the wrong shipments, miss some of them, or apply actions that contradicted the actual shipment state.

To reduce that risk, I worked on clearer status visibility, more precise filtering logic, and safeguards around critical actions. In some cases, this meant making filters more specific than initially planned — for example, separating shipments already at a pickup point from shipments assigned to it but still on the way.

Shipment list with statuses and operational filters.
Shipment list
Shipment detail with status, movement history, and key dates.
Shipment detail

Key design decision

Several design decisions shaped the platform across sections.

Moving from spreadsheet-heavy habits to structured operational views

Operational teams were used to spreadsheets and initially expected dense table-based interfaces across the platform. Instead of reproducing that pattern everywhere, I introduced more structured operational views with stronger status visibility, filtering, and clearer information hierarchy. The goal was not to reduce information density, but to make critical actions and object states easier to scan and manage at scale.

Designing around decision-critical information

A recurring challenge was deciding what belonged in list views and what should remain inside details. This helped keep core views scannable while still supporting deeper operational work.

Building a readable and extensible status model

Status logic had to make sense to logistics teams and support future growth. This required careful work on naming, consistency, and visibility of state transitions.

Standardising terminology across teams and interfaces

Operational language had been inconsistent: the same object could be called an order, parcel, item, or shipment. I pushed for more consistent terminology across product, users, and adjacent teams to reduce confusion and support more accurate communication.

Spreadsheet-based review compared with structured cards, stages, and filters.
Before / After
Text description: Before / After
  • spreadsheets
  • table scanning
  • row-based review
  • structured card list
  • visible stages and statuses
  • filters for prioritization

Trade-offs and Outcomes

This product required constant trade-offs between clarity and density, speed and long-term structure, and familiarity and better system design.

In some areas, I kept the interaction model closer to what users already understood, especially in critical operational scenarios. In others, I deliberately moved away from old habits when they no longer served the product well — for example, by not defaulting to table-heavy layouts or by introducing more explicit validation and restrictions around risky actions.

The goal was not to create a perfect greenfield system in one step, but to build a platform that worked in reality, could keep growing, and would not break under scaling pressure.

The result was not just a set of screens, but the foundation of a unified internal logistics platform. It gave teams a single operational workspace for several key logistics areas, reduced dependence on scattered tools and manual checks, and supported the rollout of new workflows needed for network growth.

Other outcomes included:

  • more automation in repetitive operational steps
  • support for batch actions in high-volume workflows
  • reusable UX patterns and components for faster growth of new sections
  • clearer shared terminology across users and adjacent teams
  • stronger product consistency as the platform expanded
Financial operations, pickup-point information, and history screens from the platform.
Platform breadth