Skip to main content

Release Notes v3

info

As of version 3.x, all frameworks now use the new scoped packages: @getnuvo/importer-react, @getnuvo/importer-angular, @getnuvo/importer-vue, and @getnuvo/importer-vanilla-js. These packages replace the older nuvo-* packages used in versions 1.x and 2.x.

While you can continue using the previous versions, we recommend migrating to the new @getnuvo/importer-* packages to benefit from the latest features, performance improvements, and ongoing support.

08.12.2025

3.6.2

Added

  • Added Angular 20 & 21 support.
  • Added ISO date support to conditional rendering. Conditions can now reference the same timestamp, or check whether a value is before or after a given date.

Fixed

  • Fixed an issue where the hover animation of the dropdown menu was misaligned when an option name was too long.
  • Fixed an issue where conditional rendering did not work when referencing the value of a hidden column.
  • Fixed an issue where int and float options were provided as strings inside cleaning functions and step handlers.

Note

  • These changes will also be applied to Vue, Angular, and Vanilla JS in version 3.6.3.

04.12.2025

3.6.1

Fixed

  • Fixed an issue where the importer failed to load when embedded behind a proxy server using a path prefix.

17.11.2025

3.6.0

Added

  • Introduced transpose setting to enable data transposition in the header step, allowing users to swap rows and columns before proceeding with mapping (link).
  • Introduced additionalInfo setting to display contextual help buttons across import steps, providing users with guidance through customizable info modals (link).
  • Introduced mappingViewMode setting to control the mapping step layout. When set to "targetColumns", the mapping interface displays one card per target data model column instead of per input column, ideal for scenarios with many input columns but few target columns (link).
  • Introduced mappingValidation property for target data model columns to define mapping-level requirements independently from data-level validations. This allows you to specify which columns must be mapped before proceeding, with support for conditional logic based on other mapped columns (link).

Changed

  • The required validation rule in the validations array no longer affects mapping step behavior. Use mappingValidation instead to control whether a column must be mapped before proceeding to the review step.

14.11.2025

3.5.6

Fixed

  • Fixed an issue where cells containing formula results of 0 in Excel files were displayed as empty instead of showing the expected value 0.

03.11.2025

3.5.5

Fixed

  • Fixed an issue causing React 19 builds to fail due to outdated render references by ensuring correct dependency resolution and cache cleanup.

29.10.2025

3.5.4

Updated

  • Updated axios to version 1.12.0 to address a security vulnerability.

Fixed

  • Fixed an issue where, in certain cases, the American date format was detected but not correctly transformed into the corresponding output format.
  • Fixed an issue where the timezone of timestamps was not preserved and always defaulted to “+0:00”.

20.10.2025

3.5.3

Fixed

  • Fixed an issue where parsing XLSX files with a high number of defined names took longer than expected.

06.10.2025

3.5.2

Changed

  • Added i18n support for XLSX template text elements (e.g., REQUIRED, UNIQUE, DESCRIPTION).
  • Added style customization support for the automatic mapping info box in the review step.
  • Updated importer behavior for empty cells: empty strings and undefined are now treated as null.

Fixed

  • Fixed an issue where the footer in the mapping step displayed "Show more" while already expanded.
  • Fixed automatic conversion for MMM d, yyyy and MMMM d yyyy date formats into the defined output format.
  • Fixed an issue where remember option mapping did not work for currency and country columns.
  • Fixed an issue where phone number columns did not accept inputs starting with a single-character country code or containing blanks.
  • Fixed an error where importerSession.parse() returned error code 1002.

18.09.2025

3.5.1

Changed

  • Improved the AI Prompts feature to provide more accurate transformations

Fixed

  • Fixed an issue where automatic mapping took longer than expected for TDMs with over 1.000 dropdown options.
  • Fixed an issue where leading zeros were stripped during date parsing.
  • Fixed an issue where input values were not matched case-sensitively when starting the importer in the review step via importerSession.
  • Fixed an issue where the Find & Replace button incorrectly switched to Find while using the AI Prompts feature.

21.08.2025

3.5.0

Changed

  • Updated branding from nuvo to Ingestro
info

Changes to the npm package name and the component name are planned for the future.

