ⵃⵎⵉⵎⵉ
Back to Blog
6 min read

Designing a Bulk Import Workflow for Fleet Operations

OverviewDadyCar is a fleet management solution that helps companies manage operational data across vehicles, employees, sites, expenses, reminders, an...

Originally published on Medium
Designing a Bulk Import Workflow for Fleet Operations

Overview

DadyCar is a fleet management solution that helps companies manage operational data across vehicles, employees, sites, expenses, reminders, and external service providers. The Bulk Import feature was designed for both new and existing customers who needed a faster way to upload large amounts of fleet data without creating records one by one.

I worked on this feature as the end-to-end product designer — from research and use case definition to UI design, design system components, developer handoff, and internal testing. I collaborated closely with the product manager to clarify user needs and define the scope.

The Problem

Before this feature, the platform only supported manual, single-item data entry. While this worked for one-off updates, it did not scale for users managing hundreds of records. Fleet managers — the primary users — were working daily with existing Excel and CSV files from their operations. The data already existed. The platform just had no efficient way to receive it.

Users frequently complained about the time spent manually uploading records, especially for high-frequency items like invoices, expenses, and new vehicles. The breaking point was a recurring pattern: new clients were spending most of their time doing data entry instead of managing their fleets. Many were contacting support — not because something was broken, but because the platform couldn’t handle their scale. Bulk import was a support ticket problem as much as a UX problem.

Users & Context

The main user was the fleet manager — a non-technical professional responsible for keeping fleet data accurate and up to date on a daily basis. Their goal was simple: get data in fast, and get back to managing operations.

These users already had structured files ready to upload. The challenge was that every company formatted their spreadsheets differently — different column names, missing fields, inconsistent formats. Any solution had to account for this variability without requiring users to reformat their files from scratch.

The most critical data types for bulk import were vehicles, issues, employees, sites, fuel entries, vehicle expenses, mobility expenses, odometer entries, reminders, and provider data.

Goals & Constraints

Goals

  • Reduce onboarding time for new clients
  • Reduce daily manual work for fleet managers
  • Lower support ticket volume related to data entry

Constraints

  • Supported file formats: CSV and Excel only
  • Some fields were mandatory and required validation before import
  • Users needed the ability to edit, add, and delete records inside the preview — not after upload
  • The same flow had to work universally across all data types
  • Timeline pressure required a solution achievable without a full backend rebuild

Process & Key Insights

The initiative came from internal product team discussions and recurring customer support feedback. I began by mapping the existing manual flow to baseline the friction points, making clear that the problem wasn’t a broken UI — it was a workflow not designed for scale.

Several key decisions shaped the final solution:

From Siloed to Global
My initial concept was a dedicated import flow on every individual data page. After syncing with the PM and engineering team, we recognized this wasn’t scalable to build or maintain. We pivoted to a centralized, global import page where users select the target data type from a single dropdown — one consistent experience for all data types.

Designing for Unpredictable Data
Since every client formatted their files differently, we built a data mapping step that let users match their file’s columns to DadyCar’s database fields. To reduce this effort, I also introduced downloadable templates for each data type — users who filled out our template could skip manual matching entirely.

The Safety Net Preview
Uploading hundreds of rows with missing or incorrect data could corrupt a fleet’s records. Rather than letting errors surface after import, I designed an interactive preview step where users could see, validate, and fix their data before anything was committed to the database.

The Solution

The final flow is broken into four guided steps, designed to keep users in control without overwhelming them.

Step 1 — Contextual Entry & Setup
Users can trigger the import flow directly from any data page by clicking “Import Bulk.” This redirects to the global import hub, where users select the data type via dropdown and upload their CSV or Excel file — or download the template to skip the matching step.

Step 2 — Intelligent Data Mapping
The system reads the uploaded file’s headers and attempts to auto-match them to DadyCar’s database columns. If a field can’t be auto-matched, or if the user wants to change a match, they can do so using simple dropdowns. No file reformatting required.

Intelligent Data Mapping

Step 3 — Interactive Preview & Validation
This was the most critical screen. All data from the file is displayed in an interactive, fully editable table before anything is uploaded.

  • Missing required fields are flagged with a red border. Users cannot proceed until they are filled in — directly on the screen, without leaving the platform.
  • Duplicate entries are highlighted with a yellow border, with a top-of-page alert summarizing the total count.
  • Inline editing lets users fix values, delete broken rows, or click “+” to add a new empty row — all without touching their original file.
Interactive Preview & Validation

Step 4 — Import
Once data is clean and validated, users click “Import” and the records are instantly added to their respective data tables.
Outcomes

The feature was adopted quickly after launch. A significant volume of fleet data was being added through the new import flow almost immediately. The strongest signal of success was the silence from support: after launch, no complaints reached the support team, PM, or CEO about clients struggling to add their data — a problem that had been consistently raised before.

In product design, the absence of complaints is often the strongest validation signal.

Reflection

The hardest design challenge was displaying hundreds of rows of editable data in a structured table without breaking the visual hierarchy or overwhelming the user. Managing dense, user-generated data at scale required careful thinking around input states, error indicators, spacing, and readability under real-world conditions.

The biggest lesson: break large flows into isolated problems, solve each one independently, and never lose sight of the full user journey. Communication with the PM, engineers, and stakeholders at every step was what made this solution work technically, visually, and operationally.

If I were to build v2, I would explore smarter auto-matching using AI to detect column intent — reducing the manual mapping step even further for non-technical users.

Enjoyed this article? Read the original on Medium for the full experience.

Read on Medium
HC

Hmimi Chioukh

AI Product Designer building scalable SaaS platforms. Focused on clarity, speed, and operational UX.