Skip to Content

Salesforce Upsert Activity

Introduction

A Salesforce Upsert activity both updates existing data and inserts new data in a Salesforce endpoint and is intended to be used as a target to consume data in an operation. After configuring a Salesforce connection, you can configure as many Salesforce activities as you like for each Salesforce connection.

The Upsert activity requires the use of an external ID field to (1) insert records if they do not already exist and (2) update records if they already exist. For information on creating an external ID field in Salesforce, see Creating a Salesforce External ID for Jitterbit. If instead you want to insert new records only, or if you want to update existing records based on the ID of the object in Salesforce, use a Salesforce Insert or Update activity.

During the processing of records for an Upsert activity, if any record fails, no additional changes are processed and all previously processed changes are rolled back. If you want processing to continue when one record fails, consider using a Salesforce Bulk Upsert activity.

Creating a Salesforce Activity

From the design canvas, open the Connectivity tab of the design component palette:

Use the Show dropdown to filter on Endpoints, and then click the Salesforce connection block to display activities that are available to be used with a Salesforce connection:

To create an activity that can be configured, drag the activity block from the palette to the operation.

For more information about the parts of an operation and adding activities to operations, see Operation Creation and Configuration.

Configuring a Salesforce Upsert Activity

Follow these steps to configure a Salesforce Upsert activity:

Step 1: Enter a Name, Select an Object, and Specify Settings

In this step, you provide a name for the activity and select the object to be used when upserting data.

  • Name: Enter a name to use to identify the Salesforce Upsert activity. The name must be unique for each Salesforce Upsert activity and must not contain forward slashes (/) or colons (:).

  • Select the Object Reference: Use the dropdown to select a Salesforce standard or custom object to upsert data. Enter any part of the object name into the search box to filter the list of objects. The search is not case-sensitive.

    Tip

    If the dropdown does not populate with available objects, the Salesforce connection may not be successful. Ensure you are connected by reopening the connection and retesting the credentials.

  • Refresh: Click the refresh icon to reload objects and fields from the Salesforce endpoint. This may be useful if you have recently added objects or fields to Salesforce.

  • Optional Settings: Click to expand additional optional settings:

    • Operation Options: These options apply to an operation that a Salesforce Upsert activity is used within.

      Tip

      Additional options can be set in an operation's operation options.

      • Insert Null Values: Select the checkbox to allow null values to be upserted. If this option is not selected, if a value being mapped has a null value or is blank (has an empty string), it is not processed.
  • Save & Exit: If enabled, click to save the configuration for this step and close the activity configuration.

  • Next: Click to temporarily store the configuration for this step and continue to the next step. The configuration will not be saved until you click the Finished button on the last step.

  • Discard Changes: After making changes, click to close the configuration without saving changes made to any step. A message asks you to confirm that you want to discard changes.

Step 2: Select the External ID

In this step, you select an existing Salesforce field that you want Jitterbit Harmony to use as the external ID to associate records.

  • External ID: Use the dropdown to select the existing Salesforce field that you want Jitterbit Harmony to use as the external ID to associate records. For information on creating an external ID field in Salesforce, see Creating a Salesforce External ID for Jitterbit.

    Warning

    The field used as the external ID should have a unique value for each record. If you have multiple records with the same external ID value, an error response from Salesforce will be returned and the upsert will fail for the records with duplicate IDs.

  • Back: Click to temporarily store the configuration for this step and return to the previous step.

  • Next: Click to temporarily store the configuration for this step and continue to the next step. The configuration will not be saved until you click the Finished button on the last step.

  • Discard Changes: After making changes, click to close the configuration without saving changes made to any step. A message asks you to confirm that you want to discard changes.

Step 3: Review the Data Schemas

In this step, any request or response schemas generated from the endpoint are displayed:

  • Data Schema: The request and response data schemas are displayed. If the operation uses a transformation, the data schemas are displayed again later during the transformation mapping process, where you can map to target fields using source objects, scripts, variables, custom values, and more.

    The version of Salesforce REST API that is used depends on the Harmony Agent version you are using. See Prerequisites and Supported API Versions for links to documentation on the schema fields.

    Note

    To refresh a data schema in an existing activity, you must advance through each activity configuration step again, making at least one change (such as adding and removing a character from the end of the name of the activity) to force a refresh of the schema.

  • Back: Click to temporarily store the configuration for this step and return to the previous step.

  • Finished: Click to save the configuration for all steps and close the activity configuration.

  • Discard Changes: After making changes, click to close the configuration without saving changes made to any step. A message asks you to confirm that you want to discard changes.

Next Steps

After configuring a Salesforce Upsert activity, complete the configuration of the operation by adding and configuring other activities, transformations, or scripts as operation steps. You can also configure an operation's operation settings, which include the ability to chain operations together that are in the same or different workflows.

Once a Salesforce Upsert activity has been created, menu actions for that activity are accessible from the project pane in either the Workflows or the Components tabs, and from the design canvas. See Activity Actions Menu for details.

Salesforce Upsert activities can be used as a target with these operation patterns:

Operations that contain a Salesforce activity can have only one Salesforce activity and cannot also contain any other application activities.

A Salesforce activity can be used as an operation step in only a single operation. That is, you cannot reference the same activity multiple times within other operations. Instead, you can make a copy of a Salesforce activity to use elsewhere (see Component Reuse).

Other patterns are not valid using Salesforce Upsert activities. See the validation patterns on the Operation Validity page.

A typical use case is to use a Salesforce Upsert activity in the Two-transformation Pattern. In this example, the first transformation (Upsert Request) creates a request structure that is passed to the Salesforce Upsert activity (Upsert). The second transformation (Upsert Response) receives the response structure, which is then written to a variable by a Variable Write activity (Write Upsert Response) and a message is then logged by the Write to Operation Log script:

Within a transformation, if using the option to mirror a schema provided by a non-bulk Salesforce activity, then the resulting mirrored schema will automatically be created with an additional root node called records with the child node(s) mirroring the schema. When fields within the child node(s) are mapped to, the node becomes a loop node to allow all records to be looped through (see Loop Nodes under Data Structures).

Operations that use Salesforce activities can also have operation actions configured to trigger on a SOAP fault — an error resulting from an incorrect message format, header processing, or incompatibility. Operation actions can be configured to run an operation or send an email after a SOAP fault occurs. For instructions on triggering an action on SOAP fault, refer to Operation Actions.

To use the activity with scripting functions, write the data to a temporary location and then use that temporary location in the scripting function.

When ready, deploy and run the operation and validate behavior by checking the operation logs.