Importer Configuration
This property can be used to configure the <NuvoImporter>
so that the importer is tailor-made for your importing process. With this property, you can adjust the design, the display mode, enable or disable certain features and by using the columns
property, you can define your preferred output schema. The <NuvoImporter>
instance must have settings
and licenseKey
as properties to launch. A target data model (columns
) and an identifier (identifier
) must be defined within settings
. Otherwise, the component cannot be launched.
identifier
Type | string |
Required | |
Description | The identifier helps to identify different imports. For example, you have defined one target data model for a customer import and one target data model for a product import. With the identifier option, you can distinguish between the "customer" and the "product" import. |
columns
Type | object |
Required | |
Description | Use columns to define the target data model you want to use within your application. columns is an array of objects. Each object is a new column which contains at least the keys label and key . For more information, check out our columns documentation. |
title
Type | string |
Default | "Upload" |
Description | This can be used to change the pre-set title currently seen as “Upload” inside the "Upload"-step when the nuvo importer is started. For instance, the title could be set to “Upload your product data here”. In this case, you would see the following screen: |
When embedUploadArea
equals true
, the title won't be displayed.
developerMode
Type | boolean |
Default | false |
Description | This value is supposed to be true when using the nuvo importer in development or staging environments. The nuvo importer will display a "developer mode"-banner at the top, and these imports will be marked as test imports, which means that they will not count against your contingent. |
modal
Type | boolean |
Default | true |
Description | This option controls whether the nuvo importer is implemented as a button or as a full page view. Your users will be guided through the workflow within a modal by default. When set to false , the users will go through the process on the implemented page without any modal occurring. |
Please note the minimum screen width for the nuvo Importer to work:
- If
modal
is set totrue
, the minimum required screen width is 901px. - If
modal
is set tofalse
, the minimum required screen width is 948px.
embedUploadArea
Type | boolean |
Default | false |
Description | This option enables you to implement the nuvo importer as an embedding area. The nuvo importer is shown as an embedding area when embedUploadArea equals true , and when it is set to false , the nuvo importer is displayed as a button. |
If modal
equals false
, embedUploadArea
has no effect.
embedUploadArea: false | embedUploadArea: true |
---|---|
![]() | ![]() |
buttonMode
Type | "import", "edit" or "both" |
Default | "import" |
Description | Suppose you want to enable your users to also edit/update existing data. In that case, you can use this setting to not only display an "Import data"-button but also display an "Edit data"-button. By clicking this button, the user is directly forwarded to the last step ("Review Entries"-step), where the user can manually add new data or edit and delete existing data. For the latter case, we recommend using the preloadData option, which enables you to preload data into the table of the "Review Entries"-step. With this setting, you can determine if you want to display the import, edit, or both buttons at the time. |
If modal
equals false
or embedUploadArea
equals true
, buttonMode
has no effect.
buttonMode: "import" | buttonMode: "edit" | buttonMode: "both" |
---|---|---|
![]() | ![]() | ![]() |
preloadData
Type | [{columnName: string, ...}, ...] |
Default | [] |
Description | With this setting, you can preload data as an array of objects into the importer, which is shown inside the "Review Entries"-step beside the newly imported data. The cleaning functions onEntryInit and columnHooks are also applied to this data. If you have set allowManualInput to true and the user clicks on the "Manual Entry"-button, the user sees the preloaded data inside the table of the "Review Entries"-step. |
automaticHeaderDetection
Type | boolean |
Default | false |
Description | This option enables you to let your users skip the header selection of the import process. When this option is set to true , your users are automatically forwarded to the matching step of the import process after selecting the correct spreadsheet(s). |
maxEntries
Type | int |
Default | null |
Description | Define the highest amount of entries that can be imported. Note that the header row will not be taken into account. When a user's upload exceeds the defined amount of maxEntries, an error message is displayed, and your user cannot continue further. |
disableTemplates
Type | boolean |
Default | false |
Description | This option enables you to disable the "Download Template"fFunctionality (for the Excel and CSV template) for your users. When this option is set to true , the "Download Template"-button/tile won't be displayed inside your application, and your users, therefore, can't download the target data model template as CSV or as XLSX. |
disableExcelTemplate
Type | boolean |
Default | false |
Description | With this setting, you can disable the "Download Template"-functionality (only for the Excel template) for your users. When this option is set to true , the "Excel template (.xlsx)"-button won't be displayed inside your application, and your users, therefore, can only download the CSV template of the target data model. They cannot download the template as an Excel/XLSX file. |
disableTemplateDropdowns
Type | boolean |
Default | false |
Description | This option disables the dropdown fields inside the Excel/XLSX template and the "Export as Excel"-file. When this setting is set to true , the downloadable Excel/XLSX template and the output of the "Export as Excel"-functionality inside the "Review Entries"-step do not include any dropdown fields. |
Both the disableExcelTemplate
and disableTemplateDropdowns
settings can be used to prevent your users from encountering an Excel issue. Excel dropdown lists have a character limit of 256, which means that all dropdown options should not exceed this limit. If the limit is exceeded, users will receive an error message stating, "We found a problem with some content in {fileName}. Do you want to try to recover as much as we can?"
when attempting to open the Excel file. For more information, check here.
disableSuccessModal
Type | boolean |
Default | false |
Description | This option defines whether the "Successful Upload"-modal is shown at the end of the importing process or not. If it is set to true, no modal is displayed after the user clicks on the "Complete Import"-/"Submit"-button within the "Review Entries"-step. |
allowManualInput
Type | boolean |
Default | false |
Description | Defines if the "Upload"-step contains a "Manual Entry"-button or not. If set to true and the user clicks on the button, the user is directly forwarded to the "Review Entries"-step and can add its values manually. For customizing the button's styling, please check out the following the styling section of (our documentation). |
allowCustomColumns
Type | boolean |
Default | false |
Description | This property enables the user to add customized columns to the defined target schema. If this option is set to true , the user can add custom columns to the target data model within the dropdown menu inside the "Match Columns"-step and map its imported columns to them. The result array object will contain the key of each created custom column which was also mapped to an imported column. Validation rules or the columnType of a custom column cannot be defined. By default, the columnType is set to string . |
Note that the custom columns will be considered for creating the result array object of the current importing process but not for future ones. If you want that custom columns are permanently added to the target schema, you need to generate the columns
array dynamically before initializing our component. Please contact us via [email protected] if you have any questions regarding this topic.
allowCustomOptions
Type | boolean |
Default | false |
Description | This property enables the user to add custom dropdown options to a category column (columnTypes equals category ). If this option is set to true , the user can add custom options to a category column within the category dropdown menu and map the unique values of an imported column to them. By default, the option's type is set to string and cannot be changed. |
Note that the options will not be permanently added to the dropdownOptions
array of the target column. If you want that custom options are permanently added to the specific column, you need to generate the dropdownOptions
array dynamically before initializing our component. Please contact us via [email protected] if you have any questions regarding this topic.
completeImportAction
Type | "discard", "submit" or "block" |
Default | "discard" |
Description | This property lets you define how rows with errors are handled inside the “Review Entries”-step. Apart from discarding ("discard" ) all rows with an error from the result array object or submitting every row ("submit" ), you also have the option to block the “Complete Import”-Button if the data contains at least one error ("block" ). |
The allowInvalidEntries
property is deprecated since React version 1.14.3, Angular version 1.6.5, Vue.js version 1.0.2 and vanilla JavaScript version 0.3.3. Please use completeImportAction
instead. If you have used allowInvalidEntries
equals true
, you need to set completeImportAction
to "submit"
.
completeImportAction = "block" | completeImportAction = "discard" | completeImportAction = "submit" |
---|---|---|
![]() | ![]() | ![]() |
allowInvalidEntries (deprecated)
Type | boolean |
Default | false |
Description | This option enables you to allow users to submit entries with at least one error. If set to true , the entries which include an error will also be submitted. |
The allowInvalidEntries
property is deprecated since React version 1.14.3, Angular version 1.6.5, Vue.js version 1.0.2 and vanilla JavaScript version 0.3.3. Please use completeImportAction
instead. If you have used allowInvalidEntries
equals true
, you need to set completeImportAction
to "submit"
.
enableMassiveErrorAlert
Type | number |
Default | null |
Description | This option enables you to display an error message to your users as a pop-up after there are more than x cells with an error. This error message tells the user that the user can either continue to correct its data within the application or that the user can download the matched data as .XLSX to continue the work within Excel. |
onlyMappedColumns
Type | boolean |
Default | false |
Description | This option defines if the user is supposed to see all target data model columns within the "Review Entries"-step or just the mapped ones. If this prop is set to true , only the mapped target data model columns are shown and imported. |
Note that the result array object does not contain the keys of the unmapped columns.
enableExamples
Type | boolean |
Default | false |
Description | This option enables you to display examples for each column of the target data model within the last step of the import process. When it is set to true , you can define the example property for each object of the columns array. These values are displayed within the table of the last step of the import process. |
language
Type | object |
Default | "en" |
Description | This setting allows you to choose the default language of the nuvo Importer, which can be tailored to your particular requirements in combination with the i18nOverrides option. Additionally, you can switch languages dynamically before initializing the importer. This option currently supports a variety of languages, including English, German, Spanish, French, Italian, and more. For more information, please check our multi-language support documentation. |
i18nOverrides
Type | object |
Default | null |
Description | This option allows you to overwrite every UI text inside the nuvo importer with your preferred version. You can also define the i18n overrides per language and add language support for languages that are not yet support by our language setting. For more information, please check our multi-language support documentation. |
With the language
setting, you can easily and quickly implement support for your preferred language and change the UI language. If you want to support additional languages that we do not cover yet, or if you want to override our default translation keys, we recommend using our i18nOverrides
functionality. You can find details about both options and a list of all i18n keys for each default translation here.
style
Type | object |
Default | null |
Description | The style setting enables you to customize the style of the nuvo importer. You can adjust the theme for the importer to match your branding. |
Please notice that using your own CSS to override ours can lead to bugs. To avoid that, please use our provided style option. Visit our style documentation for more details on our styling options.
automaticMapping
Type | boolean |
Default | false |
Description | If this property is set to true , the user skips the "Match Columns"-step within the importing process and is directly forwarded to the "Review Entries"-step. The skipping only occurs if the user uploads a file with the same structure as a previous uploaded one. As a result, the column and option mappings of the last time that this data structure was uploaded will be applied to the imported data. The user is notified by an additional info box above the table if the "Match Columns"-step was skipped, and the user can always go back and enter the mapping step to correct wrong mappings. |
Please note that if this option is activated that option mappings will be saved on our server-side. Option mappings, in comparison to column mappings, can contain sensitive data.
multipleFileUpload
Type | boolean |
Default | false |
Description | This option enables you to allow users to upload multiple files and to select multiple sheets. Enable this option to show the "Join Sheets"-step to your users within the importing process where they can select the key columns for joining data from multiple sheets. |
Currently, we support uploading a maximum of 5 files in one importing process. All files must have the same identifier/key column to join them together in one table.
allowNestedData
Type | boolean |
Default | false |
Description | By enabling this feature, users can upload nested .json files which will be de-nested based on a predefined set of rules. The de-nesting process involves replacing arrays with underscores _ and objects with periods . to facilitate the display of data in a 2D table. |
Currently, we support .json files with maximum depth of 4.
- Input
- De-nested
Input = [
{ id: 1, games: "football", equipment: ["gloves", "ball"] },
{ id: 2, games: "cricket", equipment: ["bat", "ball"] },
];
id | games | equipment_1 | equipment_2 |
1 | football | gloves | ball |
2 | cricket | bat | ball |
- Input
- De-nested
Input: [
{
id: 7856,
address: {
city: "Hamburg",
country: "Germany",
coordinates: ['89.3454', '34.6565'],
},
},
{
id: 7857,
address: {
city: "Bremen",
country: "Germany",
coordinates: ['99.3454', '14.6565'],
},
},
{
id: 7858,
address: {
city: "Paris",
country: "France",
coordinates: ['45.3454', '74.6565'],
},
},
],
id | address.city | address.country | address.coordinates_1 | address.coordinates_1 |
7856 | Hamburg | Germany | 89.3454 | 34.6565 |
7857 | Bremen | Germany | 99.3454 | 14.6565 |
7858 | Paris | France | 45.3454 | 74.6565 |
processingEngine (only available for SDK 2.X)
Type | "browser", or "node" |
Default | "browser" |
Description | This option enables you to decide whether the option mapping is done inside the browser or on our server side. By default, the spreadsheet content and therefore also the option mapping (mapping of the unique values of an imported column with the dropdown options of a category column) will remain in the browser. If you want to speed up the process and reduce the mapping time, you can change the setting to node , so that the option mapping is done on our server side. |
Important: With the SDK 2.0, we changed the mapping mechanism and now process the column headers on the backend side during the mapping step to reduce the mapping time. With processingEngine
you can reduce the mapping time even further by allowing the spreadsheet content processing on our server side. Please be aware that migrating to SDK 2.0 does not automatically include that option and that by default the SDK 2.0 does not process any sensitive data from your users.
You can freely decide whether you want to migrate to SDK 2.0 or not.