Fixed

  • Fixed an issue where sheets with the same fileName returned via stepHandler.uploadStep.updateData() were displayed as separate files.

08.08.2025

3.4.1

Fixed

  • Fixed an issue where XLS and XLSX files exported using a third-party library were not supported.

05.08.2025

3.4.0

Added

  • Introduced ImporterSession.verify() method to check if an importer instance is fully verified and ready for interaction, preventing race conditions in dynamic rendering environments (link).
  • Added ImporterSession.reload() method to programmatically reload and remount importer components with a new session ID (link).
  • Added new style.buttons.select styling key to control the appearance of "Select file(s)" buttons independently from "Import data" buttons (link).

Improved/Changed

  • Breaking Change: Renamed nuvoSession to ImporterSession for improved clarity and consistency.
  • Breaking Change: Updated ImporterSession.parse() to accept an object parameter structure.
  • Breaking Change: Updated ImporterSession.upload() to accept an object parameter structure and made it async.
  • Breaking Change: Updated ImporterSession.start() to accept an object parameter structure.
  • Refined style.buttons.import to only affect "Import data" buttons when modal === true, providing better styling control.

Fixed

  • Fixed an issue where stepHandler.headerStep() was not triggered when using dynamic import starting at the sheet selection step.
  • Fixed a UI issue where multi-sheet Excel files displayed each sheet as a separate file in the sidebar when using updateData the uploadStep handler.
  • Fixed a bug that made the last column dropdown menu invisible in the mapping step.
  • Fixed a bug where the uniqueness identification score in the join sheets step was off.

Migration Notes

  • Replace all instances of nuvoSession with ImporterSession in your code.
  • Update method calls to use the new object parameter structure:
    • ImporterSession.parse({data: files, identifier: "importer_identifier"})
    • await ImporterSession.upload({step: "review", data: yourData, identifier: "importer_identifier"})
    • ImporterSession.start({identifier: "importer_identifier"})
  • Add await before ImporterSession.upload() calls as they are now async.

16.07.2025

3.3.1

Added

  • Added "Export error rows" functionality to the review step, allowing users to download all rows containing at least one error.

Fixed

  • Fixed an issue where the importer’s session ID was not regenerated when leaving or completing the import process without re-rendering the component.
  • Fixed a bug that caused the review step to appear empty when using Contextual Engine results with onlyMappedColumns enabled.
  • Fixed multiple UI issues related to the Ingestro AI Prompt feature and made the Prompt modal draggable.
  • Fixed an issue where automaticHeaderDetection: false in combination with Contextual Engine: "prompt" caused the importer to incorrectly skip the contextual step and proceed to the mapping step.
  • Fixed a TypeScript definition issue where block was not defined in the onResults class.
  • Fixed a compatibility issue with the vanilla JS version when used in React-based environments.
  • Fixed a compile error in Angular and Vue projects, where stepHandler could not be resolved.
  • Fixed an issue where spacebar input was blocked in dropdown search fields.

27.06.2025

3.3.0

Added

  • Introduced the new stepHandler feature, which replaces and extends the previous dataHandler functionality, providing more granular and consistent control throughout the import process.
    • Added the following stepHandler steps:
      • uploadStep() – Triggered after file upload and parsing, allowing access to the original file(s) and direct modification of the uploaded data before sheet/header selection. Learn more
      • headerStep() – Triggered after header selection is confirmed, enabling pre-mapping data modification. Learn more
      • mappingStep() – Triggered after mapping is confirmed, prior to review, providing access to mapped data and mapping logs, and enabling data modification and validation. Learn more
      • reviewStep() – Triggered before completing the import, allowing final data validation or blocking the import. Learn more
    • Each step supports alert() and block() methods to trigger the corresponding warning or error modals.
  • Added a new AI Prompts feature, unlocking powerful bulk editing using natural language in the review step. Learn more

