# Upsert Record

> `UiPath.Salesforce.Activities.UpsertRecord`

`UiPath.Salesforce.Activities.UpsertRecord`

Upserts a specified record in Salesforce. By using the **Configure** button in the body of the activity, you can open the **Salesforce Object** wizard, on which you can read more [here](https://docs.uipath.com/activities/other/latest/legacy-integrations/about-the-salesforce-activities-pack).

## Properties

### Advanced

* **AdditionalFields** - A `DataRow` variable which contains an additional set of fields that are to be set during the operation. If a field is explicitly configured to be part of the set in the **Configure** wizard**, that value overrides the value in the column in the `DataRow` variable.
  :::important
  `Column Name` must be a valid field in the Salesforce Object you want to use.
  :::

### Common

* **DisplayName** - The display name of the activity.

### Misc

* **Private** - If selected, the values of variables and arguments are no longer logged at Verbose level.

### Output

* **MultipleChoices** - If multiple Record IDs match the External ID of the specified record, the `IEnumerable<String>` variable set into this field stores a list containing all of them. If this is the case, the **Result** is set to **Multiple** and no records are Inserted or Updated. This field supports only `IEnumerable<String>` variables.
  :::note
  When a record gets updated, then Salesforce does not return the Id of the record updated. If the process requires the Id of the updated record, then use a **Execute SOQL** activity to query the record using the external ID field.
  :::
* **Result** - Indicates what action was performed. Possible values are **INSERTED**, **UPDATED**, and **MULTIPLE**. If a new record was inserted, the result is set to **INSERTED**, and the Id row on the Configure dialog returns the new record ID. If a record is updated, then the result is set to **UPDATED**and the Id row on the configure dialog is not populated. If multiple records are found matching the external id field, then the result is set to **MULTIPLE** and the **MultipleChoices** property is populated with at least two IDs. If an error is thrown at runtime, this field remains empty. This field supports only `UpsertResultType` variables.
* **SalesforceStatus** - The status that is returned from Salesforce once the action is completed, stored in a `SalesforceStatus` variable. This field supports only `SalesforceStatus` variables.
