Bulk Import Improvements (Bulkrax) (FUNDRAISING ACTIVE)

Bulk Import Improvements (Bulkrax) (FUNDRAISING ACTIVE)

Summary

LINK TO ACTIVE FUNDRAISING EFFORT

Importing and cataloguing works and collections is one of the primary paths to value with Hyku (and any digital repository). We have had widespread reports of questionable usability, especially with new users, of Bulkrax. This initiative is to make the Hyku Bulk Import experience as delightful as possible.

Metric

Current State

Target

Metric

Current State

Target

First-attempt import success rate

Estimated <30%

>70%

Time to diagnose CSV errors

15-30 minutes (post-import)

<2 minutes (pre-import)

Support tickets for import failures

Frequent

Reduced by 50%

Discussion

We had a meeting where Nick at Notch8 facilitated a feedback / product thinking exercise. The output can be seen here: https://app.mural.co/t/notch89457/m/notch89457/1758225684750/3ee6395e2f71466e9c3db6a85d7bebc23f00514d

The discussion and solutions below are largely a result of that problem-focused discussion, and also a number of ad-hoc discussions over 2025 in various places (mostly slack)

Workflow hitches

The “/files” folder in the .zip file

Why must it be named “files”?

Requiring the the folder naming in the zip file to be “files” in the root directory can creates issues… If people are importing or migrating a lot of works and collections, needing to put things into a single folder repeatedly, and require that directory be named the same thing can create confusion / organizational challenges.
It’d be great if we could simply validate on “is there a single file there?”

Designs

Potential Value Add Features

  • Bulkrax Field Mapping: Ability to choose columns in CSV prior to validation, and map them to metadata fields.

Improved Bulk Import UX - Stepper design

This is provided to gather feedback, and is constantly being iterated upon.

Step 1 - Pre-validation

image-20260212-052439.png
Initial State
image-20260212-051037.png
Preview of Server Path uploader (future)
image-20260212-052534.png
Folder selected that contains the csv and files

 

image-20260212-051156.png
Zip File Uploaded

 

image-20260212-052739.png
csv only
image-20260212-052840.png
csv + folder

 

Step 1: Post-validation

image-20260212-051825.png
Single Zip uploaded containing CSV, passes validation

 

image-20260212-051455.png
zip uploaded, failing validation

 

image-20260210-195404.png
Zip containing CSV - Validation passed
image-20260210-195517.png
Validation Passed - everything expanded
image-20260210-195956.png
Validation Failed - everything collapsed (default state)
image-20260210-200031.png
Validation failed - everything expanded

 

image-20260209-201316.png
Validation Feedback - Expanded

 

Step 2: Import Configuration

image-20260212-053249.png
Import Settings Configuration - all settings available from legacy design

 

Step 3: Import Preview and Confirmation

image-20260212-053323.png
Import Ready to Go

 

image-20260209-201433.png
Import Started Confirmation

 

Feedback Feb 2, 2026

  • Encourage bite-sized uploads for rapid feedback via validator

    • Consider: leverage upload complexity or completion time stats on a dashboard

  • Remember previous settings

  • Hide parent-child relationships in an accordion - it’s 2nd layer information.

  • Ensure Accessibility is taken into account

  • Separate the provision / upload of the CSV from the specification of the files (which are often on a server)

  • Allow the skipping of validation

 

Sample of more usable feedback cards

Valid CSV

We probably want to keep some good information architecture, and keep the parent-child relationships in

image-20251208-224849.png
image-20251208-224907.png

Invalid CSV

image-20251208-224033.png

Technical Estimates

Rough estimate (2025-NOV, deprecated)

Goal: Add a “Validate before import” step that surfaces clear, actionable issues before the importer runs.

Background

  • Bulkrax previously had a Validate button, but it was disabled because it did not behave reliably.

  • First step is to confirm whether we can revive the existing flow, or if it is cheaper/safer to rebuild validation in a more controlled way. SPIKE: 2hrs - 1/2 day

Open questions (discovery)

  • Revive old Validate button: Where was it disabled, and what specifically was broken (false positives, missed errors, performance, UI confusion)?

  • Prior plugin work: Another consultancy had a Bulkrax validations plugin. We should identify:

    • who built it

    • what it validated

    • whether it is reusable in Hyku today

Proposed approach (if starting from scratch - see @LaRita Robinson )

  • Build a validation service that processes the import package

  • Collect and store all errors encountered (errors and warnings)

  • Present results to the user in a manageable way (summary counts + details), and block starting the import if errors exist

MVP (minimum viable product)

  • 2 devs, 2 weeks

  • Includes: validate headers and required fields, detect duplicate identifiers, verify referenced files exist in the ZIP, show a clear error summary (and ideally list all missing files at once), prevent “Start Import” when errors exist

If we can successfully revive the old Validate button

  • 1 dev, 3 to 5 days

  • Risk: depends heavily on why it was disabled and how much needs refactoring to make results trustworthy and user-friendly

If we also include richer UX (downloadable error report, warnings vs errors, async validation for huge packages)

  • 2 devs, 3 to 4 weeks