Skip to content

Create Object Records in bulk.

You can use this endpoint to create User Tasks or User (user__sys) records. Learn more about User Tasks and the User & Person Objects in Vault Help.

  • The maximum input file size is 1GB.
  • The values in the input must be UTF-8 encoded.
  • CSVs must follow the standard format.
  • The maximum batch size is 500.

Note that you can only add relationships on object fields using ID values or based on a unique field on the target object. This API does not support object lookup fields.

POST/api/{version}/vobjects/{object_name}
NameDescription
Content-Typetext/csv or application/json
Acceptapplication/json (default) or text/csv
NameDescription
{object_name}The name of the object, for example, product__v.

Upload parameters as a JSON or CSV file.

NameDescription
name__vThis field is required unless it is set to system-managed. To find out if an object uses system-managed naming, retrieve its name__v field and look for the system_managed_name property set to true or false. Learn more about system-managed naming in Vault Help.
object_type__vOptional: To create objects of a specific object type, add this field with the id of the object type.
object_type__v.api_name__vOptional: To create objects of a specific object type, add this field with the name of the object type.
source_record_idOptional: To copy an existing object record, add this field with the id of the existing object record. Any values specified for other fields will override the copied values. If you want to make a deep copy of a record, see the Deep Copy endpoint.

Note that if object_type__v and object_type__v.api_name__v are both included, Vault creates the object with the type specified in object_type__v.

Query Parameters: Upsert Object Records

Section link for Query Parameters: Upsert Object Records

Upsert is a combination of create and update. With idParam, you can identify an object record by any unique object field. This allows you to use one input file to create new object records and update existing records at the same time. If a matching record exists, Vault updates the record with the unique field values specified in the input. If no matching object record exists, Vault creates a new record using the values in the input.

Upsert expects unique idParam field values in the request and providing duplicate values will result in a FAILURE for the entire batch.

NameDescription
idParamTo upsert object records, add idParam={field_name} to the request endpoint. For example, idParam=external_id__v. Note that the specified object field must have unique set to true in the object metadata.

Admin may set other standard or custom object fields to required. Use the Object Metadata API to retrieve all fields configured on objects. You can add any object field with editable: true.

To create user__sys records, your input file must have all required fields on user__sys. Use the Retrieve Object Metadata endpoint on user__sys to retrieve a full list of fields.

This API does not support the following:

  • Creating cross-domain users. To create cross-domain users, use the Create Single User endpoint.
  • Adding users to a domain without assigning them to a Vault. To add users to a domain only, use the Create Single User endpoint.
  • Changing user passwords.

The following fields are required when creating user__sys records.

NameDescription
email__sysThe user’s email address. For example, ewoodhouse@email.com An email address is required to prevent adding duplicate users in error. For example, users John and Jane Smith may both use “jsmith” as a user name. An email address ensures adding the correct user.
first_name__sysThe user's first name.
last_name__sysThe user's last name.
username__sysThe user’s Vault user name (login credential). username__sys is a multi-part field. To set the user name, provide the entire value. For example, ewoodhouse@veepharm.com.
language__sysThe user's preferred language.
locale__sysThe user's location.
timezone__sysThe user's time zone.
license_type__sysOptional: The user’s license type. If omitted, default value is full__v.
security_profile__sysThe user’s security profile.
status__vThe status of the user.

Note that when you create, add, or update user__sys, Vault synchronizes those changes with users across all Vaults to which that user is a member. This includes cross-domain Vaults.

curl -X POST -H "Authorization: {SESSION_ID}" \ -H "Content-Type: text/csv" \ -H "Accept: text/csv" \ --data-binary @"C:\Vault\Object Records\create_object_records.csv" \ https://myvault.veevavault.com/api/v18.2/vobjects/product__v
{ "responseStatus": "SUCCESS", "data": [ { "responseStatus": "SUCCESS", "data": { "id": "0PR0771", "url": "api/v8.0/vobjects/product__v/0PR0771" } }, { "responseStatus": "SUCCESS", "data": { "id": "0PR0772", "url": "api/v8.0/vobjects/product__v/0PR0772" } }, { "responseStatus": "SUCCESS", "data": { "id": "0PR0773", "url": "api/v8.0/vobjects/product__v/0PR0773" } }, { "responseStatus": "FAILURE", "errors": [ { "type": "INVALID_DATA", "message": "Error message describing why this object record was not created." } ] } ] }

On SUCCESS, Vault returns the id and url of each new record.

Note that if an object has a field default configured, the value you use for that field overrides the default.

Note that in CTMS Vaults, if you do not specify a milestone record ID when creating a new Monitoring Event record, this call will automatically create a new Milestone record. However, the id of the new Milestone record is not returned in this response. Learn more about automated CTMS object creation in Vault Help.

Download Input File