Vault Loader allows you to perform bulk Create, Update, and Delete actions on object records in your Vault. Loader also provides an Upsert action that lets you create new records and update existing records using a single CSV input. You can also create and update users with the User and Person objects. To learn about managing users with the User object, see Managing the User and Person Objects. Learn more about managing object record attachments.

Loading Object Records

Before loading object records, prepare the CSV input file containing object record field names and values.

To load object records:

  1. In the left panel of the Loader tab, click Load.
  2. For the CSV File, click Choose and select the CSV input file.
  3. In the Object Type drop-down, select the object on which to perform bulk actions.
  4. In the Action Type drop-down, select Create, Update, Upsert, or Delete.
  5. In the Key Field drop-down, select any unique fields from the specified object. This option is only required for the Delete, Upsert, and Update actions.
  6. Optional: Select the Record Migration Mode checkbox. Record Migration Mode allows you to migrate object records in a noninitial state and with minimal validation, create inactive records, and set system-managed fields such as Created By. Record Migration Mode does not bypass record triggers.
    1. Optional: Select No Triggers to bypass record triggers in Record Migration Mode.
  7. Optional: Select the Include updated field values in the output log for verification checkbox to include supported VQL fields in the output logs. VQL query validation will impact performance.
  8. Optional: Click Map Fields to access the field mapping grid. You can also load a previously saved mapping by clicking the Map Fields drop-down button and selecting Load Saved Mapping.
  9. Click Start Load.

Before processing the request, Vault validates the selected CSV file. If the file is valid, Vault begins processing the request. When finished, you’ll receive a Vault notification and email with request details and CSV output files.

Field Mapping

With field mapping, you can choose to map specific fields of the selected object type you wish to load to the columns in your CSV input file. This is especially useful when importing records from another vault whose field names may not exactly match those on the target vault, or when importing data from a source outside of Vault. For example, imagine you are migrating batch data with existing batch IDs from a legacy system to Vault. You can map the external_id__v field to a column on your CSV called “old batch id” when creating Batch object records.

The field mapping grid contains the following columns:

  • Field Name: The name of the object field in the target vault. Lookup fields appear below their associated object reference field and are designated with an arrow icon.
  • Field Label: The label that appears for the field in object records in the target vault UI.
  • Type: The field type in the target vault.
  • CSV Column: The value in the CSV column header. If you used Vault Loader Extract to generate the CSV, these values will match the field names in the source vault.

Object to CSV Mapping

Searching & Filtering Columns

You can choose to show only certain types of fields in the field mapping grid by selecting one or more checkboxes in the Filter section. You can enter a page number above the field mapping grid to jump to a specific page, or use the navigation arrows. Use the Search box to search for a specific field.

Setting the CSV Column

Vault automatically maps CSV column headers to similar field names. To change these mappings, select a column header from the applicable CSV Column drop-down list to map that column to the desired object field. Select (no mapping) to remove a mapping and make the field blank in the newly created or updated record. Click Clear Fields to remove all mappings, or click Save Mapping to save the current field mapping for future use.

Mapping Object Reference Fields

Vault maps object reference fields using a lookup field on the referenced object. In the example above, the Product (product__c) field is populated by mapping the product__c.generic_name__c field to the generic name CSV column. You can only map one lookup field per object reference field. If all lookup fields are set to (no mapping) for an object reference field, it will be blank in the newly created or updated records or, if the object reference field is required, the load will fail.

Auto-Formatting

Since Vault requires certain fields to be in a specific format, Loader uses auto-formatting to convert field values to Vault’s standard format before completing a load. Loader uses auto-formatting for the following field types:

  • Boolean: Loader ensures that all boolean field values are either True or False prior to loading
  • Picklist: When mapping data to a picklist, Loader uses the picklist name (public key) for lookup prior to loading. If you don’t provide a public key for the picklist, Loader can also use the picklist label for lookup.

Additional Details

  • Vault uses yellow highlighting for required CSV columns.
  • The drop-down lists in the CSV column displays (no mapping) for available columns of the CSV.
  • Already mapped fields are unavailable in the field mapping grid.

How to Delete Object Records

To delete with Vault Loader, you will upload a CSV input file that lists the records you wish to delete. CSVs for delete actions only require the ID field. The rest of the process works as described in Loading Object Records. You cannot delete User object records, but you can make user accounts inactive in one or more individual Vaults by setting the user’s Vault membership to false. Learn more about Vault membership assignments.

Cascade Delete

When deleting records for certain objects, Vault can cascade delete an entire hierarchy of related records. When deleting records for an object that uses the cascade deletion setting, you can only delete one record (and it’s related records) in a single load. This means you cannot use the cascade delete setting on multiple object records.

You cannot use the cascade delete option when bulk deleting records.

Create Records in a Specific Lifecycle State

Vault Loader allows you to specify a lifecycle state when creating or updating object records. When preparing your CSV file, you can specify a lifecycle state (state__v) or state type (state_label) field value to import records in the specified state using the Create, Update, and Upsert actions.

To create or update a record in a specific lifecycle state, select the Record Migration Mode checkbox before loading your CSV. Vault executes minimal validation when creating or updating records in migration mode. You must have the Vault Owner Actions: Record Migration permission to import records in a specific state.

Preparing CSV Input Files

Fields vary between objects. The following list includes the fields that are always or usually required, as well as several sample fields that cover the different field types. We recommend using Loader to extract column headers and basing your CSV input on that file. Use Record Migration Mode to relax certain constraints when creating and updating object records.

