Skip to main content
Salesforce has two modes: 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.
Only active Salesforce users with email addresses receive grants. The default permission settings are 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 (salesforce connector).
  • Salesforce administrator access to create an External Client App and configure its policies.
Any setup that enables MCP also requires this callback, using the public Omni base URL:
For local Omni, use its local base URL with the same /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.

Step 1: Create the External Client App

  1. In Salesforce, open Apps → External Client Apps → External Client App Manager → New External Client App.
  2. Name it Omni, provide a contact email, and keep distribution Local.
  3. Enable OAuth and set the callback to https://<your-omni-domain>/api/oauth/callback.
  4. 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.
  5. 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
These permissions let Omni identify users, call Salesforce APIs, and maintain MCP authorization. Do not select Manage user data via Web browsers or Access Salesforce hosted MCP servers; Omni does not require them. Configure policies so the setup administrator and intended Salesforce users can authorize the app; preauthorize them if the org uses admin-approved users.MCP only does not require JWT Bearer Flow, an integration user, certificate, private key, instance URL, or sync interval.

Step 2: Create the Omni source

  1. Open Admin Settings → Integrations → Connect Salesforce.
  2. Select MCP only.
  3. Enter the External Client App’s Client ID, Client Secret, and Login URL: https://login.salesforce.com for production or https://test.salesforce.com for a sandbox.
  4. Select Connect.
The form has no instance URL, JWT, certificate, private-key, or sync-interval field. No Salesforce records are synced or indexed.

Step 3: Authorize the setup administrator

After you select Connect, Omni immediately redirects your browser to Salesforce. Complete these actions in Salesforce:
  1. Sign in as the setup administrator.
  2. Confirm that you are authorizing the Salesforce organization this Omni source should represent.
  3. Approve the requested OAuth scopes and return to Omni.
Omni saves this administrator credential for the Salesforce source, uses it to establish the organization’s binding, and discovers the MCP catalog. Setup is complete only when the redirect returns to Omni and catalog discovery succeeds. Salesforce supplies instance information in the OAuth response; you do not enter an instance URL.

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:
  1. Start an MCP action in chat.
  2. Follow the Salesforce redirect, sign in, complete MFA if requested, approve scopes, and return to Omni.
  3. Ensure that user has API Enabled and the object, field, and record permissions required by the live action.
Credentials and Salesforce permissions remain per user. Omni does not use the setup administrator’s credential for another user. Revoked, expired, missing, or wrong-organization credentials must be authorized again.

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:, and lead_source: filter indexed documents.
  • Native actions: find_records (read), get_case (read), create_case (write), update_case_status (write), create_task (write), and update_task_status (write). Write actions require confirmation and honor read-only/action authorization.
MCP-only has no sync schedule, manual sync, sync status, or indexed Salesforce records.

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

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.
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-only binding comes from the first administrator’s Salesforce OAuth authorization, not an entered instance URL or JWT. Reauthorize in the intended organization and check the app’s login and callback URLs.
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.
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