--- title: Parsing of CSV files in CDM description: The CDM CSV parser enables parsing of data in CSV files, so when you upload config data from a Comma-Separated Values \(CSV\) file into CDM, you can easily identify the data format attributes and config data in the CDM editor or list view. locale: en-US canonical_url: https://www.servicenow.com/docs/r/australia/it-service-management/devops-family/cdm-parsing-csv-file.html release: australia product: DevOps \(Family\) classification: devops-family topic_type: concept last_updated: "2026-03-12" reading_time_minutes: 4 breadcrumb: [Uploading your config data, Configuring DevOps Config, DevOps Config, IT Service Management] --- # Parsing of CSV files in CDM The CDM CSV parser enables parsing of data in CSV files, so when you upload config data from a Comma-Separated Values \(CSV\) file into CDM, you can easily identify the data format attributes and config data in the CDM editor or list view. **Important:** Starting with the Washington D.C. release, DevOps Config is being prepared for future deprecation. It will be hidden and no longer activated on new instances but will continue to be supported. The CDM CSV parser follows the CSV standard RFC 4180. This parsing of data from a CSV file to a JSON format in CDM helps you in the following ways: - Uploading existing config data from a CSV file with custom header and delimiter attributes to parse them as appropriate key-value pairs in JSON. - Differentiating data format attributes \(metadata\) from the config data items \(data\) in the CDM editor. - Validating imported CSV data in CDM for deployment. - Converting config data from JSON format to CSV format with attributes in the original format. ## Parsing of CSV to JSON during import When you import a CSV file into CDM, the parser converts the data in CSV format to the JSON format as follows: - Adds each record from the CSV file as a CDI in separate indexed nodes under the **data** node in JSON format. - Adds the data format attributes used during CSV upload under the **metadata** node. The query parameter **dataFormatAttributes** includes attributes for determining the delimiter, headers, first row as header, and secured headers.
| Attribute name | Description |
|---|---|
| delimiter | Character to separate out each header field as a key and the record field as a value of a CDI. You can specify a valid character as the delimiter.Default: `"delimiter": ","`. |
| containsHeader | Option to determine whether the first row in the CSV file is considered as the header row. This attribute is optional.- true: The CSV file contains the first row as the header. - false: The CSV file doesn't have the first row as the header. In this case, you must provide the headers in the **headers** attribute. Default: `"containsHeader": "true"`. |
| headers | List of header fields for record fields in the CSV file. These headers are converted to the key names of the CDIs in the JSON format.**Note:** This attribute is applicable only if the **containsHeader** attribute is set to **false**. If your CSV file doesn't have the first row with headers, you can provide an array of headers. The number of headers must match the number of record fields. Example: `"headers": ["FirstName","LastName","Location","Salary"]`. Default: An empty array: `"headers": []`. |
| securedHeaders | List of header fields for which the value for all records is displayed in the encrypted format in the JSON format. This attribute is optional.You can provide an array of headers that must be secured. The name of the secured headers must match the name of the headers in the **headers** attribute or CSV file. Example: `"securedHeaders": ["Salary"]`. Default: An empty array: `"securedHeaders": []`. |