Column Header Field Example Value Notes
id ID 00P000000000101 Required for updating or deleting records. In update and delete actions, this is required for all rows. In upsert actions, you can leave this blank for new records but must fill it in for existing records. To set the id in create actions, enable Record Migration Mode.
name__v Name WonderDrug Required for record creation unless the object uses auto-naming.
object_type__v Object Type 00P000000000304 Sets the object type using the object field name as the column header and the ID value of the record; if left blank, the object record will use the “base” type, for example, Base Product.
object_type__vr.api_name__v Object Type > Name pharmaceutical__v Sets the object type using the relationship name (object_type__vr) plus object field name (api_name__v) as the column header and the object type name value (not label); if left blank, the object record will use the “base” type, for example, Base Product.
campaign__c Campaign 00P000000000101 References an object record using the object field name (campaign__c) as the column header and the ID value of the record. Learn more about loading object reference fields.
campaign__c.name__v Campaign > Name Rise Above References a related object record using the field on the object you’re updating (campaign__c) plus the name field on the related object (name__v) as the column header. When creating object records with Vault Loader, you cannot reference related object field values to create values for fields that use a Lookup type field in a dynamic reference constraint. Instead, you must use the reference object field name as a column header and provide record IDs as values as shown in the above example for camapign__c.
doc_reference__c Document Reference Field (Versioned) 1457_0_1 References a field on a specific version of a document.
doc_reference_unbound__c Document Reference Field (Unversioned) 1457 References a field on the latest version of a document. Learn more about unbound document fields.
family__c Product Family (picklist) Wonder References a picklist option using the picklist value name or label.
generic_avail__c Generic Available false Indicates “No” for a Yes/No type field.
date_approved__c Date Approved 2017-01-29 Dates must be formatted as YYYY-MM-DD.
datetime_approved__c DateTime Approved 2017-08-04T19:53:00.000Z DateTime values must be formatted as {YYYY-MM-DD}T{HH:MM:SS.SSS}Z and use 24-hour time. Time must be in UTC, not in your time zone. DateTimes must end with the .000Z UTC expression; the zeros may be any number.
rich_text__c Rich Text Field <a href="https://veeva.com">Veeva Website</a> Rich Text fields support up to 32,000 plaintext characters, with an additional 32,000 characters reserved for HTML markup. In the Vault UI, users can only enter HTML markup through the buttons in the Rich Text Editor, however, manual HTML is supported in Vault Loader CSV input files.
state__v Lifecycle State draft_state__c Specifies the lifecycle state of the record. Only available for Create, Update, and Upsert actions with Record Migration Mode enabled. You can also provide object lifecycle state labels to the state__v column and Loader will look up the public key name given that the state labels are unique.
state_label Lifecycle State Type base:object_lifecycle:initial_state_type Specifies the lifecycle state type of the record. When providing both a state and state type, the state_label value must map to the provided state__v value. For example, if the state__v value is set to draft_state__c, the state_label value must already be set to draft in the destination Vault. Only available for Create, Update, and Upsert actions with Record Migration Mode enabled.

See example inputs:

How to Load Object Reference Fields

You can reference an object record using any object field, for which the value must be unique. Do not include more than one column header for each object reference, or use field mapping to select a single column. If your CSV contains a blank value for an object reference field, the field will be blank in the newly created or updated record or, if the object reference field is required, loading the record will fail.

How to Load User Records

You can use Vault Loader to create and update User records with the user__sys object. This allows you to update custom fields on User records, as well as standard fields such as Manager. Because Vault synchronizes User records with Legacy User accounts, Vault automatically updates Legacy User accounts when you create or update User records. For example, if you update the language__sys field on a User record for John Smith, Vault also updates the same field for John Smith’s Legacy User account.

To create, update, or upsert users:

  1. In the left panel of the Loader tab, click Load.
  2. For the CSV File, click Choose and select the CSV input file.
  3. In the Object Type drop-down, select Users from the Objects section.
  4. In the Action Type drop-down, select Create, Update, or Upsert.
  5. Click Start Load.

When creating new User records, the following fields are required in all Vaults:

Name Field Example Value Notes
email__sys Email ewoodhouse@email.com The user’s email address.
first_name__sys First Name Elaine The user’s first name.
last_name__sys Last Name Woodhouse The user’s last name.
username__sys User Name ewoodhouse@veepharm.com The user’s Vault username (login credential). For example, ewoodhouse@veepharm.com.
language__sys Language 0LU000000000101 The user’s preferred language.
locale__sys Locale 0LO000000000104 The user’s location.
timezone__sys Timezone america_los_angeles__sys The user’s time zone.
license_type__sys License Type full__v Optional: The user’s license type. If omitted, default value is full__v.
security_profile__sys Security Profile 0SP000000000106 The user’s security profile. For example, Vault Owner.
status__v Status active__v The status of the user.

Limits

Vault Loader does not support the following for user_sys:

  • Create Cross-domain users
  • Reset Password
  • Activate or deactivate a user at the domain level
  • Manage Vault membership

To perform the above actions, see Vault Loader: Create & Update Legacy Users.

File Validation

Before beginning the Vault Loader job to create, update, or delete object records, Vault checks that the selected CSV file meets certain criteria:

  • If creating object records, the total number of records in the Vault, plus new records created by the CSV, would not exceed your Vault’s limits
  • If creating object records, includes at least one record
  • Is not empty
  • Does not contain empty columns
  • Includes a valid header row (Invalid header rows are those with no columns that match to metadata for the records you’re loading.)
  • If using the Delete, Upsert, or Update actions, the columns specified as the Key Field must be mapped.

If your file is not valid, Vault displays a notification, stops the process, and allows you to select a new CSV file. If some of the column headers do not match metadata for your Vault, the notification will allow you to stop the load or ignore those columns and proceed.