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 |
|---|---|---|
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
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
Step 1: Post-validation
Step 2: Import Configuration
Step 3: Import Preview and 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
Invalid CSV
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