Available Tools
Setup
1
Create the app in Salesforce
- In Salesforce Setup, search for External Client App Manager (newer orgs) or App Manager (older orgs)
- Click New External Client App (or New Connected App)
-
Fill in:
- External Client App Name:
Runlayer MCP - Contact Email: your email
- Distribution State:
Local(the app is only used by your own org)
- External Client App Name:
- Expand API (Enable OAuth Settings) and check Enable OAuth
-
Callback URL:
https://<your-tenant>.runlayer.com/oauth/callback— no trailing slash, Salesforce matches it exactly -
Selected OAuth Scopes — add exactly these two:
- Under Flow Enablement, enable Authorization Code and Credentials Flow
- Leave Require secret for Web Server Flow on — Runlayer uses the client secret
- Click Create / Save
A new app can take up to 10 minutes to propagate before it will authorize.
2
Get the Consumer Key and Secret
- Open the app you just created
- Go to Settings → OAuth Settings and click Consumer Key and Secret (older UI: Manage Consumer Details)
- Re-authenticate if prompted, then copy the Consumer Key (Client ID) and Consumer Secret (Client Secret)
Only see the key and not the secret? In the External Client App Manager the
secret is gated behind a user permission — see the troubleshooting entry below.
3
Add Server in Runlayer
- In Runlayer, go to My connectors, find Salesforce, and click Add connector
- Check Custom OAuth credentials
- Enter your Client ID and Client Secret
- If connecting to a sandbox org, set Login URL to
https://test.salesforce.com - Click Deploy Server
4
Authorize
- Click Connect on the server page
- Log in with your Salesforce credentials
- Check the consent screen lists the permissions you selected, then click Allow
Each user authorizes with their own Salesforce credentials. Queries and operations run with that user’s permissions and field-level security.
Configuration Reference
Required:
Optional:
Troubleshooting
INVALID_SCOPES / INVALID_AUTH_HEADER
INVALID_SCOPES / INVALID_AUTH_HEADER
The token was issued without the scope this connector needs. It calls the classic
REST/SOQL API, so the app must grant Manage user data via APIs (
api).
Access Salesforce hosted MCP servers (mcp_api) is for Salesforce’s own hosted
MCP servers and does not work here — with only that scope, OAuth completes and the
token introspects as active while every call still fails.Fixing it takes two steps, and the second is the one people miss:- Add the
apiscope to the app in External Client App Manager → your app → Settings → OAuth Settings - Reconnect the account in Runlayer. Salesforce records granted scopes in the token, so the existing connection keeps refreshing with the old set until it is re-authorized. Editing the app alone changes nothing.
Redirect URI mismatch
Redirect URI mismatch
Verify the callback URL in your Connected App matches exactly:
https://<your-tenant>.runlayer.com/oauth/callback (no trailing slash for Salesforce).Cross-org OAuth error
Cross-org OAuth error
The Connected App must be created in the same org you are authenticating against. External Client Apps do not support cross-org OAuth flows.
Connected App not found after creation
Connected App not found after creation
Salesforce Connected Apps can take up to 10 minutes to propagate. Wait and retry the authorization.
INVALID_SESSION_ID errors
INVALID_SESSION_ID errors
Your Salesforce access token has expired (tokens last ~2 hours). Reconnect in Runlayer to get a fresh token. If you have
refresh_token scope enabled, this should happen automatically.Consumer Secret not shown (External Client App Manager)
Consumer Secret not shown (External Client App Manager)
In the External Client App Manager, the Consumer Secret is gated behind a user permission. If you only see the Consumer Key, your user is missing the required permission on the External Client App.Grant your user the Create, edit, and delete External Client Apps permission (and View External Client App Consumer Secrets in Metadata if you also need metadata access), then revisit the app’s detail page and click Manage Consumer Details to reveal both the key and secret. See the Salesforce help article on External Client App user permissions for the full list.