AI Blog

Claudeforce runs in two directions, and only one keeps the record inside Salesforce

Salesforce and Anthropic announced one partnership on 26 August 2026 containing two integrations with opposite governance properties. Claude moving into Agentforce keeps the model inside a boundary that already has row-level permissions and an audit log; Salesforce moving into Claude as a plugin moves the session outside it, where the deliberation that produced a write is no longer in the system of record. Both are reasonable products. Buying them as one thing is how a company discovers the difference during its first e-discovery request.

By Agentic AI Wiki 12 min read

Two integrations were announced as one partnership on 26 August 2026, and they point opposite ways through the same wall. Claude moving into Agentforce puts the model inside a boundary that already knows who may see which row and writes down what changed. Salesforce moving into Claude as a plugin moves the session outside that boundary, so the write still lands in the CRM but the reasoning that produced it does not. Both are defensible products; the failure mode is buying them as one thing and discovering the difference during an e-discovery request.

What was actually announced

Salesforce and Anthropic called it Claudeforce, and the press release describes it as bringing Claude's reasoning together with Salesforce's "trusted enterprise harness" — its data, workflows, business logic, actions and governance. Underneath that framing are two distinct shipments moving in opposite directions.

DirectionWhat shipsWhere it runsTiming
Claude → Salesforce Claude as a reasoning model for the Atlas Reasoning Engine; default model behind Agentforce Vibes and Agentforce Coworker; selectable in Agent Builder Inside the Salesforce Trust Boundary, served through Amazon Bedrock Announced 26 Aug 2026
Salesforce → Claude A "Salesforce in Claude" plugin bundling 37 prebuilt sales skills — reason over live pipeline, update records, take governed action from the Claude interface Inside Claude, reaching back into the tenant Select pilot customers; open beta expected September 2026

The coverage largely read this as a model-selection story — a bellwether for whether enterprise software stays model-agnostic, with Salesforce naming a default rather than a menu. That is a real question and it is the less interesting one. Defaults in enterprise suites have always been sticky, Agent Builder still lets an admin pick something else, and the model behind a CRM's reasoning engine is a swap you can plausibly make later. What you cannot swap later is where the record of a decision ended up.

The same partnership, two boundaries

The two directions of the Claudeforce integration Two panels. On the left, Claude moves into Agentforce: the reasoning model sits inside the Salesforce boundary, its tool calls are Salesforce actions subject to sharing rules, and the prompt, the action and the audit entry all land in the CRM. On the right, Salesforce moves into Claude as a plugin: the conversation, attachments and other connectors live in Claude, an OAuth-scoped connected app reaches back into Salesforce, and only the resulting write lands in the CRM while the deliberation stays outside it. Claude into Agentforce Salesforce boundary Claude as reasoning model Atlas engine · via Bedrock Tool call = Salesforce action Sharing rules and field-level security apply Record written Field history, event log, same tenant Prompt, action and audit entry all inside the boundary Salesforce into Claude Claude Conversation, attachments, other connected tools the deliberation lives here Salesforce plugin One OAuth-scoped connected app, scope sized for every bundled skill Salesforce boundary Record written The write is here; the reasoning is not Same partnership, opposite answers to where the deliberation behind a change is recorded.
Same partnership, opposite answers to where the deliberation behind a change is recorded.

Claude in Agentforce: the model comes to the data

In this direction the agent's actions are Salesforce actions. They execute in a running user's context, which means the platform's sharing model, field-level security and object permissions apply to each one without anybody re-implementing them. The tool catalogue is the org's own actions and flows. Inference runs through Bedrock inside what Salesforce calls its Trust Boundary, which is the specific claim that lets regulated customers say the data did not leave. And the artefacts a compliance team wants — what changed, by whom, under whose permissions — are produced by machinery that predates agents by a decade.

The cost is autonomy of a different kind: you are inside somebody's platform, on their action model, with their default reasoning engine. That is a normal trade and most enterprises have already made it.

Salesforce in Claude: the data comes to the session

The plugin direction is the more interesting one precisely because it is being sold as a convenience. The user works in Claude. The transcript is in Claude. The uploaded spreadsheet, the half-finished proposal, the other connectors that same user has enabled — all in Claude. The plugin fetches live CRM context, the model reasons over it, and a governed action writes back.

Notice what changed and what did not. The write is still a Salesforce write, still permissioned, still logged: that half is genuinely solved. What moved is the deliberation — the retrieved context, the alternatives considered, the instruction the user actually gave — and it moved into a workspace whose retention, export and legal-hold story is a different vendor's.

The auditable half and the missing join

Where the three parts of an agent decision are recorded Three columns for the three artefacts of a decision. The request and the deliberation land in Salesforce when Claude runs inside Agentforce, and in Claude when Salesforce runs as a plugin. The action taken lands in Salesforce in both directions. The link between the two, joining a written record to the reasoning that produced it, exists in neither direction unless someone builds it. What survives the decision, and where The deliberation Claude in Agentforce: inside the CRM tenant. Salesforce in Claude: inside the Claude workspace, beside every other connector the user has enabled. The action Both directions: a write to a Salesforce record. Field history and event monitoring capture what changed and who changed it. This half is solved. The join between them Neither direction gives you a record that answers “on what basis?” next to the field that changed. Someone has to write the reason back as a record. The column that is nobody’s feature is the one your auditor asks about.
The column that is nobody's feature is the one your auditor asks about.

