Headless360? Salesforce was always headless.
Headless 360 isn't a new platform. It's Salesforce finally saying out loud what's been true since day one: every door is an API. The new bit — agents are first-class clients now.
Here's how long it's been true.
Same four layers. Same products.
What shipped at TDX.
Platform-Hosted MCP & Coding-Agent Skills.
60+ MCP tools and 30+ pre-built skills, hosted by Salesforce, plug straight into the coding and chat agents your customers already use. No middleware. Same Trust Layer. Auth is just OAuth.
Other releases worth knowing
Agentforce Experience Layer
Build a card, decision tile, or workflow once. Render it natively wherever people work.
- Renders in: Slack, Mobile, ChatGPT, Claude, Gemini, Teams, WhatsApp, Voice
- Same component, every surface — no per-channel rebuild
Agent Control at Scale
The "shipping is the starting line" tooling. Pre-launch, in-production, multi-vendor.
- Pre-launch: Testing Center, Custom Scoring Evals
- In-prod: A/B Testing API, Observability
- Multi-vendor: Agent Fabric (one control plane)
Your Apex. Your Flows. Now agent tools.
If it's a global @InvocableMethod or an invocable Flow, it's already exposable as an MCP tool. No "enable" toggle. No new framework.
Got an @InvocableMethod? It's a tool.
global class CalculateRenewalQuote { @InvocableMethod( label='calculate_renewal_quote' description='Build a renewal quote for an Account' ) global static List<Quote> run(List<Id> accountIds) { return RenewalEngine.run(accountIds); } } // any global @InvocableMethod is callable by an MCP client
Got an invocable Flow? Same thing.
// In Flow Builder Flow: "Escalate_High_Value_Case" Type: Auto-launched (Invocable) Inputs: caseId (Text), reason (Text) Outputs: ownerId (Text), slackChannel (Text) // any invocable Flow is callable by an MCP client
Claude Code
ChatGPT
Agentforce Vibes
Slack