Classic Integrations Activities
Last updated Jul 17, 2024

Upsert Records


The Upsert Records activity uses the ServiceNow Batch - POST API to update or insert one or more records.

After completing the operation, the activity outputs the result of the insert in a DataTable object (Result) and the operation status (success/failure information) in a ResponseStatus object (ServiceNowStatus) that you can use in subsequent activities (e.g., conditional logic).

This activities package provides four different methods to update and/or insert a record: Update ServiceNow Record, Insert ServiceNow Record, Upsert Records, or Insert ImportSet Records.

The Update ServiceNow Record, Insert ServiceNow Record, and Upsert Records activities use REST APIs to write directly to a production table. The Insert ImportSet Records activity uses the REST Import Set API to write to an import set table from which the data gets transformed into the target production table.

To avoid writing directly to production tables, it's recommended that you use the Insert ImportSet Records activity to update or insert a new record.

For detailed information, including troubleshooting import set performance, see the import sets in the ServiceNow documentation.

To learn more about using import sets, see Web service import set and Importing data using import sets in the ServiceNow documentation.

How it works

The following steps and message sequence diagram is an example of how the activity works from design time (i.e., the activity dependencies and input/output properties) to run time.

  1. Complete the Setup steps.
  2. Add the ServiceNow Scope activity to your project.
  3. Add the Upsert Records activity inside the ServiceNow Scope activity.
  4. Click the Configure button inside the Upsert Records activity (this opens the Object Wizard).
  5. Select the Object that you want to use for your import set and enter your Input properties.
  6. Create and enter a DataTable variable and a ResponseStatus variable for the Output properties.
    • Your input property values are sent to the Batch - POST API.
    • The API returns the DataTable and ResponseStatus values to your output property variables.


To select your object, you must use the Object Wizard by clicking the Configure button.

To learn more about the Object Wizard, see the Business Activity Frameworks page.

  • Object - The type of record that you want to insert or update. This will be set and appear in the design-time canvas but not the property panel. Use the Object Wizard to select your object.


Note: If you do not see a list of properties for the object you choose, even looking at the Add Multiple Fields option, you may not have sufficient permissions in ServiceNow to see object meta data and modify data. Please see Troubleshooting Permission Issues for more details.
  • DisplayName - The display name of the activity. This field supports only Strings or String variables.
  • DataTable - The record data that you want to insert or update. Enter a DataTable variable.
    • To update an existing record, add the sys_Id value to the data row that contains the updates you want to make.
    • Data rows without a sys_id value are inserted as new records (the sys_id of the new record is returned in the Results DataTable object).
    • The maximum number of records that you can update or insert per activity run is 200. If you want to insert/update more than 200 records, you can add a for loop or add an Upsert Activity for each DataTable that contains 200 records (e.g., if you have 4,000 records total, you can split the records into 20 separate activities). For more information, see Batch API in the ServiceNow documentation.
  • Private - If selected, the values of variables and arguments are no longer logged at Verbose level.
  • Status - The status of the request (success/failure information). Enter a ResponseStatus variable (UiPath.BAF.Models.ResponseStatus). The ResponseStatus object includes three properties that you can use in other activities.
    • Success - Boolean - Specifies whether the API request was successful.
    • ErrorCode - String - The response error if the API request is unsuccessful (Success=False).
    • Message - String - The error message.
  • Result - The result of the inserted or updated record(s). The Results DataTable has the same structure as the input DataTable, with the following exceptions:
    • New records that were inserted successfully now include a sys_id value.
    • A new "ActionType" column is appended and includes a value of either Add or Update to indicate whether a record was updated or added to the table.
    • A new "Error" column is appended and includes error information if the operation failed.
  • How it works
  • Configure
  • Properties

Was this page helpful?

Get The Help You Need
Learning RPA - Automation Courses
UiPath Community Forum
Uipath Logo White
Trust and Security
© 2005-2024 UiPath. All rights reserved.