Logo Help Center

Elvis 4 bundled plug-in - Import metadata from files

Elvis 4 bundled plug-in - Import metadata from files

With the metadata import plugin you can merge metadata from spreadsheet files with assets already imported on the server. This plugin can be used in combination with the bulk import to migrate from another DAM system, for example Canto Cumulus or Extensis Portfolio.

Note: This bundled plug-in is supported for production use.


The metadata import plugin has a slightly different configuration when compared to the other import plugins. Default configuration includes server settings, input- and output folders and a few options to tweak the plugin, which are all described in the configuration file.

Metadata mappings

The metadata import plugin requires you to define mappings from spreadsheet fields to fields in Elvis. You can map to custom metadata fields as well. The mappings can be configured in the <metadata_import>/field-mappings.xml file.

Mapping example:

<?xml version="1.0" encoding="UTF-8"?>
    <!-- Standard fields -->
    <field nameInElvis="tags" metadataColumnName="Keywords" multivalue="true"/>
    <field nameInElvis="credit" metadataColumnName="Credit"/>
    <field nameInElvis="source" metadataColumnName="Source"/>
    <field nameInElvis="title" metadataColumnName="Title"/>
    <field nameInElvis="description" metadataColumnName="Description"/>
    <field nameInElvis="created" metadataColumnName="Catalogued"/>
    <!-- Custom fields -->
    <field nameInElvis="cf_itemId" metadataColumnName="Item ID"/>
    <field nameInElvis="cf_filmSerie" metadataColumnName="Film/series"/>
    <field nameInElvis="cf_people" metadataColumnName="People"/>
    <field nameInElvis="cf_cdTitle" metadataColumnName="CD Title"/>
    <field nameInElvis="cf_cdNumber" metadataColumnName="CD number"/>
    <field nameInElvis="cf_originallyCatalogued" metadataColumnName="Catalogued"/>

Each mapping is defined as a field element. The field element defines 3 possible attributes:

  • nameInElvis: This is the internal field name as defined in Elvis, all fields are listed in the asset info report (required).
  • metadataColumnName: The column name of the field in the spreadsheet (required).
  • multivalue: Whether or not this field is multivalue field (optional, default=false).

Custom assetinfo configuration

Custom Elvis fields used in the field mappings need to be defined in custom-assetinfo.xml.

Creating the metadata files

The metadata import plugin expects either CSV or XLS (format 97-2004) as input files. Some systems provide a way to export metadata as CSV/XLS. If the user wants to merge metadata from such a system into Elvis, the user should export at least the columns defined in the field mappings and the user should provide a column with the asset paths as defined in Elvis.

The input spreads should always define a header with the column names.

One way to do this is to either import the CSV into Excel, or open the Excel sheet in Excel. After that, the import paths need to be determined and put into a new column in the sheet. This column should have the column name defined as assetPath in the header. The user could also make some more manual adjustments in the sheet.

When ready, the sheet can be saved as XLS or CSV, however it is preferable to save it as an XLS (format 97-2004).

A sample metadata Excel file is packaged with the plugin.


  • Older versions of Excel don't support more than 65536 rows in a sheet, so when using a CSV, make sure to split it up into parts. Suggested maximum number of rows is 50000 per file.
  • When a column is mapped to a date field in Elvis, it has to be formatted as ISO date in Excel. To do this, select the column specifying a date field and select _"format cells..."_ from the menu. Select "custom format" and type in yyyy-mm-dd hh:mm:ss in the format field.

Running the plugin

  • Use the bulk import to import files into Elvis and make sure the folder structure matches the paths you will use for assetPath in the metadata input.
  • Put your metadata input files in the plugin's import folder, defined as importFolderPath in the plugin config file.
  • Start the plugin from the plugin admin in the client or, if the plugin has been scheduled, wait until the scheduled time.
  • The plugin will split the input files into smaller parts in the folder temp/processing called tabledata-xx+xx.xml
  • The tabledata files will be processed by the plugin 1-by-1.
  • For each row found in the metadata input, the plugin will try to find an existing asset in Elvis.
  • If the asset is found, the metadata for the row will be merged with the metadata already defined in Elvis. The metadata already in Elvis will be overwritten with the metadata from the input.
  • If the asset is not found in Elvis, the row will added to the corresponding failed file in the failed folder. This allows the user to review any failed rows after the imports are done, to determine while a file failed and whether the user can fix the row to make the import succeed later. After reviewing and updating the failed file, it can be dropped into the input folder, after which it can be processed again.
  • The imports can be processed as many times as needed to make sure all the imported metadata is correct.
Was this article helpful?
0 out of 0 found this helpful / Created: / Updated:
Have more questions? Submit a request


Please sign in to leave a comment.