Importing CSV Data
Describes how to create records in the Metadata Management System (MMS) by importing a comma-separated values (CSV) file
Table of contents
Overview
- Metadata can be created or prepared in a spreadsheet and imported into MMS using CSV import to support bulk metadata creation where source metadata does not exist in a MARC record, finding aid, or TMS record
Steps
- Download the relevant CSV template file:
- Template based on number of captures per item (most commonly used template)
- Template based on identifier associated with each capture (one capture per row)
- Open the CSV template file in your preferred CSV or spreadsheet editor
- Prepare your data according to the CSV data preparation guidelines
- Save your new CSV file using UTF encoding
- Do not use UTF-8 encoding as doing so can result in a no method error during upload
- Navigate to the Descriptive metadata import from CSV page in MMS:
- Via the menu bar: Imports › CSV Import
- Alternately, navigate to the record for the collection or container where the item should be located › Overview tab › bottom of page › Import Via › CSV
- Under Step 2: Upload file, select Choose File and select your CSV file
- Under Step 3: Enter Parent UUID, enter the UUID of the parent collection or container record where your new records should be located
- Parent records must already exist within MMS before the CSV import
- If you would like to import items within your CSV file to different parent records, leave the text box blank and instead follow the guidelines in Parent Record when preparing your CSV data
- Click Import
- A banner will display the message
CSV file is processing. You will receive an email notification when completed.
- A banner will display the message
- Monitor the email address associated with your MMS account for a message titled
CSV file import completed successfully!
- Once you receive it, click the View your import link
- Review and restructure your new record(s) as needed
- Proceed with next steps according to the relevant digitization or remediation workflow
CSV Data Preparation Guidelines
The requirements indicated here refer to the technical requirements for your CSV file. For more general guidelines on ensuring the records created by CSV import adhere to local standards, consult Minimum Metadata Requirements and By Element.
- Required fields must be present in your CSV file to be imported
- Required if Not Inherited fields must be present in your CSV file if the field is not set to be inherited from the parent collection or container record where your new records will be located
- If you include a field that is already set to be inherited from a parent collection or container, an additional element will be created based on the data from the CSV, and you will need to deduplicate the elements after import
- Required if Not Specified in CSV Import Form fields must be present in your CSV file if the field is not input directly into the CSV import form under Step 3: Enter Parent UUID
Item Number
Required
Guidelines
- Populate an item_number column with a unique, sequential number for each item
- Enter
1
for the first row - Add additional rows containing sequential numbers (
1
,2
,3
,4
…) to correspond to the number of items you wish to create
- Enter
Data to Be Imported | Column Header | Usage Note |
---|---|---|
Item number | item_number |
Captures
Required
Guidelines
- Populate a captures column with the header that corresponds to the method appropriate for your needs:
- By number of captures per item:
- Start with the template based on number of captures per item
- Populate the cap_num column with the number of captures for each item in the corresponding row
- The cap_num value can be zero if you do not wish to add any captures to the item
- The item_number column should increase by an increment of one for each row (e.g.,
1
,2
,3
,4
…) as each row represents a single item
- By identifier associated with each capture:
- Start with the template based on identifier associated with each capture (one capture per row)
- Populate a cap_iden column to add each capture identifier to its own row
- Enter capture identifiers in sequence
- Adjust the item_number column to indicate how captures are grouped together by repeating numbers for captures that correspond to a single item
- For example, three items with two captures each can be configured with six rows, with the item numbers
1
,1
,2
,2
,3
,3
- Enter values for additional fields in the first row that corresponds to a particular item number as the data does not need to be repeated for each capture
- For example, three items with two captures each can be configured with six rows, with the item numbers
- By number of captures per item:
Data to Be Imported | Column Header | Usage Note |
---|---|---|
Capture number | cap_num | Number of captures you would like the item in the record row to create |
Capture identifier | cap_iden | Identifier for associated capture |
Identifier
Required if Not Inherited
View Full MSU Documentation for Element →
Guidelines
- Populate an identifier column with the header that corresponds to the type of identifier you wish to add for each item
Data to Be Imported | Column Header | Usage Note |
---|---|---|
NYPL catalog ID (B-number) | identifier_bnumber | |
Barcode | identifier_barcode | |
MSS Unit ID | identifier_mss | |
Repository Image ID | identifier_imageid | |
NYPL Exhibition ID | identifier_exhibition | |
Other local Identifier | identifier_other | If this column is used, add a identifier_typeother column specifying the type of identifier being supplied |
Other local identifier type | identifier_typeother | Specifies type of identifier if identifier_other is used |
Library of Congress Control Number | identifier_lccn | |
International Standard Book Number | identifier_isbn | |
International Standard Recording Code | identifier_isrc | |
International Standard Audiovisual Number | identifier_isan | |
Sound recording issue number | identifier_issue-number | |
Sound recording matrix number | identifier_matrix-number | |
Publisher-assigned videorecording number | identifier_videorecording-identifier | |
International Standard Music Number | identifier_ismn | |
International Standard Musical Work Code | identifier_iswc | |
Publisher’s music plate number | identifier_music-plate | |
Publisher-assigned music number | identifier_music-publisher | |
International Standard Serial Number | identifier_issn | |
Linking International Standard Serial Number | identifier_issn-l | |
Serial Item and Contribution Identifier | identifier_sici | |
International Standard Text Code | identifier_istc | |
U.S. National Gazetteer Feature Name Identifier | identifier_natgazfid | |
Standard Technical Report Number | identifier_strn | |
Uniform Resource Identifier | identifier_uri | |
Archive EAD ID | identifier_archives_ead | |
Preservica ID | identifier_preservica_id | |
TMS ID | identifier_tms_id | |
TMS Object Number | identifier_tms_object_number | |
Photo Order | identifier_photo_order | |
RLIN/OCLC | identifier_oclc | |
AMI Identifier | identifier_mss_av | |
CMS Collection | identifier_cms_collection | |
CMS Identifier | identifier_cms | |
Uniform Resource Name | identifier_urn |
Title
Required
View Full MSU Documentation for Element →
Guidelines
- Populate a titleInfo_title column with the title for each item
- Add additional columns as needed to provide additional title fields, such as subtitle (titleInfo_subTitle), part number (titleInfo_partNumber), and part name (titleInfo_partName)
Data to Be Imported | Column Header | Usage Note |
---|---|---|
Title | titleInfo_title | |
Subtitle | titleInfo_subTitle | |
Part number | titleInfo_partNumber | |
Part name | titleInfo_partName |
Location
Required if Not Inherited
View Full MSU Documentation for Element →
Guidelines
- Populate a location_division column with the Library division that owns each item
- Use the division’s three-letter code from the Organizational Unit code list, e.g.
THE
for theBilly Rose Theatre Division
- If the Location element is set to be inherited from a parent record, you do not need to include a location_division column in the CSV file
- If no location_division is provided and the item does not inherit its Location from a parent record, the item will be imported with the location
UNK
- Use the division’s three-letter code from the Organizational Unit code list, e.g.
- Populate a location_shelfLocator column with the call number or shelf locator information for the item
- location_division is required in order to use location_shelfLocator
Data to Be Imported | Column Header | Usage Note |
---|---|---|
Division | location_division | The Organizational Unit code 🔒 for an NYPL division or collection |
Shelf locator/call Number | location_shelfLocator | Requires location_division |
Type of Resource
Required if Not Inherited
View Full MSU Documentation for Element →
Guidelines
- Populate a typeOfResource_value column with the type of resource for each item
- Add additional columns as needed to indicate attributes, such as whether the type of resource should be marked as primary (typeOfResource_usage)
Data to Be Imported | Column Header | Usage Note |
---|---|---|
Value | typeOfResource_value | |
Primary? | typeOfResource_usage | If this type of resource should be set to primary usage, the value for this column should be true , otherwise leave blank |
Manuscript? | typeOfResource_manuscript | This attribute is not in use at the present time |
Collection? | typeOfResource_collection | This attribute is not in use at the present time |
Date
Required if Not Inherited
View Full MSU Documentation for Subelement →
Guidelines
- Populate the appropriate date columns for each item
- Columns containing date fields must be grouped together
- The first column in the group must be originInfo_datetype
- Each instance of originInfo_datetype triggers the creation of a new date
- Columns relevant to a single date or a date range should follow originInfo_datetype
- Each date must include a year
- If the date is not a valid date, the information will import as free text rather than encoded
- Examples of invalid dates include dates that are in the future (e.g., the year
2026
) and dates that do not exist in the calendar (e.g.,1876-02-31
)
- Examples of invalid dates include dates that are in the future (e.g., the year
- If you are working with items that have multiple dates, discuss with the Manager, Metadata Services, before proceeding further
Data to Be Imported | Column Header | Usage Note |
---|---|---|
Date type | originInfo_datetype | Valid values for this field are dateCreated or dateIssued , the use of other values will result in the date not being imported |
- Select from the single fields if you know the point in time a resource was created or issued
Data to Be Imported | Column Header | Usage Note |
---|---|---|
Single date: year | originInfo_datesingleyear | |
Single date: month | originInfo_datesinglemonth | |
Single date: day | originInfo_datesingleday | |
Single date: BCE | originInfo_datesinglebcyear | Use this field for BCE dates |
Single date: qualifier | originInfo_datesinglequalifier | |
Single date: key date? | originInfo_datesinglekeydate | Any non-blank value will indicate a date as the key date, and only one key date can be indicated per item |
- Select from the start date and end date fields if the date of a resource is provided as range or you are uncertain about the point in time a resource was created or issued
Data to Be Imported | Column Header | Usage Note |
---|---|---|
Start date: year | originInfo_datestartyear | |
Start date: month | originInfo_datestartmonth | |
Start date: day | originInfo_datestartday | |
Start date: BCE | originInfo_datestartbcyear | Use this field for BCE dates |
Start date: qualifier | originInfo_datestartqualifier | |
Start date: key date? | originInfo_datestartkeydate | Any non-blank value will indicate a date as the key date, and only one key date can be indicated per item |
End date: year | originInfo_dateendyear | |
End date: month | originInfo_dateendmonth | |
End date: day | originInfo_dateendday | |
End date: BCE | originInfo_dateendbcyear | Use this field for BCE dates |
End date: qualifier | originInfo_dateendqualifier | |
End date: key date? | originInfo_dateendkeydate | Any non-blank value will indicate a date as the key date, and only one key date can be indicated per item |
Extent
View Full MSU Documentation for Subelement →
Guidelines
- Populate a physicalDescription_extent column for for each item
Data to Be Imported | Column Header | Usage Note |
---|---|---|
Extent | physicalDescription_extent |
Abstract
View Full MSU Documentation for Element →
Guidelines
- Populate a abstract column for for each item
Data to Be Imported | Column Header | Usage Note |
---|---|---|
Abstract | abstract |
Note
View Full MSU Documentation for Element →
Guidelines
- Populate a note and note_type column for each item
- See the Note Type attribute for a link to a list of note types
- Only one note can be added during a CSV import
Data to Be Imported | Column Header | Usage Note |
---|---|---|
Note | note | Note content |
Note type | note_type | Value for note type selected from types specified in MMS |
Parent Record
Required if Not Specified in CSV Import Form
Guidelines
- Populate a parent_uuid column to indicate the UUID of the parent collection or container record where each item should be located
- Providing parent records in the CSV is required when importing items into different locations, such as different containers within a parent collection
- Parent records must already exist within MMS before the CSV import
- If there is no parent_uuid column in your CSV file, you must enter the UUID of the parent collection or container record in the upload form under Step 3: Enter Parent UUID
Data to Be Imported | Column Header | Usage Note |
---|---|---|
Parent record | parent_uuid | The UUID of the parent collection or container record where your new records should be located |