opportunity/update
Update one or more fields on an existing Salesforce Opportunity record.
When to Use
- Advance an opportunity to the next stage after a successful proposal review.
- Update the close date when a deal is pushed to next quarter.
- Increase deal amount when contract scope expands after negotiation.
- Sync updated probability from an AI deal-scoring engine back into Salesforce.
- Add internal notes to the description after a customer discovery session.
Configuration
Connection
| Field | Type | Required | Description |
InstanceUrl | string | required | Salesforce org URL. |
AccessToken | string | required | Valid OAuth2 access token. |
Operation Fields
| Field | Type | Required | Description |
OpportunityId | string | required | 18-character Salesforce Opportunity ID. |
Name | string | optional | Updated opportunity name. |
StageName | string | optional | Updated pipeline stage picklist value. |
CloseDate | string | optional | Updated expected close date (YYYY-MM-DD). |
Amount | decimal | optional | Updated deal value. |
Probability | int | optional | Updated win probability (0–100). |
Description | string | optional | Updated notes or context. |
OwnerId | string | optional | New opportunity owner User ID. |
Sample Configuration
{
"Resource": "opportunity",
"Operation": "update",
"InstanceUrl": "https://myorg.my.salesforce.com",
"AccessToken": "{{credentials.salesforce.accessToken}}",
"OpportunityId": "{{trigger.opportunityId}}",
"StageName": "Negotiation/Review",
"CloseDate": "2026-10-15",
"Amount": 135000
}
Validation Errors
| Error Code | Condition |
CFG_MISSING_INSTANCE | InstanceUrl is missing. |
CFG_MISSING_TOKEN | AccessToken is missing. |
VAL_MISSING_FIELD | OpportunityId is missing. |
UNEXPECTED_ERROR | Unexpected exception. |
Output
Success Port
| Field | Type | Description |
status | string | Always updated. |
resource | string | Always opportunity. |
operation | string | Always update. |
Error Port
| Field | Type | Description |
errorCode | string | Machine-readable error code. |
message | string | Error description. |
Sample Output
{ "status": "updated", "resource": "opportunity", "operation": "update" }
Expression Reference
| Expression | Description |
{{nodes.UpdateOpportunity.status}} | Operation result. |
{{nodes.UpdateOpportunity.errorCode}} | Error code from error port. |
Node Policies & GuardRails
| Policy | Detail |
| Partial update | Only provided fields are updated; others retain existing values. |
| Closed opportunity | Updating a closed opportunity's Stage may be restricted by Salesforce validation rules. Check IsClosed first if needed. |
| StageName validity | Must match a valid stage defined in your org's picklist. |
| CloseDate format | Must be YYYY-MM-DD. |
| Error port wiring | Always wire the error port. |
Examples
Advance Stage After Proposal Sent
{
"OpportunityId": "{{trigger.opportunityId}}",
"StageName": "Proposal/Price Quote",
"Description": "Proposal sent on {{trigger.sentDate}}"
}
Push Close Date After Negotiation Delay
{
"OpportunityId": "{{trigger.opportunityId}}",
"CloseDate": "{{trigger.newCloseDate}}",
"Description": "Close date pushed — reason: {{trigger.delayReason}}"
}
Sync AI Probability Score
{
"OpportunityId": "{{trigger.opportunityId}}",
"Probability": "{{nodes.AIScoring.probabilityScore}}"
}