Salesforce for AI agents
Salesforce is the widely used CRM that sales, service, and marketing teams run their pipelines, accounts, and customer records on. Connect it once through Arc0, and your agent, or Claude, ChatGPT and Cursor, can use it through one MCP endpoint, limited to what each user approved.
What agents do in Salesforce.
Create or update an account record
Adds a new Salesforce account or updates fields on an existing one after a deal changes stage.
Look up a record before acting
Reads an opportunity or contact record to confirm the current owner and stage before making a change.
Clone an opportunity only after confirmation
Duplicates an opportunity with its products once a rep confirms the renewal or upsell should proceed.
224 Salesforce actions, graded by risk.
Every Salesforce action is tagged read, write or destructive, so one policy covers the whole app and new actions inherit the right default.
read
124Look things up. Allowed by default.
- salesforce.get_apiGet API resources by version
- salesforce.get_appGet an app
- salesforce.get_appsGet apps
- salesforce.get_leadGet lead
- salesforce.get_noteGet note
- salesforce.get_themeGet theme
- salesforce.query_allQuery All (including deleted)
- salesforce.get_reportGet report metadata
- salesforce.list_leadsList leads
- salesforce.list_notesList notes
- salesforce.query_moreQuery more (next page of SOQL results)
- salesforce.get_accountGet account
- salesforce.get_contactGet contact
- salesforce.get_supportGet support knowledge
- salesforce.get_campaignGet campaign
- salesforce.list_reportsList reports
write
82Create and change things. Allow, or ask the user first.
- salesforce.send_emailSend email
- salesforce.create_leadCreate lead
- salesforce.create_noteCreate note
- salesforce.create_taskCreate task
- salesforce.update_leadUpdate lead
- salesforce.update_noteUpdate note
- salesforce.update_taskUpdate task
- salesforce.update_recordUpdate a record
- salesforce.create_accountCreate account
- salesforce.create_contactCreate contact
- salesforce.update_accountUpdate account
- salesforce.update_contactUpdate contact
- salesforce.create_a_recordCreate a record
- salesforce.create_campaignCreate campaign
- salesforce.send_mass_emailSend mass email
- salesforce.update_campaignUpdate campaign
destructive
18Delete, cancel or archive. Ask first, or deny outright.
- salesforce.delete_fileDelete file
- salesforce.delete_leadDelete lead
- salesforce.delete_noteDelete note
- salesforce.delete_accountDelete account
- salesforce.delete_contactDelete contact
- salesforce.delete_sobjectDelete sObject record
- salesforce.delete_campaignDelete campaign
- salesforce.delete_job_queryDelete job query
- salesforce.delete_opportunityDelete opportunity
- salesforce.remove_from_campaignRemove from campaign
- salesforce.remove_note_object_by_idRemove note object by id
- salesforce.remove_opportunity_by_idRemove opportunity by id
- salesforce.delete_sobject_collectionsDelete multiple records (SObject Collections)
- salesforce.remove_campaign_object_by_idRemove campaign object by id
- salesforce.delete_a_lead_object_by_its_idDelete a lead object by its id
- salesforce.remove_a_specific_contact_by_idRemove a specific contact by id
Salesforce in three steps.
- 01Your users connect SalesforceThey sign in to Salesforce on Arc0 Connect, under your brand, and approve the access you ask for.
- 02You set the rulesReads run, writes like “create lead” can wait for the user, and “delete file” can be denied outright.
- 03Any agent can actYour agent calls Salesforce through the Arc0 SDK or MCP, and so can Claude, ChatGPT and Cursor. Every call lands on the audit log.
await arc0.policies.set('salesforce', { read: 'allow', write: 'ask', // create_lead destructive: 'deny', // delete_file }) # Claude Code: the same connection, one URL $ claude mcp add --transport http arc0 \ https://mcp.arc0.ai/u/u_8f2
How Salesforce connects.
Users sign in to Salesforce on Arc0 Connect and approve the scopes you request. Build with Arc0’s Salesforce OAuth app, or bring your own so the Salesforce consent screen names you. Tokens refresh automatically, and you can export them whenever you want.
The same Salesforce connection serves your agent over MCP and your own backend over REST and the proxy, so a user connects once. How Arc0 handles credentials →
- AUTH
- OAuth 2.0 · OAuth 2.0 client credentials
- CREDENTIALS
- Per-tenant encrypted vault
- MODEL SEES
- Results only, never credentials
- AUDIT LOG
- Every call, on every plan
Use Salesforce from any agent.
Salesforce and Arc0, answered.
Can I use Salesforce with Claude, ChatGPT or Cursor?
Yes. Connect Salesforce to Arc0 once, then add your Arc0 MCP URL to Claude, ChatGPT, Cursor, Claude Code or any other remote-MCP client. Each assistant only gets the Salesforce actions you allow.
How do users connect Salesforce?
Users sign in to Salesforce on Arc0 Connect and approve the scopes you request. Build with Arc0’s Salesforce OAuth app, or bring your own so the Salesforce consent screen names you. Tokens refresh automatically, and you can export them whenever you want.
Which Salesforce actions can my agent take?
224 in total: 124 read, 82 write and 18 destructive, such as “create lead”. Your policies decide which of them each agent may call.
Can I stop my agent from deleting things in Salesforce?
Yes. Actions like “delete file” are graded destructive. Set destructive actions to deny, or to ask so the user approves each one, and blocked calls still show up on the audit log.
Can my own backend call Salesforce too?
Yes. The same Salesforce connection is available over REST and through the Arc0 proxy, so your product and your agent share one connection per user.
Plug Salesforce into your agent.
Your users connect Salesforce once, under your brand. Your agent gets 224 actions behind your policies, with every call on the record.
Free to build · MCP + REST · Audit log on every plan