Choose MCP only for live Salesforce queries and actions without an Omni record index. Choose Sync + optional MCP for indexed search, inherited Salesforce permissions, search operators, native actions, and optional MCP.
Overview
Synced records
Sync-enabled sources index:
Sync also reads
User, Group, GroupMember, UserRole, and the relevant *Share tables to resolve permissions. Deleted records are reconciled from Salesforce’s deleted-records API. Salesforce users appear in Omni’s people directory; CRM records are documents.
Permissions
For sync-enabled sources, Omni mirrors:- Ownership: owners, including queue members, receive access.
- Role hierarchy: with Grant Access Using Hierarchies, ancestor roles of the owner receive access.
- Shares: user, group, and role grants from the per-object share tables are expanded.
- Org-wide defaults: only configured public-read objects are public; other records are private by default.
sync_users, sync_groups, sync_shares, and grant_access_using_hierarchies. Disabling sync_users also disables sharing and hierarchy resolution.
MCP-only does not copy records or sharing data into Omni. Each user needs API Enabled and the object, field, and record permissions required by that user’s live queries or actions.
Prerequisites
All modes require:- Omni with the Salesforce connector service running (
salesforceconnector). - Salesforce administrator access to create an External Client App and configure its policies.
/api/oauth/callback path. MCP authorization also requires a setup administrator or permitted Salesforce user who can complete OAuth.
Sync-enabled sources additionally require a dedicated integration user with a full Salesforce user license, a permission set with the sync permissions below, and a secure location for an RSA private key.
Setup
Each tab is a complete workflow. Do not combine steps between tabs.- MCP only
- Sync + optional MCP
Step 1: Create the External Client App
- In Salesforce, open Apps → External Client Apps → External Client App Manager → New External Client App.
- Name it
Omni, provide a contact email, and keep distribution Local. - Enable OAuth and set the callback to
https://<your-omni-domain>/api/oauth/callback. - Save the generated Client ID/Consumer Key and Client Secret. Omni is a server-side confidential client; retain secret-required settings for authorization-code/web-server exchange if Salesforce presents them.
- Enable Authorization Code and Credentials Flow and Require Proof Key for Code Exchange (PKCE).
OAuth permissions
In the External Client App, select these Salesforce permissions:- Access unique user identifiers
- Access the identity URL service
- Manage user data via APIs
- Perform requests at any time
Step 2: Create the Omni source
- Open Admin Settings → Integrations → Connect Salesforce.
- Select MCP only.
- Enter the External Client App’s Client ID, Client Secret, and Login URL:
https://login.salesforce.comfor production orhttps://test.salesforce.comfor a sandbox. - Select Connect.
Step 3: Authorize the setup administrator
After you select Connect, Omni immediately redirects your browser to Salesforce. Complete these actions in Salesforce:- Sign in as the setup administrator.
- Confirm that you are authorizing the Salesforce organization this Omni source should represent.
- Approve the requested OAuth scopes and return to Omni.
Step 4: Authorize users
Every Omni user invoking MCP authorizes their own Salesforce identity. The setup administrator is the first user; later users authorize on first MCP use:- Start an MCP action in chat.
- Follow the Salesforce redirect, sign in, complete MFA if requested, approve scopes, and return to Omni.
- Ensure that user has API Enabled and the object, field, and record permissions required by the live action.
Managing the Integration
Sync-enabled capabilities
These apply only to sync-enabled sources:- Records and status: indexed Salesforce records, sync status, manual sync, and a configurable interval. Changes to synced objects, fields, or permission settings trigger full reconciliation.
- Search operators:
owner:,status:,priority:,stage:,account:,industry:, andlead_source:filter indexed documents. - Native actions:
find_records(read),get_case(read),create_case(write),update_case_status(write),create_task(write), andupdate_task_status(write). Write actions require confirmation and honor read-only/action authorization.
MCP actions (both modes)
MCP actions use the local official@salesforce/mcp integration. Omni exposes its discovered tool catalog; each execution uses the invoking user’s OAuth credential, and Salesforce enforces that user’s permissions. The data toolset includes read tools such as get_username, list_all_orgs, and run_soql_query when available.
“MCP only” means MCP-origin actions only, not read-only. It excludes native actions and sync, but write-classified MCP actions may still be available subject to confirmation, authorization, and the source’s read-only setting.
Troubleshooting
Sync fails with Account unsupported or UserRoleId not queryable
Sync fails with Account unsupported or UserRoleId not queryable
Check the integration user’s full license, object Read and View All Records, and system permissions from Sync step 2.
UserRoleId is required for default hierarchy resolution; use the documented settings only if your license cannot provide it.MCP tools do not appear
MCP tools do not appear
Confirm the source-scoped Client ID/Secret. For MCP-only, the setup administrator must finish the immediate redirect and catalog discovery. For sync-enabled sources, the JWT source must be enabled and the first permitted user must authorize MCP.
MCP live query returns a permission error
MCP live query returns a permission error
Salesforce evaluates the invoking user’s credential. Grant that user API Enabled and the required object, field, and record permissions; the setup administrator’s permissions do not transfer.
Synced records are missing after permission changes
Synced records are missing after permission changes
This is sync-only. Run a manual sync after changing profiles, permission sets, roles, or sharing rules and confirm it completes.
Security Considerations
- Sync uses the dedicated integration user’s JWT; MCP uses each user’s OAuth credential. The JWT is never an MCP fallback.
- Sync binding uses the configured instance URL and validated JWT credentials. MCP-only binding comes from the first administrator OAuth authorization.
- Store private keys, Client Secrets, access/refresh tokens, and MFA codes securely. Omni encrypts source and user credentials at rest.
- Limit Salesforce permissions to required sync or live-query work. Read-only settings govern write-capable native and MCP actions; MCP-only is not inherently read-only.
What’s Next
Search Your Data
Search synced CRM records alongside your other sources
Access Control
Understand Salesforce sharing for synced records
Connector Management
Manage sync-enabled sources and integrations