Salesforce holds your revenue data, but the work around it still moves by hand: leads from ads, pipeline updates in chat, closed deals sent to finance. With n8n you can connect it to the rest of your tools without a new add-on for each one. This page covers the rules first, then what to build.
Who this is for
Salesforce teams tend to have the opposite problem from smaller CRMs. The system can do almost anything, but every change goes through an admin queue, Flow builds pile up, and the integrations that touch other tools (ads, chat, accounting, AI) are the ones that never get prioritised. Meanwhile reps re-key leads from ad platforms, managers ask for pipeline updates in Slack, and finance waits for someone to email them the closed deals.
That gap is where n8n fits best: sales ops and revenue teams that want Salesforce to talk to the rest of the stack without a new managed package for every connection. Because Salesforce is usually the system of record for revenue, the rules for doing it safely matter more here than with most tools. So this page starts with them.
Five Salesforce realities to plan for before you build
- Authentication is an app, not a password. n8n connects to Salesforce with OAuth2 or JWT, both through an app you create in Salesforce. n8n’s docs now recommend an External Client App for new integrations, since Salesforce is phasing out Connected Apps in favour of them. The app needs the Full access and Perform requests at any time (refresh_token, offline_access) scopes, and you choose Production or Sandbox in the credential. On n8n Cloud, a connection can fail unless the connecting user’s profile has the “Approve Connected Apps for Non-Admins” permission.
- The trigger polls, and polling spends API calls. The Salesforce Trigger node checks Salesforce on an interval rather than receiving a push. Its events are created and updated events for accounts, attachments, cases, contacts, custom objects, leads, opportunities, tasks and users (for example On Lead Created or On Opportunity Updated). Every poll is an API request, and your org has a rolling 24-hour API allocation set by edition and licences that every integration shares. Check usage in Setup before you set a one-minute interval on five workflows.
- “Updated” means any update. On Opportunity Updated fires when any field changes, not just the stage. Put an IF or Filter node straight after it, and use the Remove Duplicates node (Remove Items Processed in Previous Executions) on the record ID plus stage when you only want to act once.
- Upsert needs a field to match on. Lead, Contact, Account, Opportunity and Custom Object all have an Upsert operation, and it asks for a Match Against field and a value. Use an external ID field you control (an ad platform lead ID, for example) so a retried run updates the record instead of creating a second one. Your org’s duplicate rules may also block or flag creates, so test against them in a sandbox.
- Field types are enforced. Custom fields use API names ending in __c and go in through Additional Fields, then Custom Fields. Restricted picklists reject values that are not on the list, and required fields or validation rules will fail the request with an error your workflow should catch and send to someone.
What to automate with n8n and Salesforce
Leads from web forms and ad platforms. A Webhook node, n8n Form Trigger or Facebook Lead Ads Trigger receives the lead, Edit Fields maps it to your Salesforce fields, and the Salesforce node runs Lead > Upsert matched on an external ID. Add Lead > Add Lead to a Campaign if you track source by campaign. Leads arrive in seconds instead of at the end of the day, which is the whole point of speed to lead.
New opportunities posted to Slack or Teams. The Salesforce Trigger with On Opportunity Created feeds a Slack node (Message > Send) or a Microsoft Teams node, with the opportunity name, amount, owner and a record link. Leaders see new pipeline as it appears, without opening a report.
AI account summary before a call. Before a scheduled meeting, the Salesforce node gets the account, and Search runs a SOQL query for recent tasks, cases and open opportunities. An AI Agent or OpenAI node turns that into five plain bullets, sent to the rep by email or Slack. Reps walk in prepared, and nobody has to read a year of activity history.
Follow-up tasks for stale opportunities. Covered step by step below. Stuck deals turn into tasks on the owner’s list instead of surprises at forecast time.
Closed opportunities to accounting or a sheet. On Opportunity Updated, an IF node checks for a Closed Won stage, then the workflow creates a customer or invoice in the QuickBooks Online node, or appends a row with the Google Sheets node. Finance starts billing the same day the deal closes.
Example flow: tasks for stale opportunities
- Schedule Trigger, every weekday morning.
- Salesforce, Search, with a SOQL query for open opportunities whose last activity date is more than 14 days ago. Select only the fields you need: Id, Name, OwnerId, StageName, Amount.
- Filter to skip stages you never chase, such as deals waiting on legal.
- Salesforce, Task > Create, with the subject “Follow up: no activity in 14 days”, the What ID set to the opportunity Id, and the owner set to the opportunity’s owner.
- Summarize to count stale deals per owner.
- Slack, Message > Send, posting one short summary to the sales channel.
Set an error workflow on this one. If the SOQL query breaks after a field is renamed, you want an alert, not a silent morning with no tasks.
DIY or hire help
If you are the Salesforce admin, or work closely with one, the Slack alert and the stale-deal tasks are reasonable first builds in a sandbox. Get help when the workflow writes to revenue fields, touches several objects in one run, or has to fit around existing Flows, duplicate rules and validation rules that nobody fully remembers. Those interactions are where integrations cause expensive cleanup. If you are still mapping how your CRM data should flow, the CRM glossary entry is a quick refresher, and the sales automation page shows where I usually start with a sales team.
Frequently asked questions
Does the Salesforce Trigger in n8n use webhooks?
No. The Salesforce Trigger node polls Salesforce on an interval and fires on created or updated events for objects such as leads, opportunities, accounts, cases and tasks. Each poll uses API requests from your org allocation.
How does n8n authenticate to Salesforce?
With OAuth2 or JWT, both through an app you set up in Salesforce. n8n recommends an External Client App for new integrations, with the full and refresh_token scopes, and you pick Production or Sandbox in the credential.
Can n8n run SOQL queries?
Yes. The Salesforce node has a Search operation that runs a SOQL query, and for anything the node does not cover you can use the HTTP Request node with your existing Salesforce credential.
Want this built?
Tell me which Salesforce handoff slows your team down most. We will sketch the workflow on a free 30-minute call, and you get a written quote before anything is built.