Field history tells you that the discount on an opportunity went from 5% to 22% and that it was the integration user who did it. It does not tell you that the agent had read a competitor's quote pasted into the chat, weighed a renewal risk the rep mentioned in passing, and proposed the number. In the Agentforce direction that context is at least recoverable from the same tenant. In the plugin direction it is in a conversation that may be edited, may be deleted, and is subject to whatever the user's own workspace policy says.

This matters in three concrete places, none of them hypothetical for a company of any size:

  • Discovery and legal hold. If a decision is disputed, the reasoning is discoverable material. A hold that covers the CRM does not cover a session in a different product unless somebody scoped it there.
  • Regulated justification. Wherever a decision needs a reason on file — pricing that must be non-discriminatory, an approval with a threshold, anything touching a supervised process — "the record shows the change but not the basis" is a finding waiting to be written.
  • Incident reconstruction. When a bad write is discovered three weeks later, the useful question is what the agent believed. That is the reasoning, and the repair work is much harder without it.

The fix is unglamorous and worth budgeting for: make the agent write its own rationale back as a record on the object it touched. A one-paragraph justification with the ids of what it read, stored in the CRM at write time, closes the gap in both directions and costs a field.

What the plugin's scope is, and why it is coarser than it looks

Three ways to put an agent on CRM data, compared on four governance axes A matrix with three rows and four columns. Claude inside Agentforce scores strong on permission granularity and on where deliberation is recorded, contained on injection blast radius, and weak on model choice. The Salesforce plugin inside Claude scores weak on permission granularity and on recorded deliberation, wide on blast radius, and strong on model choice within Claude. A self-built agent on the APIs scores medium to strong on all four but only if the team builds the controls itself. Governance shape of three deployment choices Permission granularity Deliberation recorded in CRM Injection blast radius Model choice Claude inside Agentforce Per-action sharing Yes Salesforce actions Default is set Salesforce plugin in Claude One app-wide scope No Every connector Claude’s catalogue Your own agent on the APIs Whatever you build If you write it back Your tool catalogue Any Strong Medium Weak Colour reads as governance strength, not product quality.
Colour reads as governance strength, not product quality — each row is the right answer for some team.

A connected app's OAuth scope is granted once and sized for everything the app might do. Bundle 37 skills behind one plugin and the scope has to be the union of what any of them needs — pipeline reads, record updates, probably contacts and activities. A single conversation that only wanted to summarise one account is running with all of it. That is not a flaw specific to this plugin; it is the shape of every connector-style integration, and it is the practical reason a per-action permission model is worth something.

The second-order version is the one that produces incidents. A CRM is full of text that other people wrote — inbound emails, case descriptions, notes from a form on your website. Pull that text into a general assistant that also holds the user's mailbox, their files and three other connectors, and you have assembled the classic confused-deputy setup: attacker-authored content on one side, the user's full authority on the other, and a model in between deciding what to do. Inside Agentforce, a successful injection buys an attacker a Salesforce action under a sharing model. Inside a general workspace, it buys whatever the user's other connectors reach. This is the whole argument of ambient authority, arriving as a product decision rather than a security review.

What to do before the beta lands

The September beta is a reasonable thing to want. Four things make it survivable:

  • Decide, per workflow, which direction it belongs in. Work whose record has to be complete — pricing, approvals, anything a regulator or a court might read — goes in the direction where the deliberation stays in the tenant. Exploratory work, drafting and analysis are fine in the other one.
  • Write the rationale back. Whichever direction, a machine-written justification stored on the record at write time is the single cheapest control here, and the only one that survives a change of vendor.
  • Scope the connected app like a service account, not like a user. Ask what the plugin's OAuth scope actually grants, and whether it can be split. If the answer is one scope for all 37 skills, that is your blast radius; treat sensitive objects as out of scope rather than assuming per-conversation restraint.
  • Extend retention and legal hold to the new surface before you enable it, not after the first request arrives. If that is not possible, that fact is itself the decision for regulated workflows.

And keep the model-agnosticism question in proportion. A default reasoning engine is a commercial fact worth negotiating, but it is reversible in a way that a two-year archive of decisions with no recorded basis is not.

FAQ

Does Claudeforce mean Salesforce customers have to use Claude?

No. Claude is described as the default reasoning model for Agentforce Vibes and Agentforce Coworker and as available in Agent Builder, which is a default rather than an exclusive. The commercial gravity of a default is real, but the configuration point remains.

Does the plugin direction mean CRM data leaves the Salesforce boundary?

Data the plugin fetches is processed in the Claude session, which is outside the Salesforce Trust Boundary by construction — that is what the integration is for. The Agentforce direction is the one that carries the "runs inside the boundary, via Bedrock" claim. Treat them as different data-flow answers, because they are.

Is the audit trail actually worse in the plugin direction?

The record of what changed is the same: it is a Salesforce write and Salesforce logs it. The record of why is the part that moves outside the CRM. Whether that counts as worse depends entirely on whether anyone in your organisation is ever asked the second question.

How is this different from connecting Salesforce over MCP yourself?

Structurally it is the same shape — an external agent holding a scoped credential into your tenant — with the difference that a first-party plugin is supported, curated and likely to be enabled at scale by people who are not reading this. The governance questions are identical; the number of users affected is not.

What is the single control worth building first?

A rationale field written by the agent at the moment of the write, containing the record ids it read and one paragraph of justification. It is vendor-independent, it closes the missing join in both directions, and it is the artefact every later investigation wants.

Further reading

On this wiki:

Sources: