Salesforce Headless 360 image

THE PROBLEM WITH LIGHTNING AS YOUR CUSTOMER INTERFACE

Salesforce's Customer 360 promise is compelling: a single source of truth for every customer interaction, across sales, service, marketing, and commerce. The data model is mature, the automation layer is powerful, and if your business runs on Salesforce, the 360-degree view is genuinely there — buried inside your org.

The problem is the interface. Lightning Experience is built for internal users: sales reps, service agents, operations teams. It carries 25 years of CRM assumptions about workflows, page layouts, and user roles. When you try to surface that customer data to external users — a branded partner portal, a customer self-service hub, a field technician app, a real-time operations dashboard — Lightning's constraints become visible fast.

Experience Cloud helps, but it has its own ceiling. You're still working inside Salesforce's component model, styling constraints, and page builder paradigm. The moment a client says "we need this to feel like our product, not a Salesforce portal," you're fighting the framework instead of building.

Headless 360 is the architectural pattern that resolves this tension: Salesforce owns the data, the business logic, and the automation. A purpose-built frontend owns everything the user sees and touches.

WHAT HEADLESS 360 ACTUALLY MEANS

In a headless architecture, the "head" — the UI — is decoupled from the system of record. Salesforce becomes a backend API rather than a complete application. Your frontend calls Salesforce for data and writes changes back, but the rendering, routing, state management, and user experience are entirely yours.

The "360" part means the frontend isn't reading from a single Salesforce object — it's assembling a complete view of the customer by querying across the full data model: Account, Contact, Cases, Opportunities, Orders, custom objects, interaction history, everything. The 360-degree view that your internal team sees in Lightning is now available in the exact shape and interface that serves your specific use case.

In practice this is what a Headless 360 stack looks like:

AUTHENTICATION: THE PART THAT TRIPS PEOPLE UP

Auth is where most headless Salesforce projects get complicated, and where bad early decisions compound into long-term pain.

Salesforce uses OAuth 2.0, exposed through Connected Apps. The flow you choose depends on who is authenticating:

The token management layer is unglamorous but critical. Access tokens expire in one hour. Your architecture needs to handle refresh silently, queue requests that arrive during refresh, and fail gracefully when refresh itself fails. We've seen more headless Salesforce apps break on token edge cases than on anything else.

QUERYING THE 360 VIEW

The Salesforce REST API is well-documented but chatty by default. Fetching a customer 360 view naively — one API call per object — produces 8–12 sequential round trips and a slow UI. The query design matters.

Three patterns we rely on:

For the 360 view specifically, we typically build a thin aggregation endpoint in our middleware layer that makes one GraphQL call to Salesforce and returns a normalized customer object to the frontend. The frontend gets everything it needs in one fetch, and the query complexity stays server-side.

REAL-TIME DATA: STREAMING AND PUSH

The read-only 360 dashboard is the easy case. Things get more interesting when the UI needs to reflect changes as they happen — a support ticket just escalated, a field service technician just marked a job complete, an order status just changed.

Salesforce offers two mechanisms for real-time data:

For customer-facing apps, we typically use CDC to maintain a lightweight, queryable cache (Redis or a read-optimized Postgres table) that the frontend reads from. The cache stays in sync via CDC events. This eliminates API rate limit pressure on the Salesforce side and gives the frontend sub-10ms read latency on the 360 view.

WHEN NOT TO GO HEADLESS

Headless 360 is the right architecture for a specific set of problems. It's not the right answer for everything, and we've turned down projects where clients wanted it for the wrong reasons.

Don't go headless if:

The signal that headless is right: your use case genuinely needs a frontend that Salesforce's UI model can't deliver. A mobile app for field technicians. A real-time customer portal with bespoke UX. A data-dense operations dashboard with custom visualizations. A multi-brand portal that needs to look like three different products. If the requirement is fundamentally about owning the user experience, headless is the right call.

THE TRADEOFF IN ONE SENTENCE

You get total frontend freedom and Salesforce's full data and logic platform — in exchange for owning the integration layer, the auth stack, the token management, and the operational complexity that Experience Cloud would otherwise handle for you.

For the right use cases, it's a trade worth making. For the wrong ones, it's a lot of plumbing for a problem that didn't need it.