Use this file to discover all available pages before exploring further.
The Salesforce app provides read/write access to a Salesforce org through the Salesforce REST API v62.0. It can be used either as a Builder app (automations call Salesforce operations directly) or as a remote MCP server consumed by an AI agent — covering single-record CRUD on Accounts, Contacts, Leads and Opportunities, SOQL/SOSL queries, the Composite endpoints, Bulk API 2.0 ingest/query, the Tooling API (Apex + metadata records), Process rules and Approval submissions, Quick Actions, Reports & Dashboards and Metadata package deploys. Authentication is per-user via OAuth2 authorization-code (PKCE), with a service-to-service JWT Bearer fallback when configured.
CRM Records
Create, read, update and delete sObjects (Accounts, Contacts, Leads, Opportunities, custom objects) and run SOQL / SOSL searches across them
Bulk & Composite
Bulk API 2.0 ingest/query jobs and Composite endpoints for high-volume, multi-record and atomic operations
Reports & Process
Reports, dashboards, approval processes, quick actions, Tooling API and Metadata deploys
A Salesforce org with administrator access (Production, Developer Edition or Sandbox).
A Connected App created in Setup > App Manager > New Connected App. Enable OAuth Settings, paste the value of the auto-computed OAuth Redirect URI (visible in the app instance configuration after install) into the Connected App’s Callback URL field, and select the OAuth scopes api refresh_token offline_access. See the Salesforce Connected App docs.
The Connected App’s Consumer Key and Consumer Secret to fill oauthClientId / oauthClientSecret.
The Login Host matching the org type: https://login.salesforce.com for production / Developer Edition, https://test.salesforce.com for sandbox, or a custom My Domain host like https://<mydomain>.my.salesforce.com.
(Optional) For service-to-service auth without a user session, configure JWT Bearer: enable Use digital signatures on the Connected App, upload the matching public certificate, pre-authorize the runtime user for the Connected App, and fill jwtUsername + jwtPrivateKey on the app instance.
OAuth host for this org (https://login.salesforce.com, https://test.salesforce.com or a custom *.my.salesforce.com). Used as the base for the OAuth authorize/token/revoke endpoints AND as the default fallback API base before the OAuth token returns the real instance_url.
REST API Version
Salesforce REST API version (path segment after /services/data/). Defaults to v62.0. Override per tenant if you need an older version.
OAuth Client ID (Consumer Key)
Connected App “Consumer Key”. Stored as a workspace secret.
OAuth Client Secret (Consumer Secret)
Connected App “Consumer Secret”. Stored as a workspace secret.
OAuth Redirect URI
Auto-populated on install. Copy this exact value into the Connected App’s Callback URL field.
OAuth Scopes
Space-separated OAuth scopes requested at authorize time. Defaults to api refresh_token offline_access.
JWT Bearer Username
Salesforce username for the JWT Bearer flow (optional, service-to-service). Leave blank to disable.
JWT Bearer Private Key (PEM)
RSA private key (PEM) matching the public certificate uploaded to the Connected App. Stored as a workspace secret.
MCP Endpoint
Auto-populated on install — URL of the MCP endpoint for this instance
MCP API Key
Auto-populated on install — signed key used in the mcp-api-key header. Do not modify
MCP Endpoint and MCP API Key are generated automatically by the onInstall flow and are only needed to expose this instance as an MCP server (see the next tab).
The app supports two authentication modes that are tried in order on every call:
Per-user OAuth session — each end-user clicks through the Salesforce authorize page once, the tokens are stored in their personal user.salesforce.oauth.* namespace and auto-refreshed. To initiate the flow, call Salesforce.connect from a tenant automation — it returns a connect_url to surface to the user.
Per-tenant JWT Bearer (fallback) — used when no per-user session exists. The Connected App exchanges jwtUsername + jwtPrivateKey against {loginHost}/services/oauth2/token and caches the access token for ~30 minutes.
If neither is available the call returns error: "Salesforce not authenticated".
Every instruction resolves credentials from the workspace configuration through the buildAppAuth helper. Arguments correspond directly to the Salesforce REST API parameters — path params, query params and JSON body fields. Most write operations accept a free-form body object whose keys are Salesforce field API names (case-sensitive).
- Salesforce.runQuery: q: "SELECT Id, Name, AnnualRevenue, Industry FROM Account WHERE AnnualRevenue > 1000000 ORDER BY AnnualRevenue DESC LIMIT 50" output: accounts
- Salesforce.createRecord: sObjectName: Lead body: FirstName: Georges LastName: Abitbol Company: La Classe Américaine Email: georges.abitbol@example.com LeadSource: Web output: lead
The Salesforce app ships with a built-in MCP server. Each app instance gets its own signed mcp-api-key that encodes the workspace ID and a credentials lookup URL — the Salesforce OAuth credentials themselves are never passed through headers and are resolved server-side from the app configuration on every tool call.MCP tools follow a dispatcher pattern: a single tool name (e.g. records, query, bulkIngest) covers several Salesforce operations selected through an action argument. This keeps the tool list short while still exposing the full surface of the Salesforce REST API.
Agents consume MCP servers directly through Agent Creator capabilities. This is the preferred way to expose Salesforce to an agent.
1
Create or open a workspace
From the Prisme.ai console, create a new workspace (or open the one that will host the connector).
2
Install the Salesforce app
Open the workspace Imports panel, search for Salesforce and install it.
3
Configure the credentials
Open the freshly installed app instance settings and fill in the required fields (see the Usage as App tab for the field-by-field reference). At minimum: loginHost, oauthClientId, oauthClientSecret.
4
Copy the MCP endpoint and API key
Still on the app instance configuration page, copy the values of MCP Endpoint and MCP API Key — both are generated automatically on install.
5
Open Agent Creator
Switch to Agent Creator and open the agent you want to extend.
6
Add a capability
Add a new capability to the agent:
If a dedicated Salesforce capability exists — select it and paste the MCP API Key into the mcp-api-key field. The server URL is already wired.
Otherwise — select the generic custom_mcp capability, paste the MCP Endpoint into the Server URL field, then open the Headers field and add an mcp-api-key entry whose value is the MCP API Key copied earlier:
{ "mcp-api-key": "your-mcp-api-key"}
7
Save
The agent now has access to every Salesforce tool exposed by the MCP server.
8
Brief the agent in its system prompt
Wiring the capability is not enough — the agent also needs to know the MCP exists and when to reach for it. Add a short paragraph to the agent’s system prompt. Copy-pasteable starter:
You have access to the Salesforce MCP server. Use it whenever the user asks something that maps to Salesforce data — listing, searching, reading, creating or updating records, running SOQL/SOSL queries, submitting approval requests, running reports or kicking off Bulk API jobs. Always prefer calling an MCP tool over guessing from prior context, and confirm with the user before any destructive action (delete, bulk update, metadata deploy).
Refine the trigger keywords (sObject names, business domains, typical user phrasings) so the agent reliably picks up the right intent in your context.
Use this flow to plug the Salesforce MCP into an AI Knowledge agent that does not yet support the native MCP picker.
1
Install the Salesforce app
Install and configure the app in the same workspace as your agent (see the Usage as App tab). Once configured, mcpEndpoint and mcpApiKey are auto-populated.
2
Copy the MCP credentials
Open the app instance config and copy the values of MCP Endpoint and MCP API Key.
3
Open your AI Knowledge project
Navigate to Advanced > Tools.
4
Add an MCP tool
Click Add and select the MCP tab.
5
Fill in the endpoint
Paste the MCP Endpoint URL copied from the app instance.
6
Add the auth header
In the Headers field, add the signed API key:
{ "mcp-api-key": "your-mcp-api-key"}
7
Save
The agent can now list and call Salesforce tools through the MCP endpoint.
The signed mcp-api-key encodes the workspace ID and the getConfig webhook URL. The MCP server validates the signature using the central app secret and transparently fetches the Salesforce OAuth tokens (or JWT Bearer fallback) for the calling user. Credentials are cached per tenant for 10 minutes.
Each dispatcher tool takes an action argument that selects the underlying Salesforce operation. Only the arguments relevant to the chosen action need to be passed.
CRUD on individual Salesforce records. One record per call. Pick the operation via action; pass record fields nested inside body (Salesforce field API names are case-sensitive).
Read with SOQL (database language), SOSL (cross-object text search) or a structured parameterized search. Use next with a queryLocator returned by a previous SOQL response to page through large result sets.
{ "name": "query", "arguments": { "action": "soql", "q": "SELECT Id, Name, AnnualRevenue FROM Account WHERE Industry = 'Technology' ORDER BY AnnualRevenue DESC LIMIT 50" }}
Parameter
Required
Description
action
Yes
One of soql, soqlAll, sosl, parameterizedSearch, next
q
For soql/soqlAll/sosl
SOQL or SOSL string
queryLocator
For next
Locator returned by the previous SOQL call (nextRecordsUrl)
Multi-record CRUD via the composite/sobjects collection — up to 200 records per call (2000 for reads), with optional allOrNone transactional semantics.
Asynchronous high-volume writes via Bulk API 2.0. The typical lifecycle is create → uploadData (CSV) → update (state: UploadComplete) → poll get until state=JobComplete → getSuccessful / getFailed.
Run reports and dashboards asynchronously, then fetch the resulting report instance. Reports return both the metadata and the row-level facts when includeDetails=true.
Tooling API for metadata-as-data: query/CRUD on ApexClass, CustomField, FlexiPage, ValidationRule, …, plus running Apex (sync, async tests, anonymous execution) and code completions.
“Not configured” — The app instance has no Connected App credentials. Create a Connected App in Salesforce Setup > App Manager, then fill oauthClientId / oauthClientSecret on the app instance.“Invalid API key” (MCP) — The mcp-api-key header does not match the central app secret. Reinstall the app instance to regenerate a signed key.“Credentials lookup failed” — The MCP endpoint could not reach the getConfig webhook of the installed app. Verify that the app instance is still installed in the expected workspace.“Salesforce not authenticated” — Neither a per-user OAuth session nor a JWT Bearer fallback is available. Call Salesforce.connect (App mode) or the connect MCP tool to start the OAuth flow, or fill jwtUsername + jwtPrivateKey on the app instance.redirect_uri_mismatch at callback time — The oauthCallbackUrl value displayed in the app instance config must be pasted verbatim into the Connected App’s Callback URL field, including the path. Sandbox vs production hosts also matter: use https://test.salesforce.com as loginHost for sandboxes.invalid_grant on JWT Bearer — The runtime user is not pre-authorized for the Connected App, the private key does not match the uploaded certificate, or Use digital signatures is not enabled on the Connected App.