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
- 01Read
Query any object with SOQL, or search across them when you do not know where a record lives
- 02Read
Read the schema of an object, so a request works against your custom fields rather than a guess
- 03Write
Create, update, upsert and delete records one at a time
- 04Write
Bulk-create and bulk-update, for the jobs that touch thousands of rows
- 05Write
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:
- In Salesforce Setup, create an External Client App with OAuth enabled and the
apiandrefresh_tokenscopes. Full access does not includerefresh_token, and omitting it is the usual cause of aninvalid_scopeerror. Salesforce reveals the consumer key and secret after an email verification code. - 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.
- 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.comdomain. - Add
https://mcp.tulina.ai/mcpto 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 servers | Tulina | |
|---|---|---|
| Hosting | Managed by Salesforce, enabled per server in Setup | mcp.tulina.ai/mcp, one link for every connected tool |
| Sign-in | Per-user OAuth with PKCE | An External Client App your org creates, stored in Tulina's vault |
| Record operations | Read, create, update and delete, within field-level security and sharing | List, get, create, update, delete, upsert on an external id |
| Queries | Named Queries and Data 360 SQL | Raw SOQL and SOSL |
| Bulk writes | Not listed in the pages read | Up to 200 records of one object in a call |
| Apex, Flows, Prompt Builder | Exposed as custom tools | Not 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
Keep CRM accounts updated
Companies in your CRM are checked every week for new legal filings, and a change of ownership, officers or address, or an insolvency, is flagged on the account.
4 steps →Qualify inbound leads
AI lead scoring for inbound leads: each one matched to its legal entity, scored on real headcount and filed accounts, and written back with the reason.
5 steps →Source and qualify leads
A target company gets searched across LinkedIn, ranked against your ICP, and the qualified shortlist lands in your CRM with email and mobile filled in.
6 steps →