- Home
- Resources
- Integrations
- Salesforce
Salesforce n8n integrationAutomate Salesforce with n8n.
How much of Salesforce can n8n really drive? The Salesforce n8n integration exposes 65 operations across 12 objects, from accounts to cases, plus a trigger that watches 18 events in 9 families. Built for revenue and support teams who are tired of retyping the same record twice.
Verified Trustpilot reviews · AI, automation & growth agency
What does the Salesforce n8n integration actually cover?
Two nodes ship with n8n for this. The Salesforce node runs 65 operations over 12 objects: accounts, contacts, leads, opportunities, cases, tasks, attachments, documents, flows, users, custom objects and SOQL search. The Salesforce Trigger node starts a workflow when a record appears or changes, across 18 events grouped in 9 families. Nothing to install, on n8n Cloud or on a self-hosted instance.
Three shapes of workflow come up again and again. The first one is support routing: the trigger fires on caseCreated, case.update sets the priority and owner from whatever rule you encode, and the summary goes to a channel through Slack. Nobody watches a queue anymore.
The second one is account hygiene. A finance export sits in Google Sheets, and account.upsert writes each row against a matching field, so a row that already exists gets updated instead of creating a twin. Run it nightly and the duplicate problem stops growing.
The third one is paperwork. A signed contract arrives in Gmail, n8n passes the binary straight to attachment.create, and the file is filed against the right record instead of sitting on a laptop where nobody else can find it.
The node covers those 12 objects and nothing else. For an object with no dedicated operation, the HTTP Request node calls any Salesforce API endpoint and reuses the same credential, so you stay inside one workflow. Custom fields are reachable without that detour: open Additional Fields, add a field, pick Custom Fields in the list.
Two limits are worth knowing before you build. Get Many operations stop at Limit unless Return All is on, which quietly truncates an export. And the trigger polls, so a record shows up after the interval you set, not the second it is saved. If you are weighing platforms or migrating from another CRM, the n8n review covers the hosting and cost side, and the same patterns port to HubSpot or Pipedrive with different field names.
How do you connect Salesforce to n8n?
- 01
Pick an authentication method
The credential supports two methods: OAuth2, and OAuth2 JWT for a server-to-server connection that never asks a human to log in again. JWT is the one to set up for unattended workflows. It needs four values: your Environment Type (Production or Sandbox), your Salesforce Username, a Client ID, and a Private Key tied to a self-signed certificate.
- 02
Create an External Client App in Salesforce
From Setup, type App Manager in the Quick Find box and select New External Client App. Fill in the Basic Info, including a Name and a Contact Email address. Under API (Enable OAuth Settings), select Enable OAuth and set the callback URL to
http://localhost:1717/OauthRedirect, or your instance URL if you self-host. Tick the scopes Full access (full) and Perform requests at any time, enable the JWT Bearer Flow, then upload your certificate. - 03
Paste the values into n8n
Back in Salesforce, copy the Consumer Key of the app and save it in n8n as the Client ID. Then paste the contents of your private key file into Private Key, using the multi-line editor and standard PEM format, header and footer lines included. A credential is created once in the Credentials menu and both nodes offer it in their dropdown afterwards, so the trigger and the action node share it.
What can start a Salesforce workflow?
Salesforce Trigger is the node that starts a workflow when something happens in Salesforce. It listens to 18 events, listed below by family. Pick one or several, activate the workflow: n8n registers the webhook on your Salesforce account.
What you see in n8n
Every event, by family
One row per object, one chip per action. The event to tick in the node is object.action; hover a chip to read exactly when it fires.
account.*2attachment.*2case.*2contact.*2custom.*2lead.*2opportunity.*2task.*2user.*2Configuration notes
01Set up the Salesforce Trigger
The trigger node reads one event type and emits an item for every matching record it finds. It does not register anything on the Salesforce side, so there is no callback URL to paste anywhere.
Key parameters
- Trigger On: the event this workflow listens to, picked from the 18 available. They split into 9 families of two, created and updated, for accounts, attachments, cases, contacts, custom objects, leads, opportunities, tasks and users.
- Poll Times: how often n8n asks the Salesforce API whether something new exists, once a minute at the most. There is no wildcard option, so one trigger node listens to one event.
02On Lead Created and On Lead Updated
Lead events are where most sales automation starts. leadCreated fires when a new lead lands in the org, whatever created it, a web form, an import, or a rep typing it in. leadUpdated fires when an existing lead is modified, which includes a status change.
03On Opportunity Created and On Opportunity Updated
Pipeline movement shows up through two events. opportunityCreated catches a deal the moment it is opened, and opportunityUpdated catches every later edit, including the stage changes that matter for forecasting.
04On Case Created and On Case Updated
Support work has its own pair. caseCreated fires on every new case, including the ones opened by email or by a web form, and caseUpdated fires on any later change to an existing case.
05On Custom Object Created and On Custom Object Updated
Orgs rarely run on standard objects alone. These two events cover records of an object you defined yourself, customObjectCreated for a new one and customObjectUpdated for a change to an existing one. Because that field is required, the trigger refuses to start until an object is picked, which is a useful guard against a workflow that watches nothing.
Key parameters
- Custom Object Name or ID: required, and it tells the trigger which object to watch. Pick it from the list n8n loads from your org, or set an ID with an expression when the object depends on earlier data.
What can the Salesforce node do?
The Salesforce node exposes 65 operations across 12 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Create | Get | Get Many | Update | Delete | Add Comment | Add Note | Add Contact To Campaign | Get Summary | Invoke | Query | Upload | Create or Update |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Account | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
| Attachment | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
| Case | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
| Contact | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
| Custom Object | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
| Document | ✓ | ||||||||||||
| Flow | ✓ | ✓ | |||||||||||
| Lead | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
| Opportunity | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
| Search | ✓ | ||||||||||||
| Task | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
| User | ✓ | ✓ |
Operations index
Account
8 operationsAdd a note to an account
account.addNoteWhat you see in n8n
Notes & use cases
Writes a note on an existing account, so context sits on the record rather than in a private inbox.
Key parameters
- Account ID: the record the note belongs to, often
{{ $json.id }}from an earlier Salesforce node. - Title: required, and it is what a rep sees in the list, so make it specific.
- Body: optional, limited to 32 KB, which is far more than any meeting recap needs.
- Is Private: true restricts the note to its owner and to users holding the Modify All Data permission.
Create an account
account.createWhat you see in n8n
Notes & use cases
Inserts a new account and returns the created record, ID included, ready for the next node.
Key parameters
- Name: the only required field, capped at 255 characters.
- Additional Fields: 26 optional fields, among them Phone, Website, Industry, Annual Revenue, Number Of Employees, Owner and the whole Billing and Shipping address set.
- Custom Fields: sits inside Additional Fields and reaches the fields your admin added.
Create or update an account
account.upsertWhat you see in n8n
Notes & use cases
One operation that decides for itself: it looks for an existing account, updates it when there is a hit, and inserts a new one otherwise.
Key parameters
- Match Against: the field checked to see whether the account already exists, usually an external identifier your other system owns.
- Value to Match: the value looked up in that field for this item.
- Name: still required, because it is what a new record gets created with.
Delete an account
account.deleteWhat you see in n8n
Notes & use cases
Removes an account from the org. There is no confirmation step in the node, so it runs the moment the workflow reaches it.
Key parameters
- Account ID: the record to delete. Pass an ID you just read in the same workflow rather than one stored elsewhere, since a stale ID will either fail or hit the wrong record.
Get an account
account.getWhat you see in n8n
Notes & use cases
Reads one account and returns its fields, which is the step most update workflows forget and then regret.
Key parameters
- Account ID: the record to read, typically carried over from a trigger item or from a search result.
Get many accounts
account.getAllWhat you see in n8n
Notes & use cases
Pulls a list of accounts in one execution, with a way to narrow both the rows and the columns.
Key parameters
- Return All: on, n8n walks the pages of the API until the list is exhausted; off, it stops at Limit.
- Limit: the maximum number of accounts returned when Return All is off.
- Fields: the fields to include, separated by commas. Ask for the five you need, not the whole record.
- Conditions: filters the accounts returned.
Get an account summary
account.getSummaryWhat you see in n8n
Notes & use cases
Returns an overview of the account object's metadata rather than account records. Nothing to configure, which makes it a quick way to look at how the object is actually built in your org.
Update an account
account.updateWhat you see in n8n
Notes & use cases
Changes fields on an account that already exists, leaving everything you do not name untouched.
Key parameters
- Account ID: the record to modify.
- Update Fields: 27 fields available here, one more than on creation, since Name becomes editable rather than required.
- Owner Name or ID: reassigns the account, which is the field most territory workflows come down to.
Attachment
6 operationsCreate an attachment
attachment.createWhat you see in n8n
Notes & use cases
Uploads a file and attaches it to a record. The file travels as binary data inside the workflow, so no intermediate storage is involved.
Key parameters
- Parent ID: the record the file hangs off, an account, a case, or anything else that accepts attachments.
- Name: shown as File Name, capped at 255 characters.
- Input Binary Field: the name of the binary field holding the file, which is
dataunless the node before it renamed the field. - Is Private: true keeps the file visible only to its owner and administrators.
Delete an attachment
attachment.deleteWhat you see in n8n
Notes & use cases
Detaches and deletes a file from the org, permanently.
Key parameters
- Attachment ID: identifies the file itself, not the record it is attached to. Read it from a listing step in the same workflow, because nothing in the parent record hands you that ID by itself.
Get an attachment
attachment.getWhat you see in n8n
Notes & use cases
Retrieves a single attachment from its identifier.
Key parameters
- Attachment ID: the file to read, usually an ID carried over from a listing step or from the trigger when an attachment event started the run.
Get many attachments
attachment.getAllWhat you see in n8n
Notes & use cases
Lists attachments, which is the practical way to find out what is filed where.
Key parameters
- Conditions: the filter that makes this operation useful, since an unfiltered list returns files from across the org.
- Return All: off by default, in which case Limit caps how many files come back.
- Fields: the columns to include, comma separated.
Get an attachment summary
attachment.getSummaryWhat you see in n8n
Notes & use cases
Hands back an overview of the attachment object's metadata. There is nothing to fill in: the operation takes no parameters at all, so it runs as a quick lookup rather than a query you have to shape.
Update an attachment
attachment.updateWhat you see in n8n
Notes & use cases
Edits an existing attachment, either its metadata or the file itself.
Key parameters
- Attachment ID: the file to modify.
- Name: renames the file, still capped at 255 characters.
- Description: a text description, limited to 255 characters.
- Input Binary Field: supply it and the stored file is replaced by the binary coming in, which keeps the same attachment record instead of creating a second one.
Case
7 operationsAdd a comment to a case
case.addCommentWhat you see in n8n
Notes & use cases
Posts a comment on a case, which is how a workflow talks inside a support thread rather than around it.
Key parameters
- Case ID: the case receiving the comment.
- Comment Body: shown as Body in the node, the text of the comment.
- Is Published: true makes the comment visible to customers in the Self-Service portal, false keeps it internal. Read that one twice before sending a diagnostic message.
Create a case
case.createWhat you see in n8n
Notes & use cases
Opens a case in Salesforce from anything your workflow can reach, a form, a monitoring alert, an inbound email.
Key parameters
- Type Name or ID: the only required field, chosen from the list your org defines.
- Additional Fields: 17 optional fields, including Subject, Description, Priority, Status, Case Origin, Contact ID and Account ID.
- Supplied Email: the address captured at creation. It cannot be changed afterwards, so set it in this node rather than planning to fix it later.
Delete a case
case.deleteWhat you see in n8n
Notes & use cases
Erases a case and, with it, the thread attached to it.
Key parameters
- Case ID: the case to remove. Build a filter before this node rather than after, because there is nothing to undo once the execution has passed it.
Get a case
case.getWhat you see in n8n
Notes & use cases
Loads one case with its current field values.
Key parameters
- Case ID: the case to read.
Get many cases
case.getAllWhat you see in n8n
Notes & use cases
Brings back a list of cases, which is what reporting and backlog workflows run on.
Key parameters
- Return All: leave it off and the node stops at Limit, which is the usual reason a weekly report looks suspiciously flat.
- Limit: caps the number of cases returned.
- Conditions: narrows the list, by status or by owner for instance.
- Fields: the fields to include, separated by commas.
Get a case summary
case.getSummaryWhat you see in n8n
Notes & use cases
Describes the case object's metadata instead of returning cases, and takes no parameters at all.
Update a case
case.updateWhat you see in n8n
Notes & use cases
Modifies a case that already exists, which is where most support automation ends up.
Key parameters
- Case ID: the case to update.
- Update Fields: 18 fields here, one more than at creation, since Type moves into the optional set.
- Status Name or ID: the field that directly controls the IsClosed flag, so closing a case means setting this one.
- Is Escalated: flips the case into escalated, which is how a rule-based check hands it over to a manager.
Contact
9 operationsAdd a contact to a campaign
contact.addToCampaignWhat you see in n8n
Notes & use cases
Campaign membership is the record that ties a contact to a marketing campaign. This operation creates that link, so the contact appears in the campaign member list without any field on the contact itself being rewritten.
Key parameters
- Contact ID: the Salesforce record ID of the contact to enroll, usually
{{ $json.id }}carried over from a previous node. - Campaign Name or ID: pick the campaign from the dropdown n8n loads from your org, or pass an ID through an expression when the campaign changes per run.
- Status, inside Options: controls the HasResponded flag on the membership.
Add a note to a contact
contact.addNoteWhat you see in n8n
Notes & use cases
Notes are free text attached to a record rather than stored in a field. The node writes one and links it to a contact.
Key parameters
- Contact ID: the record the note gets attached to.
- Title: the note title, the only text shown in the related list, so make it scannable.
- Body, in Options: the note content, limited to 32 KB.
- Is Private: when on, only the note owner or a user holding the Modify All Data permission can read it or query it through the API.
- Owner Name or ID: the user who owns the note.
Create a contact
contact.createWhat you see in n8n
Notes & use cases
One new contact record per incoming item, and the node returns the Salesforce ID it just minted so later steps can attach notes, tasks or files to it.
Key parameters
- Last Name: the single required field, capped at 80 characters. Leave it empty and the node stops the execution.
- Additional Fields: 37 optional fields, among them Email, Phone, Title and Account Name or ID, which is what files the contact under a parent account.
- Custom Fields: add the fields your admin created, one Field Name or ID and Value pair at a time.
Create or update a contact
contact.upsertWhat you see in n8n
Notes & use cases
Duplicates are the usual cost of syncing people from an outside system. Upsert avoids them: Salesforce looks for a match first and only creates a record when it finds none.
Key parameters
- Match Against: the field Salesforce checks to decide whether the contact already exists, chosen from the dropdown.
- Value to Match: the value looked up in that field. Found, the contact is updated; not found, a new one is created.
- Last Name: still required, still capped at 80 characters.
- Additional Fields: the same 37 optional fields, applied in both branches.
Delete a contact
contact.deleteWhat you see in n8n
Notes & use cases
Removal is permanent from the workflow's point of view: the node sends the delete and moves on, with nothing to undo downstream.
Key parameters
- Contact ID: the record ID, not the email address and not the full name. Feed it from a Get Many step or from the trigger item rather than typing it by hand.
Get a contact
contact.getWhat you see in n8n
Notes & use cases
One ID in, one full contact record out. Useful whenever a later node needs fields that the trigger item does not carry.
Key parameters
- Contact ID: the record to fetch, commonly
{{ $json.id }}from an upstream node. Unlike the dropdown fields elsewhere in this node, this one is free text, so a wrong value comes back as a failed execution rather than an empty result.
Get many contacts
contact.getAllWhat you see in n8n
Notes & use cases
Reading contacts in bulk, one item per record. What comes back depends entirely on how you set the paging and filtering switches.
Key parameters
- Return All: on, n8n walks every page of the API and returns all matching contacts; off, it stops at Limit.
- Limit: the maximum number of contacts returned when Return All is off.
- Conditions, in Options: filters the query so the node fetches a slice instead of the whole object.
- Fields: a comma separated list of the fields to include, which keeps the payload small on large orgs.
Get a contact summary
contact.getSummaryWhat you see in n8n
Notes & use cases
This one returns an overview of the contact object's metadata rather than contact records, so no rows come back and there is nothing to configure. It answers questions about how the object is shaped in your org, not about who is in it.
Update a contact
contact.updateWhat you see in n8n
Notes & use cases
Fields you name get overwritten, fields you leave out keep their current value. That partial behavior is what makes this safe to run on records other teams also edit.
Key parameters
- Contact ID: which record to edit.
- Update Fields: 38 optional fields, one more than on create because Last Name moves here and is no longer required.
- Email Opt Out: flags that the contact does not want email from Salesforce, worth wiring to whatever your unsubscribe page writes.
Custom Object
6 operationsCreate a custom object
customObject.createWhat you see in n8n
Notes & use cases
Custom objects are the tables your admin added to the org, and the node treats them like any other resource: pick the object, set its fields, get a record back.
Key parameters
- Custom Object Name or ID: the object to write to, loaded into a dropdown from your org so you never guess the API name.
- Fields: the values to set, added one at a time as a Field Name or ID and Value pair.
- Record Type Name or ID, in Additional Fields: which record type the new record belongs to when the object defines several.
Create or update a custom object
customObject.upsertWhat you see in n8n
Notes & use cases
The upsert pattern applied to a custom object: Salesforce decides between insert and update by looking at one field you nominate, which keeps a repeated import idempotent.
Key parameters
- Custom Object Name or ID: the target object.
- Match Against: the field checked to see whether the record already exists.
- Value to Match: present in that field, the record is updated; absent, a new one is created.
- Fields: the values written in either branch, as Field Name or ID and Value pairs.
Delete a custom object
customObject.deleteWhat you see in n8n
Notes & use cases
Two identifiers are needed here, not one: the object tells the node which table to work on, the record ID tells it which row to drop.
Key parameters
- Custom Object Name or ID: the custom object holding the record.
- Record ID: the record to be deleted. This is free text, so it normally arrives from a previous lookup rather than being typed in.
Get a custom object
customObject.getWhat you see in n8n
Notes & use cases
A single record read from a custom object, returned as one item with its fields. Pair it with a lookup step whenever the ID is not already in the payload.
Key parameters
- Custom Object Name or ID: which custom object to read from, selected in the dropdown.
- Record ID: the record to be retrieved.
Get many custom objects
customObject.getAllWhat you see in n8n
Notes & use cases
Bulk read on a custom object, with the same paging switches as the standard resources plus a field picker that knows your org's schema.
Key parameters
- Custom Object Name or ID: the object to query.
- Return All: enabled, every page is fetched; disabled, Limit caps the number of records.
- Conditions, in Options: narrows the query to the rows you actually want.
- Field Names or IDs: a multi select of fields to include, chosen from the list or given as IDs through an expression.
Update a custom object
customObject.updateWhat you see in n8n
Notes & use cases
Editing happens field by field on a record you identify, and anything you do not list stays as it was.
Key parameters
- Custom Object Name or ID: the object the record lives in.
- Record ID: the record to be updated.
- Fields: each change expressed as a Field Name or ID and Value pair, which is also how you set a Record Type Name or ID when the object has several.
Document
1 operationUpload a document
document.uploadWhat you see in n8n
Notes & use cases
Binary data travels between n8n nodes in a named property, and this operation takes that property and stores it in Salesforce as a document.
Key parameters
- Input Binary Field: the name of the binary field on the incoming item that holds the file. Get this name wrong and the node has nothing to send.
- Title: the file name as it will be stored.
- File Extension, in Additional Fields: forces an extension; left empty, the value from the binary data is used.
- Link To Object ID: attaches the document to an existing record.
- Owner Name or ID: the user who owns the document.
Flow
2 operationsGet many flows
flow.getAllWhat you see in n8n
Notes & use cases
Flows are the automations built inside Salesforce itself. This operation lists them, which is mostly how you find the API name you need before invoking one.
Key parameters
- Return All: on, the node pages through the full list of flows; off, Limit sets how many come back.
- Limit: the maximum number of flows returned.
Invoke a flow
flow.invokeWhat you see in n8n
Notes & use cases
Rather than rebuilding org logic in n8n, this hands execution back to Salesforce: the node calls a flow and the flow does the work with the org's own rules.
Key parameters
- API Name: the flow's API name, required, and the value the Get Many operation exists to give you.
- JSON Parameters: switches input between the key and value UI and raw JSON.
- Variables: the input variables sent to the flow, added one by one or written as a JSON object depending on that switch.
Lead
9 operationsAdd a lead to a campaign
lead.addToCampaignWhat you see in n8n
Notes & use cases
Attaching an existing lead to a campaign creates the campaign member record, so the lead shows up in that campaign's audience without anyone opening Salesforce.
Key parameters
- Lead ID: the Salesforce identifier of the lead to attach, often
{{ $json.Id }}carried over from an earlier Salesforce step. - Campaign Name or ID: pick the campaign from the list n8n loads from your org, or pass an ID through an expression when the campaign changes from one run to the next.
- Status: sits in Options and controls the HasResponded flag on the membership.
Add a note to a lead
lead.addNoteWhat you see in n8n
Notes & use cases
Notes written this way stay on the lead record itself, readable by anyone who opens it, instead of sitting in one person's inbox.
Key parameters
- Lead ID: identifies the lead the note belongs to.
- Title: the note title, and the only text visible before someone expands it.
- Body: the note content, capped at 32 KB, which is where a call summary or a form comment goes.
- Is Private: set to true, only the note owner or a user with the Modify All Data permission can read it or query it through the API.
Create a lead
lead.createWhat you see in n8n
Notes & use cases
Two fields carry a new lead into Salesforce: Company and Last Name. Everything else rides along in Additional Fields, which holds 27 optional entries.
Key parameters
- Company: the company of the lead. Leave it empty and, if person account record types are enabled in the org, the lead converts to a person account.
- Last Name: limited to 80 characters.
- Email and Lead Source Name or ID: both optional, both in Additional Fields, and the second one decides how attribution reads three months later.
Create or update a lead
lead.upsertWhat you see in n8n
Notes & use cases
Run the same person through Create twice and the org ends up with two leads. Create or Update looks first, writes second.
Key parameters
- Match Against: the field n8n checks to decide whether the lead already exists.
- Value to Match: the value looked for in that field. Found, the lead is updated. Not found, a new one is created.
- Company and Last Name: still required, because any run can end in a creation.
Delete a lead
lead.deleteWhat you see in n8n
Notes & use cases
Deletion leaves nothing to undo on the n8n side: the node sends the request and moves to the next item, so put a filter you trust in front of it.
Key parameters
- Lead ID: the record identifier, not the email address and not the company name. It usually comes from a preceding Get Many step, or from the trigger as
{{ $json.Id }}.
Get a lead
lead.getWhat you see in n8n
Notes & use cases
One identifier goes in, the full record comes out as a single item. Useful when an upstream tool handed the workflow an ID and nothing else.
Key parameters
- Lead ID: the record to fetch. An expression such as
{{ $json.leadId }}keeps the workflow generic from one execution to the next.
Get many leads
lead.getAllWhat you see in n8n
Notes & use cases
Get Many walks the Lead object and returns one item per record, the usual starting point for a batch that scores or routes.
Key parameters
- Return All: enabled, n8n chains the API pages until every lead is in. Disabled, Limit caps how many come back.
- Conditions: the filters that keep the batch on the leads worth processing.
- Fields: the fields to include, separated by commas, which keeps the payload light on a large org.
Get a lead summary
lead.getSummaryWhat you see in n8n
Notes & use cases
No record comes back here. Get Summary returns an overview of the Lead object's metadata, its shape rather than its contents, and it asks for no parameter at all.
Update a lead
lead.updateWhat you see in n8n
Notes & use cases
Update touches only what you send. Fields left out of Update Fields keep their current values, so a partial payload is safe to send on every run.
Key parameters
- Lead ID: the record to modify.
- Status Name or ID: one of the 29 entries in Update Fields, chosen from the status list the org defines.
- Rating and Owner Name or ID: the two a routing workflow writes most, one for priority, one for the rep who picks the lead up.
Opportunity
8 operationsAdd a note to an opportunity
opportunity.addNoteWhat you see in n8n
Notes & use cases
Comments about a deal arrive from several people at once. This operation turns one into a proper note on the opportunity, where the rep will look for it.
Key parameters
- Opportunity ID: the deal the note attaches to.
- Title: required, and worth templating so the notes list stays readable.
- Body: up to 32 KB of text.
- Owner Name or ID: the user who owns the note, handy when a shared credential would otherwise sign everything.
Create an opportunity
opportunity.createWhat you see in n8n
Notes & use cases
Three fields open a deal: a name, a close date and a stage. The 13 entries in Additional Fields fill in the forecast around it.
Key parameters
- Name: limited to 80 characters.
- Close Date: the date the deal is expected to close, a date value and not free text.
- Stage Name or ID: chosen from the stages configured in the org.
- Amount and Account Name or ID: both optional, both worth filling if the pipeline report should mean anything.
Create or update an opportunity
opportunity.upsertWhat you see in n8n
Notes & use cases
Same logic as the lead version, applied to deals: n8n looks for an existing opportunity and only creates one when the lookup comes back empty.
Key parameters
- Match Against and Value to Match: the field checked, and the value searched for in it.
- Name, Close Date and Stage Name or ID: required on top of the match, since the run may end in a creation.
Delete an opportunity
opportunity.deleteWhat you see in n8n
Notes & use cases
Removing a deal skews every pipeline history built on it, which is why most teams move it to a lost stage instead. Duplicates are the real case for this operation.
Key parameters
- Opportunity ID: the identifier of the deal to remove, usually read from a Get Many step whose filter already did the selecting.
Get an opportunity
opportunity.getWhat you see in n8n
Notes & use cases
Reading a single deal returns its current amount, its stage and its dates, which is what a workflow needs before it decides anything.
Key parameters
- Opportunity ID: the record to read. Coming from the trigger, it arrives as an expression such as
{{ $json.Id }}.
Get many opportunities
opportunity.getAllWhat you see in n8n
Notes & use cases
Get Many returns opportunities as separate items, ready to be summed, grouped or sent somewhere the sales team already reads.
Key parameters
- Conditions: the filter that makes this operation worth running, for instance restricting the batch to a single stage.
- Return All: enabled, n8n chains the API pages to the end. Disabled, Limit decides how many deals come back.
- Fields: separated by commas, to bring back the amount and the close date without the rest of the record.
Get an opportunity summary
opportunity.getSummaryWhat you see in n8n
Notes & use cases
Get Summary describes the Opportunity object rather than any single deal: it returns an overview of that object's metadata, with no parameter to fill in.
Update an opportunity
opportunity.updateWhat you see in n8n
Notes & use cases
Moving a deal forward usually comes down to one field, and Update Fields offers 16 of them.
Key parameters
- Opportunity ID: the deal to change.
- Stage Name or ID: what a pipeline automation writes most often.
- Amount: the estimated total sale amount, worth refreshing whenever the quote changes.
- Next Step: a short description of what still has to happen to close, capped at 255 characters.
Search
1 operationPerform a query
search.queryWhat you see in n8n
Notes & use cases
Query runs a SOQL statement and returns all of its results in a single response, which covers the reads the resource operations cannot express.
Key parameters
- Query: the SOQL string, along the lines of
SELECT+Name+FROM+MyObject. An invalid statement comes back as a MALFORMED_QUERY response, so test it in Salesforce before wiring it into a workflow.
Task
6 operationsCreate a task
task.createWhat you see in n8n
Notes & use cases
One field is required to create a task: its status. The 25 entries in Additional Fields do everything else.
Key parameters
- Status Name or ID: the current status, such as In Progress or Completed, taken from the list the org defines.
- Subject Name or ID: the subject line, capped at 255 characters.
- Activity Date: the due date, always stamped at midnight UTC.
- Who ID: points at a person, a lead or a contact, where What ID points at an account, an opportunity or a case.
Delete a task
task.deleteWhat you see in n8n
Notes & use cases
Tasks pile up faster than any other object in a CRM, and this operation removes one for good.
Key parameters
- Task ID: the task to remove. Feed it from a Get Many step whose Conditions already narrowed the list, since nothing here asks for a confirmation.
Get a task
task.getWhat you see in n8n
Notes & use cases
Fetching a single task returns its status, its subject and the records it is linked to.
Key parameters
- Task ID: the identifier of the task to read, usually carried over from the trigger item.
Get many tasks
task.getAllWhat you see in n8n
Notes & use cases
Get Many lists tasks one item at a time, which is how a workflow finds out what the team still owes.
Key parameters
- Return All: enabled, n8n keeps requesting pages until every task has been retrieved. Disabled, Limit stops it earlier.
- Conditions: the filters that keep the batch to one owner or one status.
- Fields: the fields to return, separated by commas.
Get a task summary
task.getSummaryWhat you see in n8n
Notes & use cases
Like its lead and opportunity counterparts, this call returns an overview of the Task object's metadata and not a single task.
Update a task
task.updateWhat you see in n8n
Notes & use cases
Update rewrites the fields you provide and leaves the rest alone, across the 26 available in Update Fields.
Key parameters
- Task ID: the task to modify.
- Status Name or ID: what most automations write, to close a task from outside Salesforce.
- Is ReminderSet: turns the popup reminder on or off, and Reminder Date Time sets the moment it fires.
User
2 operationsGet a user
user.getWhat you see in n8n
Notes & use cases
Fetches one Salesforce user from its identifier and hands the whole record to the next node, which turns a bare ID sitting in a field into something the rest of the workflow can actually read.
Key parameters
- User ID: the ID of the user that needs to be fetched, usually an expression such as
{{ $json.userId }}that pulls the value from the item coming out of the previous node.
Get many users
user.getAllWhat you see in n8n
Notes & use cases
Reads the user list of the org and emits one item per user, which is where most workflows that spread records across a team start.
Key parameters
- Return All: switched on, n8n walks through the API pages until every user is back; switched off, Limit caps how many come out.
- Conditions: filters the list inside Salesforce, one condition per row added through Add Condition.
- Fields: the fields to include, separated by commas, to keep the payload light.
Need help automating Salesforce with n8n?
A person reads every message.
