Skip to content
AskElephant Knowledge Base home

Structured Salesforce Agent

Update one or more Salesforce object types in a single, structured step, with explicit control over which objects to find, which properties to change, and how each change is generated. Optionally uses a meeting as context for extracting property values.

Structured Salesforce Agent node in the workflow builder

What It Does

For each object type you configure (for example Opportunity, Contact, Account, Lead, or Task), the agent searches Salesforce using your search instructions, optionally creates the object if it is not found, and then updates each property you list according to your natural-language instructions. It can read a property's existing value before writing, require other properties to be read first for context, replace or append to existing content, and pause for human approval before syncing a given property.

When To Use It

Use this when a workflow needs to update Salesforce with AI-generated content but you want guardrails around exactly what gets written, such as syncing meeting notes into specific opportunity or contact fields while requiring approval on sensitive properties. This is the preferred node for CRM updates; use it instead of Salesforce Agent for anything that writes data.

Configuration

Configure the node with these settings:

Field

What it controls

Meeting

An optional meeting to use as context when extracting property values. Leave blank if there is no relevant meeting.

Object Configurations

One entry per object type to update. At least one is required. External Object Type.: The Salesforce object type to update, such as Opportunity, Contact, Account, Lead, or Task. Required. Search Instructions.: Natural-language instructions for how to find the right object, for example "Find the opportunity associated with the primary account from this meeting." Required. Create If Not Found.: Whether to create the object if the search does not find one. Defaults to off. Enable this only with explicit customer intent. Properties.: One entry per property to update on this object type. At least one is required. Property Name.: The internal Salesforce field name to update. Required. Instructions.: Natural-language instructions describing what value to extract or generate. Required. Read Before Write.: Whether to read the existing value before updating. Defaults to off. Additional Properties for Context.: Other property names that must be read before this one can be updated. Update Method.: Replace overwrites the existing value; Append adds to it. Defaults to Replace. Require Confirmation.: Whether to pause for human approval before syncing this property. Defaults to off. Sensitive CRM fields should require confirmation.

Outputs

The node passes these values downstream. Check the Outputs tab on the configured node to confirm exact paths.

Variable

Type

Description

Example

configurations

array<object>

Results for each object configuration, mirroring input structure

{{nodeId.configurations}}

configurations[].searchInstructions

string

The search instructions that were used

{{nodeId.configurations.searchInstructions}}

configurations[].foundObjectIds

array<string>

Object IDs found/created by the search phase

{{nodeId.configurations.foundObjectIds}}

configurations[].objects

array<object>

Objects that were processed

{{nodeId.configurations.objects}}

configurations[].objects[].id

string

Salesforce object ID

{{nodeId.configurations.objects.id}}

configurations[].objects[].name

string | null

Salesforce object name/title

{{nodeId.configurations.objects.name}}

configurations[].objects[].properties

array<object>

Status of each property update

{{nodeId.configurations.objects.properties}}

configurations[].objects[].properties[].name

string

Property name

{{nodeId.configurations.objects.properties.name}}

configurations[].objects[].properties[].pushEventId

string | null

Integration push event ID for lookup

{{nodeId.configurations.objects.properties.pushEventId}}

configurations[].objects[].properties[].aiReasoning

string | null

The AI reasoning used to generate the property update value

{{nodeId.configurations.objects.properties.aiReasoning}}

configurations[].objects[].properties[].status

"success" | "pending_confirmation" | "error" | "skipped"

Update status

{{nodeId.configurations.objects.properties.status}}

configurations[].objects[].properties[].error

string

Error message if failed

{{nodeId.configurations.objects.properties.error}}

configurations[].error

string

Error if the configuration failed entirely

{{nodeId.configurations.error}}

Example Workflow

After a discovery call, a workflow uses this node to find the account's open opportunity and update its Next Steps field with a summary generated from the meeting, while requiring confirmation before updating the Amount field.

  • Salesforce Agent

  • Update Opportunity

  • Search Opportunity by Stage

Need More Help?

Reach the AskElephant support team by:

  • clicking the Support tab on the right side of your screen,

  • emailing [email protected],

  • or using @askelephant support in your dedicated Slack channel.