Skip to content
← Connectors

CRMConnector

Salesforce

Query, create and bulk-edit Salesforce records from Claude or ChatGPT through Tulina's MCP server, on your own External Client App, beside your other tools.

Official site: www.salesforce.com

What it can do

2 read/3 write

  • 01
    Read

    Query any object with SOQL, or search across them when you do not know where a record lives

  • 02
    Read

    Read the schema of an object, so a request works against your custom fields rather than a guess

  • 03
    Write

    Create, update, upsert and delete records one at a time

  • 04
    Write

    Bulk-create and bulk-update, for the jobs that touch thousands of rows

  • 05
    Write

    Read and write the notes attached to a record

Tulina connects to Salesforce with OAuth through an External Client App that your own org creates, since Salesforce shares no OAuth client between customers. The connector reads any object with SOQL or SOSL, describes fields so a request fits your custom schema, and creates, updates, upserts, deletes and bulk-edits records. The token sits in a vault, roles decide who can reach it, and a policy decides what comes back.

What is the Salesforce MCP?

It is Salesforce's own hosted MCP server, generally available since April 2026 for Enterprise Edition orgs and above. An admin enables a server in Setup, creates an External Client App and connects a client such as Claude or ChatGPT. Each call then runs as the signed-in user, under that user's CRUD, field-level security and sharing rules. Tulina's connector is the other route, and the two can coexist.

Does Salesforce expose an MCP server?

Yes. Salesforce hosts servers for sObject reads and writes, custom tools built on Apex actions, Flows and Named Queries, Data 360 SQL queries, Tableau and Prompt Builder templates. Its docs describe per-user OAuth with PKCE and an mcp_api scope that reaches MCP but not the REST API. Salesforce's own page: Hosted MCP Servers.

How do you connect Salesforce to Claude and ChatGPT?

Through Tulina's MCP server, in four steps:

  1. In Salesforce Setup, create an External Client App with OAuth enabled and the api and refresh_token scopes. Full access does not include refresh_token, and omitting it is the usual cause of an invalid_scope error. Salesforce reveals the consumer key and secret after an email verification code.
  2. Set the callback URL shown on Tulina's Salesforce card, and relax IP restrictions on the app, because Tulina's server refreshes the token from a different address than your browser. If your policy forbids that, allow the address the card gives instead.
  3. Paste the consumer key, the consumer secret and your My Domain login URL into the connector, then choose Authorize at Salesforce. A sandbox uses its sandbox.my.salesforce.com domain.
  4. Add https://mcp.tulina.ai/mcp to Claude or ChatGPT and sign in with your Tulina account. The MCP page has the same link.

Several Salesforce orgs can be connected, each under its own name, and the agent picks one per call.

Tulina vs Salesforce's hosted MCP servers

Salesforce's servers are the first-party route and act as the signed-in user. Tulina's connector uses one stored OAuth connection and reaches Salesforce beside your other tools.

Salesforce hosted MCP serversTulina
HostingManaged by Salesforce, enabled per server in Setupmcp.tulina.ai/mcp, one link for every connected tool
Sign-inPer-user OAuth with PKCEAn External Client App your org creates, stored in Tulina's vault
Record operationsRead, create, update and delete, within field-level security and sharingList, get, create, update, delete, upsert on an external id
QueriesNamed Queries and Data 360 SQLRaw SOQL and SOSL
Bulk writesNot listed in the pages readUp to 200 records of one object in a call
Apex, Flows, Prompt BuilderExposed as custom toolsNot exposed

If the model should call a Flow or an Apex action, or each person should act as themselves in the audit trail, Salesforce's own server is the better choice. Tulina fits when the Salesforce step belongs to a longer piece of work that also reaches your inbox, your enrichment sources or your messaging.

What you can ask it

"Which open opportunities over 50k have had no update in 30 days?" The agent runs a SOQL query on Opportunity, filters on the stage and the last modified date, and returns the stale ones with their owners.

"Find everyone at Acme and add a note that we spoke today." The agent searches Account and Contact with SOSL, then attaches an Enhanced Note to the right record.

"Load these 120 contacts from the sheet, skipping anyone already in Salesforce." The agent checks existence first with SOQL, then creates the new contacts in batches of up to 200. Tulina does not turn on Salesforce's duplicate rules, so the check belongs in the request.

The connector appears in Qualify inbound leads and Keep CRM accounts updated. It pairs with HubSpot when a team runs two CRMs and with Pipedrive for the same questions on a smaller pipeline.

What the Salesforce connector can't do

  • It does not apply Salesforce's de-duplication. Whether a duplicate rule fires depends on your org's setup, and a batch is compared with existing records, never with itself.
  • Notes are Enhanced Notes (ContentNote), the Lightning default. Orgs still on classic Notes are not supported.
  • Bulk create and bulk update take 200 records of one object per call, and the agent has to read the per-record results, because one record can fail while the call succeeds.
  • Delete is irreversible. Ask the agent to name the record and confirm first.
  • It does not call Flows, Apex actions or Prompt Builder templates.
  • No tool walks through several connected orgs at once. A total across orgs is one call per org.

Why through Tulina

The connection was never the hard part.

Most systems now publish their own way for a model to reach them, and that is good: it is what Tulina connects to. The hard part is deciding who may use it, what it is allowed to return, and what the model knows before it asks.

  • The keys stay in one place

    YouTeamOrganisation

    Connect Salesforce once. The credential is encrypted in a vault, never held in clear, and never pasted into a chat or a workflow file. A person uses their own key where they have one, their team's where they do not, the organisation's after that, so nobody is blocked and nobody holds more access than they need. Revoke it once and everything running on it stops.

  • What leaves is filtered before it leaves

    fields droppedmasked or hashedpseudonymised

    Roles decide who can reach Salesforce at all. Beyond that, a policy on the connector itself decides what comes back. The data is minimised at the source rather than after it has already reached a model.

  • Every call is on the record

    whatwhowhen

    Runs are logged for the organisation. That is what makes an automated action reviewable after the fact, and it is what a security review asks for first.

  • The run starts knowing your company

    namingkey accountsdecisions

    A direct connection gives a model access. It does not tell it how your company names things, which accounts matter, or what was decided last quarter. Tulina carries that across every tool, so the same request against Salesforce returns something usable instead of something generic.

Processes that run on Salesforce

See Tulina in a 30-minute demo.

Book a demo