Improved/Changed

  • Improved the design and functionality of the "Ready to submit?" modal in the review step:
    • Added the configurable setting submitModalConfiguration to optionally hide the modal, show an import summary, and/or export only error rows.
    • In combination with stepHandler.reviewStep(), you can now execute pre-submission validations, add cell-specific error/warning/info messages, and block the user from progressing if needed.
  • Adjusted the onResults callback. Learn more
    • Now supports block() for consistent error handling, similar to other stepHandler steps.
    • Unified success modal behavior and configuration via successModalConfiguration.
    • Updated default loading animation and modal interactions.
    • Deprecated PassSubmitResult() and RejectSubmitResult() in favor of complete({importedRows, failedRows}) and block().
  • Unified all loading animation texts for consistency and enhanced UX.
  • Adjusted columnHooks and onEntryInit so that all TDM keys, including unmapped keys, are present in the data object with null as value. This ensures data consistency for hooks and review logic (exception: when onlyMappedColumns === true, only mapped keys are present).

Deprecated

  • Deprecated the dataHandler. All previous dataHandler hooks are now replaced by the corresponding stepHandler hooks (uploadStep, headerStep, mappingStep, reviewStep). Please migrate to stepHandler for future compatibility.

Migration Notes

  • All previous dataHandler functions (headerStep, reviewStep, onEntryInit, etc.) must be replaced with the new stepHandler equivalents.
  • The structure and available arguments for the hooks have changed. Review the updated syntax and sample usage in the stepHandler documentation.
  • For a guided migration, use our Migration GPT or contact support at [email protected].
  • Code using PassSubmitResult() and RejectSubmitResult() should be updated to use complete({importedRows, failedRows})/complete() and block() respectively inside onResults.

30.05.2025

3.2.0

Added

  • Added React 19 support.

Improved

  • Adjusted our Angular, Vue and vanilla JS version to properly destroy the importer component on close. This resolves an issue where the "Screen width is too small" modal would persist in the DOM and remain responsive to screen size changes, even after navigating away.
  • Ensured consistent row index display in the review step. Applying filters or sorting no longer causes discrepancies between the technical and displayed rowIndex values. For example, a row with technical index 0 will always display as index 1 within the review step UI, regardless of sorting.

Fixed

  • Fixed a crash occurring when using Angular, and the user tried to delete rows within the Error tab.
  • Fixed a localization issue in the French version of the UI where the upload button incorrectly displayed “Choisir le dossier” (Choose the folder). It now correctly displays “Choisir le fichier” (Choose the file).
  • Fixed an issue where columnHooks were not executed for columns marked as disabled.
  • The onCancel callback is now also triggered when users close alert modals ("Invalid license key" modal, "Screen width too small" modal, etc.).

13.05.2025

3.1.0

Added

  • Added Angular 19 support.

Updated

  • Updated axios to version 1.8.4 to address a security vulnerability.

Fixed

  • Fixed a workflow issue where selecting the manual importer flow while using the Contextual Engine in combination with automaticHeaderDetection led to the wrong step.

22.04.2025

3.0.1

Added

  • Added a new contextualEngine setting to enable our Contextual Engine feature. This option enables for automatic end-to-end import handling, including mapping, transforming, and cleaning data (link).
    • When set to "enabled", the engine runs automatically after uploading the input file.
    • When set to "prompt", users can choose between the Contextual Engine and the manual flow.
  • Introduced a new baseUrl key to support using Ingestro's self-hosted backend and mapping module (link).
  • Made major improvements to the mapping module to boost accuracy and performance speed, while giving you finer control over mapping behavior through configurable layers, processing modes, and thresholds.
    • Introduced two new configuration objects:
      • columnMappingConfiguration – Allows defining where column mapping should run ("browser" or "node"), which matching layers to apply ("exact", "historic", "smart", "fuzzy"), and the confidence threshold for accepting matches (link).
      • optionMappingConfiguration – Offers the same level of control for the option mapping of each category column, with default processing in the browser (link).

Improved

  • Improved sticky footer behavior for embedded use: when modal === false, the footer is now fixed to the bottom of the importer component instead of the full page. This prevents overlap with the host application and ensures smoother integration.

Deprecated

  • Deprecated the optionMappingMode and processingEngine settings. Use optionMappingConfiguration instead for more granular control over option mapping behavior.

Fixed

  • Fixed an issue where hidden keys were not included in the row object within errors returned by onResults.
  • Fixed an issue where imports without confirmed mappings led to an empty review step.
  • Fixed an issue where 2D JSON arrays were incorrectly parsed, adding an extra top row containing index values.