We have recently enhanced the swagger of the Salesforce Sales Cloud element with the generic GET /{objectName}/fields/{name}/{externalID} and PATCH /{objectName}/fields/{name}/{externalID} endpoints. These can be used to retrieve or update, respectively, the desired records based on an externalId.
An external ID is a custom field that has the “External ID” attribute, meaning that it contains unique record identifiers from a system outside of Salesforce. Only the fields with the following data types can be external Ids: Number, Text, Email.

Using the GET /{objectName}/fields/{name}/{externalID}, as mentioned above, the customers can retrieve records with a specific external ID.
Example usage for retrieving a TEST_ID__c record using an external ID(accounts is the object name, the externalID field name is TEST_ID__c and the externalID field value is 589632):
curl -X GET
"https://api.cloud-elements.com/elements/api-v2/accounts/fields/TEST_ID__c/589632"
-H "accept: application/json"
-H "Authorization: User XXXXXX, Organization XXXXXX, ElementXXXXXX"The response payload has the following structure:
{
"LastModifiedDate": "2019-11-11T13:11:05.000+0000",
"IsDeleted": false,
"LastViewedDate": "2019-11-11T13:11:05.000+0000",
"LastReferencedDate": "2019-11-11T13:11:05.000+0000",
"Name": "TestName",
"SystemModstamp": "2019-11-11T13:11:05.000+0000",
"Type": "Prospect",
"CleanStatus": "Pending",
"CreatedById": "XXXXXXXXXXXX",
"OwnerId": "XXXXXXXXXXXX",
"CreatedDate": "2019-11-11T13:11:05.000+0000",
"RecordTypeId": "0121r000000eDEfAAM",
"attributes": {
"type": "Account",
"url": "/services/data/v46.0/sobjects/Account/XXXXXXXXXXXX"
},
"PhotoUrl": "/services/images/photo/XXXXXXXXXXXX",
"Id": "XXXXXXXXXXXX",
"TEST_ID__c": "589632",
"LastModifiedById": "XXXXXXXXXXXX"
}The PATCH /{objectName}/fields/{name}/{externalID} endpoint can be used to create records or update existing records (upsert) based on the value of a specified external ID field.
- If the specified value doesn't exist, a new record is created.
- If a record does exist with that value, the field values specified in the request body are updated.
An example of a successful PATCH by externalId request(accounts is the object name, the externalID field name is TEST_ID__c and the externalID field value is 589632):
curl -X PATCH "https://api.cloud-elements.com/elements/api-v2/accounts/fields/TEST_ID__c/589632" -H "accept: application/json" -H "Authorization: User XXXXXX, Organization XXXXXX, Element XXXXXX" -H "Content-Type: application/json" -d "{ \"Name\": \"TestName\"}"
The response payload has the following structure:
{
"id": "XXXXXXX",
"success": true,
"created": true*
}* In case the record existed but has been updated, the created parameter value is set to false.