View as Markdown
Salesforce icon

Salesforce ACTION

Upsert Record

Create a Salesforce record, or update it if a matching one already exists, matched on an external ID field. The object must have an external ID field defined - use Describe Object to find one before calling. Use Create CRM Record or Update CRM Record when you already know whether the record exists. See the documentation
  • Action
  • Writes data
  • OAuth
  • SDK
  • MCP

IMPLEMENTATION

Call this tool

Connect a user's Salesforce account once, then configure and run Upsert Record from your backend or agent.

import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "salesforce_rest_api-upsert-record",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    salesforce_rest_api: { authProvisionId: "apn_xxxxxxx" },
    objectType: "Object Type",
    externalIdFieldName: "External ID Field",
  },
})

console.log(result)

SCHEMA

Inputs

Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.

Upsert Record inputs
Property Type Description
objectType Object Type string
The Salesforce object API name (e.g. Account, Contact). Use List Objects to discover custom object types (ending in __c).
Required
externalIdFieldName External ID Field string
API name of the field marked as External ID used to identify the record (e.g. External_ID__c). The field must be flagged as an External ID in Salesforce Object Manager. Run List Object Fields to find valid external-ID field API names.
Required
externalIdValue External ID Value string
The value of the external ID field. If a record with this value exists it is updated, otherwise a new one is created.
Required
updateOnly Update Only boolean
If enabled, only update an existing record; do not create a new one (adds ?updateOnly=true).
Optional
fields Fields object
Field name -> value pairs for the record. Example: {"LastName": "Doe", "Email": "doe@example.com"}. Use Describe Object to discover valid field names.
Required

REFERENCE

Tool details

Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.

Registry key
salesforce_rest_api-upsert-record
Version
1.0.1
App
Salesforce
Authentication
OAuth
Read-only
No
Destructive
No
Open world
Yes