Newer Version Available
Upsert Records Using sObject Rows by External ID
Upserts a record based on the value of the specified external ID field. Based on
whether the value of the external ID already exists, the request either creates a new record
or updates an existing one.
- If the external ID doesn't match an existing record, then a new record is created according to the request body.
- If the external ID matches one existing record, then the existing record is updated according to the request body.
- If the external ID matches multiple existing records, then a 300 error is returned, and no records are created or updated.
- URI
- /services/data/vXX.X/sobjects/sObjectName/fieldName/fieldValue
- Formats
- JSON, XML
- HTTP Method
- PATCH
- Authentication
- Authorization: Bearer token
- Parameters
- None
- Usage
-
If you are upserting a record for an object that has a custom field with both the External ID and Unique attributes selected (a unique index), you do not need any special permissions. The Unique attribute prevents the creation of duplicates. If you are upserting a record for an object that has the External ID attribute selected but not the Unique attribute selected, (a non-unique index) your client application must have the permission “View All Data” to execute this call.
- Examples
-
- For examples of creating and updating records based on external IDs, see Insert or Update (Upsert) a Record Using an External ID.